[jboss-svn-commits] JBL Code SVN: r27464 - in labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse: icons/bpmn2 and 9 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Thu Jul 2 20:35:19 EDT 2009


Author: KrisVerlaenen
Date: 2009-07-02 20:35:19 -0400 (Thu, 02 Jul 2009)
New Revision: 27464

Added:
   labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/icons/bpmn2/
   labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/icons/bpmn2/activity.png
   labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/icons/bpmn2/end_event_cancel.png
   labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/icons/bpmn2/end_event_error.png
   labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/icons/bpmn2/end_terminate.png
   labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/icons/bpmn2/flow_sequence.png
   labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/icons/bpmn2/gateway_exclusive.png
   labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/icons/bpmn2/gateway_parallel.png
   labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/icons/bpmn2/large/
   labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/icons/bpmn2/large/end_cancel.png
   labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/icons/bpmn2/large/end_error.png
   labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/icons/bpmn2/large/end_terminate.png
   labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/icons/bpmn2/large/flow_sequence.png
   labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/icons/bpmn2/large/gateway_exclusive.png
   labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/icons/bpmn2/large/gateway_parallel.png
   labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/icons/bpmn2/large/start_empty.png
   labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/icons/bpmn2/start_empty.png
   labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/icons/bpmn2/task_empty.png
   labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/editor/editpart/figure/bpmn2/
   labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/editor/editpart/figure/bpmn2/BPMNActionNodeFigure.java
   labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/editor/editpart/figure/bpmn2/BPMNCompositeNodeFigure.java
   labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/editor/editpart/figure/bpmn2/BPMNEndNodeFigure.java
   labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/editor/editpart/figure/bpmn2/BPMNEventNodeFigure.java
   labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/editor/editpart/figure/bpmn2/BPMNFaultNodeFigure.java
   labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/editor/editpart/figure/bpmn2/BPMNJoinFigure.java
   labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/editor/editpart/figure/bpmn2/BPMNMilestoneFigure.java
   labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/editor/editpart/figure/bpmn2/BPMNRuleSetNodeFigure.java
   labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/editor/editpart/figure/bpmn2/BPMNSplitFigure.java
   labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/editor/editpart/figure/bpmn2/BPMNStartNodeFigure.java
   labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/editor/editpart/figure/bpmn2/BPMNStateFigure.java
   labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/editor/editpart/figure/bpmn2/BPMNSubFlowFigure.java
   labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/editor/editpart/figure/bpmn2/BPMNTimerNodeFigure.java
   labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/editor/editpart/figure/bpmn2/BPMNWorkItemNodeFigure.java
   labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/skin/BPMN2SkinProvider.java
Modified:
   labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/DroolsEclipsePlugin.java
   labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/editor/editpart/ActionEditPart.java
   labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/editor/editpart/CompositeNodeEditPart.java
   labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/editor/editpart/EndNodeEditPart.java
   labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/editor/editpart/EventNodeEditPart.java
   labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/editor/editpart/FaultNodeEditPart.java
   labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/editor/editpart/ForEachNodeEditPart.java
   labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/editor/editpart/JoinEditPart.java
   labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/editor/editpart/MilestoneEditPart.java
   labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/editor/editpart/RuleSetNodeEditPart.java
   labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/editor/editpart/SplitEditPart.java
   labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/editor/editpart/StartNodeEditPart.java
   labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/editor/editpart/StateNodeEditPart.java
   labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/editor/editpart/SubFlowEditPart.java
   labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/editor/editpart/TimerEditPart.java
   labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/editor/editpart/WorkItemEditPart.java
   labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/skin/BPMNSkinProvider.java
   labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/skin/DefaultSkinProvider.java
   labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/skin/SkinManager.java
   labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/skin/SkinProvider.java
   labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/preferences/DroolsPreferencePage.java
   labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/resources/org/drools/eclipse/flow/ruleflow/SampleRuleFlow.rf.template
   labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/resources/org/drools/eclipse/wizard/project/ruleflow.rf.template
Log:
JBRULES-2156: Improved BPMN2 skin

Added: labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/icons/bpmn2/activity.png
===================================================================
(Binary files differ)


Property changes on: labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/icons/bpmn2/activity.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/icons/bpmn2/end_event_cancel.png
===================================================================
(Binary files differ)


Property changes on: labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/icons/bpmn2/end_event_cancel.png
___________________________________________________________________
Name: svn:executable
   + *
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/icons/bpmn2/end_event_error.png
===================================================================
(Binary files differ)


Property changes on: labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/icons/bpmn2/end_event_error.png
___________________________________________________________________
Name: svn:executable
   + *
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/icons/bpmn2/end_terminate.png
===================================================================
(Binary files differ)


Property changes on: labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/icons/bpmn2/end_terminate.png
___________________________________________________________________
Name: svn:executable
   + *
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/icons/bpmn2/flow_sequence.png
===================================================================
(Binary files differ)


Property changes on: labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/icons/bpmn2/flow_sequence.png
___________________________________________________________________
Name: svn:executable
   + *
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/icons/bpmn2/gateway_exclusive.png
===================================================================
(Binary files differ)


Property changes on: labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/icons/bpmn2/gateway_exclusive.png
___________________________________________________________________
Name: svn:executable
   + *
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/icons/bpmn2/gateway_parallel.png
===================================================================
(Binary files differ)


Property changes on: labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/icons/bpmn2/gateway_parallel.png
___________________________________________________________________
Name: svn:executable
   + *
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/icons/bpmn2/large/end_cancel.png
===================================================================
(Binary files differ)


Property changes on: labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/icons/bpmn2/large/end_cancel.png
___________________________________________________________________
Name: svn:executable
   + *
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/icons/bpmn2/large/end_error.png
===================================================================
(Binary files differ)


Property changes on: labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/icons/bpmn2/large/end_error.png
___________________________________________________________________
Name: svn:executable
   + *
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/icons/bpmn2/large/end_terminate.png
===================================================================
(Binary files differ)


Property changes on: labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/icons/bpmn2/large/end_terminate.png
___________________________________________________________________
Name: svn:executable
   + *
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/icons/bpmn2/large/flow_sequence.png
===================================================================
(Binary files differ)


Property changes on: labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/icons/bpmn2/large/flow_sequence.png
___________________________________________________________________
Name: svn:executable
   + *
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/icons/bpmn2/large/gateway_exclusive.png
===================================================================
(Binary files differ)


Property changes on: labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/icons/bpmn2/large/gateway_exclusive.png
___________________________________________________________________
Name: svn:executable
   + *
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/icons/bpmn2/large/gateway_parallel.png
===================================================================
(Binary files differ)


Property changes on: labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/icons/bpmn2/large/gateway_parallel.png
___________________________________________________________________
Name: svn:executable
   + *
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/icons/bpmn2/large/start_empty.png
===================================================================
(Binary files differ)


Property changes on: labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/icons/bpmn2/large/start_empty.png
___________________________________________________________________
Name: svn:executable
   + *
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/icons/bpmn2/start_empty.png
===================================================================
(Binary files differ)


Property changes on: labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/icons/bpmn2/start_empty.png
___________________________________________________________________
Name: svn:executable
   + *
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/icons/bpmn2/task_empty.png
===================================================================
(Binary files differ)


Property changes on: labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/icons/bpmn2/task_empty.png
___________________________________________________________________
Name: svn:executable
   + *
Name: svn:mime-type
   + application/octet-stream

