bug4210 Unified factory methods for date, time and datetime inputs

This commit is contained in:
Benjamin Barth committed 2017-12-05 12:15:25 +01:00
1 parent a332040774
commit fc8d15543b
1 file changed
+33 -18
@@ -4,7 +4,9 @@ import java.util.Date;
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;
import com.sap.sse.gwt.client.controls.datetime.DateTimeInput.Accuracy;
import com.sap.sse.gwt.client.controls.datetime.TimeInput;
import com.sap.sse.gwt.client.dialog.DataEntryDialog;
public abstract class DataEntryDialogWithDateTimeBox<T> extends DataEntryDialog<T> {
@@ -24,7 +26,7 @@ public abstract class DataEntryDialogWithDateTimeBox<T> extends DataEntryDialog<
* {@link Date date value}.
*
* @param initialValue
* the {@link Date date value} to show by default
* the {@link Date date value} to show by default; <code>null</code> is permissible
* @param accuracy
* the {@link Accuracy accuracy} of the input
* @return the newly created {@link DateAndTimeInput} instance
@@ -32,32 +34,45 @@ public abstract class DataEntryDialogWithDateTimeBox<T> extends DataEntryDialog<
* @see DateAndTimeInput#DateAndTimeInput(Accuracy)
*/
protected DateAndTimeInput createDateTimeBox(Date initialValue, Accuracy accuracy) {
final DateAndTimeInput result = new DateAndTimeInput(accuracy);
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;
return createDateTimeInput(new DateAndTimeInput(accuracy), initialValue);
}
/**
* 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
* the {@link Date date value} to show by default; <code>null</code> is permissible
* @return the newly created {@link DateInput} instance
*
* @see DateAndTimeInput#DateAndTimeInput(Accuracy)
* @see DateInput#DateInput()
*/
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;
return createDateTimeInput(new DateInput(), initialValue);
}
/**
* Creates a new {@link TimeInput} instance using the provided {@link Accuracy accuracy} and initial {@link Date
* date value}.
*
* @param initialValue
* the {@link Date date value} to show by default; <code>null</code> is permissible
* @param accuracy
* the {@link Accuracy accuracy} of the input
* @return the newly created {@link TimeInput} instance
*
* @see TimeInput#TimeInput(Accuracy)
*/
protected TimeInput createTimeBox(Date initialValue, Accuracy accuracy) {
return createDateTimeInput(new TimeInput(accuracy), initialValue);
}
private <I extends DateTimeInput> I createDateTimeInput(I input, Date initialValue) {
input.setValue(initialValue);
input.addValueChangeHandler(event -> validateAndUpdate());
// TODO: Enable DateTimeInputs for enter and escape linking
// DialogUtils.linkEnterToButton(getOkButton(), input);
// DialogUtils.linkEscapeToButton(getCancelButton(), input);
return input;
}
}