@Override public EnumType createType() { return new EnumType(); }
public MultiEnumFormat(String columnId, FormulaNode formula, EnumType enumType) { this.columnId = columnId; this.formula = formula; this.enumType = enumType; this.numItems = enumType.getValues().size(); this.labels = new String[numItems]; for (int i = 0; i < numItems; i++) { labels[i] = enumType.getValues().get(i).getLabel(); } }
@Test public void deserializationEnumTypeNoChoices() { EnumType type = new EnumType(Cardinality.SINGLE, EnumType.Presentation.AUTOMATIC, Collections.<EnumItem>emptyList()); JsonValue jsonObject = type.getParametersAsJson(); EnumType reType = EnumType.TYPE_CLASS.deserializeType(jsonObject); assertThat(reType.getCardinality(), equalTo(Cardinality.SINGLE)); assertThat(reType.getPresentation(), equalTo(EnumType.Presentation.AUTOMATIC)); assertThat(reType.getValues(), hasSize(0)); } }
private FormFieldWidget<EnumValue> createWidget(EnumType enumType, final ValueUpdater<EnumValue> valueUpdater, FieldWidgetMode fieldWidgetMode) { // Multiple selection should always use checkboxes. if(enumType.getCardinality() == Cardinality.MULTIPLE) { return new EnumCheckboxWidget(enumType, valueUpdater, fieldWidgetMode); } EnumType.Presentation presentation; if(fieldWidgetMode == FieldWidgetMode.NORMAL) { // Only apply presentation choices in data entry mode presentation = enumType.getEffectivePresentation(); } else { presentation = EnumType.Presentation.RADIO_BUTTON; } if(presentation == EnumType.Presentation.RADIO_BUTTON) { return new EnumCheckboxWidget(enumType, valueUpdater, fieldWidgetMode); } else { return new EnumDropDownWidget(enumType, valueUpdater); } }
@Override public FieldImporter createImporter(FormTree.Node node, Map<TargetSiteId, ColumnAccessor> mappings, ImportModel model) { EnumType type = (EnumType) node.getType(); List<ColumnAccessor> sourceColumns = Lists.newArrayList(); if (type.getCardinality() == Cardinality.SINGLE) { sourceColumns.add(mappings.get(VALUE)); } else { for (EnumItem item : type.getValues()) { ColumnAccessor accessor = mappings.get(new TargetSiteId(item.getId().asString())); if (accessor == null) { accessor = new EmptyColumn(item.getLabel()); } sourceColumns.add(accessor); } } return new EnumFieldImporter(sourceColumns, getImportSites(node), type); }
@Override protected boolean accept(FieldType type) { return type instanceof EnumType && ((EnumType) type).getCardinality() == Cardinality.SINGLE; }
int activityId = generator.generateInt(); EnumType enumType = new EnumType(Cardinality.SINGLE, new EnumItem(EnumItem.generateId(), "A"), new EnumItem(EnumItem.generateId(), "B")); EnumType updatedType = new EnumType(Cardinality.SINGLE, new EnumItem(EnumItem.generateId(), "C"), new EnumItem(EnumItem.generateId(), "D")); FieldValue valueC = new EnumValue(updatedType.getValues().get(0).getId()); newRecord.set(selectField.getId(), new EnumValue(updatedType.getValues().get(0).getId())); newRecord.set(CuidAdapter.partnerField(activityId), CuidAdapter.partnerRef(1, 1));
@Override protected void show(EnumType type) { automaticPresentation.setValue(type.getPresentation() == EnumType.Presentation.AUTOMATIC); checkboxPresentation.setValue(type.getPresentation() == EnumType.Presentation.RADIO_BUTTON); dropdownPresentation.setValue(type.getPresentation() == EnumType.Presentation.DROPDOWN); }
public EnumDropDownWidget(EnumType enumType, final ValueUpdater<EnumValue> valueUpdater) { this.enumType = enumType; this.valueUpdater = valueUpdater; dropBox = new ListBox(enumType.getCardinality() == Cardinality.MULTIPLE); dropBox.addStyleName("form-control"); // Empty value dropBox.addItem(""); for (EnumItem enumItem : enumType.getValues()) { dropBox.addItem(enumItem.getLabel()); } dropBox.addChangeHandler(new ChangeHandler() { @Override public void onChange(ChangeEvent event) { fireValueChanged(); } }); }
public static List<SimpleOperator> forType(FieldType type) { if(type instanceof TextType) { return EQUALITY_OPERATORS; } else if(type instanceof QuantityType) { return QUANTITY_OPERATORS; } else if(type instanceof EnumType) { EnumType enumType = (EnumType) type; if(enumType.getCardinality() == Cardinality.SINGLE) { return EQUALITY_OPERATORS; } else { return INCLUDE_OPERATORS; } } return Collections.emptyList(); }
@Override public FieldWidget visitEnum(EnumType enumType) { if (enumType.getCardinality() == Cardinality.SINGLE) { // If the field is optional, then ALWAYS use a drop down widget whose value can be cleared if (!field.isRequired()) { return new DropDownEnumWidget(field, enumType, updater); } else if (enumType.getEffectivePresentation() == EnumType.Presentation.RADIO_BUTTON) { return new RadioGroupWidget(enumType, updater); } else { return new DropDownEnumWidget(field, enumType, updater); } } else { return new CheckBoxGroupWidget(enumType, updater); } }
@Test public void deserializationCheckboxes() { JsonValue object = createObject(); object.put("presentation", "CHECKBOX"); object.put("cardinality", "SINGLE"); object.put("values", Json.createArray()); EnumType enumType = EnumType.TYPE_CLASS.deserializeType(object); assertThat(enumType.getPresentation(), equalTo(EnumType.Presentation.RADIO_BUTTON)); }
@Override public void updateColumnSet(ColumnSet columnSet) { views = new ColumnView[numItems]; for (int i = 0; i < numItems; i++) { EnumItem item = enumType.getValues().get(i); views[i] = columnSet.getColumnView(getItemId(item)); } } }
public ConstantNode(EnumValue value){ this(value, new EnumType()); }
@Test public void deserializationEnumTypeNoChoices() { EnumType type = new EnumType(Cardinality.SINGLE, EnumType.Presentation.AUTOMATIC, Collections.<EnumItem>emptyList()); JsonValue jsonObject = type.getParametersAsJson(); EmbeddedEntity entity = FormConverter.toEmbeddedEntity(jsonObject); JsonValue fromEntity = FormConverter.fromEmbeddedEntity(entity); EnumType reType = EnumType.TYPE_CLASS.deserializeType(fromEntity); assertThat(reType.getCardinality(), equalTo(Cardinality.SINGLE)); assertThat(reType.getPresentation(), equalTo(EnumType.Presentation.AUTOMATIC)); assertThat(reType.getValues(), hasSize(0)); }
@Override public List<ImportTarget> getImportSites(FormTree.Node node) { EnumType type = (EnumType) node.getType(); List<ImportTarget> result = Lists.newArrayList(); if (type.getCardinality() == Cardinality.SINGLE) { result.add(new ImportTarget(node.getField(), VALUE, node.getField().getLabel(), node.getDefiningFormClass().getId())); } else { for (EnumItem item : type.getValues()) { result.add(new ImportTarget(node.getField(), new TargetSiteId(item.getId().asString()), label(item.getLabel(), node.getField().getLabel()), node.getDefiningFormClass().getId())); } } return result; }
@Override public void validateInstance(SourceRow row, List<ValidationResult> results) { if (enumType.getCardinality() == Cardinality.SINGLE) { results.add(validateSingleValuedEnum(row)); } else { results.addAll(validateMultiValuedEnum(row)); } }
SimpleEnumColumnBuilder(PendingSlot<ColumnView> result, EnumType enumType) { this.result = result; int labelIndex = 0; this.labels = new String[enumType.getValues().size()]; for (EnumItem item : enumType.getValues()) { this.labels[labelIndex] = item.getLabel(); this.labelIndexMap.put(item.getId(), labelIndex); labelIndex++; } }
public EnumType withPresentation(Presentation presentation) { return new EnumType(cardinality, presentation, values); }
controls = new ArrayList<>(); for (final EnumItem instance : enumType.getValues()) { CheckBox checkBox = createControl(instance); checkBox.addValueChangeHandler(new ValueChangeHandler<Boolean>() { if (enumType.getCardinality() == Cardinality.SINGLE) { panel.add(clearButton);