[jboss-svn-commits] JBL Code SVN: r23693 - in labs/jbossrules/trunk/drools-guvnor: src/main/java/org/drools/guvnor/client/rulefloweditor and 4 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Tue Nov 4 06:03:41 EST 2008


Author: Rikkola
Date: 2008-11-04 06:03:41 -0500 (Tue, 04 Nov 2008)
New Revision: 23693

Added:
   labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/rulefloweditor/CompositeNode.java
   labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/rulefloweditor/ElementContainerNode.java
   labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/rulefloweditor/ElementContainerTransferNode.java
   labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/rulefloweditor/EventNode.java
   labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/rulefloweditor/FaultNode.java
   labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/public/images/ruleflow/event.gif
   labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/public/images/ruleflow/fault.gif
   labs/jbossrules/trunk/drools-guvnor/src/test/resources/org/drools/guvnor/server/builder/
   labs/jbossrules/trunk/drools-guvnor/src/test/resources/org/drools/guvnor/server/builder/ruleflow.rf
Removed:
   labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/rulefloweditor/ForEachTransferNode.java
Modified:
   labs/jbossrules/trunk/drools-guvnor/pom.xml
   labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/rulefloweditor/ForEachNode.java
   labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/rulefloweditor/RuleFlowBaseNode.java
   labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/rulefloweditor/RuleFlowNodeFactory.java
   labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/rulefloweditor/RuleFlowViewer.java
   labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/rulefloweditor/TransferNode.java
   labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/rulefloweditor/TransferRuleFlowNodeFactory.java
   labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/builder/RuleFlowContentModelBuilder.java
   labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/builder/RuleFlowProcessBuilder.java
Log:
GUVNOR-52: Latest rf-files are not working with the rule flow viewer in Guvnor

Modified: labs/jbossrules/trunk/drools-guvnor/pom.xml
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/pom.xml	2008-11-04 08:14:35 UTC (rev 23692)
+++ labs/jbossrules/trunk/drools-guvnor/pom.xml	2008-11-04 11:03:41 UTC (rev 23693)
@@ -85,7 +85,7 @@
     <dependency>
       <groupId>pl.balon.gwt</groupId>
       <artifactId>gwt-diagrams</artifactId>
-      <version>0.1</version>
+      <version>0.2-RC00</version>
     </dependency>
     <dependency>
       <groupId>org.cobogw.gwt</groupId>

Added: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/rulefloweditor/CompositeNode.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/rulefloweditor/CompositeNode.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/rulefloweditor/CompositeNode.java	2008-11-04 11:03:41 UTC (rev 23693)
@@ -0,0 +1,26 @@
+
+/*
+ * Copyright 2005 JBoss Inc
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.drools.guvnor.client.rulefloweditor;
+
+/**
+ * @author Toni Rikkola
+ *
+ */
+public class CompositeNode extends ElementContainerNode {
+
+}

