From 254ee6f47eebfc00462c10756a92066e82cc1a96 Mon Sep 17 00:00:00 2001 From: Andrew Branson Date: Tue, 21 Jun 2011 15:46:02 +0200 Subject: Initial commit --- .../instance/gui/model/WfVertexFactory.java | 88 ++++++++++++++++++++++ 1 file changed, 88 insertions(+) create mode 100755 source/com/c2kernel/lifecycle/instance/gui/model/WfVertexFactory.java (limited to 'source/com/c2kernel/lifecycle/instance/gui/model/WfVertexFactory.java') diff --git a/source/com/c2kernel/lifecycle/instance/gui/model/WfVertexFactory.java b/source/com/c2kernel/lifecycle/instance/gui/model/WfVertexFactory.java new file mode 100755 index 0000000..020d694 --- /dev/null +++ b/source/com/c2kernel/lifecycle/instance/gui/model/WfVertexFactory.java @@ -0,0 +1,88 @@ +package com.c2kernel.lifecycle.instance.gui.model; +import java.awt.Point; +import java.util.HashMap; + +import javax.swing.JOptionPane; + +import com.c2kernel.graph.model.GraphModelManager; +import com.c2kernel.graph.model.TypeNameAndConstructionInfo; +import com.c2kernel.graph.model.VertexFactory; +import com.c2kernel.lifecycle.ActivityDef; +import com.c2kernel.lifecycle.chooser.ActivityChooser; +import com.c2kernel.lifecycle.chooser.WorkflowDialogue; +import com.c2kernel.lifecycle.instance.Activity; +import com.c2kernel.lifecycle.instance.CompositeActivity; +import com.c2kernel.utils.Language; +import com.c2kernel.utils.LocalObjectLoader; +import com.c2kernel.utils.Resource; +public class WfVertexFactory implements VertexFactory, WorkflowDialogue +{ + protected CompositeActivity mRootAct = null; + public void create(GraphModelManager graphModelManager, Point location, TypeNameAndConstructionInfo typeNameAndConstructionInfo) + { + String vertexTypeId = null; + if (mRootAct != null && typeNameAndConstructionInfo.mInfo instanceof String) + { + vertexTypeId = (String) typeNameAndConstructionInfo.mInfo; + if (vertexTypeId.equals("Atomic") || vertexTypeId.equals("Composite")) + { + HashMap mhm = new HashMap(); + mhm.put("P1", vertexTypeId); + mhm.put("P2", location); + //************************************************ + ActivityChooser a = + new ActivityChooser( + Language.translate("Please enter a Type for the new activity"), + Language.translate("New " + vertexTypeId + " Activity"), + Resource.getImageResource("graph/newvertex_large.png").getImage(), + this, + mhm); + a.setVisible(true); + } + else + mRootAct.newChild(vertexTypeId, location); + } + } + public void setCreationContext(Object newContext) + { + if (newContext != null && newContext instanceof CompositeActivity) + mRootAct = (CompositeActivity) newContext; + } + public void loadThisWorkflow(String newName, HashMap hashMap) + { + String vertexTypeId = (String) hashMap.get("P1"); + Point location = (Point) hashMap.get("P2"); + if (newName == null) + return; + + + String unicName = newName; + while (mRootAct.search(mRootAct.getPath() + "/" + unicName) != null) + { + unicName = + (String) JOptionPane.showInputDialog( + null, + Language.translate("Activity name not unique. Please give another."), + Language.translate("New " + vertexTypeId + " Activity"), + JOptionPane.QUESTION_MESSAGE, + Resource.getImageResource("graph/newvertex_large.png"), + null, + null); + if (newName == null || newName.equals("")) + return; + } + Activity act = null; + try + { + ActivityDef actD = LocalObjectLoader.getActDef(newName, "last"); + act = (Activity)actD.instantiate(unicName); + } + catch (Exception e) + { + } + if (act == null) + mRootAct.newChild(unicName, vertexTypeId, location); + else + mRootAct.newExistingChild(act, unicName, location); + } +} -- cgit v1.2.3