Author: koen.aers(a)jboss.com
Date: 2009-04-01 14:05:19 -0400 (Wed, 01 Apr 2009)
New Revision: 14409
Modified:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/plugin.xml
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editor/JpdlSerializer.java
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/model/HumanTask.java
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/properties/AssignmentSection.java
Log:
serialization of assignee, candidate-groups and swimlane attributes for human task nodes
Modified: trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/plugin.xml
===================================================================
--- trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/plugin.xml 2009-04-01 17:35:26 UTC (rev
14408)
+++ trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/plugin.xml 2009-04-01 18:05:19 UTC (rev
14409)
@@ -19,7 +19,7 @@
</describer>
</content-type>
</extension>
- <extension point="org.eclipse.ui.editors">
+<!-- <extension point="org.eclipse.ui.editors">
<editor
name="jPDL4 Editor"
icon="icons/process.gif"
@@ -30,7 +30,7 @@
contentTypeId="org.jboss.tools.flow.jpdl4">
</contentTypeBinding>
</editor>
- </extension>
+ </extension> -->
<extension
point="org.jboss.tools.flow.common.languages">
<language
@@ -233,7 +233,7 @@
<propertyCategory category="general"/>
<propertyCategory category="details"/>
<propertyCategory category="graphics"/>
- <propertyCategory category="advanced"/>
+<!-- <propertyCategory category="advanced"/> -->
</propertyContributor>
</extension>
@@ -244,14 +244,15 @@
id="org.jboss.tools.jpdl4.general"
label="General"/>
<propertyTab
+ afterTab="org.jboss.tools.jpdl4.general"
category="general"
id="org.jboss.tools.jpdl4.assignment"
label="Assignment"/>
- <propertyTab
+<!-- <propertyTab
afterTab="org.jboss.tools.jpdl4.general"
category="details"
id="org.jboss.tools.jpdl4.details"
- label="Details"/>
+ label="Details"/>
<propertyTab
afterTab="org.jboss.tools.jpdl4.details"
category="graphics"
@@ -261,7 +262,7 @@
afterTab="org.jboss.tools.jpdl4.graphics"
category="advanced"
id="org.jboss.tools.jpdl4.advanced"
- label="Advanced"/>
+ label="Advanced"/> -->
</propertyTabs>
</extension>
Modified:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editor/JpdlSerializer.java
===================================================================
---
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editor/JpdlSerializer.java 2009-04-01
17:35:26 UTC (rev 14408)
+++
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editor/JpdlSerializer.java 2009-04-01
18:05:19 UTC (rev 14409)
@@ -280,6 +280,39 @@
}
}
+ class HumanTaskSerializer extends ProcessNodeWrapperSerializer {
+ protected List<String> getAttributesToSave() {
+ List<String> result = super.getAttributesToSave();
+ result.add("assignee");
+ result.add("candidate-groups");
+ result.add("swimlane");
+ return result;
+ }
+ protected void appendAttributeToSave(String attributeName, StringBuffer buffer,
Wrapper wrapper) {
+ if (!(wrapper instanceof NodeWrapper)) return;
+ Element element = wrapper.getElement();
+ if (!(element instanceof HumanTask)) return;
+ if ("assignee".equals(attributeName)) {
+ appendExpression("assignee", buffer, wrapper);
+ } else if ("candidate-groups".equals(attributeName)) {
+ appendExpression("candidate-groups", buffer, wrapper);
+ } else if ("swimlane".equals(attributeName)) {
+ appendExpression("swimlane", buffer, wrapper);
+ } else {
+ super.appendAttributeToSave(attributeName, buffer, wrapper);
+ }
+ }
+ protected void appendExpression(String type, StringBuffer buffer, Wrapper wrapper)
{
+ Object assignmentType = wrapper.getPropertyValue(HumanTask.ASSIGNMENT_TYPE);
+ if (!(assignmentType instanceof Integer)) return;
+ if (type.equals(HumanTask.ASSIGNMENT_TYPES[(Integer)assignmentType])) {
+ Object value = wrapper.getPropertyValue(HumanTask.ASSIGNMENT_EXPRESSION);
+ if (value == null || "".equals(value)) return;
+ buffer.append(" " + type + "=\"" + value +
"\"");
+ }
+ }
+ }
+
class ProcessWrapperSerializer extends AbstractWrapperSerializer {
public void appendOpening(StringBuffer buffer, Wrapper wrapper, int level) {
buffer.append("<?xml version=\"1.0\"
encoding=\"UTF-8\"?>\n\n");
@@ -345,7 +378,7 @@
} else if (element instanceof ServiceTask) {
new ProcessNodeWrapperSerializer().appendOpening(buffer, wrapper, level);
} else if (element instanceof HumanTask) {
- new ProcessNodeWrapperSerializer().appendOpening(buffer, wrapper, level);
+ new HumanTaskSerializer().appendOpening(buffer, wrapper, level);
} else if (element instanceof ExclusiveGateway) {
new ProcessNodeWrapperSerializer().appendOpening(buffer, wrapper, level);
} else if (element instanceof ForkParallelGateway) {
Modified:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/model/HumanTask.java
===================================================================
---
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/model/HumanTask.java 2009-04-01
17:35:26 UTC (rev 14408)
+++
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/model/HumanTask.java 2009-04-01
18:05:19 UTC (rev 14409)
@@ -17,12 +17,11 @@
public static final String ASSIGNEE = "assignee";
public static final String CANDIDATE_GROUPS = "candidate-groups";
- public static final String CANDIDATE_USERS = "candidate-users";
public static final String SWIMLANE = "swimlane";
public static final String NONE = "none";
public static final String[] ASSIGNMENT_TYPES = {
- ASSIGNEE, CANDIDATE_GROUPS, CANDIDATE_USERS, SWIMLANE, NONE
+ ASSIGNEE, CANDIDATE_GROUPS, SWIMLANE, NONE
};
private String assignmentType = NONE;
Modified:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/properties/AssignmentSection.java
===================================================================
---
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/properties/AssignmentSection.java 2009-04-01
17:35:26 UTC (rev 14408)
+++
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/properties/AssignmentSection.java 2009-04-01
18:05:19 UTC (rev 14409)
@@ -28,8 +28,8 @@
private CLabel typeLabel;
private Text expressionText;
private CLabel expressionLabel;
- private Text languageText;
- private CLabel languageLabel;
+// private Text languageText;
+// private CLabel languageLabel;
// private Composite parent;
@@ -58,8 +58,8 @@
createTypeCombo(composite);
createExpressionLabel(composite);
createExpressionText(composite);
- createLanguageLabel(composite);
- createLanguageText(composite);
+// createLanguageLabel(composite);
+// createLanguageText(composite);
}
@@ -97,22 +97,22 @@
expressionText.setLayoutData(data);
}
- private void createLanguageLabel(Composite parent) {
- languageLabel = getWidgetFactory().createCLabel(parent, "Language");
- FormData data = new FormData();
- data.left = new FormAttachment(0, 0);
- data.top = new FormAttachment(expressionText, 2);
- languageLabel.setLayoutData(data);
- }
-
- private void createLanguageText(Composite parent) {
- languageText = getWidgetFactory().createText(parent, "");
- FormData data = new FormData();
- data.top = new FormAttachment(expressionText, 0);
- data.left = new FormAttachment(0, 80);
- data.right = new FormAttachment(100, 0);
- languageText.setLayoutData(data);
- }
+// private void createLanguageLabel(Composite parent) {
+// languageLabel = getWidgetFactory().createCLabel(parent, "Language");
+// FormData data = new FormData();
+// data.left = new FormAttachment(0, 0);
+// data.top = new FormAttachment(expressionText, 2);
+// languageLabel.setLayoutData(data);
+// }
+//
+// private void createLanguageText(Composite parent) {
+// languageText = getWidgetFactory().createText(parent, "");
+// FormData data = new FormData();
+// data.top = new FormAttachment(expressionText, 0);
+// data.left = new FormAttachment(0, 80);
+// data.right = new FormAttachment(100, 0);
+// languageText.setLayoutData(data);
+// }
public void setInput(IWorkbenchPart part, ISelection selection) {
super.setInput(part, selection);
@@ -132,6 +132,7 @@
private SelectionListener typeComboSelectionListener = new SelectionAdapter() {
public void widgetSelected(SelectionEvent e) {
changeProperty(HumanTask.ASSIGNMENT_TYPE, typeCombo.getSelectionIndex());
+ expressionText.setEnabled(!HumanTask.NONE.equals(typeCombo.getText()));
}
};
@@ -141,11 +142,11 @@
}
};
- private ModifyListener languageTextModifyListener = new ModifyListener() {
- public void modifyText(ModifyEvent e) {
- changeProperty(HumanTask.ASSIGNMENT_EXPRESSION_LANGUAGE, languageText.getText());
- }
- };
+// private ModifyListener languageTextModifyListener = new ModifyListener() {
+// public void modifyText(ModifyEvent e) {
+// changeProperty(HumanTask.ASSIGNMENT_EXPRESSION_LANGUAGE, languageText.getText());
+// }
+// };
protected void changeProperty(Object propertyId, Object newValue) {
if (commandStack == null || input == null) return;
@@ -161,24 +162,31 @@
protected void unhookListeners() {
typeCombo.removeSelectionListener(typeComboSelectionListener);
expressionText.removeModifyListener(expressionTextModifyListener);
- languageText.removeModifyListener(languageTextModifyListener);
+// languageText.removeModifyListener(languageTextModifyListener);
}
protected void hookListeners() {
typeCombo.addSelectionListener(typeComboSelectionListener);
expressionText.addModifyListener(expressionTextModifyListener);
- languageText.addModifyListener(languageTextModifyListener);
+// languageText.addModifyListener(languageTextModifyListener);
}
protected void updateValues() {
if (input == null) {
typeCombo.setText(HumanTask.NONE);
+ expressionText.setEnabled(false);
expressionText.setText("");
- languageText.setText("");
+// languageText.setText("");
} else {
typeCombo.setText(HumanTask.ASSIGNMENT_TYPES[(Integer)input.getPropertyValue(HumanTask.ASSIGNMENT_TYPE)]);
- expressionText.setText((String)input.getPropertyValue(HumanTask.ASSIGNMENT_EXPRESSION));
- languageText.setText((String)input.getPropertyValue(HumanTask.ASSIGNMENT_EXPRESSION_LANGUAGE));
+ if (HumanTask.NONE.equals(typeCombo.getText())) {
+ expressionText.setEnabled(false);
+ expressionText.setText("");
+ } else {
+ expressionText.setEnabled(true);
+ expressionText.setText((String)input.getPropertyValue(HumanTask.ASSIGNMENT_EXPRESSION));
+//
languageText.setText((String)input.getPropertyValue(HumanTask.ASSIGNMENT_EXPRESSION_LANGUAGE));
+ }
}
}