package scrum.client.calendar;
import ilarkesto.gwt.client.HyperlinkWidget;
import ilarkesto.gwt.client.TableBuilder;
import java.util.List;
import scrum.client.ScrumGwt;
import scrum.client.common.AScrumAction;
import scrum.client.common.AScrumWidget;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.Widget;
public abstract class ADateSelectorWidget extends AScrumWidget {
protected abstract boolean isSelected();
protected abstract boolean isVisibleInList();
protected abstract boolean isToday();
protected abstract AScrumAction getAction();
protected abstract List<SimpleEvent> getEvents();
@Override
protected final Widget onInitialization() {
TableBuilder tb = ScrumGwt.createFieldTable();
tb.add(new HyperlinkWidget(getAction()));
List<SimpleEvent> events = getEvents();
int eventCount = events.size();
tb.nextRow();
Label eventLabel;
if (eventCount > 0) {
eventLabel = new Label("" + events.size());
} else {
eventLabel = new Label(" ");
}
eventLabel.setStyleName("DateSelectorWidget-events");
tb.add(eventLabel);
Widget panel = tb.createTable();
if (isSelected()) {
panel.setStyleName("DateSelectorWidget-selected");
} else if (isVisibleInList()) {
panel.setStyleName("DateSelectorWidget-visible");
} else {
panel.setStyleName("DateSelectorWidget");
}
if (isToday()) {
panel.addStyleName("DateSelectorWidget-today");
}
return panel;
}
}