Modified: labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/DroolsEclipsePlugin.java
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/DroolsEclipsePlugin.java	2009-07-03 00:13:36 UTC (rev 27463)
+++ labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/DroolsEclipsePlugin.java	2009-07-03 00:35:19 UTC (rev 27464)
@@ -249,7 +249,7 @@
         store.setDefault( IDroolsConstants.DSL_RULE_EDITOR_COMPLETION_FULL_SENTENCES,
                           true );
         store.setDefault( IDroolsConstants.SKIN,
-                          "default" );
+                          "BPMN2" );
         store.setDefault( IDroolsConstants.ALLOW_NODE_CUSTOMIZATION,
         				  false );
         store.setDefault( IDroolsConstants.INTERNAL_API,

Modified: labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/editor/editpart/ActionEditPart.java
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/editor/editpart/ActionEditPart.java	2009-07-03 00:13:36 UTC (rev 27463)
+++ labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/editor/editpart/ActionEditPart.java	2009-07-03 00:35:19 UTC (rev 27464)
@@ -45,7 +45,12 @@
     
     protected IFigure createFigure() {
     	SkinProvider skinProvider = SkinManager.getInstance().getSkinProvider(SKIN);
-    	return skinProvider.createActionNodeFigure();
+    	IFigure result = skinProvider.createActionNodeFigure();
+    	Rectangle constraint = getElementWrapper().getConstraint();
+    	constraint.width = result.getSize().width;
+    	constraint.height = result.getSize().height;
+    	getElementWrapper().setConstraint(constraint);
+    	return result;
     }
     
     public void refreshVisuals() {

Modified: labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/editor/editpart/CompositeNodeEditPart.java
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/editor/editpart/CompositeNodeEditPart.java	2009-07-03 00:13:36 UTC (rev 27463)
+++ labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/editor/editpart/CompositeNodeEditPart.java	2009-07-03 00:35:19 UTC (rev 27464)
@@ -8,6 +8,7 @@
 import org.drools.eclipse.preferences.IDroolsConstants;
 import org.eclipse.draw2d.IFigure;
 import org.eclipse.draw2d.LineBorder;
+import org.eclipse.draw2d.geometry.Rectangle;
 
 public class CompositeNodeEditPart extends ElementContainerEditPart {
 	
@@ -16,7 +17,12 @@
 	
     protected IFigure createFigure() {
     	SkinProvider skinProvider = SkinManager.getInstance().getSkinProvider(SKIN);
-    	return skinProvider.createCompositeNodeFigure();
+    	IFigure result = skinProvider.createCompositeNodeFigure();
+    	Rectangle constraint = getElementWrapper().getConstraint();
+    	constraint.width = result.getSize().width;
+    	constraint.height = result.getSize().height;
+    	getElementWrapper().setConstraint(constraint);
+    	return result;
     }
     
 //    public ConnectionAnchor getSourceConnectionAnchor(Request request) {

Modified: labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/editor/editpart/EndNodeEditPart.java
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/editor/editpart/EndNodeEditPart.java	2009-07-03 00:13:36 UTC (rev 27463)
+++ labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/editor/editpart/EndNodeEditPart.java	2009-07-03 00:35:19 UTC (rev 27464)
@@ -23,6 +23,7 @@
 import org.drools.eclipse.preferences.IDroolsConstants;
 import org.eclipse.draw2d.IFigure;
 import org.eclipse.draw2d.LineBorder;
+import org.eclipse.draw2d.geometry.Rectangle;
 import org.eclipse.jface.resource.ImageDescriptor;
 import org.eclipse.swt.graphics.Image;
 
@@ -38,7 +39,12 @@
 	
     protected IFigure createFigure() {
     	SkinProvider skinProvider = SkinManager.getInstance().getSkinProvider(SKIN);
-    	return skinProvider.createEndNodeFigure();
+    	IFigure result = skinProvider.createEndNodeFigure();
+    	Rectangle constraint = getElementWrapper().getConstraint();
+    	constraint.width = result.getSize().width;
+    	constraint.height = result.getSize().height;
+    	getElementWrapper().setConstraint(constraint);
+    	return result;
     }
 
     public static class EndNodeFigure extends AbstractElementFigure {

Modified: labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/editor/editpart/EventNodeEditPart.java
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/editor/editpart/EventNodeEditPart.java	2009-07-03 00:13:36 UTC (rev 27463)
+++ labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/editor/editpart/EventNodeEditPart.java	2009-07-03 00:35:19 UTC (rev 27464)
@@ -23,6 +23,7 @@
 import org.drools.eclipse.preferences.IDroolsConstants;
 import org.eclipse.draw2d.IFigure;
 import org.eclipse.draw2d.LineBorder;
+import org.eclipse.draw2d.geometry.Rectangle;
 import org.eclipse.jface.resource.ImageDescriptor;
 import org.eclipse.swt.graphics.Image;
 
@@ -38,7 +39,12 @@
 	
     protected IFigure createFigure() {
     	SkinProvider skinProvider = SkinManager.getInstance().getSkinProvider(SKIN);
-    	return skinProvider.createEventNodeFigure();
+    	IFigure result = skinProvider.createEventNodeFigure();
+    	Rectangle constraint = getElementWrapper().getConstraint();
+    	constraint.width = result.getSize().width;
+    	constraint.height = result.getSize().height;
+    	getElementWrapper().setConstraint(constraint);
+    	return result;
     }
 
     public static class EventNodeFigure extends AbstractElementFigure {

Modified: labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/editor/editpart/FaultNodeEditPart.java
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/editor/editpart/FaultNodeEditPart.java	2009-07-03 00:13:36 UTC (rev 27463)
+++ labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/editor/editpart/FaultNodeEditPart.java	2009-07-03 00:35:19 UTC (rev 27464)
@@ -44,7 +44,12 @@
     
     protected IFigure createFigure() {
     	SkinProvider skinProvider = SkinManager.getInstance().getSkinProvider(SKIN);
-    	return skinProvider.createFaultNodeFigure();
+    	IFigure result = skinProvider.createFaultNodeFigure();
+    	Rectangle constraint = getElementWrapper().getConstraint();
+    	constraint.width = result.getSize().width;
+    	constraint.height = result.getSize().height;
+    	getElementWrapper().setConstraint(constraint);
+    	return result;
     }
     
     public static class FaultNodeFigure extends AbstractElementFigure {

Modified: labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/editor/editpart/ForEachNodeEditPart.java
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/editor/editpart/ForEachNodeEditPart.java	2009-07-03 00:13:36 UTC (rev 27463)
+++ labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/editor/editpart/ForEachNodeEditPart.java	2009-07-03 00:35:19 UTC (rev 27464)
@@ -15,7 +15,13 @@
  * limitations under the License.
  */
 
+import org.drools.eclipse.DroolsEclipsePlugin;
 import org.drools.eclipse.flow.common.editor.editpart.ElementContainerEditPart;
+import org.drools.eclipse.flow.ruleflow.skin.SkinManager;
+import org.drools.eclipse.flow.ruleflow.skin.SkinProvider;
+import org.drools.eclipse.preferences.IDroolsConstants;
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.geometry.Rectangle;
 
 /**
  * EditPart for a ForEach node.
@@ -24,6 +30,19 @@
  */
 public class ForEachNodeEditPart extends ElementContainerEditPart {
 
+	private String SKIN =
+		DroolsEclipsePlugin.getDefault().getPreferenceStore().getString(IDroolsConstants.SKIN);
+
+    protected IFigure createFigure() {
+    	SkinProvider skinProvider = SkinManager.getInstance().getSkinProvider(SKIN);
+    	IFigure result = skinProvider.createForEachNodeFigure();
+    	Rectangle constraint = getElementWrapper().getConstraint();
+    	constraint.width = result.getSize().width;
+    	constraint.height = result.getSize().height;
+    	getElementWrapper().setConstraint(constraint);
+    	return result;
+    }
+	
 //    public ConnectionAnchor getSourceConnectionAnchor(Request request) {
 //    	Point p = ((DropRequest) request).getLocation();
 //    	Rectangle figureBounds = getFigure().getBounds();

Modified: labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/editor/editpart/JoinEditPart.java
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/editor/editpart/JoinEditPart.java	2009-07-03 00:13:36 UTC (rev 27463)
+++ labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/editor/editpart/JoinEditPart.java	2009-07-03 00:35:19 UTC (rev 27464)
@@ -47,7 +47,12 @@
     
     protected IFigure createFigure() {
     	SkinProvider skinProvider = SkinManager.getInstance().getSkinProvider(SKIN);
-    	return skinProvider.createJoinFigure();
+    	IFigure result = skinProvider.createJoinFigure();
+    	Rectangle constraint = getElementWrapper().getConstraint();
+    	constraint.width = result.getSize().width;
+    	constraint.height = result.getSize().height;
+    	getElementWrapper().setConstraint(constraint);
+    	return result;
     }
 
     public void modelChanged(ModelEvent event) {

Modified: labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/editor/editpart/MilestoneEditPart.java
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/editor/editpart/MilestoneEditPart.java	2009-07-03 00:13:36 UTC (rev 27463)
+++ labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/editor/editpart/MilestoneEditPart.java	2009-07-03 00:35:19 UTC (rev 27464)
@@ -44,7 +44,12 @@
     
     protected IFigure createFigure() {
     	SkinProvider skinProvider = SkinManager.getInstance().getSkinProvider(SKIN);
-    	return skinProvider.createMilestoneFigure();
+    	IFigure result = skinProvider.createMilestoneFigure();
+    	Rectangle constraint = getElementWrapper().getConstraint();
+    	constraint.width = result.getSize().width;
+    	constraint.height = result.getSize().height;
+    	getElementWrapper().setConstraint(constraint);
+    	return result;
     }
     
     public static class MilestoneFigure extends AbstractElementFigure {

Modified: labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/editor/editpart/RuleSetNodeEditPart.java
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/editor/editpart/RuleSetNodeEditPart.java	2009-07-03 00:13:36 UTC (rev 27463)
+++ labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/editor/editpart/RuleSetNodeEditPart.java	2009-07-03 00:35:19 UTC (rev 27464)
@@ -42,7 +42,12 @@
     
     protected IFigure createFigure() {
     	SkinProvider skinProvider = SkinManager.getInstance().getSkinProvider(SKIN);
-    	return skinProvider.createRuleSetNodeFigure();
+    	IFigure result = skinProvider.createRuleSetNodeFigure();
+    	Rectangle constraint = getElementWrapper().getConstraint();
+    	constraint.width = result.getSize().width;
+    	constraint.height = result.getSize().height;
+    	getElementWrapper().setConstraint(constraint);
+    	return result;
     }
     
     public static class RuleSetNodeFigure extends AbstractElementFigure {

Modified: labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/editor/editpart/SplitEditPart.java
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/editor/editpart/SplitEditPart.java	2009-07-03 00:13:36 UTC (rev 27463)
+++ labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/editor/editpart/SplitEditPart.java	2009-07-03 00:35:19 UTC (rev 27464)
@@ -45,7 +45,12 @@
 	
     protected IFigure createFigure() {
     	SkinProvider skinProvider = SkinManager.getInstance().getSkinProvider(SKIN);
-    	return skinProvider.createSplitFigure();
+    	IFigure result = skinProvider.createSplitFigure();
+    	Rectangle constraint = getElementWrapper().getConstraint();
+    	constraint.width = result.getSize().width;
+    	constraint.height = result.getSize().height;
+    	getElementWrapper().setConstraint(constraint);
+    	return result;
     }
 
     public void modelChanged(ModelEvent event) {

Modified: labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/editor/editpart/StartNodeEditPart.java
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/editor/editpart/StartNodeEditPart.java	2009-07-03 00:13:36 UTC (rev 27463)
+++ labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/editor/editpart/StartNodeEditPart.java	2009-07-03 00:35:19 UTC (rev 27464)
@@ -23,6 +23,7 @@
 import org.drools.eclipse.preferences.IDroolsConstants;
 import org.eclipse.draw2d.IFigure;
 import org.eclipse.draw2d.LineBorder;
+import org.eclipse.draw2d.geometry.Rectangle;
 import org.eclipse.jface.resource.ImageDescriptor;
 import org.eclipse.swt.graphics.Image;
 
@@ -38,7 +39,12 @@
 	
     protected IFigure createFigure() {
     	SkinProvider skinProvider = SkinManager.getInstance().getSkinProvider(SKIN);
-    	return skinProvider.createStartNodeFigure();
+    	IFigure result = skinProvider.createStartNodeFigure();
+    	Rectangle constraint = getElementWrapper().getConstraint();
+    	constraint.width = result.getSize().width;
+    	constraint.height = result.getSize().height;
+    	getElementWrapper().setConstraint(constraint);
+    	return result;
     }
 
     public static class StartNodeFigure extends AbstractElementFigure {

Modified: labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/editor/editpart/StateNodeEditPart.java
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/editor/editpart/StateNodeEditPart.java	2009-07-03 00:13:36 UTC (rev 27463)
+++ labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/editor/editpart/StateNodeEditPart.java	2009-07-03 00:35:19 UTC (rev 27464)
@@ -44,7 +44,12 @@
     
     protected IFigure createFigure() {
     	SkinProvider skinProvider = SkinManager.getInstance().getSkinProvider(SKIN);
-    	return skinProvider.createStateFigure();
+    	IFigure result = skinProvider.createStateFigure();
+    	Rectangle constraint = getElementWrapper().getConstraint();
+    	constraint.width = result.getSize().width;
+    	constraint.height = result.getSize().height;
+    	getElementWrapper().setConstraint(constraint);
+    	return result;
     }
     
     public static class StateFigure extends AbstractElementFigure {

Modified: labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/editor/editpart/SubFlowEditPart.java
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/editor/editpart/SubFlowEditPart.java	2009-07-03 00:13:36 UTC (rev 27463)
+++ labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/editor/editpart/SubFlowEditPart.java	2009-07-03 00:35:19 UTC (rev 27464)
@@ -44,7 +44,12 @@
     
     protected IFigure createFigure() {
     	SkinProvider skinProvider = SkinManager.getInstance().getSkinProvider(SKIN);
-    	return skinProvider.createSubFlowFigure();
+    	IFigure result = skinProvider.createSubFlowFigure();
+    	Rectangle constraint = getElementWrapper().getConstraint();
+    	constraint.width = result.getSize().width;
+    	constraint.height = result.getSize().height;
+    	getElementWrapper().setConstraint(constraint);
+    	return result;
     }
     
     public static class SubFlowNodeFigure extends AbstractElementFigure {

Modified: labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/editor/editpart/TimerEditPart.java
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/editor/editpart/TimerEditPart.java	2009-07-03 00:13:36 UTC (rev 27463)
+++ labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/editor/editpart/TimerEditPart.java	2009-07-03 00:35:19 UTC (rev 27464)
@@ -42,7 +42,12 @@
 
 	protected IFigure createFigure() {
     	SkinProvider skinProvider = SkinManager.getInstance().getSkinProvider(SKIN);
-    	return skinProvider.createTimerNodeFigure();
+    	IFigure result = skinProvider.createTimerNodeFigure();
+    	Rectangle constraint = getElementWrapper().getConstraint();
+    	constraint.width = result.getSize().width;
+    	constraint.height = result.getSize().height;
+    	getElementWrapper().setConstraint(constraint);
+    	return result;
     }
     
     public static class TimerNodeFigure extends AbstractElementFigure {

Modified: labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/editor/editpart/WorkItemEditPart.java
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/editor/editpart/WorkItemEditPart.java	2009-07-03 00:13:36 UTC (rev 27463)
+++ labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/editor/editpart/WorkItemEditPart.java	2009-07-03 00:35:19 UTC (rev 27464)
@@ -40,10 +40,8 @@
 import org.eclipse.draw2d.geometry.Dimension;
 import org.eclipse.draw2d.geometry.Point;
 import org.eclipse.draw2d.geometry.Rectangle;
-import org.eclipse.gef.Request;
 import org.eclipse.gef.commands.Command;
 import org.eclipse.gef.commands.CommandStack;
-import org.eclipse.gef.requests.DropRequest;
 import org.eclipse.jdt.core.IJavaProject;
 import org.eclipse.jface.resource.ImageDescriptor;
 import org.eclipse.swt.graphics.Color;
@@ -67,6 +65,10 @@
     protected IFigure createFigure() {
     	SkinProvider skinProvider = SkinManager.getInstance().getSkinProvider(SKIN);
     	WorkItemFigureInterface figure = skinProvider.createWorkItemFigure();
+    	Rectangle constraint = getElementWrapper().getConstraint();
+    	constraint.width = figure.getSize().width;
+    	constraint.height = figure.getSize().height;
+    	getElementWrapper().setConstraint(constraint);
         String icon = null;
         WorkDefinition workDefinition = getWorkDefinition();
         if (workDefinition instanceof WorkDefinitionExtension) {

Added: labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/editor/editpart/figure/bpmn2/BPMNActionNodeFigure.java
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/editor/editpart/figure/bpmn2/BPMNActionNodeFigure.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/editor/editpart/figure/bpmn2/BPMNActionNodeFigure.java	2009-07-03 00:35:19 UTC (rev 27464)
@@ -0,0 +1,46 @@
+package org.drools.eclipse.flow.ruleflow.editor.editpart.figure.bpmn2;
+
+import org.drools.eclipse.DroolsEclipsePlugin;
+import org.drools.eclipse.flow.common.editor.editpart.figure.AbstractElementFigure;
+import org.eclipse.draw2d.RoundedRectangle;
+import org.eclipse.draw2d.geometry.Dimension;
+import org.eclipse.draw2d.geometry.Rectangle;
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.widgets.Display;
+
+public class BPMNActionNodeFigure extends AbstractElementFigure {
+    
+    private static final Image ICON = ImageDescriptor.createFromURL(
+		DroolsEclipsePlugin.getDefault().getBundle().getEntry("icons/action.gif")).createImage();
+        
+    private static final Color color = new Color(Display.getCurrent(), 255, 255, 225);
+
+    private RoundedRectangle rectangle;
+    
+    public BPMNActionNodeFigure() {
+    	setSize(80, 48);
+    }
+    
+    protected void customizeFigure() {
+        rectangle = new RoundedRectangle();
+        rectangle.setCornerDimensions(new Dimension(25, 25));
+        rectangle.setBackgroundColor(color);
+        add(rectangle, 0);
+        rectangle.setBounds(getBounds());
+        setSelected(false);
+        setIcon(ICON);
+    }
+    
+    public void setBounds(Rectangle rectangle) {
+        super.setBounds(rectangle);
+        this.rectangle.setBounds(rectangle);
+    }
+    
+    public void setSelected(boolean b) {
+        super.setSelected(b);
+        rectangle.setLineWidth(b ? 3 : 1);
+        repaint();
+    }
+}

Added: labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/editor/editpart/figure/bpmn2/BPMNCompositeNodeFigure.java
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/editor/editpart/figure/bpmn2/BPMNCompositeNodeFigure.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/editor/editpart/figure/bpmn2/BPMNCompositeNodeFigure.java	2009-07-03 00:35:19 UTC (rev 27464)
@@ -0,0 +1,17 @@
+package org.drools.eclipse.flow.ruleflow.editor.editpart.figure.bpmn2;
+
+import org.drools.eclipse.flow.common.editor.editpart.figure.ElementContainerFigure;
+import org.eclipse.draw2d.LineBorder;
+
+public class BPMNCompositeNodeFigure extends ElementContainerFigure {
+	
+    public BPMNCompositeNodeFigure() {
+        setBorder(new LineBorder(1));
+    }
+    
+    public void setSelected(boolean b) {
+    	super.setSelected(b);
+        ((LineBorder) getBorder()).setWidth(b ? 3 : 1);
+    }
+    
+}
\ No newline at end of file

Added: labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/editor/editpart/figure/bpmn2/BPMNEndNodeFigure.java
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/editor/editpart/figure/bpmn2/BPMNEndNodeFigure.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/editor/editpart/figure/bpmn2/BPMNEndNodeFigure.java	2009-07-03 00:35:19 UTC (rev 27464)
@@ -0,0 +1,37 @@
+package org.drools.eclipse.flow.ruleflow.editor.editpart.figure.bpmn2;
+
+import org.drools.eclipse.DroolsEclipsePlugin;
+import org.drools.eclipse.flow.common.editor.editpart.figure.AbstractElementFigure;
+import org.eclipse.draw2d.LineBorder;
+import org.eclipse.draw2d.geometry.Rectangle;
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.swt.graphics.Image;
+
+public class BPMNEndNodeFigure extends AbstractElementFigure {
+    
+    private static final Image icon = ImageDescriptor.createFromURL(
+    	DroolsEclipsePlugin.getDefault().getBundle().getEntry("icons/bpmn2/large/end_terminate.png")).createImage();
+        
+    public BPMNEndNodeFigure() {
+    	setSize(48, 48);
+    }
+    
+    public void setText(String text) {
+    }
+    
+    public void setBounds(Rectangle r) {
+    	r.setSize(48, 48);
+    	super.setBounds(r);
+    }
+    
+    protected void customizeFigure() {
+        setIcon(icon);
+    }
+    
+    public void setSelected(boolean b) {
+        super.setSelected(b);
+        ((LineBorder) getBorder()).setWidth(b ? 3 : 0);
+        repaint();
+    }
+    
+}

Added: labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/editor/editpart/figure/bpmn2/BPMNEventNodeFigure.java
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/editor/editpart/figure/bpmn2/BPMNEventNodeFigure.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/editor/editpart/figure/bpmn2/BPMNEventNodeFigure.java	2009-07-03 00:35:19 UTC (rev 27464)
@@ -0,0 +1,30 @@
+package org.drools.eclipse.flow.ruleflow.editor.editpart.figure.bpmn2;
+
+import org.drools.eclipse.DroolsEclipsePlugin;
+import org.drools.eclipse.flow.common.editor.editpart.figure.AbstractElementFigure;
+import org.eclipse.draw2d.geometry.Rectangle;
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.swt.graphics.Image;
+
+public class BPMNEventNodeFigure  extends AbstractElementFigure {
+    
+    private static final Image icon = ImageDescriptor.createFromURL(
+		DroolsEclipsePlugin.getDefault().getBundle().getEntry("icons/bpmn/large/intermediate_message.png")).createImage();
+
+    public BPMNEventNodeFigure() {
+    	setSize(48, 48);
+    }
+    
+    public void setBounds(Rectangle r) {
+    	r.setSize(48, 48);
+    	super.setBounds(r);
+    }
+    
+    protected void customizeFigure() {
+        setIcon(icon);
+    }
+    
+    public void setText(String text) {
+    }
+    
+}

Added: labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/editor/editpart/figure/bpmn2/BPMNFaultNodeFigure.java
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/editor/editpart/figure/bpmn2/BPMNFaultNodeFigure.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/editor/editpart/figure/bpmn2/BPMNFaultNodeFigure.java	2009-07-03 00:35:19 UTC (rev 27464)
@@ -0,0 +1,37 @@
+package org.drools.eclipse.flow.ruleflow.editor.editpart.figure.bpmn2;
+
+import org.drools.eclipse.DroolsEclipsePlugin;
+import org.drools.eclipse.flow.common.editor.editpart.figure.AbstractElementFigure;
+import org.eclipse.draw2d.LineBorder;
+import org.eclipse.draw2d.geometry.Rectangle;
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.swt.graphics.Image;
+
+public class BPMNFaultNodeFigure extends AbstractElementFigure {
+    
+    private static final Image icon = ImageDescriptor.createFromURL(
+    	DroolsEclipsePlugin.getDefault().getBundle().getEntry("icons/bpmn/large/intermediate_error_10.png")).createImage();
+        
+    public BPMNFaultNodeFigure() {
+    	setSize(48, 48);
+    }
+    
+    public void setText(String text) {
+    }
+    
+    public void setBounds(Rectangle r) {
+    	r.setSize(48, 48);
+    	super.setBounds(r);
+    }
+    
+    protected void customizeFigure() {
+        setIcon(icon);
+    }
+    
+    public void setSelected(boolean b) {
+        super.setSelected(b);
+        ((LineBorder) getBorder()).setWidth(b ? 3 : 0);
+        repaint();
+    }
+    
+}

Added: labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/editor/editpart/figure/bpmn2/BPMNJoinFigure.java
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/editor/editpart/figure/bpmn2/BPMNJoinFigure.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/editor/editpart/figure/bpmn2/BPMNJoinFigure.java	2009-07-03 00:35:19 UTC (rev 27464)
@@ -0,0 +1,46 @@
+package org.drools.eclipse.flow.ruleflow.editor.editpart.figure.bpmn2;
+
+import org.drools.eclipse.DroolsEclipsePlugin;
+import org.drools.eclipse.flow.common.editor.editpart.figure.AbstractElementFigure;
+import org.drools.eclipse.flow.ruleflow.editor.editpart.JoinEditPart.JoinFigureInterface;
+import org.drools.workflow.core.node.Join;
+import org.eclipse.draw2d.geometry.Rectangle;
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.swt.graphics.Image;
+
+public class BPMNJoinFigure extends AbstractElementFigure implements JoinFigureInterface {
+    
+    private static final Image ICON_COMPLEX = ImageDescriptor.createFromURL(
+		DroolsEclipsePlugin.getDefault().getBundle().getEntry("icons/bpmn/large/gateway_complex.png")).createImage();
+    private static final Image ICON_AND = ImageDescriptor.createFromURL(
+		DroolsEclipsePlugin.getDefault().getBundle().getEntry("icons/bpmn2/large/gateway_parallel.png")).createImage();
+    private static final Image ICON_XOR = ImageDescriptor.createFromURL(
+		DroolsEclipsePlugin.getDefault().getBundle().getEntry("icons/bpmn2/large/gateway_exclusive.png")).createImage();
+                
+	public BPMNJoinFigure() {
+		super.setSize(49, 49);
+	}
+	
+    public void setText(String text) {
+    }
+    
+    public void setBounds(Rectangle r) {
+    	r.setSize(49, 49);
+    	super.setBounds(r);
+    }
+    
+    public void setType(int type) {
+    	if (type == Join.TYPE_AND) {
+    		setIcon(ICON_AND);
+    	} else if (type == Join.TYPE_XOR) {
+    		setIcon(ICON_XOR);
+    	} else {
+    		setIcon(ICON_COMPLEX);
+    	}
+    }
+    
+    protected void customizeFigure() {
+        setIcon(ICON_COMPLEX);
+    }
+    
+}

Added: labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/editor/editpart/figure/bpmn2/BPMNMilestoneFigure.java
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/editor/editpart/figure/bpmn2/BPMNMilestoneFigure.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/editor/editpart/figure/bpmn2/BPMNMilestoneFigure.java	2009-07-03 00:35:19 UTC (rev 27464)
@@ -0,0 +1,46 @@
+package org.drools.eclipse.flow.ruleflow.editor.editpart.figure.bpmn2;
+
+import org.drools.eclipse.DroolsEclipsePlugin;
+import org.drools.eclipse.flow.common.editor.editpart.figure.AbstractElementFigure;
+import org.eclipse.draw2d.RoundedRectangle;
+import org.eclipse.draw2d.geometry.Dimension;
+import org.eclipse.draw2d.geometry.Rectangle;
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.widgets.Display;
+
+public class BPMNMilestoneFigure extends AbstractElementFigure {
+    
+    private static final Image ICON = ImageDescriptor.createFromURL(
+		DroolsEclipsePlugin.getDefault().getBundle().getEntry("icons/question.gif")).createImage();
+        
+    private static final Color color = new Color(Display.getCurrent(), 255, 255, 225);
+
+    private RoundedRectangle rectangle;
+    
+    public BPMNMilestoneFigure() {
+    	setSize(80, 48);
+    }
+    
+    protected void customizeFigure() {
+        rectangle = new RoundedRectangle();
+        rectangle.setCornerDimensions(new Dimension(25, 25));
+        rectangle.setBackgroundColor(color);
+        add(rectangle, 0);
+        rectangle.setBounds(getBounds());
+        setSelected(false);
+        setIcon(ICON);
+    }
+    
+    public void setBounds(Rectangle rectangle) {
+        super.setBounds(rectangle);
+        this.rectangle.setBounds(rectangle);
+    }
+    
+    public void setSelected(boolean b) {
+        super.setSelected(b);
+        rectangle.setLineWidth(b ? 3 : 1);
+        repaint();
+    }
+}

Added: labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/editor/editpart/figure/bpmn2/BPMNRuleSetNodeFigure.java
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/editor/editpart/figure/bpmn2/BPMNRuleSetNodeFigure.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/editor/editpart/figure/bpmn2/BPMNRuleSetNodeFigure.java	2009-07-03 00:35:19 UTC (rev 27464)
@@ -0,0 +1,39 @@
+package org.drools.eclipse.flow.ruleflow.editor.editpart.figure.bpmn2;
+
+import org.drools.eclipse.flow.common.editor.editpart.figure.AbstractElementFigure;
+import org.eclipse.draw2d.RoundedRectangle;
+import org.eclipse.draw2d.geometry.Dimension;
+import org.eclipse.draw2d.geometry.Rectangle;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.widgets.Display;
+
+public class BPMNRuleSetNodeFigure extends AbstractElementFigure {
+    
+    private static final Color color = new Color(Display.getCurrent(), 255, 255, 225);
+
+    private RoundedRectangle rectangle;
+    
+    public BPMNRuleSetNodeFigure() {
+    	setSize(80, 48);
+    }
+    
+    protected void customizeFigure() {
+        rectangle = new RoundedRectangle();
+        rectangle.setCornerDimensions(new Dimension(25, 25));
+        rectangle.setBackgroundColor(color);
+        add(rectangle, 0);
+        rectangle.setBounds(getBounds());
+        setSelected(false);
+    }
+    
+    public void setBounds(Rectangle rectangle) {
+        super.setBounds(rectangle);
+        this.rectangle.setBounds(rectangle);
+    }
+    
+    public void setSelected(boolean b) {
+        super.setSelected(b);
+        rectangle.setLineWidth(b ? 3 : 1);
+        repaint();
+    }
+}

Added: labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/editor/editpart/figure/bpmn2/BPMNSplitFigure.java
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/editor/editpart/figure/bpmn2/BPMNSplitFigure.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/editor/editpart/figure/bpmn2/BPMNSplitFigure.java	2009-07-03 00:35:19 UTC (rev 27464)
@@ -0,0 +1,50 @@
+package org.drools.eclipse.flow.ruleflow.editor.editpart.figure.bpmn2;
+
+import org.drools.eclipse.DroolsEclipsePlugin;
+import org.drools.eclipse.flow.common.editor.editpart.figure.AbstractElementFigure;
+import org.drools.eclipse.flow.ruleflow.editor.editpart.SplitEditPart.SplitFigureInterface;
+import org.drools.workflow.core.node.Split;
+import org.eclipse.draw2d.geometry.Rectangle;
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.swt.graphics.Image;
+
+public class BPMNSplitFigure extends AbstractElementFigure implements SplitFigureInterface {
+    
+    private static final Image ICON_COMPLEX = ImageDescriptor.createFromURL(
+		DroolsEclipsePlugin.getDefault().getBundle().getEntry("icons/bpmn/large/gateway_complex.png")).createImage();
+    private static final Image ICON_AND = ImageDescriptor.createFromURL(
+		DroolsEclipsePlugin.getDefault().getBundle().getEntry("icons/bpmn2/large/gateway_parallel.png")).createImage();
+    private static final Image ICON_XOR = ImageDescriptor.createFromURL(
+		DroolsEclipsePlugin.getDefault().getBundle().getEntry("icons/bpmn2/large/gateway_exclusive.png")).createImage();
+    private static final Image ICON_OR = ImageDescriptor.createFromURL(
+		DroolsEclipsePlugin.getDefault().getBundle().getEntry("icons/bpmn/large/gateway_databased_inclusive.png")).createImage();
+            
+	public BPMNSplitFigure() {
+		super.setSize(49, 49);
+	}
+	
+    public void setText(String text) {
+    }
+    
+    public void setBounds(Rectangle r) {
+    	r.setSize(49, 49);
+    	super.setBounds(r);
+    }
+    
+    public void setType(int type) {
+    	if (type == Split.TYPE_AND) {
+    		setIcon(ICON_AND);
+    	} else if (type == Split.TYPE_XOR) {
+    		setIcon(ICON_XOR);
+    	} else if (type == Split.TYPE_OR) {
+    		setIcon(ICON_OR);
+    	} else {
+    		setIcon(ICON_COMPLEX);
+    	}
+    }
+    
+    protected void customizeFigure() {
+        setIcon(ICON_COMPLEX);
+    }
+    
+}
\ No newline at end of file

Added: labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/editor/editpart/figure/bpmn2/BPMNStartNodeFigure.java
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/editor/editpart/figure/bpmn2/BPMNStartNodeFigure.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/editor/editpart/figure/bpmn2/BPMNStartNodeFigure.java	2009-07-03 00:35:19 UTC (rev 27464)
@@ -0,0 +1,37 @@
+package org.drools.eclipse.flow.ruleflow.editor.editpart.figure.bpmn2;
+
+import org.drools.eclipse.DroolsEclipsePlugin;
+import org.drools.eclipse.flow.common.editor.editpart.figure.AbstractElementFigure;
+import org.eclipse.draw2d.LineBorder;
+import org.eclipse.draw2d.geometry.Rectangle;
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.swt.graphics.Image;
+
+public class BPMNStartNodeFigure  extends AbstractElementFigure {
+    
+    private static final Image icon = ImageDescriptor.createFromURL(
+		DroolsEclipsePlugin.getDefault().getBundle().getEntry("icons/bpmn2/large/start_empty.png")).createImage();;
+    
+    public BPMNStartNodeFigure() {
+	     setSize(48, 48);
+    }
+		
+    public void setText(String text) {
+    }
+    
+    public void setBounds(Rectangle r) {
+    	r.setSize(48, 48);
+    	super.setBounds(r);
+    }
+    
+   protected void customizeFigure() {
+        setIcon(icon);
+    }
+    
+    public void setSelected(boolean b) {
+        super.setSelected(b);
+        ((LineBorder) getBorder()).setWidth(b ? 3 : 1);
+        repaint();
+    }
+    
+}

Added: labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/editor/editpart/figure/bpmn2/BPMNStateFigure.java
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/editor/editpart/figure/bpmn2/BPMNStateFigure.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/editor/editpart/figure/bpmn2/BPMNStateFigure.java	2009-07-03 00:35:19 UTC (rev 27464)
@@ -0,0 +1,46 @@
+package org.drools.eclipse.flow.ruleflow.editor.editpart.figure.bpmn2;
+
+import org.drools.eclipse.DroolsEclipsePlugin;
+import org.drools.eclipse.flow.common.editor.editpart.figure.AbstractElementFigure;
+import org.eclipse.draw2d.RoundedRectangle;
+import org.eclipse.draw2d.geometry.Dimension;
+import org.eclipse.draw2d.geometry.Rectangle;
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.widgets.Display;
+
+public class BPMNStateFigure extends AbstractElementFigure {
+    
+    private static final Image ICON = ImageDescriptor.createFromURL(
+		DroolsEclipsePlugin.getDefault().getBundle().getEntry("icons/question.gif")).createImage();
+        
+    private static final Color color = new Color(Display.getCurrent(), 255, 255, 225);
+
+    private RoundedRectangle rectangle;
+    
+    public BPMNStateFigure() {
+    	setSize(80, 48);
+    }
+    
+    protected void customizeFigure() {
+        rectangle = new RoundedRectangle();
+        rectangle.setCornerDimensions(new Dimension(25, 25));
+        rectangle.setBackgroundColor(color);
+        add(rectangle, 0);
+        rectangle.setBounds(getBounds());
+        setSelected(false);
+        setIcon(ICON);
+    }
+    
+    public void setBounds(Rectangle rectangle) {
+        super.setBounds(rectangle);
+        this.rectangle.setBounds(rectangle);
+    }
+    
+    public void setSelected(boolean b) {
+        super.setSelected(b);
+        rectangle.setLineWidth(b ? 3 : 1);
+        repaint();
+    }
+}

Added: labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/editor/editpart/figure/bpmn2/BPMNSubFlowFigure.java
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/editor/editpart/figure/bpmn2/BPMNSubFlowFigure.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/editor/editpart/figure/bpmn2/BPMNSubFlowFigure.java	2009-07-03 00:35:19 UTC (rev 27464)
@@ -0,0 +1,46 @@
+package org.drools.eclipse.flow.ruleflow.editor.editpart.figure.bpmn2;
+
+import org.drools.eclipse.DroolsEclipsePlugin;
+import org.drools.eclipse.flow.common.editor.editpart.figure.AbstractElementFigure;
+import org.eclipse.draw2d.RoundedRectangle;
+import org.eclipse.draw2d.geometry.Dimension;
+import org.eclipse.draw2d.geometry.Rectangle;
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.widgets.Display;
+
+public class BPMNSubFlowFigure extends AbstractElementFigure {
+    
+    private static final Image ICON = ImageDescriptor.createFromURL(
+		DroolsEclipsePlugin.getDefault().getBundle().getEntry("icons/process.gif")).createImage();
+        
+    private static final Color color = new Color(Display.getCurrent(), 255, 255, 225);
+
+    private RoundedRectangle rectangle;
+    
+    public BPMNSubFlowFigure() {
+    	setSize(110, 48);
+    }
+    
+    protected void customizeFigure() {
+        rectangle = new RoundedRectangle();
+        rectangle.setCornerDimensions(new Dimension(25, 25));
+        rectangle.setBackgroundColor(color);
+        add(rectangle, 0);
+        rectangle.setBounds(getBounds());
+        setSelected(false);
+        setIcon(ICON);
+    }
+    
+    public void setBounds(Rectangle rectangle) {
+        super.setBounds(rectangle);
+        this.rectangle.setBounds(rectangle);
+    }
+    
+    public void setSelected(boolean b) {
+        super.setSelected(b);
+        rectangle.setLineWidth(b ? 3 : 1);
+        repaint();
+    }
+}

Added: labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/editor/editpart/figure/bpmn2/BPMNTimerNodeFigure.java
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/editor/editpart/figure/bpmn2/BPMNTimerNodeFigure.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/editor/editpart/figure/bpmn2/BPMNTimerNodeFigure.java	2009-07-03 00:35:19 UTC (rev 27464)
@@ -0,0 +1,30 @@
+package org.drools.eclipse.flow.ruleflow.editor.editpart.figure.bpmn2;
+
+import org.drools.eclipse.DroolsEclipsePlugin;
+import org.drools.eclipse.flow.common.editor.editpart.figure.AbstractElementFigure;
+import org.eclipse.draw2d.geometry.Rectangle;
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.swt.graphics.Image;
+
+public class BPMNTimerNodeFigure extends AbstractElementFigure {
+    
+    private static final Image ICON = ImageDescriptor.createFromURL(
+		DroolsEclipsePlugin.getDefault().getBundle().getEntry("icons/bpmn/large/intermediate_timer.png")).createImage();
+    
+    public BPMNTimerNodeFigure() {
+    	setSize(48, 48);
+    }
+        
+    public void setBounds(Rectangle r) {
+    	r.setSize(48, 48);
+    	super.setBounds(r);
+    }
+    
+    protected void customizeFigure() {
+        setIcon(ICON);
+    }
+    
+    public void setText(String text) {
+    }
+    
+}
\ No newline at end of file

Added: labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/editor/editpart/figure/bpmn2/BPMNWorkItemNodeFigure.java
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/editor/editpart/figure/bpmn2/BPMNWorkItemNodeFigure.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/editor/editpart/figure/bpmn2/BPMNWorkItemNodeFigure.java	2009-07-03 00:35:19 UTC (rev 27464)
@@ -0,0 +1,40 @@
+package org.drools.eclipse.flow.ruleflow.editor.editpart.figure.bpmn2;
+
+import org.drools.eclipse.flow.common.editor.editpart.figure.AbstractElementFigure;
+import org.drools.eclipse.flow.ruleflow.editor.editpart.WorkItemEditPart.WorkItemFigureInterface;
+import org.eclipse.draw2d.RoundedRectangle;
+import org.eclipse.draw2d.geometry.Dimension;
+import org.eclipse.draw2d.geometry.Rectangle;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.widgets.Display;
+
+public class BPMNWorkItemNodeFigure extends AbstractElementFigure implements WorkItemFigureInterface {
+    
+    private static final Color color = new Color(Display.getCurrent(), 255, 255, 225);
+
+    private RoundedRectangle rectangle;
+    
+    public BPMNWorkItemNodeFigure() {
+    	setSize(100, 48);
+    }
+    
+    protected void customizeFigure() {
+        rectangle = new RoundedRectangle();
+        rectangle.setCornerDimensions(new Dimension(25, 25));
+        rectangle.setBackgroundColor(color);
+        add(rectangle, 0);
+        rectangle.setBounds(getBounds());
+        setSelected(false);
+    }
+    
+    public void setBounds(Rectangle rectangle) {
+        super.setBounds(rectangle);
+        this.rectangle.setBounds(rectangle);
+    }
+    
+    public void setSelected(boolean b) {
+        super.setSelected(b);
+        rectangle.setLineWidth(b ? 3 : 1);
+        repaint();
+    }
+}

Added: labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/skin/BPMN2SkinProvider.java
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/skin/BPMN2SkinProvider.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/skin/BPMN2SkinProvider.java	2009-07-03 00:35:19 UTC (rev 27464)
@@ -0,0 +1,328 @@
+package org.drools.eclipse.flow.ruleflow.skin;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.drools.eclipse.DroolsEclipsePlugin;
+import org.drools.eclipse.flow.common.editor.core.ElementConnectionFactory;
+import org.drools.eclipse.flow.common.editor.core.ElementWrapper;
+import org.drools.eclipse.flow.common.editor.editpart.figure.ElementContainerFigure;
+import org.drools.eclipse.flow.ruleflow.core.ActionWrapper;
+import org.drools.eclipse.flow.ruleflow.core.CompositeContextNodeWrapper;
+import org.drools.eclipse.flow.ruleflow.core.ConnectionWrapper;
+import org.drools.eclipse.flow.ruleflow.core.ConnectionWrapperFactory;
+import org.drools.eclipse.flow.ruleflow.core.EndNodeWrapper;
+import org.drools.eclipse.flow.ruleflow.core.EventNodeWrapper;
+import org.drools.eclipse.flow.ruleflow.core.FaultNodeWrapper;
+import org.drools.eclipse.flow.ruleflow.core.ForEachNodeWrapper;
+import org.drools.eclipse.flow.ruleflow.core.HumanTaskNodeWrapper;
+import org.drools.eclipse.flow.ruleflow.core.JoinWrapper;
+import org.drools.eclipse.flow.ruleflow.core.RuleSetNodeWrapper;
+import org.drools.eclipse.flow.ruleflow.core.SplitWrapper;
+import org.drools.eclipse.flow.ruleflow.core.StartNodeWrapper;
+import org.drools.eclipse.flow.ruleflow.core.StateNodeWrapper;
+import org.drools.eclipse.flow.ruleflow.core.SubProcessWrapper;
+import org.drools.eclipse.flow.ruleflow.core.TimerWrapper;
+import org.drools.eclipse.flow.ruleflow.editor.editpart.JoinEditPart.JoinFigureInterface;
+import org.drools.eclipse.flow.ruleflow.editor.editpart.SplitEditPart.SplitFigureInterface;
+import org.drools.eclipse.flow.ruleflow.editor.editpart.WorkItemEditPart.WorkItemFigureInterface;
+import org.drools.eclipse.flow.ruleflow.editor.editpart.figure.bpmn2.BPMNActionNodeFigure;
+import org.drools.eclipse.flow.ruleflow.editor.editpart.figure.bpmn2.BPMNCompositeNodeFigure;
+import org.drools.eclipse.flow.ruleflow.editor.editpart.figure.bpmn2.BPMNEndNodeFigure;
+import org.drools.eclipse.flow.ruleflow.editor.editpart.figure.bpmn2.BPMNEventNodeFigure;
+import org.drools.eclipse.flow.ruleflow.editor.editpart.figure.bpmn2.BPMNFaultNodeFigure;
+import org.drools.eclipse.flow.ruleflow.editor.editpart.figure.bpmn2.BPMNJoinFigure;
+import org.drools.eclipse.flow.ruleflow.editor.editpart.figure.bpmn2.BPMNMilestoneFigure;
+import org.drools.eclipse.flow.ruleflow.editor.editpart.figure.bpmn2.BPMNRuleSetNodeFigure;
+import org.drools.eclipse.flow.ruleflow.editor.editpart.figure.bpmn2.BPMNSplitFigure;
+import org.drools.eclipse.flow.ruleflow.editor.editpart.figure.bpmn2.BPMNStartNodeFigure;
+import org.drools.eclipse.flow.ruleflow.editor.editpart.figure.bpmn2.BPMNStateFigure;
+import org.drools.eclipse.flow.ruleflow.editor.editpart.figure.bpmn2.BPMNSubFlowFigure;
+import org.drools.eclipse.flow.ruleflow.editor.editpart.figure.bpmn2.BPMNTimerNodeFigure;
+import org.drools.eclipse.flow.ruleflow.editor.editpart.figure.bpmn2.BPMNWorkItemNodeFigure;
+import org.drools.eclipse.preferences.IDroolsConstants;
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.gef.palette.CombinedTemplateCreationEntry;
+import org.eclipse.gef.palette.ConnectionCreationToolEntry;
+import org.eclipse.gef.palette.PaletteContainer;
+import org.eclipse.gef.palette.PaletteDrawer;
+import org.eclipse.gef.palette.PaletteEntry;
+import org.eclipse.gef.requests.CreationFactory;
+import org.eclipse.gef.requests.SimpleFactory;
+import org.eclipse.jface.resource.ImageDescriptor;
+
+public class BPMN2SkinProvider implements SkinProvider {
+
+    public PaletteContainer createComponentsDrawer() {
+
+    	String flowNodes = DroolsEclipsePlugin.getDefault().getPluginPreferences().getString(IDroolsConstants.FLOW_NODES);
+
+    	PaletteDrawer drawer = new PaletteDrawer("Components", null);
+
+        List<PaletteEntry> entries = new ArrayList<PaletteEntry>();
+
+        CombinedTemplateCreationEntry combined = new CombinedTemplateCreationEntry(
+            "Start Event",
+            "Create a new Start Event",
+            StartNodeWrapper.class,
+            new SimpleWrapperFactory(StartNodeWrapper.class, "Start"),
+            ImageDescriptor.createFromURL(DroolsEclipsePlugin.getDefault().getBundle().getEntry("icons/bpmn2/start_empty.png")),
+            ImageDescriptor.createFromURL(DroolsEclipsePlugin.getDefault().getBundle().getEntry("icons/bpmn2/start_empty.png"))
+        );
+        entries.add(combined);
+        
+        combined = new CombinedTemplateCreationEntry(
+            "End Event",
+            "Create a new End Event",
+            EndNodeWrapper.class,
+            new SimpleWrapperFactory(EndNodeWrapper.class, "End"),
+            ImageDescriptor.createFromURL(DroolsEclipsePlugin.getDefault().getBundle().getEntry("icons/bpmn2/end_terminate.png")), 
+            ImageDescriptor.createFromURL(DroolsEclipsePlugin.getDefault().getBundle().getEntry("icons/bpmn2/end_terminate.png"))
+        );
+        entries.add(combined);
+                
+        if (flowNodes.charAt(0) == '1') {
+	        combined = new CombinedTemplateCreationEntry(
+	            "Rule Task",
+	            "Create a new Rule Task",
+	            RuleSetNodeWrapper.class,
+	            new SimpleWrapperFactory(RuleSetNodeWrapper.class, "Rule"),
+	            ImageDescriptor.createFromURL(DroolsEclipsePlugin.getDefault().getBundle().getEntry("icons/bpmn/Activity.gif")), 
+	            ImageDescriptor.createFromURL(DroolsEclipsePlugin.getDefault().getBundle().getEntry("icons/bpmn/Activity.gif"))
+	        );
+	        entries.add(combined);
+        }
+        
+        if (flowNodes.charAt(1) == '1') {
+	        combined = new CombinedTemplateCreationEntry(
+	            "Gateway [diverge]",
+	            "Create a new Gateway [diverge]",
+	            SplitWrapper.class,
+	            new SimpleWrapperFactory(SplitWrapper.class, "Gateway"),
+	            ImageDescriptor.createFromURL(DroolsEclipsePlugin.getDefault().getBundle().getEntry("icons/bpmn2/gateway_exclusive.png")), 
+	            ImageDescriptor.createFromURL(DroolsEclipsePlugin.getDefault().getBundle().getEntry("icons/bpmn2/gateway_exclusive.png"))
+	        );
+	        entries.add(combined);
+        }
+                    
+        if (flowNodes.charAt(2) == '1') {
+        	combined = new CombinedTemplateCreationEntry(
+	            "Gateway [converge]",
+	            "Create a new Gateway [converge]",
+	            JoinWrapper.class,
+	            new SimpleWrapperFactory(JoinWrapper.class, "Gateway"),
+	            ImageDescriptor.createFromURL(DroolsEclipsePlugin.getDefault().getBundle().getEntry("icons/bpmn2/gateway_exclusive.png")), 
+	            ImageDescriptor.createFromURL(DroolsEclipsePlugin.getDefault().getBundle().getEntry("icons/bpmn2/gateway_exclusive.png"))
+	        );
+	        entries.add(combined);
+        }
+                        
+        if (flowNodes.charAt(3) == '1') {
+	        combined = new CombinedTemplateCreationEntry(
+	            "Wait Task",
+	            "Create a new Wait Task",
+	            StateNodeWrapper.class,
+	            new SimpleWrapperFactory(StateNodeWrapper.class, "Wait"),
+	            ImageDescriptor.createFromURL(DroolsEclipsePlugin.getDefault().getBundle().getEntry("icons/bpmn/Activity.gif")), 
+	            ImageDescriptor.createFromURL(DroolsEclipsePlugin.getDefault().getBundle().getEntry("icons/bpmn/Activity.gif"))
+	        );
+	        entries.add(combined);
+        }
+                            
+        if (flowNodes.charAt(4) == '1') {
+	        combined = new CombinedTemplateCreationEntry(
+	            "Reusable Sub-Process",
+	            "Create a new Reusable Sub-Process",
+	            SubProcessWrapper.class,
+	            new SimpleWrapperFactory(SubProcessWrapper.class, "Sub-Process"),
+	            ImageDescriptor.createFromURL(DroolsEclipsePlugin.getDefault().getBundle().getEntry("icons/bpmn/sub_process.png")), 
+	            ImageDescriptor.createFromURL(DroolsEclipsePlugin.getDefault().getBundle().getEntry("icons/bpmn/sub_process.png"))
+	        );
+	        entries.add(combined);
+        }
+        
+        if (flowNodes.charAt(5) == '1') {
+	        combined = new CombinedTemplateCreationEntry(
+	            "Script Task",
+	            "Create a new Script Task",
+	            ActionWrapper.class,
+	            new SimpleWrapperFactory(ActionWrapper.class, "Script"),
+	            ImageDescriptor.createFromURL(DroolsEclipsePlugin.getDefault().getBundle().getEntry("icons/bpmn/Activity.gif")), 
+	            ImageDescriptor.createFromURL(DroolsEclipsePlugin.getDefault().getBundle().getEntry("icons/bpmn/Activity.gif"))
+	        );
+	        entries.add(combined);
+        }
+                      
+        if (flowNodes.charAt(6) == '1') {
+	        combined = new CombinedTemplateCreationEntry(
+	            "Timer Event",
+	            "Create a new Timer Event",
+	            TimerWrapper.class,
+	            new SimpleWrapperFactory(TimerWrapper.class, "Timer"),
+	            ImageDescriptor.createFromURL(DroolsEclipsePlugin.getDefault().getBundle().getEntry("icons/bpmn/intermediate_timer.png")), 
+	            ImageDescriptor.createFromURL(DroolsEclipsePlugin.getDefault().getBundle().getEntry("icons/bpmn/intermediate_timer.png"))
+	        );
+	        entries.add(combined);
+        }
+                      
+        if (flowNodes.charAt(7) == '1') {
+	    	combined = new CombinedTemplateCreationEntry(
+	            "Error Event",
+	            "Create a new Error Event",
+	            FaultNodeWrapper.class,
+	            new SimpleWrapperFactory(FaultNodeWrapper.class, "Error"),
+	            ImageDescriptor.createFromURL(DroolsEclipsePlugin.getDefault().getBundle().getEntry("icons/bpmn/intermediate_error_10.png")), 
+	            ImageDescriptor.createFromURL(DroolsEclipsePlugin.getDefault().getBundle().getEntry("icons/bpmn/intermediate_error_10.png"))
+	        );
+	        entries.add(combined);
+        }
+                          
+        if (flowNodes.charAt(8) == '1') {
+	        combined = new CombinedTemplateCreationEntry(
+			    "Message Event",
+			    "Create a new Message Event",
+			    EventNodeWrapper.class,
+			    new SimpleWrapperFactory(EventNodeWrapper.class, "Message"),
+			    ImageDescriptor.createFromURL(DroolsEclipsePlugin.getDefault().getBundle().getEntry("icons/bpmn/intermediate_message.png")), 
+			    ImageDescriptor.createFromURL(DroolsEclipsePlugin.getDefault().getBundle().getEntry("icons/bpmn/intermediate_empty.png"))
+			);
+			entries.add(combined);
+        }
+	                    
+        if (flowNodes.charAt(9) == '1') {
+	        combined = new CombinedTemplateCreationEntry(
+	            "User Task",
+	            "Create a new User Task",
+	            HumanTaskNodeWrapper.class,
+	            new SimpleWrapperFactory(HumanTaskNodeWrapper.class, "User Task"),
+	            ImageDescriptor.createFromURL(DroolsEclipsePlugin.getDefault().getBundle().getEntry("icons/bpmn/task.png")), 
+	            ImageDescriptor.createFromURL(DroolsEclipsePlugin.getDefault().getBundle().getEntry("icons/bpmn/task.png"))
+	        );
+	        entries.add(combined);
+        }
+                              
+        if (flowNodes.charAt(10) == '1') {
+	        combined = new CombinedTemplateCreationEntry(
+	            "Embedded Sub-Process",
+	            "Create a new Embedded Sub-Process",
+	            CompositeContextNodeWrapper.class,
+	            new SimpleWrapperFactory(CompositeContextNodeWrapper.class, "Sub-Process"),
+	            ImageDescriptor.createFromURL(DroolsEclipsePlugin.getDefault().getBundle().getEntry("icons/bpmn/sub_process_expanded.png")), 
+	            ImageDescriptor.createFromURL(DroolsEclipsePlugin.getDefault().getBundle().getEntry("icons/bpmn/sub_process_expanded.png"))
+	        );
+	        entries.add(combined);
+        }
+                          
+        if (flowNodes.charAt(11) == '1') {
+		    combined = new CombinedTemplateCreationEntry(
+			    "Multiple Instances",
+			    "Create a new Multiple Instances",
+			    ForEachNodeWrapper.class,
+			    new SimpleWrapperFactory(ForEachNodeWrapper.class, "Multiple Instances"),
+			    ImageDescriptor.createFromURL(DroolsEclipsePlugin.getDefault().getBundle().getEntry("icons/bpmn/sub_process_expanded.png")), 
+			    ImageDescriptor.createFromURL(DroolsEclipsePlugin.getDefault().getBundle().getEntry("icons/bpmn/sub_process_expanded.png"))
+			);
+			entries.add(combined);
+        }
+                    
+        drawer.addAll(entries);
+        return drawer;
+    }
+    
+    public PaletteEntry createConnectionEntry() {
+    	final ElementConnectionFactory normalConnectionFactory = new ConnectionWrapperFactory();
+        PaletteEntry tool = new ConnectionCreationToolEntry(
+    		"Sequence Flow",
+            "Creating connections",
+            new CreationFactory() {
+                public Object getNewObject() {
+                	return normalConnectionFactory.createElementConnection();
+                }
+                public Object getObjectType() {
+                	return ConnectionWrapper.class;
+                }
+            },
+            ImageDescriptor.createFromURL(DroolsEclipsePlugin.getDefault().getBundle().getEntry("icons/connection.gif")), 
+            ImageDescriptor.createFromURL(DroolsEclipsePlugin.getDefault().getBundle().getEntry("icons/connection.gif"))
+        );
+    	return tool;
+    }
+
+    public IFigure createActionNodeFigure() {
+		return new BPMNActionNodeFigure();
+	}
+
+	public IFigure createEndNodeFigure() {
+		return new BPMNEndNodeFigure();
+	}
+
+	public IFigure createEventNodeFigure() {
+		return new BPMNEventNodeFigure();
+	}
+
+	public IFigure createFaultNodeFigure() {
+		return new BPMNFaultNodeFigure();
+	}
+
+	public JoinFigureInterface createJoinFigure() {
+		return new BPMNJoinFigure();
+	}
+
+	public SplitFigureInterface createSplitFigure() {
+		return new BPMNSplitFigure();
+	}
+
+	public IFigure createStartNodeFigure() {
+		return new BPMNStartNodeFigure();
+	}
+
+	public IFigure createTimerNodeFigure() {
+		return new BPMNTimerNodeFigure();
+	}
+
+	public IFigure createMilestoneFigure() {
+		return new BPMNMilestoneFigure();
+	}
+
+	public IFigure createRuleSetNodeFigure() {
+		return new BPMNRuleSetNodeFigure();
+	}
+
+	public IFigure createSubFlowFigure() {
+		return new BPMNSubFlowFigure();
+	}
+
+	public IFigure createStateFigure() {
+		return new BPMNStateFigure();
+	}
+
+	public WorkItemFigureInterface createWorkItemFigure() {
+		return new BPMNWorkItemNodeFigure();
+	}
+
+	public IFigure createCompositeNodeFigure() {
+		return new BPMNCompositeNodeFigure();
+	}
+
+	public IFigure createForEachNodeFigure() {
+		return new ElementContainerFigure();
+	}
+	
+	private static class SimpleWrapperFactory extends SimpleFactory {
+
+		private String name;
+		
+		public SimpleWrapperFactory(Class<?> clazz, String name) {
+			super(clazz);
+			this.name = name;
+		}
+		
+		public Object getNewObject() {
+			ElementWrapper wrapper = (ElementWrapper) super.getNewObject();
+			wrapper.setName(name);
+			return wrapper;
+		}
+		
+	}
+
+}

Modified: labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/skin/BPMNSkinProvider.java
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/skin/BPMNSkinProvider.java	2009-07-03 00:13:36 UTC (rev 27463)
+++ labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/skin/BPMNSkinProvider.java	2009-07-03 00:35:19 UTC (rev 27464)
@@ -5,6 +5,7 @@
 
 import org.drools.eclipse.DroolsEclipsePlugin;
 import org.drools.eclipse.flow.common.editor.core.ElementConnectionFactory;
+import org.drools.eclipse.flow.common.editor.editpart.figure.ElementContainerFigure;
 import org.drools.eclipse.flow.ruleflow.core.ActionWrapper;
 import org.drools.eclipse.flow.ruleflow.core.CompositeContextNodeWrapper;
 import org.drools.eclipse.flow.ruleflow.core.ConnectionWrapper;
@@ -302,4 +303,8 @@
 		return new BPMNCompositeNodeFigure();
 	}
 
+	public IFigure createForEachNodeFigure() {
+		return new ElementContainerFigure();
+	}
+
 }

Modified: labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/skin/DefaultSkinProvider.java
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/skin/DefaultSkinProvider.java	2009-07-03 00:13:36 UTC (rev 27463)
+++ labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/skin/DefaultSkinProvider.java	2009-07-03 00:35:19 UTC (rev 27464)
@@ -5,6 +5,7 @@
 
 import org.drools.eclipse.DroolsEclipsePlugin;
 import org.drools.eclipse.flow.common.editor.core.ElementConnectionFactory;
+import org.drools.eclipse.flow.common.editor.editpart.figure.ElementContainerFigure;
 import org.drools.eclipse.flow.ruleflow.core.ActionWrapper;
 import org.drools.eclipse.flow.ruleflow.core.CompositeContextNodeWrapper;
 import org.drools.eclipse.flow.ruleflow.core.ConnectionWrapper;
@@ -15,7 +16,6 @@
 import org.drools.eclipse.flow.ruleflow.core.ForEachNodeWrapper;
 import org.drools.eclipse.flow.ruleflow.core.HumanTaskNodeWrapper;
 import org.drools.eclipse.flow.ruleflow.core.JoinWrapper;
-import org.drools.eclipse.flow.ruleflow.core.MilestoneWrapper;
 import org.drools.eclipse.flow.ruleflow.core.RuleSetNodeWrapper;
 import org.drools.eclipse.flow.ruleflow.core.SplitWrapper;
 import org.drools.eclipse.flow.ruleflow.core.StartNodeWrapper;
@@ -303,4 +303,8 @@
 		return new CompositeNodeEditPart.CompositeNodeFigure();
 	}
 
+	public IFigure createForEachNodeFigure() {
+		return new ElementContainerFigure();
+	}
+
 }

Modified: labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/skin/SkinManager.java
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/skin/SkinManager.java	2009-07-03 00:13:36 UTC (rev 27463)
+++ labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/skin/SkinManager.java	2009-07-03 00:35:19 UTC (rev 27464)
@@ -20,6 +20,7 @@
 	private void registerSkinProviders() {
 		skinProviders.put("default", new DefaultSkinProvider());
 		skinProviders.put("BPMN", new BPMNSkinProvider());
+		skinProviders.put("BPMN2", new BPMN2SkinProvider());
 	}
 	
 	public SkinProvider getSkinProvider(String type) {

Modified: labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/skin/SkinProvider.java
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/skin/SkinProvider.java	2009-07-03 00:13:36 UTC (rev 27463)
+++ labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/skin/SkinProvider.java	2009-07-03 00:35:19 UTC (rev 27464)
@@ -41,4 +41,6 @@
 
 	IFigure createCompositeNodeFigure();
 
+	IFigure createForEachNodeFigure();
+
 }

Modified: labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/preferences/DroolsPreferencePage.java
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/preferences/DroolsPreferencePage.java	2009-07-03 00:13:36 UTC (rev 27463)
+++ labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/preferences/DroolsPreferencePage.java	2009-07-03 00:35:19 UTC (rev 27464)
@@ -37,9 +37,10 @@
 			"When parsing rules, always cache the result for future use. Warning: when disabled, debugging of rules will not work.");
 		Label label = new Label(composite, SWT.NONE);
 		label.setText("Preferred process skin: ");
-		processSkinCombo = new Combo(composite, SWT.LEFT);
+		processSkinCombo = new Combo(composite, SWT.LEFT | SWT.READ_ONLY );
 		processSkinCombo.add("default");
 		processSkinCombo.add("BPMN");
+		processSkinCombo.add("BPMN2");
 		allowNodeCustomizationCheckBox = createCheckBox(composite,
 			"Allow the customization of process nodes.");
 		label = new Label(composite, SWT.NONE);
@@ -91,6 +92,9 @@
         if ("BPMN".equals(skin)) {
         	index = 1;
         }
+        if ("BPMN2".equals(skin)) {
+        	index = 2;
+        }
         processSkinCombo.select(index);
         allowNodeCustomizationCheckBox.setSelection(store.getBoolean(IDroolsConstants.ALLOW_NODE_CUSTOMIZATION));
         internalAPICombo.select(store.getInt(IDroolsConstants.INTERNAL_API));

Modified: labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/resources/org/drools/eclipse/flow/ruleflow/SampleRuleFlow.rf.template
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/resources/org/drools/eclipse/flow/ruleflow/SampleRuleFlow.rf.template	2009-07-03 00:13:36 UTC (rev 27463)
+++ labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/resources/org/drools/eclipse/flow/ruleflow/SampleRuleFlow.rf.template	2009-07-03 00:35:19 UTC (rev 27464)
@@ -8,7 +8,7 @@
   </header>
 
   <nodes>
-    <start id="1" name="Start" x="100" y="100" />
+    <start id="1" name="Start" x="100" y="100" width="48" height="48" />
   </nodes>
 
   <connections>

Modified: labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/resources/org/drools/eclipse/wizard/project/ruleflow.rf.template
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/resources/org/drools/eclipse/wizard/project/ruleflow.rf.template	2009-07-03 00:13:36 UTC (rev 27463)
+++ labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/resources/org/drools/eclipse/wizard/project/ruleflow.rf.template	2009-07-03 00:35:19 UTC (rev 27464)
@@ -8,11 +8,11 @@
   </header>
 
   <nodes>
-    <start id="1" name="Start" x="16" y="16" />
-    <actionNode id="2" name="Hello" x="128" y="16" >
+    <start id="1" name="Start" x="16" y="16" width="48" height="48" />
+    <actionNode id="2" name="Hello" x="96" y="16" width="80" height="48" >
       <action type="expression" dialect="mvel" >System.out.println("Hello World");</action>
     </actionNode>
-    <end id="3" name="End" x="240" y="16" />
+    <end id="3" name="End" x="208" y="16" width="48" height="48" />
   </nodes>
 
   <connections>




More information about the jboss-svn-commits mailing list