@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); } });
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); if (m_edgesListSelect.getValue() != null) { removeEdgeButton.setEnabled(false); ((Edge) m_edgesListSelect.getValue()).delete(); refreshEdges(); attributesButtonLayout.addComponent(editAttributeButton); editAttributeButton.addClickListener((Button.ClickListener) event -> { Map.Entry<String, String> entry = (Map.Entry<String, String>) m_attributesListSelect.getValue(); KeyValueInputDialogWindow keyValueInputDialogWindow = new KeyValueInputDialogWindow() .withKeyFieldName("Key") if (m_attributesListSelect.getValue() != null) { removeAttributeButton.setEnabled(false); m_businessService.getAttributes().remove(((Map.Entry<String, String>) m_attributesListSelect.getValue()).getKey()); refreshAttributes();