if (isMultiSelect()) { Set<?> currentValueSet = (Set<?>) getValue(); Set<?> newValueSet = (Set<?>) newValue; for (Object itemId : currentValueSet) { if (!isItemEnabled(itemId) && !newValueSet.contains(itemId)) { markAsDirty(); return; if (!isItemEnabled(itemId) && !currentValueSet.contains(itemId)) { markAsDirty(); return; newValue = getNullSelectionItemId(); if (!isItemEnabled(newValue)) { markAsDirty(); return;
@Override protected void setInternalValue(Collection newValue) { super.setInternalValue(newValue); optionGroup.setValue(newValue); }
public void select(ET objectToSelect) { if (!optionGroup.isSelected(objectToSelect)) { optionGroup.select(objectToSelect); getEditedCollection().add(objectToSelect); } }
public void configurateOptionGroup(OptionGroup optionGroup) { if (htmlContentAllowed != null) { optionGroup.setHtmlContentAllowed(htmlContentAllowed); } if (disabledItemIds != null) { for (Object o : disabledItemIds) { optionGroup.setItemEnabled(o, false); } } } }
@Override protected void setInternalValue(SystemDefChoice systemDef) { boolean oidTypeState = oidType.isReadOnly(); oidType.setReadOnly(false); oidType.select(systemDef.getSysoid() == null ? MASK : SINGLE); if (oidTypeState) { oidType.setReadOnly(true); } boolean oidValueState = oidValue.isReadOnly(); oidValue.setReadOnly(false); oidValue.setValue(systemDef.getSysoid() == null ? systemDef.getSysoidMask() : systemDef.getSysoid()); if (oidValueState) { oidValue.setReadOnly(true); } }
@Test public void checkBoxGroupFieldDoesNotPreselectAnythingByDefault() throws Exception { // GIVEN definition.setMultiselect(true); dialogSelect = new OptionGroupFieldFactory(definition, baseItem, null, null, componentProvider); // WHEN Field field = dialogSelect.createField(); // THEN assertThat(field, is(instanceOf(OptionGroup.class))); assertThat(((OptionGroup) field).isMultiSelect(), is(true)); Collection<?> items = ((OptionGroup) field).getItemIds(); assertThat(items.size(), equalTo(3)); assertThat(field.getValue().toString(), equalTo("[]")); }
/** * Instantiates a new system definition choice field. * * @param caption the caption */ public SystemDefChoiceField(String caption) { setCaption(caption); oidType.setNullSelectionAllowed(false); oidType.select("Single"); oidValue.setWidth("100%"); oidValue.setNullSettingAllowed(false); oidValue.setRequired(true); oidValue.setImmediate(true); oidValue.addValidator(new RegexpValidator("^\\.[.\\d]+$", "Invalid OID {0}")); }
PeriodSelectorComponent(SimpleTranslator translator) { this.translator = translator; disableSelection.setImmediate(true); periodSelection.setImmediate(true); disableSelection.addItem(true); periodSelection.addItem(true); root.addComponent(optionEntry); disableSelection.addValueChangeListener(new ValueChangeListener() { @Override public void valueChange(Property.ValueChangeEvent event) { periodSelection.addValueChangeListener(new ValueChangeListener() { @Override public void valueChange(Property.ValueChangeEvent event) {
@Override protected Object readItem(Element child, Set<String> selected, DesignContext context) { Object itemId = super.readItem(child, selected, context); if (child.hasAttr("disabled")) { setItemEnabled(itemId, false); } return itemId; }
@Override public void addBlurListener(BlurListener listener) { addListener(BlurEvent.EVENT_ID, BlurEvent.class, listener, BlurListener.blurMethod); }
protected AbstractSelect createCompatibleSelect( Class<? extends AbstractSelect> fieldType) { AbstractSelect select; if (fieldType.isAssignableFrom(ListSelect.class)) { select = new ListSelect(); select.setMultiSelect(false); } else if (fieldType.isAssignableFrom(NativeSelect.class)) { select = new NativeSelect(); } else if (fieldType.isAssignableFrom(OptionGroup.class)) { select = new OptionGroup(); select.setMultiSelect(false); } else if (fieldType.isAssignableFrom(Table.class)) { Table t = new Table(); t.setSelectable(true); select = t; } else { select = new ComboBox(null); } select.setImmediate(true); select.setNullSelectionAllowed(false); return select; }
@Test public void radioFieldHasConfiguredOptions() throws Exception { // GIVEN baseItem = new JcrNewNodeAdapter(baseNode, baseNode.getPrimaryNodeType().getName()); dialogSelect = new OptionGroupFieldFactory(definition, baseItem, null, null, componentProvider); // WHEN Field<?> field = dialogSelect.createField(); // THEN assertThat(field, is(instanceOf(OptionGroup.class))); assertThat(((OptionGroup) field).isMultiSelect(), is(false)); assertThat(((OptionGroup) field).getItemIds().size(), equalTo(3)); }
@Override protected SystemDefChoice getInternalValue() { SystemDefChoice systemDef = new SystemDefChoice(); String type = (String) oidType.getValue(); if (type.equals(SINGLE)) { systemDef.setSysoid((String) oidValue.getValue()); } else { systemDef.setSysoidMask((String) oidValue.getValue()); } return systemDef; }
@Override public void addFocusListener(FocusListener listener) { addListener(FocusEvent.EVENT_ID, FocusEvent.class, listener, FocusListener.focusMethod); }
@Override protected void setInternalValue(Integer newValue) { super.setInternalValue(newValue); if (newValue == null || newValue <= 0) { disableSelection.setValue(true); periodSelection.setValue(null); combo.setValue(null); } else { disableSelection.setValue(null); periodSelection.setValue(true); if (combo.getItem(newValue) == null) { combo.addItem(newValue); } combo.setValue(newValue); } }
@Override protected void setValue(Object newValue, boolean repaintIsNotNeeded) throws ReadOnlyException { Set oldvalue = (Set) getValue(); super.setValue(newValue, repaintIsNotNeeded); if (clientSideChange) { // TODO add strategies for maintaining the order in case of List // e.g. same as listing, selection order ... Collection collection = getEditedCollection(); Set newvalue = (Set) getValue(); Set orphaned = new HashSet(oldvalue); orphaned.removeAll(newvalue); collection.removeAll(orphaned); Set newValues = new LinkedHashSet(newvalue); newValues.removeAll(oldvalue); collection.addAll(newValues); CheckBoxGroup.this.fireValueChange(true); } }
@Override public void valueChange(Property.ValueChangeEvent event) { if (event.getProperty().getValue() != null) { periodSelection.setValue(null); } } });
@Override public void valueChange(Property.ValueChangeEvent event) { if (event.getProperty().getValue() != null) { disableSelection.setValue(null); } } });
@Test public void discardUnselectedOptions() throws Exception { // GIVEN SwitchableFieldDefinition definition = switchableFieldDefinition("switchable"); Node node = session.getRootNode().addNode("node"); JcrNodeAdapter nodeAdapter = new JcrNodeAdapter(node); SwitchableFieldFactory<SwitchableFieldDefinition> factory = new SwitchableFieldFactory<>(definition, nodeAdapter, fieldFactoryFactory, componentProvider, i18nAuthoringSupport); SwitchableField field = (SwitchableField) factory.createField(); Iterator<Component> componentIterator = field.iterator(); // CustomField#getContent is lazy, we trigger it via ComponentIterator#next() VerticalLayout layout = (VerticalLayout) componentIterator.next(); OptionGroup options = (OptionGroup) layout.getComponent(0); TextField t1 = (TextField) layout.getComponent(1); TextField t2 = (TextField) layout.getComponent(2); // WHEN options.setValue("t1"); enterText(t1, "v1"); options.setValue("t2"); enterText(t2, "v2"); nodeAdapter.applyChanges(); // THEN assertThat(node, hasProperty("switchable", "t2")); assertThat(node, hasProperty("switchablet2", "v2")); assertThat(node, not(hasProperty("switchablet1"))); }