/** * Check the current selection. If nothing is selected, display a prompt message in gray text. * Also, remembers the last selection made. * * @param suppressEvent If true, onSelectRange event is not fired. */ private void checkSelection(boolean suppressEvent) { Dateitem selectedItem = getSelectedItem(); if (selectedItem == null) { selectedItem = lastSelectedItem; setSelectedItem(selectedItem); } else if (selectedItem != customItem && lastSelectedItem != selectedItem) { lastSelectedItem = selectedItem; if (!suppressEvent) { EventUtil.send(new Event(ON_SELECT_RANGE, this)); } } updateSelection(); }
/** * Change event handler. * * @param event The change event. */ @EventHandler("change") private void onChange(ChangeEvent event) { // When the custom range item is selected, triggers the display of the date range dialog. if (event.getRelatedTarget() == customItem) { event.stopPropagation(); DateRangeDialog.show((range) -> { setSelectedItem(range == null ? lastSelectedItem : addChoice(range, true)); checkSelection(false); }); } else { checkSelection(false); } }
/** * Initializes Controller. */ @Override protected void initializeController() { super.initializeController(); if (dateRangePicker != null) { String deflt = getPropertyValue(Constants.PROPERTY_ID_DATE_RANGE, String.class, "Last Two Years"); dateRangePicker.setSelectedItem(dateRangePicker.findMatchingItem(deflt)); initDateFilter().setDateRange(dateRangePicker.getSelectedRange()); } if (dateTypePicker != null) { for (DateType dt : DateType.values()) { String lbl = getLabel(Constants.LABEL_ID_SORT_MODE.replace("$", dt.name().toLowerCase())); Comboitem item = new Comboitem(lbl); item.setData(dt); dateTypePicker.addChild(item); } DateType sortModePref = getPropertyValue(Constants.PROPERTY_ID_SORT_MODE, DateType.class, DateType.MEASURED); Comboitem item = (Comboitem) dateTypePicker.findChildByData(sortModePref); dateTypePicker.setSelectedItem(item == null ? (Comboitem) dateTypePicker.getFirstChild() : item); dateTypePicker.setReadonly(true); initDateFilter().setDateType(sortModePref); } if (dateFilter != null) { registerQueryFilter(dateFilter); } }