public CollectionSelect() { select.setMultiSelect(true); select.addValueChangeListener(new ValueChangeListener() { @Override public void valueChange( com.vaadin.v7.data.Property.ValueChangeEvent event) { /* * Modify the original collection to make it possible for e.g. * ORM tools to optimize queries */ Collection<T> collection = getInternalValue(); HashSet<T> orphaned = new HashSet<>(collection); @SuppressWarnings("unchecked") Collection<T> newValueSet = (Collection<T>) select.getValue(); for (T t : newValueSet) { orphaned.remove(t); if (!collection.contains(t)) { collection.add(t); } } collection.removeAll(orphaned); CollectionSelect.super.setInternalValue(collection); fireValueChange(true); } }); }
@Override public String getItemCaption(Object itemId) { if (itemCaptionGenerator != null) { return itemCaptionGenerator.apply(itemId); } return super.getItemCaption(itemId); }
public void configurateListSelect(ListSelect listSelect) { if (rows != null) { listSelect.setRows(rows); } } }
@SuppressWarnings("unchecked") private void refreshAttributes() { m_attributesListSelect.removeAllItems(); m_attributesListSelect.addItems(m_businessService.getAttributes().entrySet().stream() .sorted(Ordering.natural() .onResultOf(Map.Entry::getKey)) .collect(Collectors.toList())); m_attributesListSelect.getItemIds().forEach(item -> m_attributesListSelect.setItemCaption(item, ((Map.Entry<String, String>) item).getKey() + "=" + ((Map.Entry<String, String>) item).getValue())); }
m_edgesListSelect = new ListSelect("Edges"); m_edgesListSelect.setId("edgeList"); m_edgesListSelect.setWidth(100.0f, Unit.PERCENTAGE); m_edgesListSelect.setRows(10); m_edgesListSelect.setNullSelectionAllowed(false); m_edgesListSelect.setMultiSelect(false); refreshEdges(); edgesButtonLayout.addComponent(editEdgeButton); editEdgeButton.addClickListener((Button.ClickListener) event -> { final BusinessServiceEdgeEditWindow window = new BusinessServiceEdgeEditWindow(businessService, businessServiceManager, (Edge) m_edgesListSelect.getValue()); window.addCloseListener(e -> refreshEdges()); this.getUI().addWindow(window); m_edgesListSelect.addValueChangeListener((Property.ValueChangeListener) event -> { removeEdgeButton.setEnabled(event.getProperty().getValue() != null); editEdgeButton.setEnabled(event.getProperty().getValue() != null); if (m_edgesListSelect.getValue() != null) { removeEdgeButton.setEnabled(false); ((Edge) m_edgesListSelect.getValue()).delete(); refreshEdges(); m_attributesListSelect = new ListSelect("Attributes"); m_attributesListSelect.setId("attributeList"); m_attributesListSelect.setWidth(100.0f, Unit.PERCENTAGE); m_attributesListSelect.setRows(10); m_attributesListSelect.setNullSelectionAllowed(false); m_attributesListSelect.setMultiSelect(false);
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; }
@Override public void valueChange( com.vaadin.v7.data.Property.ValueChangeEvent event) { /* * Modify the original collection to make it possible for e.g. * ORM tools to optimize queries */ Collection<T> collection = getInternalValue(); HashSet<T> orphaned = new HashSet<>(collection); @SuppressWarnings("unchecked") Collection<T> newValueSet = (Collection<T>) select.getValue(); for (T t : newValueSet) { orphaned.remove(t); if (!collection.contains(t)) { collection.add(t); } } collection.removeAll(orphaned); CollectionSelect.super.setInternalValue(collection); fireValueChange(true); } });
@Override public Resource getItemIcon(Object itemId) { if (iconGenerator != null) { return iconGenerator.getIcon((T) itemId); } return super.getItemIcon(itemId); }
@Override public ErrorMessage getErrorMessage() { ErrorMessage superError = super.getErrorMessage(); if (!isReadOnly() && isRequired() && isEmpty()) { ErrorMessage error = AbstractErrorMessage.getErrorMessageForException( new com.vaadin.v7.data.Validator.EmptyValueException(getRequiredError())); if (error != null) { return new CompositeErrorMessage(superError, error); } } return superError; }
private void refreshEdges() { m_edgesListSelect.removeAllItems(); m_edgesListSelect.addItems(m_businessService.getEdges().stream() .map(e -> (Edge)e) .sorted((e1, e2) -> getChildDescription(e1).compareTo(getChildDescription(e2))) .collect(Collectors.toList())); m_edgesListSelect.getItemIds().forEach(item -> m_edgesListSelect.setItemCaption(item, describeEdge((Edge) item))); }
final AbstractSelect newField = isMultiselect ? new ListSelect() : new Select(); newField.setCaption(oldField.getCaption());
@SuppressWarnings("unchecked") @Override public String getItemCaption(Object option) { if (captionGenerator != null) { return captionGenerator.getCaption((T) option); } return super.getItemCaption(option); }; };