summaryrefslogtreecommitdiff
path: root/src/main/java/com/c2kernel/gui/lifecycle/desc/WfVertexDefFactory.java
diff options
context:
space:
mode:
authorAndrew Branson <andrew.branson@cern.ch>2012-06-26 20:57:49 +0200
committerAndrew Branson <andrew.branson@cern.ch>2012-06-26 20:57:49 +0200
commit3069ddf81b3cce2303cc1528e5de4708a798841f (patch)
tree5fd1ca9057f142b862e394a6347727e0b372522f /src/main/java/com/c2kernel/gui/lifecycle/desc/WfVertexDefFactory.java
parent99eed1e3c7e7292aea91131baeb36f81e23e3e82 (diff)
More GUI refactoring
Diffstat (limited to 'src/main/java/com/c2kernel/gui/lifecycle/desc/WfVertexDefFactory.java')
-rw-r--r--src/main/java/com/c2kernel/gui/lifecycle/desc/WfVertexDefFactory.java98
1 files changed, 98 insertions, 0 deletions
diff --git a/src/main/java/com/c2kernel/gui/lifecycle/desc/WfVertexDefFactory.java b/src/main/java/com/c2kernel/gui/lifecycle/desc/WfVertexDefFactory.java
new file mode 100644
index 0000000..d942e03
--- /dev/null
+++ b/src/main/java/com/c2kernel/gui/lifecycle/desc/WfVertexDefFactory.java
@@ -0,0 +1,98 @@
+package com.c2kernel.gui.lifecycle.desc;
+import java.awt.Point;
+import com.c2kernel.gui.MainFrame;
+import java.io.Serializable;
+import java.util.HashMap;
+
+import javax.swing.JOptionPane;
+
+import com.c2kernel.graph.model.GraphModelManager;
+import com.c2kernel.graph.model.GraphPoint;
+import com.c2kernel.graph.model.TypeNameAndConstructionInfo;
+import com.c2kernel.graph.model.VertexFactory;
+import com.c2kernel.gui.lifecycle.chooser.ActivityChooser;
+import com.c2kernel.gui.lifecycle.chooser.WorkflowDialogue;
+import com.c2kernel.lifecycle.ActivityDef;
+import com.c2kernel.lifecycle.CompositeActivityDef;
+import com.c2kernel.utils.Language;
+import com.c2kernel.utils.LocalObjectLoader;
+import com.c2kernel.utils.Logger;
+import com.c2kernel.utils.Resource;
+public class WfVertexDefFactory implements VertexFactory, WorkflowDialogue
+{
+ protected CompositeActivityDef mCompositeActivityDef = null;
+ @Override
+ public void create(GraphModelManager graphModelManager, Point location, TypeNameAndConstructionInfo typeNameAndConstructionInfo)
+ {
+ String vertexTypeId = null;
+ if (mCompositeActivityDef != null && typeNameAndConstructionInfo.mInfo instanceof String)
+ {
+ vertexTypeId = (String) typeNameAndConstructionInfo.mInfo;
+ if (vertexTypeId.equals("Atomic") || vertexTypeId.equals("Composite"))
+ {
+ // ask for a name
+ HashMap<String, Serializable> mhm = new HashMap<String, Serializable>();
+ mhm.put("P1", vertexTypeId);
+ mhm.put("P2", location);
+ //************************************************
+ ActivityChooser a =
+ new ActivityChooser(
+ Language.translate("Please enter a Type for the new activityDef"),
+ Language.translate("New " + vertexTypeId + " Activity"),
+ Resource.findImage("graph/newvertex_large.png").getImage(),
+ this,
+ mhm);
+ a.setVisible(true);
+ }
+ else
+ mCompositeActivityDef.newChild("", vertexTypeId, location);
+ }
+ }
+ @Override
+ public void loadThisWorkflow(String newName, HashMap<?, ?> hashMap)
+ {
+ String vertexTypeId = (String) hashMap.get("P1");
+ Point location = (Point) hashMap.get("P2");
+ if (newName == null || newName.equals(""))
+ return;
+ Logger.debug(5, newName);
+ ActivityDef act = (ActivityDef) mCompositeActivityDef.search(mCompositeActivityDef.getID() + "/" + newName);
+ if (act != null)
+ {
+ String unicName = newName;
+ while (unicName == null
+ || unicName == ""
+ || mCompositeActivityDef.search(mCompositeActivityDef.getID() + "/" + unicName) != null)
+ unicName =
+ (String) JOptionPane.showInputDialog(
+ null,
+ Language.translate("Please type a Name"),
+ Language.translate("New " + vertexTypeId + " Activity"),
+ JOptionPane.QUESTION_MESSAGE,
+ Resource.findImage("graph/newvertex_large.png"),
+ null,
+ null);
+ act = (ActivityDef) mCompositeActivityDef.search(mCompositeActivityDef.getID() + "/" + newName);
+ mCompositeActivityDef.addExistingActivityDef(unicName, act, new GraphPoint(location.x, location.y));
+ }
+ else
+ {
+ try
+ {
+ act = LocalObjectLoader.getActDef(newName, "last");
+ }
+ catch (Exception ex)
+ {
+ MainFrame.exceptionDialog(ex);
+ return;
+ }
+ mCompositeActivityDef.newChild(newName, vertexTypeId, location);
+ }
+ }
+ @Override
+ public void setCreationContext(Object newContext)
+ {
+ if (newContext != null && newContext instanceof CompositeActivityDef)
+ mCompositeActivityDef = (CompositeActivityDef) newContext;
+ }
+}