package brydz; import javax.microedition.lcdui.*; public class BrydzMenu extends List implements CommandListener { protected BrydzMIDlet midlet; protected BrydzForm form; protected Form text; public BrydzMenu(BrydzMIDlet midlet, BrydzForm previous) { super("Menu", List.IMPLICIT); this.midlet = midlet; this.form = previous; this.text = new Form("Obliczenia brydżowe"); this.text.addCommand(new Command("Powrót", Command.BACK, 1)); this.text.addCommand(new Command("Menu", Command.OK, 1)); this.text.setCommandListener(this); this.append("Pomoc", null); this.append("Autor", null); this.append("Wyjście", null); this.addCommand(new Command("Powrót", Command.BACK, 1)); this.setSelectCommand(new Command("Wybierz", Command.ITEM, 1)); this.setCommandListener(this); this.midlet.display.setCurrent(this); } public void commandAction(Command command, Displayable displayable) { switch(command.getCommandType()) { case Command.OK: this.midlet.display.setCurrent(this); break; case Command.BACK: this.midlet.display.setCurrent(this.form); break; case Command.ITEM: switch(this.getSelectedIndex()) { case 0: this.text.deleteAll(); this.text.append(new StringItem("O programie", "MIDlet ten ma za zadanie ułatwić obliczanie zapisu brydżowego przy towarzyskim graniu w brydża sportowego.")); this.text.append(new StringItem("Kontrakt", "Należy podać wysokość wylicytowanego kontraktu lub 0 przy czterech pasach")); this.text.append(new StringItem("Kolor", "Trzeba wybrać z listy wylicytowany kolor (młodszy/starszy/bez atu) - w przypadku pasów nie ma to znaczenia.")); this.text.append(new StringItem("Kontra", "Jeśli przeciwnicy dawali kontrę lub rozgrywający dodatkowo rekontrował - należy zaznaczyć odpowiednie pole.")); this.text.append(new StringItem("Przed/po partii", "Część przed znakiem \"/\" dotyczy rozgrywających, zaś część druga - przeciwników. W przypadku czterech pasów - pierwsza dotyczy pary z większą liczbą punktów.")); this.text.append(new StringItem("PC", "Liczba punktów honorowych (punktów Miltona Worka) pary, która wylicytowała kontrakt. W przypadku pasów - suma punktów pary z większą ich ilością.")); this.text.append(new StringItem("Lew", "Ilość lew wziętych przez rozgrywającego - w przypadku pasów nie ma znaczenia.")); this.text.append(new StringItem("Wynik", "Przekazywana jest informacja o stronie, która uzyskała zapis, liczbie punktów bez i z uwzględnieniem ilości PC, ilości uzyskanych IMP-ów oraz uzyskanym procencie, zgodnie z zapisem maksowym p. Adama Królika.")); this.midlet.display.setCurrent(this.text); break; case 1: this.text.deleteAll(); this.text.append("Autor: Jacek Kowalski\nhttp://dev.jacekk.net/brydz"); this.midlet.display.setCurrent(this.text); break; case 2: this.midlet.destroyApp(true); break; } break; } } }