Obliczenia brydżowe (Java ME)
Jacek Kowalski
2012-08-08 fb3d21dd264151dce808d7698ee0d8a28d6f227e
Przeniesienie menu z osobnej formatki pod przycisk.
1 files deleted
1 files added
1 files modified
181 ■■■■ changed files
src/brydz/BrydzForm.java 53 ●●●●● patch | view | raw | blame | history
src/brydz/BrydzMenu.java 67 ●●●●● patch | view | raw | blame | history
src/brydz/BrydzPomocForm.java 61 ●●●●● patch | view | raw | blame | history
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;
        }
    }
    
src/brydz/BrydzMenu.java
File was deleted
src/brydz/BrydzPomocForm.java
New file
@@ -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);
        }
    }
}