123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223 |
- package com.vaadin.tests.components.datefield;
-
- import java.time.LocalDate;
- import java.util.Calendar;
- import java.util.Date;
- import java.util.Locale;
-
- import com.vaadin.server.VaadinRequest;
- import com.vaadin.shared.ui.MarginInfo;
- import com.vaadin.shared.ui.datefield.Resolution;
- import com.vaadin.tests.components.AbstractReindeerTestUI;
- import com.vaadin.tests.components.TestDateField;
- import com.vaadin.ui.AbstractDateField;
- import com.vaadin.ui.Button;
- import com.vaadin.ui.Button.ClickEvent;
- import com.vaadin.ui.GridLayout;
- import com.vaadin.ui.HorizontalLayout;
- import com.vaadin.ui.InlineDateField;
- import com.vaadin.ui.Label;
- import com.vaadin.ui.VerticalLayout;
- import com.vaadin.v7.data.Property.ValueChangeEvent;
- import com.vaadin.v7.data.Property.ValueChangeListener;
- import com.vaadin.v7.ui.NativeSelect;
-
- public class DateFieldRanges extends AbstractReindeerTestUI {
-
- @Override
- protected Integer getTicketNumber() {
- return 6241;
- }
-
- private Label label = new Label();
- private NativeSelect resoSelect = new NativeSelect("Resolution");
- private AbstractDateField fromRange = new TestDateField("Range start");
- private AbstractDateField toRange = new TestDateField("Range end");
- private AbstractDateField valueDF = new TestDateField("Value");
- private Button recreate = new Button("Recreate static datefields");
- private Button clearRangeButton = new Button("Clear range");
-
- private GridLayout currentStaticContainer;
-
- private AbstractDateField inlineDynamicDateField;
- private AbstractDateField dynamicDateField;
-
- private Calendar createCalendar() {
- Calendar c = Calendar.getInstance();
- c.set(2013, 3, 26, 6, 1, 12);
- return c;
- }
-
- private Date newDate() {
- return createCalendar().getTime();
- }
-
- private void initializeControlFields() {
- resoSelect.addItem(Resolution.DAY);
- resoSelect.addItem(Resolution.MONTH);
- resoSelect.addItem(Resolution.YEAR);
- resoSelect.setImmediate(true);
- resoSelect.setValue(Resolution.DAY);
- resoSelect.addValueChangeListener(new ValueChangeListener() {
-
- @Override
- public void valueChange(ValueChangeEvent event) {
-
- Resolution r = (Resolution) resoSelect.getValue();
- inlineDynamicDateField.setResolution(r);
- dynamicDateField.setResolution(r);
-
- }
- });
-
- fromRange.setValue(null);
- fromRange.addValueChangeListener(event -> {
- inlineDynamicDateField.setRangeStart(fromRange.getValue());
- dynamicDateField.setRangeStart(fromRange.getValue());
- });
-
- toRange.setValue(null);
- toRange.addValueChangeListener(event -> {
- inlineDynamicDateField.setRangeEnd(toRange.getValue());
- dynamicDateField.setRangeEnd(toRange.getValue());
- });
-
- valueDF.setValue(null);
- valueDF.addValueChangeListener(event -> {
- inlineDynamicDateField.setValue(valueDF.getValue());
- dynamicDateField.setValue(valueDF.getValue());
- });
-
- recreate.addClickListener(new Button.ClickListener() {
-
- @Override
- public void buttonClick(ClickEvent event) {
- GridLayout newContainer = createStaticFields();
- replaceComponent(currentStaticContainer, newContainer);
- currentStaticContainer = newContainer;
- }
- });
-
- clearRangeButton.addClickListener(new Button.ClickListener() {
-
- @Override
- public void buttonClick(ClickEvent event) {
- fromRange.setValue(null);
- toRange.setValue(null);
- }
- });
-
- Calendar startCal = createCalendar();
- Calendar endCal = createCalendar();
- endCal.add(Calendar.DATE, 30);
-
- dynamicDateField = createDateField(startCal.getTime(), endCal.getTime(),
- null, Resolution.DAY, false);
- inlineDynamicDateField = createDateField(startCal.getTime(),
- endCal.getTime(), null, Resolution.DAY, true);
-
- resoSelect.setId("resoSelect");
- fromRange.setId("fromRange");
- toRange.setId("toRange");
- valueDF.setId("valueDF");
- recreate.setId("recreate");
- clearRangeButton.setId("clearRangeButton");
- dynamicDateField.setId("dynamicDateField");
- inlineDynamicDateField.setId("inlineDynamicDateField");
-
- }
-
- @Override
- protected void setup(VaadinRequest request) {
- setLocale(new Locale("en", "US"));
- getLayout().setWidth(100, Unit.PERCENTAGE);
- getLayout().setHeight(null);
- getLayout().setMargin(new MarginInfo(true, false, false, false));
- getLayout().setSpacing(true);
-
- initializeControlFields();
-
- GridLayout gl = new GridLayout(2, 2);
- gl.setSpacing(true);
-
- gl.addComponent(dynamicDateField);
- gl.addComponent(inlineDynamicDateField);
-
- HorizontalLayout hl = new HorizontalLayout();
- hl.setSpacing(true);
- hl.addComponent(resoSelect);
- hl.addComponent(fromRange);
- hl.addComponent(toRange);
- hl.addComponent(valueDF);
- hl.addComponent(recreate);
- hl.addComponent(clearRangeButton);
- addComponent(hl);
- addComponent(new Label("Dynamic DateFields"));
- addComponent(gl);
- currentStaticContainer = createStaticFields();
- addComponent(new Label("Static DateFields"));
- addComponent(currentStaticContainer);
-
- addComponent(label);
-
- }
-
- private GridLayout createStaticFields() {
- Calendar startCal = createCalendar();
- Calendar endCal = createCalendar();
- endCal.add(Calendar.DATE, 30);
- GridLayout gl = new GridLayout(2, 2);
- gl.setSpacing(true);
- AbstractDateField df = createDateField(startCal.getTime(),
- endCal.getTime(), null, Resolution.DAY, false);
- gl.addComponent(df);
- AbstractDateField inline = createDateField(startCal.getTime(),
- endCal.getTime(), null, Resolution.DAY, true);
- gl.addComponent(inline);
- inline.setId("staticInline");
- VerticalLayout vl = new VerticalLayout();
-
- return gl;
- }
-
- private AbstractDateField createDateField(Date rangeStart, Date rangeEnd,
- Date value, Resolution resolution, boolean inline) {
-
- AbstractDateField df = null;
-
- if (inline) {
- df = new InlineDateField();
- } else {
- df = new TestDateField();
- }
-
- final AbstractDateField gg = df;
- updateValuesForDateField(df);
-
- df.addValueChangeListener(event -> {
- label.setValue((gg.getValue() == null ? "Nothing"
- : gg.getValue().toString()) + " selected. isValid: "
- + (gg.getErrorMessage() != null));
- });
- return df;
- }
-
- @Override
- protected String getTestDescription() {
- return "Not defined yet";
-
- }
-
- private void updateValuesForDateField(AbstractDateField df) {
- LocalDate fromVal = fromRange.getValue();
- LocalDate toVal = toRange.getValue();
- LocalDate value = valueDF.getValue();
- Resolution r = (Resolution) resoSelect.getValue();
-
- df.setValue(value);
- df.setResolution(r);
- df.setRangeStart(fromVal);
- df.setRangeEnd(toVal);
- }
-
- }
|