summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorabranson <abranson@PCUWE01.cern.ch>2012-07-02 14:18:15 +0200
committerabranson <abranson@PCUWE01.cern.ch>2012-07-02 14:18:15 +0200
commitba883c45793b0bc0e2f9b1744f9bff6a0060c7a5 (patch)
tree3f68db856eb3a8ff47f6866e046c7e2a84ebce52 /src
parentee7dcc739652fde6bc4226cdfca3913e397895f0 (diff)
ElasticBand and associated events refactored
Fixed CompActOutcome not showing when loaded Image loader refactored from kernel resource loader
Diffstat (limited to 'src')
-rw-r--r--src/main/java/com/c2kernel/gui/ImageLoader.java68
-rw-r--r--src/main/java/com/c2kernel/gui/graph/controller/ElasticBand.java18
-rw-r--r--src/main/java/com/c2kernel/gui/graph/controller/Selection.java38
-rw-r--r--src/main/java/com/c2kernel/gui/graph/event/ElasticBandResizedEvent.java8
-rw-r--r--src/main/java/com/c2kernel/gui/graph/event/ElasticBandSetEvent.java8
-rw-r--r--src/main/java/com/c2kernel/gui/graph/event/SelectionChangedEvent.java10
-rw-r--r--src/main/java/com/c2kernel/gui/graph/event/SelectionMovedEvent.java9
-rw-r--r--src/main/java/com/c2kernel/gui/graph/view/EditorToolBar.java2
-rw-r--r--src/main/java/com/c2kernel/gui/lifecycle/desc/CompActDefOutcomeHandler.java3
9 files changed, 162 insertions, 2 deletions
diff --git a/src/main/java/com/c2kernel/gui/ImageLoader.java b/src/main/java/com/c2kernel/gui/ImageLoader.java
new file mode 100644
index 0000000..f03e1dd
--- /dev/null
+++ b/src/main/java/com/c2kernel/gui/ImageLoader.java
@@ -0,0 +1,68 @@
+package com.c2kernel.gui;
+
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.util.Hashtable;
+
+import javax.swing.ImageIcon;
+
+import com.c2kernel.common.ObjectNotFoundException;
+import com.c2kernel.utils.Logger;
+import com.c2kernel.utils.Resource;
+
+public class ImageLoader {
+
+ static private Hashtable<String, ImageIcon> imgCache = new Hashtable<String, ImageIcon>();
+ static public final ImageIcon nullImg = new ImageIcon(new byte[] { 0 });
+
+ /**
+ * Gets an image from the resource directories
+ *
+ * @param resName - filename after resources/images
+ * @return
+ */
+ static public ImageIcon findImage(String resName) {
+ try {
+ for (String ns : Resource.getModuleBaseURLs().keySet()) {
+ try {
+ return getImage(ns, resName);
+ } catch (ObjectNotFoundException ex) { }
+ }
+ return getImage(null, resName);
+ } catch (ObjectNotFoundException ex) {
+ Logger.warning("Image '"+resName+"' not found. Using null icon");
+ return nullImg;
+ }
+ }
+
+ static public ImageIcon getImage(String ns, String resName) throws ObjectNotFoundException {
+ if (resName == null)
+ return nullImg;
+
+ if (imgCache.containsKey(ns+'/'+resName)) {
+ return imgCache.get(ns+'/'+resName);
+ }
+
+ URL imgLocation = null;
+ if (ns == null)
+ try {
+ imgLocation = Resource.getKernelResourceURL("images/"+resName);
+ } catch (MalformedURLException ex) { }
+ else
+ try {
+ imgLocation = Resource.getModuleResourceURL(ns, "images/"+resName);
+ } catch (MalformedURLException ex) { }
+
+ if (imgLocation!= null) {
+ ImageIcon newImg = new ImageIcon(imgLocation);
+
+ if (newImg.getIconHeight() > -1) {
+ imgCache.put(ns+'/'+resName, newImg);
+ Logger.msg(0, "Loaded "+resName+" "+newImg.getIconWidth()+"x"+newImg.getIconHeight());
+ return newImg;
+ }
+ }
+ throw new ObjectNotFoundException();
+ }
+
+}
diff --git a/src/main/java/com/c2kernel/gui/graph/controller/ElasticBand.java b/src/main/java/com/c2kernel/gui/graph/controller/ElasticBand.java
new file mode 100644
index 0000000..b458ddf
--- /dev/null
+++ b/src/main/java/com/c2kernel/gui/graph/controller/ElasticBand.java
@@ -0,0 +1,18 @@
+package com.c2kernel.gui.graph.controller;
+
+import com.c2kernel.graph.model.GraphPoint;
+
+
+
+public class ElasticBand
+{
+ public GraphPoint mFixedCorner = null;
+ public GraphPoint mMovingCorner = null;
+
+
+ public ElasticBand(GraphPoint fixedCorner, GraphPoint movingCorner)
+ {
+ mFixedCorner = fixedCorner;
+ mMovingCorner = movingCorner;
+ }
+}
diff --git a/src/main/java/com/c2kernel/gui/graph/controller/Selection.java b/src/main/java/com/c2kernel/gui/graph/controller/Selection.java
new file mode 100644
index 0000000..a05ff7f
--- /dev/null
+++ b/src/main/java/com/c2kernel/gui/graph/controller/Selection.java
@@ -0,0 +1,38 @@
+package com.c2kernel.gui.graph.controller;
+
+import java.io.Serializable;
+
+import com.c2kernel.graph.model.DirectedEdge;
+import com.c2kernel.graph.model.Vertex;
+
+
+
+public class Selection implements Serializable
+{
+ // Either a single edge can be selected or
+ // one or more vertices can be selected.
+ // It is impossible to select an edge and a
+ // vertex at the same time.
+ public DirectedEdge mEdge = null;
+ public Vertex[] mVertices = null;
+ public int mTopLeftX = 0;
+ public int mTopLeftY = 0;
+ public int mBottomRightX = 0;
+ public int mBottomRightY = 0;
+
+
+ public Selection(DirectedEdge edge,
+ Vertex[] vertices,
+ int topLeftX,
+ int topLeftY,
+ int bottomRightX,
+ int bottomRightY)
+ {
+ mEdge = edge;
+ mVertices = vertices;
+ mTopLeftX = topLeftX;
+ mTopLeftY = topLeftY;
+ mBottomRightX = bottomRightX;
+ mBottomRightY = bottomRightY;
+ }
+}
diff --git a/src/main/java/com/c2kernel/gui/graph/event/ElasticBandResizedEvent.java b/src/main/java/com/c2kernel/gui/graph/event/ElasticBandResizedEvent.java
new file mode 100644
index 0000000..2ddfd39
--- /dev/null
+++ b/src/main/java/com/c2kernel/gui/graph/event/ElasticBandResizedEvent.java
@@ -0,0 +1,8 @@
+package com.c2kernel.gui.graph.event;
+
+import com.c2kernel.graph.event.GraphModelEvent;
+
+
+public class ElasticBandResizedEvent extends GraphModelEvent
+{
+}
diff --git a/src/main/java/com/c2kernel/gui/graph/event/ElasticBandSetEvent.java b/src/main/java/com/c2kernel/gui/graph/event/ElasticBandSetEvent.java
new file mode 100644
index 0000000..324ce80
--- /dev/null
+++ b/src/main/java/com/c2kernel/gui/graph/event/ElasticBandSetEvent.java
@@ -0,0 +1,8 @@
+package com.c2kernel.gui.graph.event;
+
+import com.c2kernel.graph.event.GraphModelEvent;
+
+
+public class ElasticBandSetEvent extends GraphModelEvent
+{
+}
diff --git a/src/main/java/com/c2kernel/gui/graph/event/SelectionChangedEvent.java b/src/main/java/com/c2kernel/gui/graph/event/SelectionChangedEvent.java
new file mode 100644
index 0000000..a6aecbb
--- /dev/null
+++ b/src/main/java/com/c2kernel/gui/graph/event/SelectionChangedEvent.java
@@ -0,0 +1,10 @@
+package com.c2kernel.gui.graph.event;
+
+import com.c2kernel.graph.event.GraphModelEvent;
+import com.c2kernel.gui.graph.controller.Selection;
+
+
+public class SelectionChangedEvent extends GraphModelEvent
+{
+ public Selection mSelection = null;
+}
diff --git a/src/main/java/com/c2kernel/gui/graph/event/SelectionMovedEvent.java b/src/main/java/com/c2kernel/gui/graph/event/SelectionMovedEvent.java
new file mode 100644
index 0000000..ae1f840
--- /dev/null
+++ b/src/main/java/com/c2kernel/gui/graph/event/SelectionMovedEvent.java
@@ -0,0 +1,9 @@
+package com.c2kernel.gui.graph.event;
+
+import com.c2kernel.graph.event.GraphModelEvent;
+
+
+
+public class SelectionMovedEvent extends GraphModelEvent
+{
+}
diff --git a/src/main/java/com/c2kernel/gui/graph/view/EditorToolBar.java b/src/main/java/com/c2kernel/gui/graph/view/EditorToolBar.java
index b60c1ba..8892fd7 100644
--- a/src/main/java/com/c2kernel/gui/graph/view/EditorToolBar.java
+++ b/src/main/java/com/c2kernel/gui/graph/view/EditorToolBar.java
@@ -98,7 +98,7 @@ public class EditorToolBar extends Box implements Printable
mStartButton.setToolTipText(Language.translate("Select the start vertex of the graph"));
mDeleteButton.setToolTipText(Language.translate("Delete the selection"));
mPrintButton.setToolTipText(Language.translate("Print this graph"));
- mPrintButton.setToolTipText(Language.translate("Copy an image of this graph to the clipboard"));
+ mCopyButton.setToolTipText(Language.translate("Copy an image of this graph to the clipboard"));
// Set the button margins to 0
mVertexModeButton.setMargin(new Insets(0, 0, 0, 0));
mSelectModeButton.setMargin(new Insets(0, 0, 0, 0));
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 3c2f165..51e2939 100644
--- a/src/main/java/com/c2kernel/gui/lifecycle/desc/CompActDefOutcomeHandler.java
+++ b/src/main/java/com/c2kernel/gui/lifecycle/desc/CompActDefOutcomeHandler.java
@@ -72,7 +72,7 @@ public class CompActDefOutcomeHandler
protected void createLayout()
{
- mLoadButton.setToolTipText("Load from local disc");
+ mLoadButton.setToolTipText("Load from local file");
mLayoutButton.setToolTipText("Auto-Layout");
// Add the editor pane
@@ -88,6 +88,7 @@ public class CompActDefOutcomeHandler
mSplitPane.setDividerSize(5);
gridbag.setConstraints(mSplitPane, c);
add(mSplitPane);
+ revalidate();
}
protected void createListeners()