Added: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/rulefloweditor/ElementContainerNode.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/rulefloweditor/ElementContainerNode.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/rulefloweditor/ElementContainerNode.java	2008-11-04 11:03:41 UTC (rev 23693)
@@ -0,0 +1,84 @@
+package org.drools.guvnor.client.rulefloweditor;
+
+/*
+ * Copyright 2005 JBoss Inc
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.Map;
+
+import pl.balon.gwt.diagrams.client.connection.Connection;
+
+import com.google.gwt.user.client.ui.Widget;
+
+public class ElementContainerNode extends RuleFlowBaseNode {
+
+    private Map<Long, RuleFlowBaseNode> nodes       = new HashMap<Long, RuleFlowBaseNode>();
+    private Collection<Connection>      connections = new ArrayList<Connection>();
+
+    @Override
+    public Corners getCorners() {
+        return Corners.NONE;
+    }
+
+    @Override
+    public String getImagePath() {
+        return null;
+    }
+
+    @Override
+    public String getStyle() {
+        return WHITE_RULE_FLOW_NODE_STYLE;
+    }
+
+    public void update() {
+        if ( connections != null ) {
+            for ( Connection c : connections ) {
+                c.update();
+            }
+        }
+
+        // For each nodes have connections too.
+        for ( RuleFlowBaseNode node : nodes.values() ) {
+            if ( node instanceof ElementContainerNode ) {
+                ((ElementContainerNode) node).update();
+            }
+        }
+    }
+
+    public Map<Long, RuleFlowBaseNode> getNodes() {
+        return nodes;
+    }
+
+    public void setNodes(Map<Long, RuleFlowBaseNode> nodes) {
+        this.nodes = nodes;
+    }
+
+    public Collection<Connection> getConnections() {
+        return connections;
+    }
+
+    public void setConnections(Collection<Connection> connections) {
+        this.connections = connections;
+    }
+
+    @Override
+    public void onClick(Widget arg0) {
+        // TODO Auto-generated method stub
+        //        super.onClick( arg0 );
+    }
+}

Copied: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/rulefloweditor/ElementContainerTransferNode.java (from rev 23674, labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/rulefloweditor/ForEachTransferNode.java)
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/rulefloweditor/ElementContainerTransferNode.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/rulefloweditor/ElementContainerTransferNode.java	2008-11-04 11:03:41 UTC (rev 23693)
@@ -0,0 +1,38 @@
+package org.drools.guvnor.client.rulefloweditor;
+
+/*
+ * Copyright 2005 JBoss Inc
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import org.drools.guvnor.client.rpc.RuleFlowContentModel;
+
+public class ElementContainerTransferNode extends TransferNode {
+
+    private RuleFlowContentModel contentModel;
+
+    public ElementContainerTransferNode() {
+        this.width = 200;
+        this.height = 150;
+    }
+
+    public void setContentModel(RuleFlowContentModel contentModel) {
+        this.contentModel = contentModel;
+    }
+
+    public RuleFlowContentModel getContentModel() {
+        return contentModel;
+    }
+
+}


Property changes on: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/rulefloweditor/ElementContainerTransferNode.java
___________________________________________________________________
Name: svn:mergeinfo
   + 

Added: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/rulefloweditor/EventNode.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/rulefloweditor/EventNode.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/rulefloweditor/EventNode.java	2008-11-04 11:03:41 UTC (rev 23693)
@@ -0,0 +1,40 @@
+
+
+/*
+ * Copyright 2005 JBoss Inc
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+package org.drools.guvnor.client.rulefloweditor;
+
+/**
+ * @author Toni Rikkola
+ *
+ */
+public class EventNode extends RuleFlowBaseNode {
+
+    public Corners getCorners() {
+        return Corners.NONE;
+    }
+
+    public String getImagePath() {
+        return EVENT_GIF;
+    }
+
+    public String getStyle() {
+        return WHITE_RULE_FLOW_NODE_STYLE;
+    }
+
+}

Added: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/rulefloweditor/FaultNode.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/rulefloweditor/FaultNode.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/rulefloweditor/FaultNode.java	2008-11-04 11:03:41 UTC (rev 23693)
@@ -0,0 +1,38 @@
+
+/*
+ * Copyright 2005 JBoss Inc
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.drools.guvnor.client.rulefloweditor;
+
+/**
+ * @author Toni Rikkola
+ *
+ */
+public class FaultNode extends RuleFlowBaseNode {
+
+    public Corners getCorners() {
+        return Corners.ROUNDED;
+    }
+
+    public String getImagePath() {
+        return FAULT_GIF;
+    }
+
+    public String getStyle() {
+        return YELLOW_RULE_FLOW_NODE_STYLE;
+    }
+
+}

