[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