package org.ourproject.massmob.client.ui.date;
import java.util.Date;
import com.google.gwt.core.client.GWT;
import com.google.gwt.event.dom.client.HasMouseWheelHandlers;
import com.google.gwt.i18n.client.DateTimeFormat;
import com.google.gwt.uibinder.client.UiBinder;
import com.google.gwt.uibinder.client.UiField;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.FocusPanel;
import com.google.gwt.user.client.ui.HasValue;
import com.google.gwt.user.client.ui.Widget;
import com.google.gwt.user.datepicker.client.DateBox;
import cc.kune.common.client.tooltip.Tooltip;
public class DatePanel extends Composite implements DatePresenter.DateView {
interface DatePanelUiBinder extends UiBinder<Widget, DatePanel> {
}
private static DatePanelUiBinder uiBinder = GWT.create(DatePanelUiBinder.class);
@UiField
DateBox datebox;
private final DateTimeFormat dateFormat;
private final DateTimeFormat dateTimeFormat;
@UiField
FocusPanel focus;
public DatePanel() {
initWidget(uiBinder.createAndBindUi(this));
dateTimeFormat = DateTimeFormat.getFormat("MMM d, yyyy h:mm a");
dateFormat = DateTimeFormat.getFormat("MMM d, yyyy");
Tooltip.to(datebox, "Click to pick a date or use shift + mouse wheel");
}
@Override
public Widget asWidget() {
return this;
}
@Override
public Date getDate() {
return datebox.getValue();
}
@Override
public HasMouseWheelHandlers getWheel() {
return focus;
}
@Override
public HasValue<Date> hasValue() {
return datebox;
}
@Override
public void setAllTime(final boolean allDay) {
datebox.setFormat(new DateBox.DefaultFormat(allDay ? dateFormat : dateTimeFormat));
datebox.setWidth(allDay ? "100px" : "160px");
}
@Override
public void setDate(final Date date) {
datebox.setValue(date);
}
@Override
public void setEnabled(final boolean enabled) {
datebox.setEnabled(enabled);
}
}