package org.aperteworkflow.editor.ui.permission; import com.vaadin.data.Property; import com.vaadin.ui.ComboBox; import com.vaadin.ui.Select; public class RoleNameComboBox extends Select implements ComboBox.NewItemHandler { private PermissionWrapperHandler handler; public RoleNameComboBox() { setImmediate(true); setNewItemHandler(this); setNewItemsAllowed(true); addListener(new ValueChangeListener() { @Override public void valueChange(Property.ValueChangeEvent event) { if (handler == null) { return; } String roleName = (String) RoleNameComboBox.this.getValue(); handleRoleChange(roleName); } }); } @Override public void addNewItem(String newItemCaption) { addItem(newItemCaption); setValue(newItemCaption); } public void setHandler(PermissionWrapperHandler handler) { this.handler = handler; } private void handleRoleChange(String roleName) { if (roleName == null || roleName.trim().isEmpty()) { return; } PermissionWrapper wrapper = new PermissionWrapper(); wrapper.setRoleName(roleName); handler.addPermissionWrapper(wrapper); } }