package org.jbpm.gd.jpdl.properties; import org.eclipse.swt.events.FocusEvent; import org.eclipse.swt.events.FocusListener; import org.eclipse.swt.events.SelectionEvent; import org.eclipse.swt.events.SelectionListener; import org.eclipse.swt.layout.FormAttachment; import org.eclipse.swt.layout.FormData; import org.eclipse.swt.widgets.Composite; import org.jbpm.gd.common.model.GenericElement; import org.jbpm.gd.jpdl.dialog.ChooseDelegationClassDialog; import org.jbpm.gd.jpdl.model.Assignment; public class AssignmentHandlerInfoComposite extends AssignmentTypeComposite implements SelectionListener, FocusListener { private DelegationConfigurationComposite delegationConfigurationComposite; protected void hookListeners() { } protected void unhookListeners() { } protected void clearControls() { delegationConfigurationComposite.setDelegation(null); } protected void updateControls() { if (assignable.getAssignment() == null) return; delegationConfigurationComposite.setDelegation(assignable.getAssignment()); } protected void setActive(boolean active) { Assignment assignment = getAssignment(); if (active) { if (assignment.getClassName() == null) { assignment.setClassName(""); } delegationConfigurationComposite.setDelegation(assignment); } else { delegationConfigurationComposite.setDelegation(null); assignment.setClassName(null); GenericElement[] genericElements = assignment.getGenericElements(); for (int i = 0; i < genericElements.length; i++) { assignment.removeGenericElement(genericElements[i]); } } } protected void create() { Composite composite = widgetFactory.createFlatFormComposite(parent); delegationConfigurationComposite = DelegationConfigurationComposite.create(widgetFactory, composite, createChooseAssignmentHandlerClassDialog()); composite.setLayoutData(createCompositeLayoutData()); } private ChooseDelegationClassDialog createChooseAssignmentHandlerClassDialog() { return new ChooseDelegationClassDialog( parent.getShell(), "org.jbpm.taskmgmt.def.AssignmentHandler", "Choose Assignment Handler", "Choose an assignment handler from the list"); } private FormData createCompositeLayoutData() { FormData result = new FormData(); result.top = new FormAttachment(0, 0); result.left = new FormAttachment(0, 0); result.right = new FormAttachment(100, 0); result.height = 100; result.bottom = new FormAttachment(100, 0); return result; } public void widgetDefaultSelected(SelectionEvent e) { } public void widgetSelected(SelectionEvent e) { } public void focusGained(FocusEvent e) { } public void focusLost(FocusEvent e) { } }