package org.ovirt.engine.ui.common.widget.editor; import java.util.Collection; import java.util.Collections; import java.util.Date; import java.util.List; import com.google.gwt.editor.client.adapters.TakesValueEditor; import com.google.gwt.user.client.ui.HasConstrainedValue; /** * EntityModel bound Gwt-Bootstrap DateTimePicker that uses {@link GwtBootstrapDateTimePicker}. */ public class EntityModelDateTimeBox extends GwtBootstrapDateTimePicker implements EditorWidget<Date, TakesValueEditor<Date>>, HasConstrainedValue<Date> { private TakesConstrainedValueEditor<Date> editor; private int tabIndex; private boolean enabled; private char accessKey; public EntityModelDateTimeBox(String format, boolean autoClose) { super(format, autoClose); } public EntityModelDateTimeBox() { super(); } @Override public boolean isEnabled() { return enabled; } @Override public void setEnabled(boolean enabled) { this.enabled = enabled; } @Override public int getTabIndex() { return tabIndex; } @Override public void setAccessKey(char key) { accessKey = key; } @Override public void setTabIndex(int index) { this.tabIndex = index; } public char getAccessKey() { return accessKey; } @Override public TakesValueEditor<Date> asEditor() { if (editor == null) { editor = TakesConstrainedValueEditor.of(this, this, this); } return editor; } @Override public void setAcceptableValues(Collection<Date> values) { if (values instanceof List<?>) { List<Date> allowedDates = (List<Date>) values; Collections.sort(allowedDates); setDateRange(allowedDates.get(0), allowedDates.get(allowedDates.size() - 1)); } } }