Modified: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/rulefloweditor/ForEachNode.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/rulefloweditor/ForEachNode.java	2008-11-04 08:14:35 UTC (rev 23692)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/rulefloweditor/ForEachNode.java	2008-11-04 11:03:41 UTC (rev 23693)
@@ -16,69 +16,6 @@
  * limitations under the License.
  */
 
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.Map;
+public class ForEachNode extends ElementContainerNode {
 
-import pl.balon.gwt.diagrams.client.connection.Connection;
-
-import com.google.gwt.user.client.ui.Widget;
-
-public class ForEachNode extends RuleFlowBaseNode {
-
-    private Map<Long, RuleFlowBaseNode> nodes       = new HashMap<Long, RuleFlowBaseNode>();
-    private Collection<Connection>      connections = new ArrayList<Connection>();
-
-    @Override
-    public Corners getCorners() {
-        return Corners.NONE;
-    }
-
-    @Override
-    public String getImagePath() {
-        return null;
-    }
-
-    @Override
-    public String getStyle() {
-        return WHITE_RULE_FLOW_NODE_STYLE;
-    }
-
-    public void update() {
-        if ( connections != null ) {
-            for ( Connection c : connections ) {
-                c.update();
-            }
-        }
-
-        // For each nodes have connections too.
-        for ( RuleFlowBaseNode node : nodes.values() ) {
-            if ( node instanceof ForEachNode ) {
-                ((ForEachNode) node).update();
-            }
-        }
-    }
-
-    public Map<Long, RuleFlowBaseNode> getNodes() {
-        return nodes;
-    }
-
-    public void setNodes(Map<Long, RuleFlowBaseNode> nodes) {
-        this.nodes = nodes;
-    }
-
-    public Collection<Connection> getConnections() {
-        return connections;
-    }
-
-    public void setConnections(Collection<Connection> connections) {
-        this.connections = connections;
-    }
-
-    @Override
-    public void onClick(Widget arg0) {
-        // TODO Auto-generated method stub
-        //        super.onClick( arg0 );
-    }
 }

Deleted: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/rulefloweditor/ForEachTransferNode.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/rulefloweditor/ForEachTransferNode.java	2008-11-04 08:14:35 UTC (rev 23692)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/rulefloweditor/ForEachTransferNode.java	2008-11-04 11:03:41 UTC (rev 23693)
@@ -1,33 +0,0 @@
-package org.drools.guvnor.client.rulefloweditor;
-
-/*
- * Copyright 2005 JBoss Inc
- * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
- *      http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-import org.drools.guvnor.client.rpc.RuleFlowContentModel;
-
-public class ForEachTransferNode extends TransferNode {
-
-    private RuleFlowContentModel contentModel;
-
-    public void setContentModel(RuleFlowContentModel contentModel) {
-        this.contentModel = contentModel;
-    }
-
-    public RuleFlowContentModel getContentModel() {
-        return contentModel;
-    }
-
-}

Modified: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/rulefloweditor/RuleFlowBaseNode.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/rulefloweditor/RuleFlowBaseNode.java	2008-11-04 08:14:35 UTC (rev 23692)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/rulefloweditor/RuleFlowBaseNode.java	2008-11-04 11:03:41 UTC (rev 23693)
@@ -46,6 +46,8 @@
     protected static final String PROCESS_GIF                 = "images/ruleflow/process.gif";
     protected static final String QUESTION_GIF                = "images/ruleflow/question.gif";
     protected static final String TIMER_GIF                   = "images/ruleflow/timer.gif";
+    protected static final String FAULT_GIF                   = "images/ruleflow/fault.gif";
+    protected static final String EVENT_GIF                   = "images/ruleflow/event.gif";
 
     private long                  id;
     private int                   x;

Modified: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/rulefloweditor/RuleFlowNodeFactory.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/rulefloweditor/RuleFlowNodeFactory.java	2008-11-04 08:14:35 UTC (rev 23692)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/rulefloweditor/RuleFlowNodeFactory.java	2008-11-04 11:03:41 UTC (rev 23693)
@@ -33,7 +33,7 @@
     public static RuleFlowBaseNode createNode(TransferNode tn) {
 
         RuleFlowBaseNode n;
-
+        
         if ( tn.getType() == Type.START ) {
 
             n = new StartNode();
@@ -76,15 +76,30 @@
 
         } else if ( tn.getType() == Type.FOR_EACH ) {
 
-            n = createForEach( (ForEachTransferNode) tn );
+            n = createElementContainerNode( new ForEachNode(),
+                                            (ElementContainerTransferNode) tn );
 
+        } else if ( tn.getType() == Type.FAULT ) {
+
+            n = new FaultNode();
+
+        } else if ( tn.getType() == Type.EVENT ) {
+
+            n = new EventNode();
+
+        } else if ( tn.getType() == Type.COMPOSITE ) {
+
+            n = createElementContainerNode( new CompositeNode(),
+                                            (ElementContainerTransferNode) tn );
+
         } else if ( tn.getType() == Type.END ) {
 
             n = new EndNode();
 
         } else {
 
-            throw new IllegalArgumentException();
+            throw new IllegalArgumentException( "Unkown node type " + tn );
+
         }
 
         fillRuleFlowBaseNode( n,
@@ -92,10 +107,9 @@
         return n;
     }
 
-    private static RuleFlowBaseNode createForEach(ForEachTransferNode tn) {
+    private static RuleFlowBaseNode createElementContainerNode(ElementContainerNode node,
+                                                               ElementContainerTransferNode tn) {
 
-        ForEachNode node = new ForEachNode();
-
         for ( TransferNode subNode : tn.getContentModel().getNodes() ) {
             RuleFlowBaseNode baseNode = createNode( subNode );
 
@@ -192,12 +206,12 @@
         } else {
             panel.setHeight( tn.getHeight() + "px" );
 
-            if ( node instanceof ForEachNode ) {
+            if ( node instanceof ElementContainerNode ) {
 
                 // Add nodes that are in for each node 
                 AbsolutePanel ap = new AbsolutePanel();
 
-                ForEachNode fen = (ForEachNode) node;
+                ElementContainerNode fen = (ElementContainerNode) node;
 
                 for ( RuleFlowBaseNode baseNode : fen.getNodes().values() ) {
                     ap.add( baseNode,

Modified: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/rulefloweditor/RuleFlowViewer.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/rulefloweditor/RuleFlowViewer.java	2008-11-04 08:14:35 UTC (rev 23692)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/rulefloweditor/RuleFlowViewer.java	2008-11-04 11:03:41 UTC (rev 23693)
@@ -44,11 +44,13 @@
 
             RuleFlowBaseNode node = RuleFlowNodeFactory.createNode( tn );
 
+            System.out.println( "tn " + tn );
+
             if ( node != null ) {
 
-                if ( node instanceof ForEachNode ) {
-                    addForEachSubNodes( (ForEachNode) node,
-                                        parametersForm );
+                if ( node instanceof ElementContainerNode ) {
+                    addElementContainerNodeSubNodes( (ElementContainerNode) node,
+                                                     parametersForm );
                 }
 
                 node.addParametersForm( parametersForm );
@@ -74,15 +76,15 @@
         }
     }
 
-    private void addForEachSubNodes(ForEachNode fen,
-                                    FormStyleLayout parametersForm) {
+    private void addElementContainerNodeSubNodes(ElementContainerNode fen,
+                                                 FormStyleLayout parametersForm) {
         for ( RuleFlowBaseNode node : fen.getNodes().values() ) {
 
             node.addParametersForm( parametersForm );
 
-            if ( node instanceof ForEachNode ) {
-                addForEachSubNodes( (ForEachNode) node,
-                                    parametersForm );
+            if ( node instanceof ElementContainerNode ) {
+                addElementContainerNodeSubNodes( (ElementContainerNode) node,
+                                                 parametersForm );
             }
         }
     }
@@ -97,10 +99,10 @@
             }
         }
 
-        // For each nodes have connections too.
+        // Nodes in ElementContainerNode have connections too.
         for ( RuleFlowBaseNode node : nodes.values() ) {
-            if ( node instanceof ForEachNode ) {
-                ((ForEachNode) node).update();
+            if ( node instanceof ElementContainerNode ) {
+                ((ElementContainerNode) node).update();
             }
         }
     }

Modified: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/rulefloweditor/TransferNode.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/rulefloweditor/TransferNode.java	2008-11-04 08:14:35 UTC (rev 23692)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/rulefloweditor/TransferNode.java	2008-11-04 11:03:41 UTC (rev 23693)
@@ -24,9 +24,7 @@
 
     public static enum Type
             implements IsSerializable {
-        START, HUMANTASK, JOIN, SUB_PROCESS, MILESTONE, TIMER, ACTION_NODE, RULESET, SPLIT, END,
-        //WORK_ITEM,
-        FOR_EACH, COMPOSITE, EVENT, WORK_ITEM
+        START, HUMANTASK, JOIN, SUB_PROCESS, MILESTONE, TIMER, ACTION_NODE, RULESET, SPLIT, END, FOR_EACH, COMPOSITE, EVENT, WORK_ITEM, FAULT
     }
 
     private String name;
@@ -39,9 +37,9 @@
 
     private int    y;
 
-    private int    width;
+    protected int    width  = 80;
 
-    private int    height;
+    protected int    height = 40;
 
     public void setName(String name) {
         this.name = name;

Modified: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/rulefloweditor/TransferRuleFlowNodeFactory.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/rulefloweditor/TransferRuleFlowNodeFactory.java	2008-11-04 08:14:35 UTC (rev 23692)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/rulefloweditor/TransferRuleFlowNodeFactory.java	2008-11-04 11:03:41 UTC (rev 23693)
@@ -77,8 +77,24 @@
 
         } else if ( node instanceof ForEachNode ) {
 
-            tn = createForEach( (ForEachNode) node );
+            tn = ElementContainerTransferNode( (ForEachNode) node );
+            tn.setType( Type.FOR_EACH );
 
+        } else if ( node instanceof FaultNode ) {
+
+            tn = new TransferNode();
+            tn.setType( Type.FAULT );
+
+        } else if ( node instanceof EventNode ) {
+
+            tn = new TransferNode();
+            tn.setType( Type.EVENT );
+
+        } else if ( node instanceof CompositeNode ) {
+
+            tn = ElementContainerTransferNode( (CompositeNode) node );
+            tn.setType( Type.COMPOSITE );
+
         } else if ( node instanceof EndNode ) {
 
             tn = new TransferNode();
@@ -86,7 +102,7 @@
 
         } else {
 
-            throw new IllegalArgumentException();
+            throw new IllegalArgumentException( "Unkown node type " + node );
 
         }
 
@@ -95,9 +111,9 @@
         return tn;
     }
 
-    private static TransferNode createForEach(ForEachNode node) {
+    private static TransferNode ElementContainerTransferNode(ElementContainerNode node) {
 
-        ForEachTransferNode fetn = new ForEachTransferNode();
+        ElementContainerTransferNode fetn = new ElementContainerTransferNode();
         List<TransferNode> baseNodes = new ArrayList<TransferNode>();
 
         for ( RuleFlowBaseNode subNode : node.getNodes().values() ) {

Added: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/public/images/ruleflow/event.gif
===================================================================
(Binary files differ)


Property changes on: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/public/images/ruleflow/event.gif
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/public/images/ruleflow/fault.gif
===================================================================
(Binary files differ)


Property changes on: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/public/images/ruleflow/fault.gif
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Modified: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/builder/RuleFlowContentModelBuilder.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/builder/RuleFlowContentModelBuilder.java	2008-11-04 08:14:35 UTC (rev 23692)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/builder/RuleFlowContentModelBuilder.java	2008-11-04 11:03:41 UTC (rev 23693)
@@ -5,8 +5,8 @@
 import java.util.List;
 
 import org.drools.guvnor.client.rpc.RuleFlowContentModel;
-import org.drools.guvnor.client.rulefloweditor.ForEachTransferNode;
 import org.drools.guvnor.client.rulefloweditor.HumanTaskTransferNode;
+import org.drools.guvnor.client.rulefloweditor.ElementContainerTransferNode;
 import org.drools.guvnor.client.rulefloweditor.SplitNode;
 import org.drools.guvnor.client.rulefloweditor.SplitTransferNode;
 import org.drools.guvnor.client.rulefloweditor.TransferConnection;
@@ -21,6 +21,7 @@
 import org.drools.workflow.core.node.CompositeNode;
 import org.drools.workflow.core.node.EndNode;
 import org.drools.workflow.core.node.EventNode;
+import org.drools.workflow.core.node.FaultNode;
 import org.drools.workflow.core.node.ForEachNode;
 import org.drools.workflow.core.node.HumanTaskNode;
 import org.drools.workflow.core.node.Join;
@@ -53,7 +54,7 @@
      * @param model RuleFlowContentModel that contains the transfer nodes for client side.
      */
     private List<TransferNode> createNodesAndConnections(Node[] nodes,
-                                                               RuleFlowContentModel model) {
+                                                         RuleFlowContentModel model) {
 
         List<TransferNode> transferNodes = new ArrayList<TransferNode>();
 
@@ -76,8 +77,12 @@
 
             } else if ( type == TransferNode.Type.FOR_EACH ) {
 
-                tn = createForEachNodeNode( (ForEachNode) node );
+                tn = createRuleFlowContentModelTransferNode( ((ForEachNode) node).getNodes() );
 
+            } else if ( type == TransferNode.Type.COMPOSITE ) {
+
+                tn = createRuleFlowContentModelTransferNode( ((CompositeNode) node).getNodes() );
+
             } else {
 
                 tn = new TransferNode();
@@ -96,16 +101,12 @@
             tn.setY( (Integer) node.getMetaData( "y" ) );
 
             Integer height = (Integer) node.getMetaData( "height" );
-            if ( height == null ) {
-                tn.setHeight( 40 );
-            } else {
+            if ( height != null ) {
                 tn.setHeight( height );
             }
 
             Integer width = (Integer) node.getMetaData( "width" );
-            if ( width == null ) {
-                tn.setWidth( 80 );
-            } else {
+            if ( width != null ) {
                 tn.setWidth( width );
             }
 
@@ -118,13 +119,13 @@
         return transferNodes;
     }
 
-    private ForEachTransferNode createForEachNodeNode(ForEachNode node) {
+    private ElementContainerTransferNode createRuleFlowContentModelTransferNode(Node[] nodes) {
 
-        ForEachTransferNode fetn = new ForEachTransferNode();
+        ElementContainerTransferNode fetn = new ElementContainerTransferNode();
         RuleFlowContentModel model = new RuleFlowContentModel();
 
-        List<TransferNode> transferNodes = createNodesAndConnections( node.getNodes(),
-                                                                            model );
+        List<TransferNode> transferNodes = createNodesAndConnections( nodes,
+                                                                      model );
 
         model.setNodes( transferNodes );
         fetn.setContentModel( model );
@@ -288,10 +289,13 @@
             return TransferNode.Type.HUMANTASK;
         } else if ( node instanceof WorkItemNode ) {
             return TransferNode.Type.WORK_ITEM;
+        } else if ( node instanceof FaultNode ) {
+            return TransferNode.Type.FAULT;
         } else if ( node instanceof EventNode ) {
             return TransferNode.Type.EVENT;
         }
 
-        throw new IllegalArgumentException();
+        throw new IllegalArgumentException( "Unkown node type " + node );
+
     }
 }

Modified: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/builder/RuleFlowProcessBuilder.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/builder/RuleFlowProcessBuilder.java	2008-11-04 08:14:35 UTC (rev 23692)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/builder/RuleFlowProcessBuilder.java	2008-11-04 11:03:41 UTC (rev 23693)
@@ -1,3 +1,19 @@
+/*
+ * Copyright 2005 JBoss Inc
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
 package org.drools.guvnor.server.builder;
 
 import java.util.Collection;
@@ -2,3 +18,3 @@
 
-import org.drools.guvnor.client.rulefloweditor.ForEachTransferNode;
+import org.drools.guvnor.client.rulefloweditor.ElementContainerTransferNode;
 import org.drools.guvnor.client.rulefloweditor.HumanTaskTransferNode;
@@ -8,11 +24,12 @@
 import org.drools.guvnor.client.rulefloweditor.SplitTransferNode;
 import org.drools.guvnor.client.rulefloweditor.TransferNode;
 import org.drools.guvnor.client.rulefloweditor.WorkItemTransferNode;
+import org.drools.guvnor.client.rulefloweditor.TransferNode.Type;
 import org.drools.knowledge.definitions.process.Node;
-import org.drools.knowledge.definitions.process.NodeContainer;
 import org.drools.process.core.Work;
 import org.drools.ruleflow.core.RuleFlowProcess;
 import org.drools.workflow.core.Constraint;
+import org.drools.workflow.core.node.CompositeNode;
 import org.drools.workflow.core.node.ForEachNode;
 import org.drools.workflow.core.node.HumanTaskNode;
 import org.drools.workflow.core.node.Split;
@@ -33,18 +50,18 @@
         }
     }
 
-    public static void updateContainer(NodeContainer nodeContainer,
-                                       Collection<TransferNode> contentNodes) {
+    //    public static void updateContainer(NodeContainer nodeContainer,
+    //                                       Collection<TransferNode> contentNodes) {
+    //
+    //        for ( TransferNode tn : contentNodes ) {
+    //
+    //            Node node = nodeContainer.getNode( tn.getId() );
+    //
+    //            updateNode( tn,
+    //                        node );
+    //        }
+    //    }
 
-        for ( TransferNode tn : contentNodes ) {
-
-            Node node = nodeContainer.getNode( tn.getId() );
-
-            updateNode( tn,
-                        node );
-        }
-    }
-
     private static void updateNode(TransferNode tn,
                                    Node node) {
         /*
@@ -65,10 +82,19 @@
             updateSplitNode( (SplitTransferNode) tn,
                              (Split) node );
 
-        } else if ( tn instanceof ForEachTransferNode ) {
+        } else if ( tn instanceof ElementContainerTransferNode ) {
 
-            updateForEach( (ForEachTransferNode) tn,
-                           (ForEachNode) node );
+            if ( tn.getType() == Type.FOR_EACH ) {
+
+                updateForEach( (ElementContainerTransferNode) tn,
+                               (ForEachNode) node );
+
+            } else if ( tn.getType() == Type.COMPOSITE ) {
+
+                updateComposite( (ElementContainerTransferNode) tn,
+                                 (CompositeNode) node );
+
+            }
         }
     }
 
@@ -118,7 +144,7 @@
         }
     }
 
-    private static void updateForEach(ForEachTransferNode tn,
+    private static void updateForEach(ElementContainerTransferNode tn,
                                       ForEachNode foreachNode) {
 
         for ( TransferNode subTn : tn.getContentModel().getNodes() ) {
@@ -130,6 +156,18 @@
         }
     }
 
+    private static void updateComposite(ElementContainerTransferNode tn,
+                                        CompositeNode compositeNode) {
+
+        for ( TransferNode subTn : tn.getContentModel().getNodes() ) {
+
+            Node subNode = compositeNode.getNode( subTn.getId() );
+
+            updateNode( subTn,
+                        subNode );
+        }
+    }
+
     private static void updateConstraint(Constraint to,
                                          org.drools.guvnor.client.rulefloweditor.SplitNode.Constraint from) {
 

Added: labs/jbossrules/trunk/drools-guvnor/src/test/resources/org/drools/guvnor/server/builder/ruleflow.rf
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/test/resources/org/drools/guvnor/server/builder/ruleflow.rf	                        (rev 0)
+++ labs/jbossrules/trunk/drools-guvnor/src/test/resources/org/drools/guvnor/server/builder/ruleflow.rf	2008-11-04 11:03:41 UTC (rev 23693)
@@ -0,0 +1,104 @@
+<?xml version="1.0" encoding="UTF-8"?> 
+<process xmlns="http://drools.org/drools-4.0/process"
+         xmlns:xs="http://www.w3.org/2001/XMLSchema-instance"
+         xs:schemaLocation="http://drools.org/drools-4.0/process drools-processes-4.0.xsd"
+         type="RuleFlow" name="flow" >
+
+  <header>
+  </header>
+
+  <nodes>
+    <workItem id="15" name="Log" x="48" y="477" >
+      <work name="Log" >
+        <parameter name="Message" >
+          <type name="org.drools.process.core.datatype.impl.type.StringDataType" />
+        </parameter>
+      </work>
+    </workItem>
+    <humanTask id="4" name="Human Task" x="130" y="372" >
+      <work name="Human Task" >
+        <parameter name="Comment" >
+          <type name="org.drools.process.core.datatype.impl.type.StringDataType" />
+        </parameter>
+        <parameter name="TaskName" >
+          <type name="org.drools.process.core.datatype.impl.type.StringDataType" />
+        </parameter>
+        <parameter name="ActorId" >
+          <type name="org.drools.process.core.datatype.impl.type.StringDataType" />
+        </parameter>
+        <parameter name="Priority" >
+          <type name="org.drools.process.core.datatype.impl.type.StringDataType" />
+        </parameter>
+      </work>
+    </humanTask>
+    <subProcess id="8" name="SubProcess" x="424" y="114" width="80" height="40" >
+    </subProcess>
+    <join id="11" name="Join" x="230" y="174" />
+    <eventNode id="16" name="Event" x="37" y="272" >
+      <eventFilters>
+      </eventFilters>
+    </eventNode>
+    <forEach id="3" name="ForEach" x="278" y="439" >
+      <nodes>
+    <actionNode id="1" name="Action" x="10" y="38" />
+      </nodes>
+      <connections>
+      </connections>
+      <in-ports>
+      </in-ports>
+      <out-ports>
+      </out-ports>
+    </forEach>
+    <actionNode id="7" name="Action" x="163" y="303" />
+    <ruleSet id="12" name="RuleSet" x="504" y="467" width="80" height="40" ruleFlowGroup="" />
+    <composite id="2" name="CompositeNode" x="389" y="204" width="200" height="150" >
+      <nodes>
+    <actionNode id="2" name="Action" x="60" y="100" width="80" height="40" />
+    <actionNode id="1" name="Action" x="57" y="43" />
+      </nodes>
+      <connections>
+    <connection from="1" to="2" />
+      </connections>
+      <in-ports>
+      </in-ports>
+      <out-ports>
+      </out-ports>
+    </composite>
+    <end id="13" name="End" x="753" y="268" width="80" height="40" />
+    <milestone id="9" name="Event Wait" x="683" y="466" width="80" height="40" />
+    <timerNode id="6" name="Timer" x="148" y="51" width="80" height="40" delay="0" />
+    <start id="1" name="Start" x="67" y="162" width="80" height="40" />
+    <workItem id="14" name="Email" x="152" y="475" >
+      <work name="Email" >
+        <parameter name="To" >
+          <type name="org.drools.process.core.datatype.impl.type.StringDataType" />
+        </parameter>
+        <parameter name="From" >
+          <type name="org.drools.process.core.datatype.impl.type.StringDataType" />
+        </parameter>
+        <parameter name="Text" >
+          <type name="org.drools.process.core.datatype.impl.type.StringDataType" />
+        </parameter>
+        <parameter name="Subject" >
+          <type name="org.drools.process.core.datatype.impl.type.StringDataType" />
+        </parameter>
+      </work>
+    </workItem>
+    <split id="10" name="Split" x="291" y="64" width="80" height="40" />
+    <fault id="5" name="Fault" x="746" y="74" width="80" height="40" />
+  </nodes>
+
+  <connections>
+    <connection from="10" to="8" />
+    <connection from="10" to="11" />
+    <connection from="2" to="11" />
+    <connection from="11" to="7" />
+    <connection from="7" to="12" />
+    <connection from="8" to="2" />
+    <connection from="9" to="13" />
+    <connection from="12" to="9" />
+    <connection from="1" to="6" />
+    <connection from="6" to="10" />
+  </connections>
+
+</process>
\ No newline at end of file


Property changes on: labs/jbossrules/trunk/drools-guvnor/src/test/resources/org/drools/guvnor/server/builder/ruleflow.rf
___________________________________________________________________
Name: svn:mergeinfo
   + 




More information about the jboss-svn-commits mailing list