package org.aperteworkflow.editor.ui.queue; import com.vaadin.ui.*; import com.vaadin.ui.themes.BaseTheme; import org.aperteworkflow.editor.domain.QueueRolePermission; public class QueueRolePermissionBox extends GridLayout { private QueueRolePermission queueRolePermission; private QueueRolePermissionBoxHandler handler; private Label roleNameLabel; private CheckBox browsingAllowedCheckbox; private Button deleteButton; public QueueRolePermissionBox(QueueRolePermission queueRolePermission, QueueRolePermissionBoxHandler handler) { super(2, 2); this.handler = handler; this.queueRolePermission = queueRolePermission; initComponent(); initLayout(); } private void initComponent() { roleNameLabel = new Label(queueRolePermission.getRoleName()); browsingAllowedCheckbox = new CheckBox(); browsingAllowedCheckbox.setCaption("browsing allowed"); browsingAllowedCheckbox.addListener(new Button.ClickListener() { @Override public void buttonClick(Button.ClickEvent clickEvent) { if (Boolean.TRUE.equals(queueRolePermission.isBrowsingAllowed())) { queueRolePermission.setBrowsingAllowed(false); } else { queueRolePermission.setBrowsingAllowed(true); // we handle null as well here } } }); if (Boolean.TRUE.equals(queueRolePermission.isBrowsingAllowed())) { browsingAllowedCheckbox.setValue(true); } deleteButton = new Button(); deleteButton.setCaption(" X "); deleteButton.setStyleName(BaseTheme.BUTTON_LINK); deleteButton.addListener(new Button.ClickListener() { @Override public void buttonClick(Button.ClickEvent event) { handler.removeQueueRolePermissionBox(QueueRolePermissionBox.this); } }); } private void initLayout() { setSpacing(true); addComponent(roleNameLabel, 0, 0); addComponent(browsingAllowedCheckbox, 0, 1); addComponent(deleteButton, 1, 0, 1, 1); setComponentAlignment(deleteButton, Alignment.MIDDLE_RIGHT); } public QueueRolePermission getQueueRolePermission() { return queueRolePermission; } }