summaryrefslogtreecommitdiff
path: root/src/main/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
parent99eed1e3c7e7292aea91131baeb36f81e23e3e82 (diff)
More GUI refactoring
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/com/c2kernel/gui/MainFrame.java12
-rw-r--r--src/main/java/com/c2kernel/gui/MenuBuilder.java2
-rw-r--r--src/main/java/com/c2kernel/gui/graph/controller/VertexConstructionController.java7
-rw-r--r--src/main/java/com/c2kernel/gui/graph/view/VertexPropertyPanel.java4
-rw-r--r--src/main/java/com/c2kernel/gui/lifecycle/chooser/ActivityChooser.java194
-rw-r--r--src/main/java/com/c2kernel/gui/lifecycle/chooser/LDAPEntryChooser.java70
-rw-r--r--src/main/java/com/c2kernel/gui/lifecycle/chooser/LDAPFileChooser.java121
-rw-r--r--src/main/java/com/c2kernel/gui/lifecycle/chooser/WorkflowDialogue.java20
-rw-r--r--src/main/java/com/c2kernel/gui/lifecycle/desc/CompActDefOutcomeHandler.java6
-rw-r--r--src/main/java/com/c2kernel/gui/lifecycle/desc/WfEdgeDefFactory.java30
-rw-r--r--src/main/java/com/c2kernel/gui/lifecycle/desc/WfVertexDefFactory.java98
-rw-r--r--src/main/java/com/c2kernel/gui/lifecycle/instance/WfEdgeFactory.java35
-rw-r--r--src/main/java/com/c2kernel/gui/lifecycle/instance/WfVertexFactory.java92
-rw-r--r--src/main/java/com/c2kernel/gui/tabs/DomainPathAdmin.java2
-rw-r--r--src/main/java/com/c2kernel/gui/tabs/PropertiesPane.java4
-rw-r--r--src/main/java/com/c2kernel/gui/tabs/ViewpointPane.java4
-rw-r--r--src/main/java/com/c2kernel/gui/tabs/WorkflowPane.java6
-rw-r--r--src/main/java/com/c2kernel/gui/tabs/execution/ActivityViewer.java8
-rw-r--r--src/main/java/com/c2kernel/gui/tabs/outcome/form/MultiLinePasteAdapter.java3
-rw-r--r--src/main/java/com/c2kernel/gui/tabs/outcome/form/field/ComboField.java4
-rw-r--r--src/main/java/com/c2kernel/gui/tabs/outcome/form/field/ImageEditField.java4
21 files changed, 701 insertions, 25 deletions
diff --git a/src/main/java/com/c2kernel/gui/MainFrame.java b/src/main/java/com/c2kernel/gui/MainFrame.java
index 46937d0..b516b2f 100644
--- a/src/main/java/com/c2kernel/gui/MainFrame.java
+++ b/src/main/java/com/c2kernel/gui/MainFrame.java
@@ -19,11 +19,14 @@ import javax.swing.ImageIcon;
import javax.swing.JComboBox;
import javax.swing.JFileChooser;
import javax.swing.JLabel;
+import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JSplitPane;
import javax.swing.SwingUtilities;
import javax.swing.UIManager;
+import org.omg.CORBA.UserException;
+
import com.c2kernel.entity.proxy.AgentProxy;
import com.c2kernel.gui.tabs.execution.DefaultExecutor;
import com.c2kernel.gui.tabs.execution.Executor;
@@ -306,4 +309,13 @@ public class MainFrame extends javax.swing.JFrame {
return splitPane;
}
+ static public void exceptionDialog(Exception ex)
+ {
+ String className = ex.getClass().getSimpleName();
+ String error = ex.getMessage();
+ if (ex instanceof UserException)
+ error = error.substring(error.indexOf(' ') + 1);
+ JOptionPane.showMessageDialog(null, error, className, JOptionPane.ERROR_MESSAGE);
+ }
+
}
diff --git a/src/main/java/com/c2kernel/gui/MenuBuilder.java b/src/main/java/com/c2kernel/gui/MenuBuilder.java
index 255e7c1..22b7e7b 100644
--- a/src/main/java/com/c2kernel/gui/MenuBuilder.java
+++ b/src/main/java/com/c2kernel/gui/MenuBuilder.java
@@ -270,7 +270,7 @@ public void hyperlinkUpdate(HyperlinkEvent e) {
if (e.getEventType() == HyperlinkEvent.EventType.ACTIVATED)
Runtime.getRuntime().exec("rundll32 url.dll,FileProtocolHandler "+e.getURL().toString());
} catch (Exception ex) {
- Logger.exceptionDialog(ex);
+ MainFrame.exceptionDialog(ex);
}
}
diff --git a/src/main/java/com/c2kernel/gui/graph/controller/VertexConstructionController.java b/src/main/java/com/c2kernel/gui/graph/controller/VertexConstructionController.java
index cd6d455..5d5dd5f 100644
--- a/src/main/java/com/c2kernel/gui/graph/controller/VertexConstructionController.java
+++ b/src/main/java/com/c2kernel/gui/graph/controller/VertexConstructionController.java
@@ -4,6 +4,7 @@ import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import com.c2kernel.graph.model.GraphModelManager;
+import com.c2kernel.gui.MainFrame;
import com.c2kernel.gui.graph.view.EditorModeListener;
import com.c2kernel.gui.graph.view.EditorToolBar;
@@ -40,7 +41,11 @@ public class VertexConstructionController extends MouseAdapter implements Editor
{
if(mCreatingVertices && (mGraphModelManager != null) && (mEditorToolBar != null) && mGraphModelManager.isEditable())
{
- mGraphModelManager.getModel().createVertex(me.getPoint(), mEditorToolBar.getSelectedVertexType());
+ try {
+ mGraphModelManager.getModel().createVertex(me.getPoint(), mEditorToolBar.getSelectedVertexType());
+ } catch (Exception e) {
+ MainFrame.exceptionDialog(e);
+ }
mEditorToolBar.enterSelectMode();
}
}
diff --git a/src/main/java/com/c2kernel/gui/graph/view/VertexPropertyPanel.java b/src/main/java/com/c2kernel/gui/graph/view/VertexPropertyPanel.java
index c4b6303..4f250a8 100644
--- a/src/main/java/com/c2kernel/gui/graph/view/VertexPropertyPanel.java
+++ b/src/main/java/com/c2kernel/gui/graph/view/VertexPropertyPanel.java
@@ -28,9 +28,9 @@ import com.c2kernel.graph.model.GraphModelManager;
import com.c2kernel.graph.model.GraphableEdge;
import com.c2kernel.graph.model.GraphableVertex;
import com.c2kernel.graph.model.Vertex;
+import com.c2kernel.gui.MainFrame;
import com.c2kernel.gui.tabs.EntityTabPane;
import com.c2kernel.utils.Language;
-import com.c2kernel.utils.Logger;
/**************************************************************************
*
@@ -244,7 +244,7 @@ public class VertexPropertyPanel extends JPanel implements Observer, TableModelL
Object[] initParams = { typeInitVal[newPropType.getSelectedIndex()] };
mPropertyModel.addProperty(newPropName.getText(), init.newInstance(initParams));
} catch (Exception ex) {
- Logger.exceptionDialog(ex);
+ MainFrame.exceptionDialog(ex);
}
}
else if (e.getSource() == delPropButton) {
diff --git a/src/main/java/com/c2kernel/gui/lifecycle/chooser/ActivityChooser.java b/src/main/java/com/c2kernel/gui/lifecycle/chooser/ActivityChooser.java
new file mode 100644
index 0000000..5ca7d2e
--- /dev/null
+++ b/src/main/java/com/c2kernel/gui/lifecycle/chooser/ActivityChooser.java
@@ -0,0 +1,194 @@
+/*
+ * Created on 1 sept. 2003
+ *
+ * To change the template for this generated file go to Window>Preferences>Java>Code Generation>Code and Comments
+ */
+package com.c2kernel.gui.lifecycle.chooser;
+
+import java.awt.Container;
+import java.awt.Cursor;
+import java.awt.Dimension;
+import java.awt.Image;
+import java.awt.Toolkit;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.util.HashMap;
+
+import javax.swing.BorderFactory;
+import javax.swing.Box;
+import javax.swing.BoxLayout;
+import javax.swing.JButton;
+import javax.swing.JFrame;
+import javax.swing.JLabel;
+import javax.swing.JPanel;
+
+import com.c2kernel.utils.Language;
+import com.c2kernel.utils.Logger;
+import com.c2kernel.utils.Resource;
+
+/**
+ * @author Developpement
+ *
+ * To change the template for this generated type comment go to
+ * Window>Preferences>Java>Code Generation>Code and Comments
+ */
+public class ActivityChooser extends JFrame
+{
+ private LDAPFileChooser mLDAPFileChooserActivity = null;
+
+ private JButton mButtonOK = null;
+
+ private JButton mButtonCancel = null;
+
+ private JPanel mJPanelVertical = null;
+
+ private JPanel mJPanelHorizontal = null;
+
+ private String mMessage = "Choose or modify";
+
+ private WorkflowDialogue mParent = null;
+
+ private JLabel label = null;
+
+ HashMap<?, ?> mhashmap = null;
+
+ public ActivityChooser(String message, String title, Image img, WorkflowDialogue parent, HashMap<?, ?> hashmap)
+ {
+ super(title);
+ mMessage = message;
+ img = Resource.findImage("graph/newvertex_large.png").getImage();
+ setIconImage(img);
+ mParent = parent;
+ mhashmap = hashmap;
+ initialize();
+ }
+
+ private JButton getJButtonOK()
+ {
+ if (mButtonOK == null)
+ mButtonOK = new JButton(Language.translate("OK"));
+ return mButtonOK;
+ }
+
+ private JButton getJButtonCancel()
+ {
+ if (mButtonCancel == null)
+ mButtonCancel = new JButton(Language.translate("Cancel"));
+ return mButtonCancel;
+ }
+
+ private LDAPFileChooser getLDAPFileChooserActivity()
+ {
+ if (mLDAPFileChooserActivity == null)
+ {
+ try
+ {
+ mLDAPFileChooserActivity = new LDAPFileChooser(LDAPFileChooser.ACTIVITY_CHOOSER);
+ mLDAPFileChooserActivity.setName("LDAPFileChooserRouting");
+ mLDAPFileChooserActivity.setEditable(false);
+ //mLDAPFileChooserActivity.setBounds(125, 13, 400, 19);
+ } catch (Exception mExc)
+ {
+ Logger.error(mExc);
+ }
+ }
+ return mLDAPFileChooserActivity;
+ }
+
+ private void initialize()
+ {
+ getJButtonOK().addActionListener(new ActionListener()
+ {
+ @Override
+ public void actionPerformed(ActionEvent e)
+ {
+ Logger.debug(5, "mLDAPFileChooserActivity.getEntryName()" + mLDAPFileChooserActivity.getEntryName());
+ setCursor(new Cursor(Cursor.WAIT_CURSOR));
+ mParent.loadThisWorkflow(mLDAPFileChooserActivity.getEntryName(), mhashmap);
+ setCursor(new Cursor(Cursor.DEFAULT_CURSOR));
+ close();
+ }
+ });
+ getJButtonCancel().addActionListener(new ActionListener()
+ {
+ @Override
+ public void actionPerformed(ActionEvent e)
+ {
+ close();
+ }
+ });
+ //getContentPane().add(getJPanelVertical());
+ Container contentPane = getContentPane();
+ contentPane.setLayout(new BoxLayout(contentPane, BoxLayout.Y_AXIS));
+ contentPane.add(getJPanelVertical());
+ contentPane.add(getJPanelHorizontal());
+ contentPane.add(Box.createGlue());
+ Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
+ setLocation((d.width - getWidth()) / 2, (d.height - getHeight()) / 2);
+ setResizable(true);
+ pack();
+ setSize(new Dimension(getWidth(), getJButtonCancel().getHeight() + getLDAPFileChooserActivity().getHeight() + label.getHeight() + 100));
+ setVisible(true);
+ setVisible(true);
+ }
+
+ private void close()
+ {
+ mParent = null;
+ this.setEnabled(false);
+ this.setVisible(false);
+ }
+
+ private JPanel getJPanelVertical()
+ {
+ if (mJPanelVertical == null)
+ {
+ try
+ {
+ Logger.debug(8, "Panel button");
+ mJPanelVertical = new JPanel();
+ mJPanelVertical.setName("JPanelV");
+ mJPanelVertical.setLayout(new BoxLayout(mJPanelVertical, BoxLayout.Y_AXIS));
+ label = new JLabel(mMessage);
+ JPanel labelP = new JPanel();
+ labelP.setLayout(new BoxLayout(labelP, BoxLayout.X_AXIS));
+ labelP.add(label);
+ labelP.add(Box.createGlue());
+ mJPanelVertical.add(labelP);
+ mJPanelVertical.add(Box.createRigidArea(new Dimension(0, 5)));
+ mJPanelVertical.add(getLDAPFileChooserActivity(), getLDAPFileChooserActivity().getName());
+ //mJPanelVertical.add(Box.createRigidArea(new Dimension(0,
+ // 10)));
+ mJPanelVertical.add(Box.createGlue());
+ mJPanelVertical.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10));
+ mJPanelVertical.setVisible(true);
+ } catch (java.lang.Throwable mExc)
+ {
+ //handleException(mExc);
+ }
+ }
+ return mJPanelVertical;
+ }
+
+ private JPanel getJPanelHorizontal()
+ {
+ if (mJPanelHorizontal == null)
+ {
+ try
+ {
+ Logger.debug(8, "Panel button");
+ mJPanelHorizontal = new JPanel();
+ mJPanelHorizontal.setName("JPanelH");
+ mJPanelHorizontal.setLayout(new BoxLayout(mJPanelHorizontal, BoxLayout.X_AXIS));
+ mJPanelHorizontal.add(getJButtonOK(), getJButtonOK().getName());
+ mJPanelHorizontal.add(Box.createRigidArea(new Dimension(10, 0)));
+ mJPanelHorizontal.add(getJButtonCancel(), getJButtonCancel().getName());
+ mJPanelHorizontal.setVisible(true);
+ } catch (java.lang.Throwable mExc)
+ {
+ //handleException(mExc);
+ }
+ }
+ return mJPanelHorizontal;
+ }
+} \ No newline at end of file
diff --git a/src/main/java/com/c2kernel/gui/lifecycle/chooser/LDAPEntryChooser.java b/src/main/java/com/c2kernel/gui/lifecycle/chooser/LDAPEntryChooser.java
new file mode 100644
index 0000000..8a2c0cc
--- /dev/null
+++ b/src/main/java/com/c2kernel/gui/lifecycle/chooser/LDAPEntryChooser.java
@@ -0,0 +1,70 @@
+package com.c2kernel.gui.lifecycle.chooser;
+/**
+ * @version $Revision: 1.2 $ $Date: 2005/12/01 14:23:15 $
+ * @author $Author: abranson $
+ */
+
+import java.awt.Dimension;
+import com.c2kernel.gui.MainFrame;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Enumeration;
+
+import javax.swing.JComboBox;
+
+import com.c2kernel.lookup.DomainPath;
+import com.c2kernel.process.Gateway;
+
+public class LDAPEntryChooser extends JComboBox
+{
+
+ DomainPath mDomainPath = null;
+ ArrayList<String> allItems = new ArrayList<String>();
+
+ public LDAPEntryChooser(DomainPath domPath, boolean editable)
+ {
+ super();
+ setEditable(editable);
+ mDomainPath = domPath;
+ initialise();
+ }
+
+ private void initialise()
+ {
+ try
+ {
+ Enumeration<?> children = Gateway.getLDAPLookup().searchAliases(mDomainPath);
+ while (children.hasMoreElements())
+ {
+ DomainPath domPath = (DomainPath)children.nextElement();
+ allItems.add(domPath.getName());
+ }
+ }
+ catch (Exception ex)
+ {
+ MainFrame.exceptionDialog(ex);
+ }
+
+ Collections.sort(allItems);
+ addItem("");
+ for (String element : allItems) {
+ addItem(element);
+ }
+
+ }
+
+ public void reload()
+ {
+ removeAllItems();
+ initialise();
+ }
+
+ @Override
+ public synchronized Dimension getSize()
+ {
+ if ("1".equals(Gateway.getProperty("ResizeCombo")))
+ return new Dimension(super.getSize().width<400?400:super.getSize().width,super.getSize().height);
+ return super.getSize();
+ }
+
+}
diff --git a/src/main/java/com/c2kernel/gui/lifecycle/chooser/LDAPFileChooser.java b/src/main/java/com/c2kernel/gui/lifecycle/chooser/LDAPFileChooser.java
new file mode 100644
index 0000000..b0d28a0
--- /dev/null
+++ b/src/main/java/com/c2kernel/gui/lifecycle/chooser/LDAPFileChooser.java
@@ -0,0 +1,121 @@
+package com.c2kernel.gui.lifecycle.chooser;
+import java.awt.Dimension;
+import java.awt.event.ItemListener;
+import java.util.HashMap;
+
+import javax.swing.BoxLayout;
+import javax.swing.JPanel;
+
+import com.c2kernel.lookup.DomainPath;
+import com.c2kernel.persistency.ClusterStorage;
+import com.c2kernel.utils.Logger;
+
+//import fr.agilium.gui.tabs.wfPropertiesViewer.JPanelTabbedProperties;
+/**
+ * @version $Revision: 1.2 $ $Date: 2005/06/27 15:16:12 $
+ * @author $Author: abranson $
+ */
+
+public class LDAPFileChooser extends JPanel
+{
+ public static String SCRIPT_CHOOSER = "Script";
+ public static String SCHEMA_CHOOSER = "Schema";
+ public static String ACTIVITY_CHOOSER = "Activity";
+ private String chooserMode = null;
+ private HashMap<?, ?> mHashList = null;
+ public LDAPEntryChooser mLec;
+ private boolean mEditable = false;
+ DomainPath domainPath;
+ String itemQuery = null;
+ boolean showversion = true;
+
+ public LDAPFileChooser(String choose)
+ {
+ super();
+ chooserMode = choose;
+ initialise();
+ }
+
+ private void initialise()
+ {
+ if (chooserMode.equals(SCHEMA_CHOOSER))
+ {
+ itemQuery = ClusterStorage.VIEWPOINT + "/Schema/all";
+ domainPath = new DomainPath("/desc/OutcomeDesc/");
+ }
+ else if (chooserMode.equals(SCRIPT_CHOOSER))
+ {
+ itemQuery = ClusterStorage.VIEWPOINT + "/Script/all";
+ domainPath = new DomainPath("/desc/Script/");
+ }
+ else if (chooserMode.equals(ACTIVITY_CHOOSER))
+ {
+ domainPath = new DomainPath("/desc/ActivityDesc/");
+ showversion = false;
+ }
+ else
+ return;
+ mLec = new LDAPEntryChooser(domainPath, mEditable);
+
+ mLec.setPreferredSize(new Dimension(220, 19));
+ mLec.setMaximumSize(new Dimension(3000, 22));
+ mLec.setMinimumSize(new Dimension(50, 19));
+ //mLec.getRenderer().getListCellRendererComponent();
+
+ BoxLayout blyt = new BoxLayout(this, BoxLayout.X_AXIS);
+ setLayout(blyt);
+ add(mLec);
+ mLec.setVisible(true);
+ this.validate();
+ this.setVisible(true);
+
+ }
+
+ public String getEntryName()
+ {
+ return (String) mLec.getSelectedItem();
+ }
+
+ public void addItemListener(ItemListener il)
+ {
+ mLec.addItemListener(il);
+ }
+ public void setSelectedItem(String name, String version)
+ {
+ Logger.debug(5,"setSelectedItem " + name + " " + version);
+ if (name == null||name.equals("-1")) name="";
+ mLec.setSelectedItem(name);
+ }
+
+ public void reload()
+ {
+ mLec.reload();
+ }
+
+ public void removeAllItems()
+ {
+ mLec.removeAllItems();
+ }
+
+ /**
+ * @param b
+ */
+ public void setEditable(boolean b)
+ {
+ mEditable = b;
+ mLec.setEditable(b);
+ }
+
+ @Override
+ public void updateUI()
+ {
+ if (mLec!=null) mLec.updateUI();
+ super.updateUI();
+ }
+
+ @Override
+ public void setEnabled(boolean enabled)
+ {
+ mLec.setEnabled(enabled);
+ }
+}
diff --git a/src/main/java/com/c2kernel/gui/lifecycle/chooser/WorkflowDialogue.java b/src/main/java/com/c2kernel/gui/lifecycle/chooser/WorkflowDialogue.java
new file mode 100644
index 0000000..30a98a2
--- /dev/null
+++ b/src/main/java/com/c2kernel/gui/lifecycle/chooser/WorkflowDialogue.java
@@ -0,0 +1,20 @@
+/*
+ * Created on 2 sept. 2003
+ *
+ * To change the template for this generated file go to
+ * Window>Preferences>Java>Code Generation>Code and Comments
+ */
+package com.c2kernel.gui.lifecycle.chooser;
+
+import java.util.HashMap;
+
+/**
+ * @author Developpement
+ *
+ * To change the template for this generated type comment go to
+ * Window>Preferences>Java>Code Generation>Code and Comments
+ */
+public interface WorkflowDialogue
+{
+ public void loadThisWorkflow(String name, HashMap<?, ?> hashMap);
+}
diff --git a/src/main/java/com/c2kernel/gui/lifecycle/desc/CompActDefOutcomeHandler.java b/src/main/java/com/c2kernel/gui/lifecycle/desc/CompActDefOutcomeHandler.java
index 16a03a4..3a4db01 100644
--- a/src/main/java/com/c2kernel/gui/lifecycle/desc/CompActDefOutcomeHandler.java
+++ b/src/main/java/com/c2kernel/gui/lifecycle/desc/CompActDefOutcomeHandler.java
@@ -22,9 +22,7 @@ import com.c2kernel.gui.tabs.outcome.OutcomeException;
import com.c2kernel.gui.tabs.outcome.OutcomeHandler;
import com.c2kernel.gui.tabs.outcome.OutcomeNotInitialisedException;
import com.c2kernel.lifecycle.CompositeActivityDef;
-import com.c2kernel.lifecycle.gui.model.WfEdgeDefFactory;
-import com.c2kernel.lifecycle.gui.model.WfVertexDefFactory;
-import com.c2kernel.lifecycle.gui.model.WfVertexDefOutlineCreator;
+import com.c2kernel.lifecycle.WfVertexDefOutlineCreator;
import com.c2kernel.process.Gateway;
import com.c2kernel.utils.CastorXMLUtility;
import com.c2kernel.utils.FileStringUtility;
@@ -110,7 +108,7 @@ public class CompActDefOutcomeHandler
setOutcome(newWf);
setUpGraphEditor();
} catch (Exception e) {
- Logger.exceptionDialog(e);
+ MainFrame.exceptionDialog(e);
}
case JFileChooser.CANCEL_OPTION :
case JFileChooser.ERROR_OPTION :
diff --git a/src/main/java/com/c2kernel/gui/lifecycle/desc/WfEdgeDefFactory.java b/src/main/java/com/c2kernel/gui/lifecycle/desc/WfEdgeDefFactory.java
new file mode 100644
index 0000000..082a4a2
--- /dev/null
+++ b/src/main/java/com/c2kernel/gui/lifecycle/desc/WfEdgeDefFactory.java
@@ -0,0 +1,30 @@
+package com.c2kernel.gui.lifecycle.desc;
+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.NextDef;
+import com.c2kernel.lifecycle.WfVertexDef;
+public class WfEdgeDefFactory implements EdgeFactory
+{
+ @Override
+ public void create(
+ GraphModelManager graphModelManager,
+ Vertex origin,
+ Vertex terminus,
+ TypeNameAndConstructionInfo typeNameAndConstructionInfo)
+ {
+ if (validCreation(graphModelManager, origin, terminus))
+ {
+ NextDef nextDef = new NextDef((WfVertexDef) origin, (WfVertexDef) terminus);
+ graphModelManager.getModel().addEdgeAndCreateId(nextDef, origin, 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);
+ }
+}
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;
+ }
+}
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 );
+ }
+}
+
diff --git a/src/main/java/com/c2kernel/gui/lifecycle/instance/WfVertexFactory.java b/src/main/java/com/c2kernel/gui/lifecycle/instance/WfVertexFactory.java
new file mode 100644
index 0000000..fa6b427
--- /dev/null
+++ b/src/main/java/com/c2kernel/gui/lifecycle/instance/WfVertexFactory.java
@@ -0,0 +1,92 @@
+package com.c2kernel.gui.lifecycle.instance;
+import java.awt.Point;
+import com.c2kernel.gui.lifecycle.chooser.ActivityChooser;
+import com.c2kernel.gui.lifecycle.chooser.WorkflowDialogue;
+import java.io.Serializable;
+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.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;
+ @Override
+ 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<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 activity"),
+ Language.translate("New " + vertexTypeId + " Activity"),
+ Resource.findImage("graph/newvertex_large.png").getImage(),
+ this,
+ mhm);
+ a.setVisible(true);
+ }
+ else
+ mRootAct.newChild(vertexTypeId, location);
+ }
+ }
+ @Override
+ public void setCreationContext(Object newContext)
+ {
+ if (newContext != null && newContext instanceof CompositeActivity)
+ mRootAct = (CompositeActivity) newContext;
+ }
+ @Override
+ 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.findImage("graph/newvertex_large.png"),
+ null,
+ null);
+ if (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);
+ }
+}
diff --git a/src/main/java/com/c2kernel/gui/tabs/DomainPathAdmin.java b/src/main/java/com/c2kernel/gui/tabs/DomainPathAdmin.java
index 408a32c..340ec63 100644
--- a/src/main/java/com/c2kernel/gui/tabs/DomainPathAdmin.java
+++ b/src/main/java/com/c2kernel/gui/tabs/DomainPathAdmin.java
@@ -101,7 +101,7 @@ public void actionPerformed(ActionEvent e) {
try {
MainFrame.userAgent.execute(entity, action+"DomainPath", params);
} catch (Exception e) {
- Logger.exceptionDialog(e);
+ MainFrame.exceptionDialog(e);
return false;
}
return true;
diff --git a/src/main/java/com/c2kernel/gui/tabs/PropertiesPane.java b/src/main/java/com/c2kernel/gui/tabs/PropertiesPane.java
index 4a78581..e5d1dcc 100644
--- a/src/main/java/com/c2kernel/gui/tabs/PropertiesPane.java
+++ b/src/main/java/com/c2kernel/gui/tabs/PropertiesPane.java
@@ -141,7 +141,7 @@ public class PropertiesPane extends EntityTabPane implements EntityProxyObserver
try {
((ItemProxy)sourceEntity.getEntity()).setProperty(MainFrame.userAgent, e.getActionCommand(), newVal);
} catch (Exception ex) {
- Logger.exceptionDialog(ex);
+ MainFrame.exceptionDialog(ex);
}
}
}
@@ -187,7 +187,7 @@ public class PropertiesPane extends EntityTabPane implements EntityProxyObserver
try {
MainFrame.userAgent.execute((ItemProxy)sourceEntity.getEntity(), predefStep, params);
} catch (Exception ex) {
- Logger.exceptionDialog(ex);
+ MainFrame.exceptionDialog(ex);
}
}
diff --git a/src/main/java/com/c2kernel/gui/tabs/ViewpointPane.java b/src/main/java/com/c2kernel/gui/tabs/ViewpointPane.java
index 52c9cb3..6f15bfc 100644
--- a/src/main/java/com/c2kernel/gui/tabs/ViewpointPane.java
+++ b/src/main/java/com/c2kernel/gui/tabs/ViewpointPane.java
@@ -344,7 +344,7 @@ public class ViewpointPane extends EntityTabPane implements ItemListener, Action
}
catch (Exception ex) {
Logger.error(ex);
- Logger.exceptionDialog(ex);
+ MainFrame.exceptionDialog(ex);
}
}
@@ -376,7 +376,7 @@ public class ViewpointPane extends EntityTabPane implements ItemListener, Action
MainFrame.userAgent.execute((ItemProxy)sourceEntity.getEntity(), "AddC2KObject", predefParams);
} catch (Exception e) {
Logger.error(e);
- Logger.exceptionDialog(e);
+ MainFrame.exceptionDialog(e);
}
}
diff --git a/src/main/java/com/c2kernel/gui/tabs/WorkflowPane.java b/src/main/java/com/c2kernel/gui/tabs/WorkflowPane.java
index 1ae4d43..5c3b1ed 100644
--- a/src/main/java/com/c2kernel/gui/tabs/WorkflowPane.java
+++ b/src/main/java/com/c2kernel/gui/tabs/WorkflowPane.java
@@ -21,13 +21,13 @@ import com.c2kernel.gui.graph.view.EditorPanel;
import com.c2kernel.gui.graph.view.VertexPropertyPanel;
import com.c2kernel.gui.lifecycle.instance.TransitionPanel;
import com.c2kernel.gui.lifecycle.instance.WfDirectedEdgeRenderer;
+import com.c2kernel.gui.lifecycle.instance.WfEdgeFactory;
import com.c2kernel.gui.lifecycle.instance.WfGraphPanel;
+import com.c2kernel.gui.lifecycle.instance.WfVertexFactory;
import com.c2kernel.gui.lifecycle.instance.WfVertexRenderer;
import com.c2kernel.lifecycle.instance.CompositeActivity;
+import com.c2kernel.lifecycle.instance.WfVertexOutlineCreator;
import com.c2kernel.lifecycle.instance.Workflow;
-import com.c2kernel.lifecycle.instance.gui.model.WfEdgeFactory;
-import com.c2kernel.lifecycle.instance.gui.model.WfVertexFactory;
-import com.c2kernel.lifecycle.instance.gui.model.WfVertexOutlineCreator;
import com.c2kernel.persistency.ClusterStorage;
import com.c2kernel.process.Gateway;
import com.c2kernel.utils.CastorXMLUtility;
diff --git a/src/main/java/com/c2kernel/gui/tabs/execution/ActivityViewer.java b/src/main/java/com/c2kernel/gui/tabs/execution/ActivityViewer.java
index 707f311..34118a3 100644
--- a/src/main/java/com/c2kernel/gui/tabs/execution/ActivityViewer.java
+++ b/src/main/java/com/c2kernel/gui/tabs/execution/ActivityViewer.java
@@ -209,7 +209,7 @@ public class ActivityViewer extends JPanel implements Runnable {
}
} catch (Exception ex) {
Logger.error(ex);
- Logger.exceptionDialog(ex);
+ MainFrame.exceptionDialog(ex);
}
}
});
@@ -230,7 +230,7 @@ public class ActivityViewer extends JPanel implements Runnable {
}
} catch (Exception ex) {
Logger.error(ex);
- Logger.exceptionDialog(ex);
+ MainFrame.exceptionDialog(ex);
}
}
});
@@ -260,7 +260,7 @@ public class ActivityViewer extends JPanel implements Runnable {
executingJob = thisJob;
new Thread(this).start();
} catch (OutcomeException ex) {
- Logger.exceptionDialog(ex);
+ MainFrame.exceptionDialog(ex);
}
}
@@ -278,7 +278,7 @@ public class ActivityViewer extends JPanel implements Runnable {
} catch (Exception e) {
Logger.error(e);
status.setText(Language.translate("Error during execution"));
- Logger.exceptionDialog(e);
+ MainFrame.exceptionDialog(e);
}
enableAllButtons(true);
}
diff --git a/src/main/java/com/c2kernel/gui/tabs/outcome/form/MultiLinePasteAdapter.java b/src/main/java/com/c2kernel/gui/tabs/outcome/form/MultiLinePasteAdapter.java
index 3c5da27..13112ac 100644
--- a/src/main/java/com/c2kernel/gui/tabs/outcome/form/MultiLinePasteAdapter.java
+++ b/src/main/java/com/c2kernel/gui/tabs/outcome/form/MultiLinePasteAdapter.java
@@ -6,6 +6,7 @@ import java.awt.datatransfer.StringSelection;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
+import com.c2kernel.gui.MainFrame;
import java.util.StringTokenizer;
import javax.swing.JComponent;
@@ -133,7 +134,7 @@ public class MultiLinePasteAdapter implements ActionListener {
}
}
} catch (Exception ex) {
- Logger.exceptionDialog(ex);
+ MainFrame.exceptionDialog(ex);
}
}
diff --git a/src/main/java/com/c2kernel/gui/tabs/outcome/form/field/ComboField.java b/src/main/java/com/c2kernel/gui/tabs/outcome/form/field/ComboField.java
index 2c4ce05..3be29f5 100644
--- a/src/main/java/com/c2kernel/gui/tabs/outcome/form/field/ComboField.java
+++ b/src/main/java/com/c2kernel/gui/tabs/outcome/form/field/ComboField.java
@@ -1,6 +1,7 @@
package com.c2kernel.gui.tabs.outcome.form.field;
import java.awt.Component;
+import com.c2kernel.gui.MainFrame;
import java.util.Enumeration;
import java.util.StringTokenizer;
@@ -16,7 +17,6 @@ import org.exolab.castor.xml.schema.SimpleType;
import com.c2kernel.gui.tabs.outcome.form.StructuralException;
import com.c2kernel.scripting.Script;
-import com.c2kernel.utils.Logger;
/*******************************************************************************
*
@@ -117,7 +117,7 @@ public class ComboField extends StringEditField {
lovscript.setInputParamValue("LOV", vals);
lovscript.execute();
} catch (Exception ex) {
- Logger.exceptionDialog(ex);
+ MainFrame.exceptionDialog(ex);
}
}
diff --git a/src/main/java/com/c2kernel/gui/tabs/outcome/form/field/ImageEditField.java b/src/main/java/com/c2kernel/gui/tabs/outcome/form/field/ImageEditField.java
index 716a073..8eb9368 100644
--- a/src/main/java/com/c2kernel/gui/tabs/outcome/form/field/ImageEditField.java
+++ b/src/main/java/com/c2kernel/gui/tabs/outcome/form/field/ImageEditField.java
@@ -16,7 +16,7 @@ import javax.swing.JLabel;
import org.apache.xerces.impl.dv.util.Base64;
-import com.c2kernel.utils.Logger;
+import com.c2kernel.gui.MainFrame;
public class ImageEditField extends StringEditField {
@@ -70,7 +70,7 @@ public class ImageEditField extends StringEditField {
imageLabel.setIcon(newImage);
encodedImage = Base64.encode(bArray);
} catch (Exception ex) {
- Logger.exceptionDialog(ex);
+ MainFrame.exceptionDialog(ex);
}
}
}