package CacheWolf.view.pda;
import CacheWolf.database.TravelbugJourney;
import CacheWolf.model.TravelBugJourneyScreenModel;
import ewe.graphics.AniImage;
import ewe.ui.ControlConstants;
import ewe.ui.ControlEvent;
import ewe.ui.Form;
public class PDATravelbugJourneyScreen extends PDAList {
private static final String LINE = "Line";
private static final String NEXT_PAGE = "NextPage";
private static final String PREV_PAGE = "PrevPage";
private static final String MENUE = "Menue";
TravelBugJourneyScreenModel model;
private final int linesOnScreen = 7;
/**
* The six visible entries in the List
*/
public PDATravelbugJourneyScreen(TravelBugJourneyScreenModel travelbugModel) {
addListener(this);
setTitle("TravelBugs");
model = travelbugModel;
// backgroundImage = new Image("bug_vga.gif");
for (int i = 0; i < model.allTravelbugJourneys.size(); i++) {
model.shownTravelbugJourneys.add(model.allTravelbugJourneys.getTBJourney(i));
}
createShowSet();
setupTBButtons();
}
public void onControlEvent(ControlEvent ev) {
if (ev instanceof ControlEvent) {
switch (ev.type) {
case ControlEvent.PRESSED:
if (ev.action.equals(NEXT_PAGE) && model.shownTravelbugJourneys.size() > firstLine + linesOnScreen) {
firstLine += linesOnScreen;
setupTBButtons();
} else if (ev.action.equals(PREV_PAGE) && firstLine > 0) {
firstLine -= linesOnScreen;
if (firstLine < 0) {
firstLine = 0;
}
setupTBButtons();
} else if (ev.action.startsWith(LINE)) {
int line = ev.action.charAt(LINE.length()) - '0';
TravelbugJourney tbJourney = (TravelbugJourney) model.shownTravelbugJourneys.get(line + firstLine);
Form form = new PDATravelbugDetailPanel(tbJourney, this);
form.setPreferredSize(800, 600);
form.execute();
setupTBButtons();
} else if (ev.action.equals(MENUE)) {
Form form = new PDATravelbugMenuPanel(this);
form.setPreferredSize(800, 600);
int execute = form.execute();
if (execute == 1) {
exit(0);
}
setupTBButtons();
}
break;
default:
super.onControlEvent(ev);
}
}
}
protected PDAListButton createListButton(int i) {
return new PDATravelBugJourneyButton("", LINE + i);
}
public void setupTBButtons() {
if (model == null) {
return;
}
for (int i = 0; i < linesOnScreen; i++) {
if (i + firstLine < model.shownTravelbugJourneys.size()) {
TravelbugJourney tbJourney = (TravelbugJourney) model.shownTravelbugJourneys.get(i + firstLine);
String tbName = tbJourney.getTb().getName();
listButtons[i].text = tbName;
listButtons[i].fromText = tbJourney.getFromWaypoint() + '/' + tbJourney.getFromProfile();
listButtons[i].fromLogged = tbJourney.getFromLogged();
listButtons[i].toText = tbJourney.getToWaypoint() + '/' + tbJourney.getToProfile();
listButtons[i].toLogged = tbJourney.getToLogged();
listButtons[i].image = new AniImage("bug_vga.gif");
listButtons[i].modify(ControlConstants.Disabled, 1);
} else {
listButtons[i].text = listButtons[i].fromText = listButtons[i].toText = "";
listButtons[i].toLogged = listButtons[i].fromLogged = true;
listButtons[i].image = null;
listButtons[i].modify(ControlConstants.Disabled, 0);
}
listButtons[i].repaint();
}
}
public void toggleOnlyLogged() {
model.toggleOnlyLogged();
firstLine = 0;
setupTBButtons();
}
public void createShowSet() {
firstLine = 0;
model.createShowSet();
}
}