Package org.aperteworkflow.editor.ui.queue

Source Code of org.aperteworkflow.editor.ui.queue.RoleNameComboBox

package org.aperteworkflow.editor.ui.queue;

import com.vaadin.data.Property;
import com.vaadin.ui.ComboBox;
import com.vaadin.ui.Select;
import org.aperteworkflow.editor.domain.QueueRolePermission;

//TODO merge with RoleNameComboBox in ui.permissions

public class RoleNameComboBox extends Select implements ComboBox.NewItemHandler {

    private QueueRolePermissionBoxHandler 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);
            }
        });
    }

    public QueueRolePermissionBoxHandler getHandler() {
        return handler;
    }

    public void setHandler(QueueRolePermissionBoxHandler handler) {
        this.handler = handler;
    }

    @Override
    public void addNewItem(String newItemCaption) {
        addItem(newItemCaption);
        setValue(newItemCaption);
    }

    private void handleRoleChange(String roleName) {
        if (roleName == null || roleName.trim().isEmpty()) {
            return;
        }

        QueueRolePermission permission = new QueueRolePermission();
        permission.setRoleName(roleName);

        QueueRolePermissionBox box = new QueueRolePermissionBox(permission, handler);
        handler.addQueueRolePermissionBox(box);
    }
}
TOP

Related Classes of org.aperteworkflow.editor.ui.queue.RoleNameComboBox

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.