package com.view; import mobilebasic.Main; import mobilebasic.BASIC; import java.util.Vector; import javax.microedition.lcdui.ChoiceGroup; import javax.microedition.lcdui.Command; import javax.microedition.lcdui.CommandListener; import javax.microedition.lcdui.Displayable; import javax.microedition.lcdui.Form; import javax.microedition.lcdui.List; import javax.microedition.lcdui.StringItem; import javax.microedition.lcdui.TextField; /** * * @author kiriman */ public class BuildScreen extends Form implements CommandListener, PathListener { private TextField nameMidletTB, versionMidletTB, vendorMidletTB, iconMidletTB, createInTB; private Command buildCMD, addResCMD; private Vector fileVector; public static String manifest; //#if MB191 //# private ChoiceGroup fullScreenBuildCG; //#endif private Main main; public BuildScreen() { super("Создать Мидлет"); main = Main.mdl; fileVector = new Vector(); createInTB = new TextField("Создать в:", "/" + Settings.path, 120, 0); append(createInTB); nameMidletTB = new TextField("Имя Мидлета", main.nameProgram, 12, 0); versionMidletTB = new TextField("Версия Мидлета", "1.0.0", 5, 0); vendorMidletTB = new TextField("Поставщик Мидлета", "Vendor", 20, 0); iconMidletTB = new TextField("Значок Мидлета", "", 12, 0); append(nameMidletTB); append(versionMidletTB); append(vendorMidletTB); append(iconMidletTB); //#if MB191 //# fullScreenBuildCG = new ChoiceGroup("Полный экран", 2); //# fullScreenBuildCG.append("Вкл./Выкл.", null); //# fullScreenBuildCG.setSelectedIndex(0, true); //# append(fullScreenBuildCG); //#endif append(new StringItem("Ресурсы:\n", "")); buildCMD = new Command("Собрать", 4, 1); addResCMD = new Command("Добавить Ресурс", 4, 2); addCommand(buildCMD); addCommand(addResCMD); addCommand(main.cancelCMD); setCommandListener(this); } //#if MB191 //# //# private boolean isFullScreen() { //# boolean[] result = new boolean[1]; //# if (fullScreenBuildCG != null) { //# fullScreenBuildCG.getSelectedFlags(result); //# } else { //# result[0] = false; //# } //# return result[0]; //# } //#endif public void commandAction(Command command, Displayable disp) { if (command == addResCMD) { FileManager fm = new FileManager(addResCMD.getLabel(), List.IMPLICIT); fm.addMarkCMD(); fm.setSystem(FileManager.FS); fm.setPathListener(this); fm.setCurrentDir(Settings.path); fm.showCurrentDir(); } else if (command == buildCMD) { // MANIFEST.MF StringBuffer sb = new StringBuffer(); sb.append("Manifest-Version: 1.0\nMIDlet-1: "); sb.append(nameMidletTB.getString() + ","); String pathIcon; if (!(pathIcon = iconMidletTB.getString()).equals("")) { sb.append("/" + pathIcon); } sb.append(",Main\nMIDlet-Vendor: " + vendorMidletTB.getString() + "\nMIDlet-Version: "); sb.append(versionMidletTB.getString() + "\nMIDlet-Name: "); sb.append(nameMidletTB.getString() + "\nMicroEdition-Configuration: CLDC-1.1\nMicroEdition-Profile: MIDP-2.0\n"); //#if MB191 //# sb.append("FullScreenMode: " + isFullScreen() + "\n"); //#endif manifest = sb.toString(); main.nameProgram = nameMidletTB.getString(); BASIC.parseLine("SAVE \"temp\"\n", false); main.editor = null; main.menuList = null; main.var_11e5 = true; BASIC.parseLine("LIST\n", false); main.var_11e5 = false; // Собираем мидлет new BuildApp(createInTB.getString(), fileVector); } else if (command == main.cancelCMD) { main.display.setCurrent(main.menuList); return; } } public void pathAction(Object object, boolean isCancel) { String fileName; if (object instanceof String) { fileName = (String) object; fileVector.addElement(fileName); appendFileNameToForm(fileName); } else if (object instanceof Vector) { Vector v = (Vector) object; int size = v.size(); for (int i = 0; i < size; i++) { fileName = (String) v.elementAt(i); fileVector.addElement(fileName); appendFileNameToForm(fileName); } } main.display.setCurrent(this); } private void appendFileNameToForm(String fileName) { append(fileName.substring(fileName.lastIndexOf('/') + 1, fileName.length()) + "\n"); } }