List of usage examples for com.vaadin.v7.ui PopupDateField PopupDateField
public PopupDateField()
From source file:de.symeda.sormas.ui.utils.EpiWeekAndDateFilterComponent.java
License:Open Source License
public EpiWeekAndDateFilterComponent(Button applyButton, boolean fillAutomatically, boolean showCaption, String infoText, Class<E> dateType, String dateTypePrompt, Enum<E> defaultDateType) { setSpacing(true);/*from ww w. j a va2 s .c o m*/ Calendar c = Calendar.getInstance(); c.setTime(new Date()); dateFilterOptionFilter = new ComboBox(); dateTypeSelector = new ComboBox(); weekFromFilter = new ComboBox(); weekToFilter = new ComboBox(); dateFromFilter = new PopupDateField(); dateToFilter = new PopupDateField(); // Date filter options dateFilterOptionFilter.setWidth(200, Unit.PIXELS); dateFilterOptionFilter.addItems((Object[]) DateFilterOption.values()); dateFilterOptionFilter.setNullSelectionAllowed(false); dateFilterOptionFilter.select(DateFilterOption.EPI_WEEK); if (showCaption) { CssStyles.style(dateFilterOptionFilter, CssStyles.FORCE_CAPTION); } dateFilterOptionFilter.addValueChangeListener(e -> { if (e.getProperty().getValue() == DateFilterOption.DATE) { int newIndex = getComponentIndex(weekFromFilter); removeComponent(weekFromFilter); removeComponent(weekToFilter); addComponent(dateFromFilter, newIndex); addComponent(dateToFilter, newIndex + 1); if (fillAutomatically) { dateFromFilter.setValue(DateHelper.subtractDays(c.getTime(), 7)); } if (fillAutomatically) { dateToFilter.setValue(c.getTime()); } } else { int newIndex = getComponentIndex(dateFromFilter); removeComponent(dateFromFilter); removeComponent(dateToFilter); addComponent(weekFromFilter, newIndex); addComponent(weekToFilter, newIndex + 1); if (fillAutomatically) { weekFromFilter.setValue(DateHelper.getEpiWeek(c.getTime())); } if (fillAutomatically) { weekToFilter.setValue(DateHelper.getEpiWeek(c.getTime())); } } }); addComponent(dateFilterOptionFilter); // New case date type selector if (dateType != null) { dateTypeSelector.setWidth(200, Unit.PIXELS); dateTypeSelector.addItems((Object[]) dateType.getEnumConstants()); if (dateTypePrompt != null) { dateTypeSelector.setInputPrompt(dateTypePrompt); } if (defaultDateType != null) { dateTypeSelector.select(defaultDateType); } if (showCaption) { CssStyles.style(dateTypeSelector, CssStyles.FORCE_CAPTION); } addComponent(dateTypeSelector); if (!StringUtils.isEmpty(infoText)) { Label infoLabel = new Label(VaadinIcons.INFO_CIRCLE.getHtml(), ContentMode.HTML); infoLabel.setSizeUndefined(); infoLabel.setDescription(infoText); CssStyles.style(infoLabel, CssStyles.LABEL_XLARGE, CssStyles.LABEL_SECONDARY); addComponent(infoLabel); } } // Epi week filter List<EpiWeek> epiWeekList = DateHelper.createEpiWeekList(c.get(Calendar.YEAR), c.get(Calendar.WEEK_OF_YEAR)); weekFromFilter.setWidth(200, Unit.PIXELS); for (EpiWeek week : epiWeekList) { weekFromFilter.addItem(week); } weekFromFilter.setNullSelectionAllowed(false); if (fillAutomatically) { weekFromFilter.setValue(DateHelper.getEpiWeek(c.getTime())); } if (showCaption) { weekFromFilter.setCaption(I18nProperties.getCaption(Captions.epiWeekFrom)); } if (applyButton != null) { weekFromFilter.addValueChangeListener(e -> { applyButton.addStyleName(ValoTheme.BUTTON_PRIMARY); }); } addComponent(weekFromFilter); weekToFilter.setWidth(200, Unit.PIXELS); for (EpiWeek week : epiWeekList) { weekToFilter.addItem(week); } weekToFilter.setNullSelectionAllowed(false); if (fillAutomatically) { weekToFilter.setValue(DateHelper.getEpiWeek(c.getTime())); } if (showCaption) { weekToFilter.setCaption(I18nProperties.getCaption(Captions.epiWeekTo)); } if (applyButton != null) { weekToFilter.addValueChangeListener(e -> { applyButton.addStyleName(ValoTheme.BUTTON_PRIMARY); }); } addComponent(weekToFilter); // Date filter dateFromFilter.setWidth(200, Unit.PIXELS); if (showCaption) { dateFromFilter.setCaption(I18nProperties.getCaption(Captions.from)); } if (applyButton != null) { dateFromFilter.addValueChangeListener(e -> { applyButton.addStyleName(ValoTheme.BUTTON_PRIMARY); }); } dateToFilter.setWidth(200, Unit.PIXELS); if (showCaption) { dateToFilter.setCaption(I18nProperties.getCaption(Captions.to)); } if (applyButton != null) { dateToFilter.addValueChangeListener(e -> { applyButton.addStyleName(ValoTheme.BUTTON_PRIMARY); }); } }