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