package main;
import gui.MultiplayerSelection;
import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.CommandListener;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.List;
import javax.microedition.midlet.MIDlet;
import javax.microedition.midlet.MIDletStateChangeException;
/**
* Klasa uruchomienowa MIDletu. Pokazuje menu glowne aplikacji.
* @author TeXteR and Kazorx
*/
public class BTMIDlet extends MIDlet implements CommandListener {
//private final Command selectCommand;
private final Command exitCommand;
/**
* Reprezentuje ekran na ktorym mozemy pokazywac obiekty typu displayable
*/
private Display display;
private List menuList;
private MultiplayerSelection multiplayerSelection;
public BTMIDlet() {
//selectCommand = new Command("Select", Command.SCREEN, 1);
exitCommand = new Command("Exit", Command.EXIT, 1);
menuList = new List("Menu", List.IMPLICIT);
menuList.append("Wyszukaj urzadzenia", null);
menuList.append("Wyjście", null);
multiplayerSelection = new MultiplayerSelection(this);
//menuList.addCommand(selectCommand);
menuList.addCommand(exitCommand);
menuList.setCommandListener(this);
}
protected void startApp() throws MIDletStateChangeException {
display = Display.getDisplay(this);
display.setCurrent(menuList);
}
protected void pauseApp() {
notifyPaused();
}
protected void destroyApp(boolean unconditional) throws MIDletStateChangeException {
}
/**
* Metoda zajmuje sie wychodzeniem z MIDletu. Duze ulatwienie. Nie trzeba pamietac o notifyDestroyed()
*/
public void exit() {
try {
destroyApp(false);
} catch (MIDletStateChangeException ex) {
System.out.println(ex.getMessage());
}
notifyDestroyed();
}
/**
* Zwraca display dla MIDletu
* @return
*/
public Display getDisplay() {
return display;
}
public void showMenu() {
display.setCurrent(menuList);
}
public void commandAction(Command c, Displayable d) {
// Pobieramy indeks zaznaczonej pozycji na liscie
int selectedIndex = menuList.getSelectedIndex();
// Jesli padla komenda exitCommand wychodzimy
if (c.equals(exitCommand)) {
exit();
} else if (c.getCommandType() == 1) { // Nie mam pojecia dlaczego tylko tak da sie obsluzc przycisk na srodku. Niby SCREEN ma wartosc commandType 1 ale nie dziala
// Pobieramy napis znajdujacy sie pod wskazanym indeksem.
// Jesli wyszukaj urzadzenia, pokaz ekran wyboru trybu polaczenia
if (menuList.getString(selectedIndex).equals("Wyszukaj urzadzenia")) {
display.setCurrent(multiplayerSelection);
}
// Pobieramy napis znajdujacy sie pod wskazanym indeksem. Jesli wyjscie to wychodzimy.
if (menuList.getString(selectedIndex).equals("Wyjście")) {
exit();
}
}
}
}