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