package ca.upei.ic.timetable.client;
import com.google.gwt.core.client.GWT;
import com.google.gwt.json.client.JSONValue;
import com.google.gwt.user.client.ui.ChangeListener;
import com.google.gwt.user.client.ui.HorizontalPanel;
import com.google.gwt.user.client.ui.ListBox;
import com.google.gwt.user.client.ui.Widget;
public class CourseStartTimeModelView implements Model, View {
private FindCourseViewController controller_;
private ListBox hour_;
private ListBox day_;
private HorizontalPanel panel_;
public CourseStartTimeModelView(FindCourseViewController controller) {
controller_ = controller;
hour_ = GWT.create(ListBox.class);
// initialize the list box
hour_.addItem("All", "all");
for (int hour=8; hour < 20; hour++) {
hour_.addItem(hour + ":00", (hour > 12 ? hour - 12 : hour) + ":00");
hour_.addItem(hour + ":30", (hour > 12 ? hour - 12 : hour) + ":30");
}
day_ = GWT.create(ListBox.class);
// initialize the list box
day_.addItem("All", "all");
day_.addItem("Monday");
day_.addItem("Tuesday");
day_.addItem("Wednesday");
day_.addItem("Thursday");
day_.addItem("Friday");
// set the popup title
day_.setTitle("Choose a day when you want to have courses");
hour_.setTitle("Choose a time when you want to have courses");
// create the panel
panel_ = PanelUtils.horizontalPanel(day_, hour_);
controller_.setStartTimeCriteria(getDay(), getHour());
// add change listener
day_.addChangeListener(new ChangeListener() {
public void onChange(Widget sender) {
controller_.setStartTimeCriteria(getDay(), getHour());
}
});
hour_.addChangeListener(new ChangeListener() {
public void onChange(Widget sender) {
controller_.setStartTimeCriteria(getDay(), getHour());
}
});
}
public String getHour() {
return hour_.getValue(hour_.getSelectedIndex());
}
public String getDay() {
return day_.getValue(day_.getSelectedIndex());
}
public void setDay(int day) {
day_.setSelectedIndex(day+1);
}
public void setHour(int hour) {
if (hour < 24) hour_.setSelectedIndex(hour+1);
}
public void clear() {
// nop
}
public void loadJSON(JSONValue value) {
// nop
}
public void addSubView(View subView) {
// nop
}
public ViewController getController() {
return controller_;
}
public Widget getWidget() {
return panel_;
}
public void hide() {
panel_.setVisible(false);
}
public void show() {
panel_.setVisible(true);
}
}