From fb3d21dd264151dce808d7698ee0d8a28d6f227e Mon Sep 17 00:00:00 2001 From: Jacek Kowalski <Jacek@jacekk.info> Date: Wed, 08 Aug 2012 09:50:50 +0000 Subject: [PATCH] Przeniesienie menu z osobnej formatki pod przycisk. --- /dev/null | 67 ---------------- src/brydz/BrydzPomocForm.java | 61 +++++++++++++++ src/brydz/BrydzForm.java | 53 ++++++++---- 3 files changed, 96 insertions(+), 85 deletions(-) diff --git a/src/brydz/BrydzForm.java b/src/brydz/BrydzForm.java index 33adaa1..bf56192 100644 --- a/src/brydz/BrydzForm.java +++ b/src/brydz/BrydzForm.java @@ -4,7 +4,8 @@ public class BrydzForm extends Form implements CommandListener, ItemStateListener { protected BrydzMIDlet midlet; - protected BrydzMenu menu = null; + protected BrydzPomocForm help = null; + protected BrydzPomocForm about = null; protected TextField kontraktField; protected ChoiceGroup kontraktChoice; @@ -53,29 +54,45 @@ this.append(this.resultText); this.addCommand(new Command("Wyczyść", Command.BACK, 1)); - this.addCommand(new Command("Menu", Command.OK, 1)); + this.addCommand(new Command("Pomoc", Command.HELP, 2)); + this.addCommand(new Command("O programie", Command.HELP, 3)); + this.addCommand(new Command("Wyjście", Command.EXIT, 4)); this.setItemStateListener(this); this.setCommandListener(this); } public void commandAction(Command command, Displayable displayable) { - if (command.getCommandType() == Command.BACK) { - this.kontraktField.setString(null); - this.kontraktChoice.setSelectedIndex(0, true); - this.kontraChoice.setSelectedIndex(0, true); - this.partiaChoice.setSelectedIndex(0, true); - this.punktyField.setString(null); - this.lewyField.setString(null); - this.resultText.setText("Podaj wszystkie dane."); - - this.midlet.display.setCurrentItem(this.kontraktField); - } - else if (command.getCommandType() == Command.OK) { - if(this.menu == null) { - this.menu = new BrydzMenu(this.midlet, this); - } - this.midlet.display.setCurrent(this.menu); + switch(command.getCommandType()) { + case Command.EXIT: + this.midlet.destroyApp(true); + break; + case Command.CANCEL: + case Command.BACK: + this.kontraktField.setString(null); + this.kontraktChoice.setSelectedIndex(0, true); + this.kontraChoice.setSelectedIndex(0, true); + this.partiaChoice.setSelectedIndex(0, true); + this.punktyField.setString(null); + this.lewyField.setString(null); + this.resultText.setText("Podaj wszystkie dane."); + + this.midlet.display.setCurrentItem(this.kontraktField); + break; + case Command.HELP: + if(command.getPriority() == 2) { + if(this.help == null) { + this.help = new BrydzPomocForm(this.midlet, this, false); + } + this.midlet.display.setCurrent(this.help); + } + else if(command.getPriority() == 3) { + if(this.about == null) { + this.about = new BrydzPomocForm(this.midlet, this, true); + } + this.midlet.display.setCurrent(this.about); + } + break; } } diff --git a/src/brydz/BrydzMenu.java b/src/brydz/BrydzMenu.java deleted file mode 100644 index 025d374..0000000 --- a/src/brydz/BrydzMenu.java +++ /dev/null @@ -1,67 +0,0 @@ -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(""); - 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.setTitle("Pomoc"); - 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.setTitle("Obliczenia brydżowe"); - this.text.append("Wersja: "+this.midlet.version+"\nAutor: Jacek Kowalski\nhttp://dev.jacekk.net/brydz"); - this.midlet.display.setCurrent(this.text); - break; - case 2: - this.midlet.destroyApp(true); - break; - } - break; - } - } -} diff --git a/src/brydz/BrydzPomocForm.java b/src/brydz/BrydzPomocForm.java new file mode 100644 index 0000000..1ce5148 --- /dev/null +++ b/src/brydz/BrydzPomocForm.java @@ -0,0 +1,61 @@ +package brydz; + +import javax.microedition.lcdui.*; + +public class BrydzPomocForm extends Form implements CommandListener { + protected BrydzMIDlet midlet; + protected BrydzForm form; + + public BrydzPomocForm(BrydzMIDlet midlet, BrydzForm previous, boolean about) { + super(""); + + this.midlet = midlet; + this.form = previous; + + if(about) { + this.setTitle("O programie"); + this.append(new StringItem("Program:", "Obliczenia brydżowe")); + this.append(new StringItem("Wersja:", this.midlet.version)); + this.append(new StringItem("Autor:", "Jacek Kowalski")); + this.append(new StringItem("Strona WWW:", "http://dev.jacekk.net/brydz", StringItem.HYPERLINK)); + } + else + { + this.setTitle("Pomoc"); + + this.append(new StringItem("Informacje:", "MIDlet ten ma za zadanie" + + " ułatwić obliczanie zapisu brydżowego przy towarzyskim" + + " graniu w brydża sportowego.")); + this.append(new StringItem("Kontrakt:", "Należy podać wysokość" + + " wylicytowanego kontraktu lub 0 przy czterech pasach")); + this.append(new StringItem("Kolor:", "Trzeba wybrać z listy" + + " wylicytowany kolor (młodszy/starszy/bez atu) - w przypadku" + + " czterech pasów nie ma to znaczenia.")); + this.append(new StringItem("Kontra:", "Jeśli przeciwnicy dawali kontrę" + + " lub rozgrywający dodatkowo rekontrował - należy zaznaczyć" + + " odpowiednie pole.")); + this.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.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.append(new StringItem("Lew:", "Ilość lew wziętych przez" + + " rozgrywającego - w przypadku pasów nie ma znaczenia.")); + this.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 IMP-ów oraz uzyskanym" + + " procencie, zgodnie z zapisem maksowym p. Adama Królika.")); + } + + this.addCommand(new Command("Powrót", Command.BACK, 2)); + this.setCommandListener(this); + } + + public void commandAction(Command command, Displayable displayable) { + if(command.getCommandType() == Command.BACK) { + this.midlet.display.setCurrent(this.form); + } + } +} -- Gitblit v1.9.1