Author: koen.aers(a)jboss.com
Date: 2009-04-01 15:53:56 -0400 (Wed, 01 Apr 2009)
New Revision: 14412
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/JpdlDeserializer.java
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editor/JpdlEditor.java
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
Log:
serialization/deserialization of assignee, candidate-groups and swimlane expressions
Modified: trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/plugin.xml
===================================================================
--- trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/plugin.xml 2009-04-01 19:24:12 UTC (rev
14411)
+++ trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/plugin.xml 2009-04-01 19:53:56 UTC (rev
14412)
@@ -215,7 +215,7 @@
point="org.eclipse.ui.newWizards">
<category
id="org.jboss.tools.flow.jpdl4"
- name="jBPM">
+ name="JBoss jBPM">
</category>
<wizard
category="org.jboss.tools.flow.jpdl4"
@@ -268,12 +268,12 @@
<extension
point="org.eclipse.ui.views.properties.tabbed.propertySections">
<propertySections
contributorId="org.jboss.tools.flow.jpdl4.editor">
- <propertySection
+<!-- <propertySection
class="org.jboss.tools.flow.jpdl4.properties.AdvancedSection"
id="org.jboss.tools.jpdl4.advanced"
tab="org.jboss.tools.jpdl4.advanced">
<input type="java.lang.Object"/>
- </propertySection>
+ </propertySection> -->
<propertySection
class="org.jboss.tools.flow.jpdl4.properties.NameSection"
id="org.jboss.tools.jpdl4.name"
Modified:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editor/JpdlDeserializer.java
===================================================================
---
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editor/JpdlDeserializer.java 2009-04-01
19:24:12 UTC (rev 14411)
+++
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editor/JpdlDeserializer.java 2009-04-01
19:53:56 UTC (rev 14412)
@@ -16,6 +16,7 @@
import org.jboss.tools.flow.common.wrapper.NodeWrapper;
import org.jboss.tools.flow.common.wrapper.Wrapper;
import org.jboss.tools.flow.jpdl4.Logger;
+import org.jboss.tools.flow.jpdl4.model.HumanTask;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
@@ -60,6 +61,36 @@
}
}
+ class HumanTaskAttributeHandler extends NodeAttributeHandler {
+ public void deserializeAttributes(Wrapper wrapper, Element element) {
+ super.deserializeAttributes(wrapper, element);
+ String assignee = element.getAttribute(HumanTask.ASSIGNEE);
+ if (!"".equals(assignee)) {
+ wrapper.setPropertyValue(
+ HumanTask.ASSIGNMENT_TYPE,
+ HumanTask.getAssignmentTypesIndex(HumanTask.ASSIGNEE));
+ wrapper.setPropertyValue(HumanTask.ASSIGNMENT_EXPRESSION, assignee);
+ return;
+ }
+ String candidateGroups = element.getAttribute(HumanTask.CANDIDATE_GROUPS);
+ if (!"".equals(candidateGroups)) {
+ wrapper.setPropertyValue(
+ HumanTask.ASSIGNMENT_TYPE,
+ HumanTask.getAssignmentTypesIndex(HumanTask.CANDIDATE_GROUPS));
+ wrapper.setPropertyValue(HumanTask.ASSIGNMENT_EXPRESSION, candidateGroups);
+ return;
+ }
+ String swimlane = element.getAttribute(HumanTask.SWIMLANE);
+ if (!"".equals(swimlane)) {
+ wrapper.setPropertyValue(
+ HumanTask.ASSIGNMENT_TYPE,
+ HumanTask.getAssignmentTypesIndex(HumanTask.SWIMLANE));
+ wrapper.setPropertyValue(HumanTask.ASSIGNMENT_EXPRESSION, swimlane);
+ return;
+ }
+ }
+ }
+
class ConnectionAttributeHandler extends DefaultAttributeDeserializer {
public void deserializeAttributes(Wrapper wrapper, Element element) {
super.deserializeAttributes(wrapper, element);
@@ -187,13 +218,22 @@
if (wrapper instanceof FlowWrapper) {
return new ProcessAttributeHandler();
} else if (wrapper instanceof NodeWrapper) {
- return new NodeAttributeHandler();
+ return getNodeAttributeHandler(wrapper);
} else if (wrapper instanceof ConnectionWrapper) {
return new ConnectionAttributeHandler();
}
return null;
}
+ private AttributeDeserializer getNodeAttributeHandler(Wrapper wrapper) {
+ Object element = wrapper.getElement();
+ if (element instanceof HumanTask) {
+ return new HumanTaskAttributeHandler();
+ } else {
+ return new NodeAttributeHandler();
+ }
+ }
+
private ChildNodeDeserializer getChildNodeHandler(Wrapper wrapper) {
if (wrapper instanceof FlowWrapper) {
return new ProcessChildNodeHandler();
Modified:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editor/JpdlEditor.java
===================================================================
---
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editor/JpdlEditor.java 2009-04-01
19:24:12 UTC (rev 14411)
+++
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editor/JpdlEditor.java 2009-04-01
19:53:56 UTC (rev 14412)
@@ -89,9 +89,6 @@
getEditDomain().addViewer(treeViewer);
getSelectionSynchronizer().addViewer(treeViewer);
detailsPage = new DetailsPage(treeViewer) ;
- if (((Wrapper)getModel()).getElement() == null) {
- System.out.println("Ha!");
- }
treeViewer.setContents(((Wrapper)getModel()).getElement());
getSite().getSelectionProvider().addSelectionChangedListener(detailsPage);
}
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
19:24:12 UTC (rev 14411)
+++
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editor/JpdlSerializer.java 2009-04-01
19:53:56 UTC (rev 14412)
@@ -283,21 +283,21 @@
class HumanTaskSerializer extends ProcessNodeWrapperSerializer {
protected List<String> getAttributesToSave() {
List<String> result = super.getAttributesToSave();
- result.add("assignee");
- result.add("candidate-groups");
- result.add("swimlane");
+ result.add(HumanTask.ASSIGNEE);
+ result.add(HumanTask.CANDIDATE_GROUPS);
+ result.add(HumanTask.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);
+ if (HumanTask.ASSIGNEE.equals(attributeName)) {
+ appendExpression(HumanTask.ASSIGNEE, buffer, wrapper);
+ } else if (HumanTask.CANDIDATE_GROUPS.equals(attributeName)) {
+ appendExpression(HumanTask.CANDIDATE_GROUPS, buffer, wrapper);
+ } else if (HumanTask.SWIMLANE.equals(attributeName)) {
+ appendExpression(HumanTask.SWIMLANE, buffer, wrapper);
} else {
super.appendAttributeToSave(attributeName, buffer, wrapper);
}
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
19:24:12 UTC (rev 14411)
+++
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/model/HumanTask.java 2009-04-01
19:53:56 UTC (rev 14412)
@@ -24,6 +24,17 @@
ASSIGNEE, CANDIDATE_GROUPS, SWIMLANE, NONE
};
+ public static Integer getAssignmentTypesIndex(String assignmentType) {
+ Integer result = 0;
+ for (String type : ASSIGNMENT_TYPES) {
+ if (type.equals(assignmentType)) {
+ break;
+ }
+ result++;
+ }
+ return result;
+ }
+
private String assignmentType = NONE;
private String assignmentExpression = "";
private String assignmentExpressionLanguage = "";
@@ -64,17 +75,6 @@
return propertyDescriptors;
}
- private int getAssignmentTypesIndex(String assignmentType) {
- int result = 0;
- for (String type : ASSIGNMENT_TYPES) {
- if (type.equals(assignmentType)) {
- break;
- }
- result++;
- }
- return result;
- }
-
public Object getPropertyValue(Object id) {
if (ASSIGNMENT_TYPE.equals(id)) {
return getAssignmentTypesIndex(assignmentType);