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