From 3069ddf81b3cce2303cc1528e5de4708a798841f Mon Sep 17 00:00:00 2001 From: Andrew Branson Date: Tue, 26 Jun 2012 20:57:49 +0200 Subject: More GUI refactoring --- .../gui/lifecycle/instance/WfEdgeFactory.java | 35 ++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 src/main/java/com/c2kernel/gui/lifecycle/instance/WfEdgeFactory.java (limited to 'src/main/java/com/c2kernel/gui/lifecycle/instance/WfEdgeFactory.java') diff --git a/src/main/java/com/c2kernel/gui/lifecycle/instance/WfEdgeFactory.java b/src/main/java/com/c2kernel/gui/lifecycle/instance/WfEdgeFactory.java new file mode 100644 index 0000000..06f7462 --- /dev/null +++ b/src/main/java/com/c2kernel/gui/lifecycle/instance/WfEdgeFactory.java @@ -0,0 +1,35 @@ +package com.c2kernel.gui.lifecycle.instance; + +import com.c2kernel.graph.model.DirectedEdge; +import com.c2kernel.graph.model.EdgeFactory; +import com.c2kernel.graph.model.GraphModelManager; +import com.c2kernel.graph.model.TypeNameAndConstructionInfo; +import com.c2kernel.graph.model.Vertex; +import com.c2kernel.lifecycle.instance.WfVertex; + +public class WfEdgeFactory implements EdgeFactory +{ + @Override + public void create + ( + GraphModelManager graphModelManager, + Vertex origin, + Vertex terminus, + TypeNameAndConstructionInfo typeNameAndConstructionInfo + ) + { + if ( validCreation( graphModelManager, origin, terminus ) ) + ((WfVertex)origin).addNext((WfVertex)terminus); + + } + + private static boolean validCreation( GraphModelManager graphModelManager, Vertex origin, Vertex terminus ) + { + DirectedEdge[] connectingEdgesAToB = graphModelManager.getModel().getConnectingEdges( origin.getID() , terminus.getID() ); + DirectedEdge[] connectingEdgesBToA = graphModelManager.getModel().getConnectingEdges( terminus.getID(), origin.getID() ); + + + return ( origin != terminus ) && ( connectingEdgesAToB.length == 0 ) && ( connectingEdgesBToA.length == 0 ); + } +} + -- cgit v1.2.3