From ea33bcf595be2defb43635564eb51d0295f8608c Mon Sep 17 00:00:00 2001 From: Benjamin Barth Date: Tue, 21 Nov 2017 16:30:49 +0100 Subject: [PATCH] bug4210 Integration of new date and time inputs in all dialogs, removed old, no longer need implementation --- ...tractRegattaWithSeriesAndFleetsDialog.java | 11 +- .../ui/adminconsole/EventCreateDialog.java | 3 + .../ui/adminconsole/PositionEntryDialog.java | 6 +- .../RegattaLogAddDeviceMappingDialog.java | 10 +- .../ui/adminconsole/SetStartTimeDialog.java | 7 +- .../SetStartTimeReceivedDialog.java | 7 +- .../ui/adminconsole/SetTimePointDialog.java | 7 +- .../adminconsole/SetTrackingTimesDialog.java | 15 ++- .../DataEntryDialogWithDateTimeBox.java | 45 +++++--- .../shared/DateTimeBoxFallbackStrategie.java | 104 ------------------ .../gwt/ui/shared/DateTimeLocalStrategy.java | 76 ------------- .../gwt/ui/shared/HTML5DateTimeBox.java | 59 ---------- 12 files changed, 66 insertions(+), 284 deletions(-) delete mode 100644 java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/DateTimeBoxFallbackStrategie.java delete mode 100644 java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/DateTimeLocalStrategy.java delete mode 100644 java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/HTML5DateTimeBox.java diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/AbstractRegattaWithSeriesAndFleetsDialog.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/AbstractRegattaWithSeriesAndFleetsDialog.java index eb74a709930..265a9ca27e1 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/AbstractRegattaWithSeriesAndFleetsDialog.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/AbstractRegattaWithSeriesAndFleetsDialog.java @@ -24,10 +24,11 @@ import com.sap.sailing.gwt.ui.leaderboard.RankingMetricTypeFormatter; import com.sap.sailing.gwt.ui.leaderboard.ScoringSchemeTypeFormatter; import com.sap.sailing.gwt.ui.shared.CourseAreaDTO; import com.sap.sailing.gwt.ui.shared.EventDTO; -import com.sap.sailing.gwt.ui.shared.HTML5DateTimeBox; import com.sap.sailing.gwt.ui.shared.RegattaDTO; import com.sap.sailing.gwt.ui.shared.SeriesDTO; import com.sap.sse.common.Util; +import com.sap.sse.gwt.client.controls.datetime.DateAndTimeInput; +import com.sap.sse.gwt.client.controls.datetime.DateTimeInput.Accuracy; import com.sap.sse.gwt.client.controls.listedit.ListEditorComposite; /** @@ -44,8 +45,8 @@ public abstract class AbstractRegattaWithSeriesAndFleetsDialog extends DataEn protected StringMessages stringMessages; private final RegattaDTO regatta; - protected final HTML5DateTimeBox startDateBox; - protected final HTML5DateTimeBox endDateBox; + protected final DateAndTimeInput startDateBox; + protected final DateAndTimeInput endDateBox; protected final ListBox scoringSchemeListBox; protected final ListBox courseAreaListBox; protected final ListBox sailingEventsListBox; @@ -72,9 +73,9 @@ public abstract class AbstractRegattaWithSeriesAndFleetsDialog extends DataEn final NodeList options = selectElement.getOptions(); options.getItem(options.getLength()-1).setTitle(RankingMetricTypeFormatter.getDescription(rankingMetricType, stringMessages)); } - startDateBox = createDateTimeBox(regatta.startDate, HTML5DateTimeBox.Format.YEAR_TO_MINUTE); + startDateBox = createDateTimeBox(regatta.startDate, Accuracy.MINUTES); startDateBox.ensureDebugId("StartDateTimeBox"); - endDateBox = createDateTimeBox(regatta.endDate, HTML5DateTimeBox.Format.YEAR_TO_MINUTE); + endDateBox = createDateTimeBox(regatta.endDate, Accuracy.MINUTES); endDateBox.ensureDebugId("EndDateTimeBox"); scoringSchemeListBox = createListBox(false); scoringSchemeListBox.ensureDebugId("ScoringSchemeListBox"); diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/EventCreateDialog.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/EventCreateDialog.java index 02b00bdec7a..cbbef276fca 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/EventCreateDialog.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/EventCreateDialog.java @@ -5,6 +5,7 @@ import java.util.Collections; import java.util.Date; import java.util.List; +import com.google.gwt.core.client.GWT; import com.sap.sailing.gwt.ui.client.SailingServiceAsync; import com.sap.sailing.gwt.ui.client.StringMessages; import com.sap.sailing.gwt.ui.shared.CourseAreaDTO; @@ -34,8 +35,10 @@ public class EventCreateDialog extends EventDialog { final Date now = new Date(); startDateBox = createDateTimeBox(now, Accuracy.MINUTES); startDateBox.ensureDebugId("StartDateTimeBox"); + startDateBox.addValueChangeHandler(e -> GWT.log("Start date: " + e.getValue())); endDateBox = createDateTimeBox(now, Accuracy.MINUTES); endDateBox.ensureDebugId("EndDateTimeBox"); + endDateBox.addValueChangeHandler(e -> GWT.log("End date : " + e.getValue())); isPublicCheckBox = createCheckbox(""); isPublicCheckBox.setValue(false); isPublicCheckBox.ensureDebugId("IsPublicCheckBox"); diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/PositionEntryDialog.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/PositionEntryDialog.java index b5d843edd49..2162a2a2de7 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/PositionEntryDialog.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/PositionEntryDialog.java @@ -7,16 +7,16 @@ import com.google.gwt.user.client.ui.Widget; import com.sap.sailing.domain.common.Position; import com.sap.sailing.domain.common.impl.DegreePosition; import com.sap.sailing.gwt.ui.client.StringMessages; -import com.sap.sailing.gwt.ui.shared.HTML5DateTimeBox; import com.sap.sse.common.TimePoint; import com.sap.sse.common.Util.Pair; import com.sap.sse.common.impl.MillisecondsTimePoint; +import com.sap.sse.gwt.client.controls.datetime.DateInput; import com.sap.sse.gwt.client.dialog.DataEntryDialog; public class PositionEntryDialog extends DataEntryDialog> { private final DoubleBox lat; private final DoubleBox lng; - private final HTML5DateTimeBox timePointBox; + private final DateInput timePointBox; private final StringMessages stringMessages; private static final double ERROR_VAL = Double.MIN_VALUE; @@ -44,7 +44,7 @@ public class PositionEntryDialog extends DataEntryDialog { private final String leaderboardName; private final GenericListBox events; - protected final HTML5DateTimeBox from; - protected final HTML5DateTimeBox to; + protected final DateInput from; + protected final DateInput to; protected final ListBox deviceType; protected final TextBox deviceId; protected final DeviceMappingQRCodeWidget qrWidget; @@ -83,9 +83,9 @@ public class RegattaLogAddDeviceMappingDialog extends DataEntryDialogWithDateTim this.stringMessages = stringMessages; this.sailingService = sailingService; - from = createDateTimeBox(new Date(), HTML5DateTimeBox.Format.YEAR_TO_DAY); + from = createDateBox(new Date()); from.setValue(null); - to = createDateTimeBox(new Date(), HTML5DateTimeBox.Format.YEAR_TO_DAY); + to = createDateBox(new Date()); to.setValue(null); deviceType = createListBox(false); diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/SetStartTimeDialog.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/SetStartTimeDialog.java index 073a8fe3f6d..c8beeb561be 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/SetStartTimeDialog.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/SetStartTimeDialog.java @@ -23,9 +23,10 @@ import com.sap.sailing.domain.common.racelog.RacingProcedureType; import com.sap.sailing.gwt.ui.client.DataEntryDialogWithDateTimeBox; import com.sap.sailing.gwt.ui.client.SailingServiceAsync; import com.sap.sailing.gwt.ui.client.StringMessages; -import com.sap.sailing.gwt.ui.shared.HTML5DateTimeBox; import com.sap.sailing.gwt.ui.shared.RaceLogSetStartTimeAndProcedureDTO; import com.sap.sse.gwt.client.ErrorReporter; +import com.sap.sse.gwt.client.controls.datetime.DateAndTimeInput; +import com.sap.sse.gwt.client.controls.datetime.DateTimeInput.Accuracy; import com.sap.sse.gwt.client.dialog.DataEntryDialog; public class SetStartTimeDialog extends DataEntryDialogWithDateTimeBox { @@ -42,7 +43,7 @@ public class SetStartTimeDialog extends DataEntryDialogWithDateTimeBox { private final StringMessages stringMessages; - private HTML5DateTimeBox timeBox; + private DateAndTimeInput timeBox; public SetStartTimeReceivedDialog(StringMessages stringMessages, DataEntryDialog.DialogCallback callback) { super(stringMessages.setStartTimeReceived(), stringMessages.setStartTimeReceivedDescription(), stringMessages.ok(), stringMessages.cancel(), new ReceivedStartTimeDialog(stringMessages), callback); @@ -27,7 +28,7 @@ public class SetStartTimeReceivedDialog extends DataEntryDialogWithDateTimeBox { - private final HTML5DateTimeBox time; + private final DateAndTimeInput time; private final StringMessages stringMessages; public SetTimePointDialog(final StringMessages stringMessages, String title, DialogCallback callback) { @@ -25,7 +26,7 @@ public class SetTimePointDialog extends DataEntryDialogWithDateTimeBox { this.stringMessages = stringMessages; - time = createDateTimeBox(new Date(), HTML5DateTimeBox.Format.YEAR_TO_SECOND); + time = createDateTimeBox(new Date(), Accuracy.SECONDS); } @Override diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/SetTrackingTimesDialog.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/SetTrackingTimesDialog.java index 0ea1d70dc5b..c9861390c11 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/SetTrackingTimesDialog.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/SetTrackingTimesDialog.java @@ -12,6 +12,7 @@ import com.google.gwt.user.client.ui.Button; import com.google.gwt.user.client.ui.CaptionPanel; import com.google.gwt.user.client.ui.CheckBox; import com.google.gwt.user.client.ui.Grid; +import com.google.gwt.user.client.ui.HasValue; import com.google.gwt.user.client.ui.HasVerticalAlignment; import com.google.gwt.user.client.ui.HorizontalPanel; import com.google.gwt.user.client.ui.Image; @@ -25,11 +26,12 @@ import com.sap.sailing.domain.common.abstractlog.TimePointSpecificationFoundInLo import com.sap.sailing.gwt.ui.client.DataEntryDialogWithDateTimeBox; import com.sap.sailing.gwt.ui.client.SailingServiceAsync; import com.sap.sailing.gwt.ui.client.StringMessages; -import com.sap.sailing.gwt.ui.shared.HTML5DateTimeBox; import com.sap.sse.common.Util; import com.sap.sse.common.Util.Pair; import com.sap.sse.common.impl.MillisecondsTimePoint; import com.sap.sse.gwt.client.ErrorReporter; +import com.sap.sse.gwt.client.controls.datetime.DateAndTimeInput; +import com.sap.sse.gwt.client.controls.datetime.DateTimeInput.Accuracy; import com.sap.sse.gwt.client.dialog.DataEntryDialog; public class SetTrackingTimesDialog extends DataEntryDialogWithDateTimeBox { @@ -49,7 +51,7 @@ public class SetTrackingTimesDialog extends DataEntryDialogWithDateTimeBox dateTimeBox, CheckBox setCheckBox) { if (timePoint == null) { label.setText(stringMessages.notAvailable()); dateTimeBox.setValue(null); @@ -142,7 +145,7 @@ public class SetTrackingTimesDialog extends DataEntryDialogWithDateTimeBoxstartTimeSetCheckbox.setValue(true)); // when the start time is manipulated, assume the user wants to really set it content.setWidget(0, 0, createLabel(stringMessages.startOfTracking())); content.setWidget(0, 1, startTimeBox); @@ -150,7 +153,7 @@ public class SetTrackingTimesDialog extends DataEntryDialogWithDateTimeBoxendTimeSetCheckbox.setValue(true)); // when the end time is manipulated, assume the user wants to really set it content.setWidget(1, 0, createLabel(stringMessages.endOfTracking())); content.setWidget(1, 1, endTimeBox); diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/DataEntryDialogWithDateTimeBox.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/DataEntryDialogWithDateTimeBox.java index f6fa0580372..e04663b8f90 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/DataEntryDialogWithDateTimeBox.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/DataEntryDialogWithDateTimeBox.java @@ -2,12 +2,10 @@ package com.sap.sailing.gwt.ui.client; import java.util.Date; -import com.sap.sailing.gwt.ui.shared.HTML5DateTimeBox; -import com.sap.sailing.gwt.ui.shared.HTML5DateTimeBox.Format; import com.sap.sse.gwt.client.controls.datetime.DateAndTimeInput; +import com.sap.sse.gwt.client.controls.datetime.DateInput; import com.sap.sse.gwt.client.controls.datetime.DateTimeInput.Accuracy; import com.sap.sse.gwt.client.dialog.DataEntryDialog; -import com.sap.sse.gwt.client.dialog.DialogUtils; public abstract class DataEntryDialogWithDateTimeBox extends DataEntryDialog { @@ -22,23 +20,17 @@ public abstract class DataEntryDialogWithDateTimeBox extends DataEntryDialog< } /** - * Creates a new {@link HTML5DateTimeBox} instance, where the requested {@link Format format} will be honored by the - * underlying implementation, if the native components can support it. + * Creates a new {@link DateAndTimeInput} instance using the provided {@link Accuracy accuracy} and initial + * {@link Date date value}. * * @param initialValue - * the initial {@link Date value} to set to the created {@link HTML5DateTimeBox} - * @param format - * the {@link Format format} to set to the created {@link HTML5DateTimeBox} + * the {@link Date date value} to show by default + * @param accuracy + * the {@link Accuracy accuracy} of the input + * @return the newly created {@link DateAndTimeInput} instance + * + * @see DateAndTimeInput#DateAndTimeInput(Accuracy) */ - protected HTML5DateTimeBox createDateTimeBox(Date initialValue, Format format) { - final HTML5DateTimeBox result = new HTML5DateTimeBox(format); - result.setValue(initialValue); - result.addValueChangeHandler(event -> validateAndUpdate()); - DialogUtils.linkEnterToButton(getOkButton(), result); - DialogUtils.linkEscapeToButton(getCancelButton(), result); - return result; - } - protected DateAndTimeInput createDateTimeBox(Date initialValue, Accuracy accuracy) { final DateAndTimeInput result = new DateAndTimeInput(accuracy); result.setValue(initialValue); @@ -49,4 +41,23 @@ public abstract class DataEntryDialogWithDateTimeBox extends DataEntryDialog< return result; } + /** + * Creates a new {@link DateInput} instance using the provided initial {@link Date date value}. + * + * @param initialValue + * the {@link Date date value} to show by default + * @return the newly created {@link DateAndTimeInput} instance + * + * @see DateAndTimeInput#DateAndTimeInput(Accuracy) + */ + protected DateInput createDateBox(Date initialValue) { + final DateInput result = new DateInput(); + result.setValue(initialValue); + result.addValueChangeHandler(event -> validateAndUpdate()); + // TODO: Enable DateAndTimeInput for enter and escape linking + // DialogUtils.linkEnterToButton(getOkButton(), result); + // DialogUtils.linkEscapeToButton(getCancelButton(), result); + return result; + } + } diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/DateTimeBoxFallbackStrategie.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/DateTimeBoxFallbackStrategie.java deleted file mode 100644 index eb12911ccc4..00000000000 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/DateTimeBoxFallbackStrategie.java +++ /dev/null @@ -1,104 +0,0 @@ -package com.sap.sailing.gwt.ui.shared; - -import java.util.Date; - -import com.google.gwt.core.client.GWT; -import com.google.gwt.dom.client.InputElement; -import com.google.gwt.dom.client.Style.Display; -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.UIObject; -import com.google.gwt.user.client.ui.Widget; -import com.google.gwt.user.datepicker.client.DateBox; -import com.google.gwt.user.datepicker.client.DateBox.DefaultFormat; -import com.sap.sailing.gwt.ui.shared.HTML5DateTimeBox.DateTimeBoxStrategy; -import com.sap.sailing.gwt.ui.shared.HTML5DateTimeBox.Format; - -public class DateTimeBoxFallbackStrategie extends Composite implements DateTimeBoxStrategy { - - private static DateTimeBoxFallbackUiBinder uiBinder = GWT.create(DateTimeBoxFallbackUiBinder.class); - - interface DateTimeBoxFallbackUiBinder extends UiBinder { - } - - private final DateTimeFormat dateFormat; - private final DateTimeFormat timeFormat; - private final DateTimeFormat combiFormat; - - @UiField - InputElement timebox; - @UiField - DateBox datebox; - - public DateTimeBoxFallbackStrategie(Format format) { - initWidget(uiBinder.createAndBindUi(this)); - // parser for low level, RFC compatible format - dateFormat = DateTimeFormat.getFormat("yyyy-MM-dd"); - datebox.setFormat(new DefaultFormat(dateFormat)); - datebox.getElement().setAttribute("placeholder", dateFormat.getPattern()); - - datebox.ensureDebugId("datebox"); - UIObject.ensureDebugId(timebox, "timebox"); - - if (format != Format.YEAR_TO_DAY) { - timeFormat = DateTimeFormat.getFormat(format == Format.YEAR_TO_MINUTE ? "HH:mm" : "HH:mm:ss"); - timebox.setAttribute("placeholder", timeFormat.getPattern()); - if (format == Format.YEAR_TO_SECOND) { - timebox.setAttribute("step", "1"); - } else { - timebox.setAttribute("step", "60"); - } - // used to parse time and date in one pass, to workaround parsing time only formats containing the current - // day - combiFormat = DateTimeFormat - .getFormat("yyyy-MM-dd " + (format == Format.YEAR_TO_MINUTE ? "HH:mm" : "HH:mm:ss")); - } else { - timebox.getStyle().setDisplay(Display.NONE); - timeFormat = null; - combiFormat = null; - } - - } - - public Widget getWidget() { - return this; - } - - public Date getValue() { - Date result = null; - try { - String rawDateValue = dateFormat.format(datebox.getValue()); - String rawTimeValue = timebox.getValue(); - if (timeFormat != null) { - // it is not possible to parse the timeFormat, as it will add the current day, so we will parse a - // combined format with the correct day and time - result = combiFormat.parse(rawDateValue + " " + rawTimeValue); - } else { - result = dateFormat.parse(rawDateValue); - } - } catch (Exception e) { - e.printStackTrace(); - } - return result; - } - - public void setValue(Date newValue) { - if(newValue != null){ - // remove the time part from the datepart, to reduce issus with browser compability - Date dateFormated = dateFormat.parse(dateFormat.format(newValue)); - datebox.setValue(dateFormated); - if (timeFormat != null) { - String timeFormated = timeFormat.format(newValue); - timebox.setValue(timeFormated); - } - }else{ - datebox.setValue(null); - if(timeFormat != null){ - timebox.setValue(null); - } - } - } - -} diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/DateTimeLocalStrategy.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/DateTimeLocalStrategy.java deleted file mode 100644 index d79f92cb0cc..00000000000 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/DateTimeLocalStrategy.java +++ /dev/null @@ -1,76 +0,0 @@ -package com.sap.sailing.gwt.ui.shared; - -import java.util.Date; - -import com.google.gwt.core.shared.GWT; -import com.google.gwt.dom.client.InputElement; -import com.google.gwt.dom.client.Style.BorderStyle; -import com.google.gwt.dom.client.Style.Unit; -import com.google.gwt.i18n.client.DateTimeFormat; -import com.google.gwt.user.client.DOM; -import com.google.gwt.user.client.ui.FlowPanel; -import com.google.gwt.user.client.ui.Widget; -import com.sap.sailing.gwt.ui.shared.HTML5DateTimeBox.DateTimeBoxStrategy; -import com.sap.sailing.gwt.ui.shared.HTML5DateTimeBox.Format; - -public class DateTimeLocalStrategy implements DateTimeBoxStrategy { - - private FlowPanel div; - private InputElement input; - private DateTimeFormat combiFormat; - - public DateTimeLocalStrategy(Format format) { - // if (format == Format.YEAR_TO_DAY) { - // combiFormat = DateTimeFormat.getFormat("yyyy-MM-dd"); - // } else if (format == Format.YEAR_TO_MINUTE) { - // combiFormat = DateTimeFormat.getFormat("yyyy-MM-dd'T'HH:mm"); - // } else { - combiFormat = DateTimeFormat.getFormat("yyyy-MM-dd'T'HH:mm:ss"); - // } - div = new FlowPanel(); - input = DOM.createElement("input").cast(); - input.setAttribute("type", "datetime-local"); - // use a style that looks similar to the DateBox - input.getStyle().setPadding(3, Unit.PX); - input.getStyle().setPaddingBottom(2, Unit.PX); - input.getStyle().setBorderColor("#ccc"); - input.getStyle().setBorderWidth(1, Unit.PX); - input.getStyle().setBorderStyle(BorderStyle.SOLID); - input.getStyle().setFontSize(100, Unit.PCT); - - if (format == Format.YEAR_TO_SECOND) { - input.setAttribute("step", "1"); - } else { - input.setAttribute("step", "60"); - } - // used to parse time and date in one pass, to workaround parsing time only formats containing the current - // day - div.getElement().appendChild(input); - } - - @Override - public Widget getWidget() { - return div; - } - - @Override - public void setValue(Date newValue) { - String stringNewValue = combiFormat.format(newValue); - GWT.log("Raw value " + stringNewValue); - input.setValue(stringNewValue); - } - - @Override - public Date getValue() { - Date result = null; - try { - String stringValue = input.getValue(); - GWT.log("DateTime is " + stringValue); - result = combiFormat.parse(stringValue); - } catch (IllegalArgumentException e) { - e.printStackTrace(); - } - return result; - } - -} diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/HTML5DateTimeBox.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/HTML5DateTimeBox.java deleted file mode 100644 index 75be9eb408d..00000000000 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/HTML5DateTimeBox.java +++ /dev/null @@ -1,59 +0,0 @@ -package com.sap.sailing.gwt.ui.shared; - -import java.util.Date; - -import com.google.gwt.event.dom.client.HasAllKeyHandlers; -import com.google.gwt.event.logical.shared.HasValueChangeHandlers; -import com.google.gwt.event.logical.shared.ValueChangeEvent; -import com.google.gwt.event.logical.shared.ValueChangeHandler; -import com.google.gwt.event.shared.HandlerRegistration; -import com.google.gwt.user.client.Event; -import com.google.gwt.user.client.ui.FocusPanel; -import com.google.gwt.user.client.ui.Widget; - -public class HTML5DateTimeBox extends FocusPanel implements HasAllKeyHandlers, HasValueChangeHandlers { - public static enum ViewMode { - HOUR, DAY, MONTH, YEAR, DECADE - }; - - public static enum Format { - YEAR_TO_MINUTE, YEAR_TO_DAY, YEAR_TO_SECOND - }; - - interface DateTimeBoxStrategy { - - Widget getWidget(); - - void setValue(Date newValue); - - Date getValue(); - - } - - private final DateTimeBoxStrategy delegate; - - public HTML5DateTimeBox(Format format) { - delegate = new DateTimeBoxFallbackStrategie(format); - setWidget(delegate.getWidget()); - sinkEvents(Event.ONCHANGE | Event.ONBLUR | Event.ONKEYUP); - } - - @Override - public void onBrowserEvent(Event event) { - ValueChangeEvent.fire(HTML5DateTimeBox.this, getValue()); - } - - public void setValue(Date newValue) { - delegate.setValue(newValue); - } - - public Date getValue() { - return delegate.getValue(); - } - - @Override - public HandlerRegistration addValueChangeHandler(ValueChangeHandler handler) { - return addHandler(handler, ValueChangeEvent.getType()); - } - -}