From bf2df04c8c12760206ea1d5be5c7e008123cc695 Mon Sep 17 00:00:00 2001 From: Jacek Kowalski <Jacek@jacekk.info> Date: Tue, 07 Aug 2012 12:20:57 +0000 Subject: [PATCH] 1. Dodanie menu z pomocą oraz informacją o autorze. 2. Dodanie pola display do głównej klasy midletu. 3. Drobne zmiany w kolejności linii. --- src/brydz/BrydzMIDlet.java | 9 +++- src/brydz/BrydzForm.java | 21 ++++++---- src/brydz/BrydzMenu.java | 65 ++++++++++++++++++++++++++++++++ 3 files changed, 84 insertions(+), 11 deletions(-) diff --git a/src/brydz/BrydzForm.java b/src/brydz/BrydzForm.java index 9c8f78d..33adaa1 100644 --- a/src/brydz/BrydzForm.java +++ b/src/brydz/BrydzForm.java @@ -4,6 +4,7 @@ public class BrydzForm extends Form implements CommandListener, ItemStateListener { protected BrydzMIDlet midlet; + protected BrydzMenu menu = null; protected TextField kontraktField; protected ChoiceGroup kontraktChoice; @@ -51,14 +52,15 @@ this.append(this.lewyField); this.append(this.resultText); - setItemStateListener(this); - setCommandListener(this); - addCommand(new Command("Wyczyść", Command.OK, 1)); - addCommand(new Command("Wyjście", Command.EXIT, 1)); + this.addCommand(new Command("Wyczyść", Command.BACK, 1)); + this.addCommand(new Command("Menu", Command.OK, 1)); + + this.setItemStateListener(this); + this.setCommandListener(this); } public void commandAction(Command command, Displayable displayable) { - if (command.getCommandType() == Command.OK) { + if (command.getCommandType() == Command.BACK) { this.kontraktField.setString(null); this.kontraktChoice.setSelectedIndex(0, true); this.kontraChoice.setSelectedIndex(0, true); @@ -67,10 +69,13 @@ this.lewyField.setString(null); this.resultText.setText("Podaj wszystkie dane."); - Display.getDisplay(this.midlet).setCurrentItem(this.kontraktField); + this.midlet.display.setCurrentItem(this.kontraktField); } - else if (command.getCommandType() == Command.EXIT) { - this.midlet.destroyApp(true); + else if (command.getCommandType() == Command.OK) { + if(this.menu == null) { + this.menu = new BrydzMenu(this.midlet, this); + } + this.midlet.display.setCurrent(this.menu); } } diff --git a/src/brydz/BrydzMIDlet.java b/src/brydz/BrydzMIDlet.java index 95036fd..c80d0ed 100644 --- a/src/brydz/BrydzMIDlet.java +++ b/src/brydz/BrydzMIDlet.java @@ -7,13 +7,16 @@ */ public class BrydzMIDlet extends javax.microedition.midlet.MIDlet { protected BrydzForm form = null; + protected Display display = null; public void startApp() { - if( this.form == null ) { + if(this.form == null) { this.form = new BrydzForm(this); } - - Display.getDisplay(this).setCurrent(this.form); + if(this.display == null) { + this.display = Display.getDisplay(this); + } + this.display.setCurrent(this.form); } public void pauseApp() { diff --git a/src/brydz/BrydzMenu.java b/src/brydz/BrydzMenu.java new file mode 100644 index 0000000..4bd48d2 --- /dev/null +++ b/src/brydz/BrydzMenu.java @@ -0,0 +1,65 @@ +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; + } + } +} -- Gitblit v1.9.1