mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-10-18 02:00:58 +00:00
bug4210 Extracted common input wrapper logic to AbstractInput class
This commit is contained in:
1 parent
e074a216d9
commit
cb17545150
4 files changed
+52
-88
No files matched your search
+35
@@ -0,0 +1,35 @@
|
||||
package com.sap.sailing.gwt.common.client.datetime;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
import com.google.gwt.event.logical.shared.ValueChangeHandler;
|
||||
import com.google.gwt.event.shared.HandlerRegistration;
|
||||
import com.google.gwt.user.client.ui.Composite;
|
||||
import com.google.gwt.user.client.ui.HasValue;
|
||||
import com.google.gwt.user.client.ui.IsWidget;
|
||||
|
||||
abstract class AbstractInput extends Composite implements DateTimeInput {
|
||||
|
||||
private HasValue<Date> delegate;
|
||||
|
||||
protected <T extends HasValue<Date> & IsWidget> AbstractInput(T delegate) {
|
||||
this.delegate = delegate;
|
||||
initWidget(delegate.asWidget());
|
||||
}
|
||||
|
||||
@Override
|
||||
public final Date getValue() {
|
||||
return delegate.getValue();
|
||||
}
|
||||
|
||||
@Override
|
||||
public final void setValue(Date value) {
|
||||
this.delegate.setValue(value);
|
||||
}
|
||||
|
||||
@Override
|
||||
public final HandlerRegistration addValueChangeHandler(ValueChangeHandler<Date> handler) {
|
||||
return delegate.addValueChangeHandler(handler);
|
||||
}
|
||||
|
||||
}
|
||||
+4
-23
@@ -8,35 +8,16 @@ 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.i18n.client.DateTimeFormat;
|
||||
import com.google.gwt.user.client.ui.Composite;
|
||||
import com.google.gwt.user.client.ui.FlowPanel;
|
||||
|
||||
public class DateAndTimeInput extends Composite implements DateTimeInput {
|
||||
|
||||
private final DateTimeInput delegate;
|
||||
public class DateAndTimeInput extends AbstractInput {
|
||||
|
||||
public DateAndTimeInput(Accuracy accuracy) {
|
||||
this.delegate = DateTimeInputType.DATETIME_LOCAL.isSupported() ? NativeDateTimeInput.datetimeLocale(accuracy)
|
||||
: new DateAndTimePanel(accuracy);
|
||||
initWidget(delegate.asWidget());
|
||||
super(DateTimeInputType.DATETIME_LOCAL.isSupported() ? NativeDateTimeInput.datetimeLocale(accuracy)
|
||||
: new DateAndTimePanel(accuracy));
|
||||
}
|
||||
|
||||
@Override
|
||||
public Date getValue() {
|
||||
return delegate.getValue();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setValue(Date value) {
|
||||
this.delegate.setValue(value);
|
||||
}
|
||||
|
||||
@Override
|
||||
public HandlerRegistration addValueChangeHandler(ValueChangeHandler<Date> handler) {
|
||||
return delegate.addValueChangeHandler(handler);
|
||||
}
|
||||
|
||||
private class DateAndTimePanel extends FlowPanel implements DateTimeInput {
|
||||
private static class DateAndTimePanel extends FlowPanel implements DateTimeInput {
|
||||
private final DateInput dateInput;
|
||||
private final TimeInput timeInput;
|
||||
|
||||
|
||||
+9
-33
@@ -1,46 +1,22 @@
|
||||
package com.sap.sailing.gwt.common.client.datetime;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
import com.google.gwt.event.logical.shared.ValueChangeHandler;
|
||||
import com.google.gwt.event.shared.HandlerRegistration;
|
||||
import com.google.gwt.i18n.client.DateTimeFormat;
|
||||
import com.google.gwt.i18n.client.DateTimeFormat.PredefinedFormat;
|
||||
import com.google.gwt.user.client.ui.Composite;
|
||||
import com.google.gwt.user.client.ui.HasValue;
|
||||
import com.google.gwt.user.datepicker.client.DateBox;
|
||||
import com.google.gwt.user.datepicker.client.DateBox.DefaultFormat;
|
||||
import com.google.gwt.user.datepicker.client.DatePicker;
|
||||
|
||||
public class DateInput extends Composite implements DateTimeInput {
|
||||
|
||||
private final HasValue<Date> delegate;
|
||||
public class DateInput extends AbstractInput {
|
||||
|
||||
public DateInput() {
|
||||
if (DateTimeInputType.TIME.isSupported()) {
|
||||
final DateTimeInput input = NativeDateTimeInput.date();
|
||||
initWidget(input.asWidget());
|
||||
this.delegate = input;
|
||||
} else {
|
||||
final DateBox input = new DateBox();
|
||||
input.setFormat(new DefaultFormat(DateTimeFormat.getFormat(PredefinedFormat.DATE_MEDIUM)));
|
||||
initWidget(input);
|
||||
this.delegate = input;
|
||||
super(DateTimeInputType.TIME.isSupported() ? NativeDateTimeInput.date() : new CustomDateBox());
|
||||
}
|
||||
|
||||
private static class CustomDateBox extends DateBox {
|
||||
|
||||
private CustomDateBox() {
|
||||
super(new DatePicker(), null, new DefaultFormat(DateTimeFormat.getFormat(PredefinedFormat.DATE_MEDIUM)));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public Date getValue() {
|
||||
return delegate.getValue();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setValue(Date value) {
|
||||
this.delegate.setValue(value);
|
||||
}
|
||||
|
||||
@Override
|
||||
public HandlerRegistration addValueChangeHandler(ValueChangeHandler<Date> handler) {
|
||||
return delegate.addValueChangeHandler(handler);
|
||||
}
|
||||
|
||||
}
|
||||
+4
-32
@@ -5,47 +5,19 @@ import java.util.Date;
|
||||
|
||||
import com.google.gwt.dom.client.Document;
|
||||
import com.google.gwt.dom.client.InputElement;
|
||||
import com.google.gwt.event.logical.shared.ValueChangeHandler;
|
||||
import com.google.gwt.event.shared.HandlerRegistration;
|
||||
import com.google.gwt.i18n.client.DateTimeFormat;
|
||||
import com.google.gwt.text.shared.AbstractRenderer;
|
||||
import com.google.gwt.text.shared.Parser;
|
||||
import com.google.gwt.user.client.ui.Composite;
|
||||
import com.google.gwt.user.client.ui.HasValue;
|
||||
import com.google.gwt.user.client.ui.ValueBox;
|
||||
|
||||
public class TimeInput extends Composite implements DateTimeInput {
|
||||
|
||||
private final HasValue<Date> delegate;
|
||||
public class TimeInput extends AbstractInput {
|
||||
|
||||
public TimeInput(Accuracy accuracy) {
|
||||
if (DateTimeInputType.TIME.isSupported()) {
|
||||
final DateTimeInput input = NativeDateTimeInput.time(accuracy);
|
||||
initWidget(input.asWidget());
|
||||
this.delegate = input;
|
||||
} else {
|
||||
final ValueBox<Date> input = new TimeBox(new TimeConverter(accuracy));
|
||||
initWidget(input);
|
||||
this.delegate = input;
|
||||
}
|
||||
super(DateTimeInputType.TIME.isSupported() ? NativeDateTimeInput.time(accuracy)
|
||||
: new TimeBox(new TimeConverter(accuracy)));
|
||||
}
|
||||
|
||||
@Override
|
||||
public Date getValue() {
|
||||
return delegate.getValue();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setValue(Date value) {
|
||||
this.delegate.setValue(value);
|
||||
}
|
||||
|
||||
@Override
|
||||
public HandlerRegistration addValueChangeHandler(ValueChangeHandler<Date> handler) {
|
||||
return delegate.addValueChangeHandler(handler);
|
||||
}
|
||||
|
||||
private class TimeBox extends ValueBox<Date> {
|
||||
private static class TimeBox extends ValueBox<Date> {
|
||||
|
||||
private TimeBox(TimeConverter converter) {
|
||||
super(Document.get().createElement(InputElement.TAG), converter, converter);
|
||||
|
||||
Reference in new issue
Block a user