package com.view; import mobilebasic.Main; import java.io.DataInputStream; import java.io.IOException; 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; public class HelpScreen extends List implements CommandListener { private Main main; private Form helpForm; private DataInputStream dos; public HelpScreen() { super("Справка", List.IMPLICIT); append("MobileBASIC 1.9.1", null); append("Основные команды", null); append("Функции Даты и Времени", null); append("Функции Интерфейса", null); append("Игровые Функции", null); append("Графические команды", null); append("Команды Ввода-вывода", null); append("Математ. функции", null); append("Спрайтовые команды", null); append("Строковые функции", null); append("Работа со звуком", null); append("Дополн. функции", null); append("Номера Ошибок", null); main = Main.mdl; addCommand(main.cancelCMD); setCommandListener(this); } public void commandAction(Command command, Displayable disp) { if (disp == this) { if (command == List.SELECT_COMMAND) { int index = getSelectedIndex(); helpForm = new Form(getString(index)); helpForm.append(get(index)); helpForm.addCommand(main.cancelCMD); helpForm.setCommandListener(this); main.display.setCurrent(helpForm); return; } else { dos = null; deleteAll(); removeCommand(main.cancelCMD); main.display.setCurrent(main.menuList); } } else { helpForm = null; main.display.setCurrent(this); } } private String get(int index) { try { if (dos == null) { dos = new DataInputStream(HelpScreen.class.getResourceAsStream("/res/help.bin")); } else { dos.reset(); } for (int i = 0; i < index; i++) { dos.skip(dos.readShort()); } return dos.readUTF(); } catch (IOException ex) { ex.printStackTrace(); } return null; } }