package com.view; import mobilebasic.Main; import mobilebasic.BASIC; import javax.microedition.lcdui.AlertType; import javax.microedition.lcdui.Command; import javax.microedition.lcdui.CommandListener; import javax.microedition.lcdui.Displayable; import javax.microedition.lcdui.TextBox; /** * * @author kiriman */ public class EditorScreen extends TextBox implements CommandListener { private Command inputCMD, listCMD; private int indexOf; private int size; public static int step = 10; private Main main; public boolean autoNumb; public EditorScreen(Main main) { super(main.nameProgram, "", main.canvas.widthInChars * main.canvas.heightInChars, 0); this.main = main; this.autoNumb = Settings.autoNumb; inputCMD = new Command("Ввод", 4, 1); listCMD = new Command("Список", 2, 2); addCommand(inputCMD); addCommand(listCMD); setCommandListener(this); } private void input() { int i = 0; indexOf = 0; size = 0; boolean isValid; String lineStr; //#if MB191 //# BASIC.CONST_FLOAT_INDEX = 0; //#endif do { indexOf = getString().indexOf(10, i); if (indexOf == -1) { size = size(); } else { size = indexOf; } if ((lineStr = getString().substring(i, size)).length() > 254) { main.Error("Ошибка: Превышена длина в строке " + lineStr.substring(0, lineStr.indexOf(32, 0))); return; } if (!(isValid = BASIC.parseLine(lineStr + "\n", false))) { return; } if (indexOf == -1) { insert("\n", size); } i = size + 1; } while (size + 1 < size()); if (autoNumb && isValid && !lineStr.trim().equals(Integer.toString(main.numbLine))) { main.numbLine += step; insert(Integer.toString(main.numbLine) + " ", size + 1); } AlertType.CONFIRMATION.playSound(main.display); } public void commandAction(Command command, Displayable disp) { if (command == inputCMD) { input(); } else if (command == listCMD) { main.display.setCurrent(main.canvas); main.listInCanvas(); } } }