/** * Tests if an item is selected. * * <p> * In single select mode testing selection status of the item identified by * {@link #getNullSelectionItemId()} returns true if the value of the * property is null. * </p> * * @param itemId * the Id the of the item to be tested. * @see #getNullSelectionItemId() * @see #setNullSelectionItemId(Object) * */ public boolean isSelected(Object itemId) { if (itemId == null) { return false; } if (isMultiSelect()) { return ((Set<?>) getValue()).contains(itemId); } else { final Object value = getValue(); return itemId .equals(value == null ? getNullSelectionItemId() : value); } }
/** * For multi-selectable fields, also an empty collection of values is * considered to be an empty field. * * @see LegacyAbstractField#isEmpty(). */ @Override public boolean isEmpty() { if (!multiSelect) { return super.isEmpty(); } else { Object value = getValue(); return super.isEmpty() || (value instanceof Collection && ((Collection<?>) value).isEmpty()); } }
/** * Unselects an item. * * @param itemId * the identifier of the Item to be unselected. * @see #getNullSelectionItemId() * @see #setNullSelectionItemId(Object) * */ public void unselect(Object itemId) { if (isSelected(itemId)) { if (isMultiSelect()) { final Set<Object> s = new HashSet<Object>((Set<?>) getValue()); s.remove(itemId); setValue(s); } else { setValue(null); } } }
final Object oldValue = getValue();
Set<Integer> selected = m_generator.getSelectedIds(AlarmTable.this); if (selected.size() > 0) { String action = (String)m_ackCombo.getValue(); if (ACTION_ACKNOWLEDGE.equals(action)) { m_alarmRepo.acknowledgeAlarms(
/** * Selects an item. * * <p> * In single select mode selecting item identified by * {@link #getNullSelectionItemId()} sets the value of the property to null. * </p> * * @param itemId * the identifier of Item to be selected. * @see #getNullSelectionItemId() * @see #setNullSelectionItemId(Object) * */ public void select(Object itemId) { if (!isMultiSelect()) { setValue(itemId); } else if (!isSelected(itemId) && itemId != null && items.containsId(itemId)) { final Set<Object> s = new HashSet<Object>((Set<?>) getValue()); s.add(itemId); setValue(s); } }
Object value = getValue(); if (value == null) { return;
@Override public void addNewItem(String newItemCaption) { // Checks for readonly if (isReadOnly()) { throw new Property.ReadOnlyException(); } // Adds new option if (addItem(newItemCaption) != null) { // Sets the caption property, if used if (getItemCaptionPropertyId() != null) { getContainerProperty(newItemCaption, getItemCaptionPropertyId()) .setValue(newItemCaption); } if (isMultiSelect()) { Set values = new HashSet((Collection) getValue()); values.add(newItemCaption); setValue(values); } else { setValue(newItemCaption); } } } }
@Test public void createFieldSelectsFirstOptionIfItemIsNew() throws Exception { // GIVEN definition.setSortOptions(false); baseItem = new JcrNewNodeAdapter(baseNode, baseNode.getPrimaryNodeType().getName()); initializeSelectFieldFactory(); // WHEN AbstractSelect field = (AbstractSelect) dialogSelect.createField(); // THEN Collection<String> items = (Collection<String>) field.getItemIds(); assertThat(items, contains("1", "2", "3")); assertThat(field.getValue().toString(), is("1")); }
@Test public void createFieldDoesntSortOptionsIfSpecified() throws Exception { // GIVEN ArrayList<SelectFieldOptionDefinition> options = new ArrayList<SelectFieldOptionDefinition>(); SelectFieldOptionDefinition option1 = new SelectFieldOptionDefinition(); option1.setLabel("bb"); option1.setValue("1"); options.add(option1); SelectFieldOptionDefinition option2 = new SelectFieldOptionDefinition(); option2.setLabel("AA"); option2.setValue("2"); options.add(option2); SelectFieldOptionDefinition option3 = new SelectFieldOptionDefinition(); option3.setLabel("cc"); option3.setValue("3"); options.add(option3); definition.setOptions(options); definition.setSortOptions(false); initializeSelectFieldFactory(); // WHEN AbstractSelect field = (AbstractSelect) dialogSelect.createField(); // THEN Collection<String> items = (Collection<String>) field.getItemIds(); assertThat(items, contains("1", "2", "3")); assertThat(field.getValue(), is(nullValue())); assertThat(items.iterator().next(), is("1")); }
@Test public void selectHasNoDefaultValueIfNotConfigured() { // GIVEN // WHEN createField(); // THEN AbstractSelect select = getSubFieldWithType(AbstractSelect.class); assertTrue(select.isNullSelectionAllowed()); assertNull(select.getValue()); }
@Test public void createFieldSortsOptionsByNullSafeLabelComparator() throws Exception { // GIVEN ArrayList<SelectFieldOptionDefinition> options = new ArrayList<>(); SelectFieldOptionDefinition nullOption = new SelectFieldOptionDefinition(); nullOption.setLabel(null); nullOption.setValue("1"); options.add(nullOption); SelectFieldOptionDefinition emptyOption = new SelectFieldOptionDefinition(); emptyOption.setLabel(""); emptyOption.setValue("2"); options.add(emptyOption); SelectFieldOptionDefinition blankOption = new SelectFieldOptionDefinition(); blankOption.setLabel(" "); blankOption.setValue("3"); options.add(blankOption); definition.setOptions(options); initializeSelectFieldFactory(); // WHEN AbstractSelect field = (AbstractSelect) dialogSelect.createField(); // THEN Collection<String> items = (Collection<String>) field.getItemIds(); assertThat(items, contains("1", "2", "3")); assertThat(field.getValue(), is(nullValue())); }
@Test public void testCreateDefaultValueFromLong() throws Exception { // GIVEN baseItem = new JcrNewNodeAdapter(baseNode, baseNode.getPrimaryNodeType().getName()); definition.setType(PropertyType.TYPENAME_LONG); dialogSelect = new SelectFieldFactory<SelectFieldDefinition>(definition, baseItem, uiContext, i18NAuthoringSupport) { @Override protected Object getConfiguredDefaultValue() { return 2L; } }; dialogSelect.setComponentProvider(componentProvider); // WHEN AbstractSelect field = (AbstractSelect) dialogSelect.createField(); // THEN assertThat(field.getValue(), equalTo((Object) 2L)); }
@Test public void selectHasDefaultValueIfConfigured() throws Exception { // GIVEN definition.getOptions().get(1).setSelected(true); baseItem = new JcrNewNodeAdapter(baseNode, baseNode.getPrimaryNodeType().getName()); // WHEN createField(); // THEN AbstractSelect select = getSubFieldWithType(AbstractSelect.class); assertTrue(select.isNullSelectionAllowed()); assertEquals("code", select.getValue()); }
assertThat(field.getValue(), is(nullValue()));