package org.jbpm.gd.jpdl.properties;
import org.eclipse.swt.events.FocusEvent;
import org.eclipse.swt.events.FocusListener;
import org.eclipse.swt.layout.FormAttachment;
import org.eclipse.swt.layout.FormData;
import org.eclipse.swt.layout.FormLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Text;
import org.jbpm.gd.jpdl.model.Assignment;
public class AssignmentPooledActorsInfoComposite extends AssignmentTypeComposite implements FocusListener {
private Label pooledActorsLabel;
private Text pooledActorsText;
protected void hookListeners() {
pooledActorsText.addFocusListener(this);
}
protected void unhookListeners() {
pooledActorsText.removeFocusListener(this);
}
protected void clearControls() {
pooledActorsText.setText("");
}
protected void updateControls() {
if (assignable.getAssignment() != null && assignable.getAssignment().getPooledActors() != null) {
pooledActorsText.setText(assignable.getAssignment().getPooledActors());
}
}
protected void setActive(boolean active) {
Assignment assignment = getAssignment();
if (active) {
assignment.setPooledActors(pooledActorsText.getText());
} else {
assignment.setPooledActors(null);
}
}
protected void create() {
Composite composite = widgetFactory.createComposite(parent);
composite.setLayout(new FormLayout());
pooledActorsLabel = widgetFactory.createLabel(composite, "Pooled Actors");
pooledActorsText = widgetFactory.createText(composite, "");
composite.setLayoutData(createCompositeLayoutData());
pooledActorsLabel.setLayoutData(createNameLabelLayoutData());
pooledActorsText.setLayoutData(createNameTextLayoutData());
}
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);
return result;
}
private FormData createNameLabelLayoutData() {
FormData result = new FormData();
result.top = new FormAttachment(0, 5);
result.left = new FormAttachment(0, 5);
result.bottom = new FormAttachment(100, -5);
return result;
}
private FormData createNameTextLayoutData() {
FormData result = new FormData();
result.top = new FormAttachment(0, 5);
result.left = new FormAttachment(pooledActorsLabel, 5);
result.right = new FormAttachment(100, -5);
result.bottom = new FormAttachment(100, -5);
return result;
}
public void focusGained(FocusEvent e) {
}
public void focusLost(FocusEvent e) {
if (assignable.getAssignment() == null) return;
assignable.getAssignment().setPooledActors(pooledActorsText.getText());
}
}