You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@taverna.apache.org by re...@apache.org on 2015/03/26 19:52:01 UTC
[12/51] [partial] incubator-taverna-workbench git commit: all
packages are moved to org.apache.taverna.*
http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/a9a52bd5/taverna-graph-model/src/main/java/org/apache/taverna/workbench/models/graph/svg/SVGUtil.java
----------------------------------------------------------------------
diff --git a/taverna-graph-model/src/main/java/org/apache/taverna/workbench/models/graph/svg/SVGUtil.java b/taverna-graph-model/src/main/java/org/apache/taverna/workbench/models/graph/svg/SVGUtil.java
new file mode 100644
index 0000000..b165bb3
--- /dev/null
+++ b/taverna-graph-model/src/main/java/org/apache/taverna/workbench/models/graph/svg/SVGUtil.java
@@ -0,0 +1,477 @@
+/*******************************************************************************
+ * Copyright (C) 2007 The University of Manchester
+ *
+ * Modifications to the initial code base are copyright of their
+ * respective authors, or their employers as appropriate.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public License
+ * as published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
+ ******************************************************************************/
+package org.apache.taverna.workbench.models.graph.svg;
+
+import static java.lang.Float.parseFloat;
+import static java.lang.Math.PI;
+import static java.lang.Math.atan2;
+import static org.apache.batik.dom.svg.SVGDOMImplementation.getDOMImplementation;
+import static org.apache.batik.util.SMILConstants.SMIL_ATTRIBUTE_NAME_ATTRIBUTE;
+import static org.apache.batik.util.SMILConstants.SMIL_DUR_ATTRIBUTE;
+import static org.apache.batik.util.SMILConstants.SMIL_FILL_ATTRIBUTE;
+import static org.apache.batik.util.SMILConstants.SMIL_FREEZE_VALUE;
+import static org.apache.batik.util.SMILConstants.SMIL_FROM_ATTRIBUTE;
+import static org.apache.batik.util.SMILConstants.SMIL_TO_ATTRIBUTE;
+import static org.apache.batik.util.SVGConstants.SVG_TYPE_ATTRIBUTE;
+import static org.apache.batik.util.SVGConstants.SVG_X1_ATTRIBUTE;
+import static org.apache.batik.util.SVGConstants.SVG_X2_ATTRIBUTE;
+import static org.apache.batik.util.SVGConstants.SVG_Y1_ATTRIBUTE;
+import static org.apache.batik.util.SVGConstants.SVG_Y2_ATTRIBUTE;
+import static org.apache.batik.util.XMLResourceDescriptor.getXMLParserClassName;
+
+import java.awt.Color;
+import java.awt.Point;
+import java.io.IOException;
+import java.io.PrintWriter;
+import java.io.StringReader;
+import java.util.List;
+
+import org.apache.taverna.lang.io.StreamDevourer;
+import org.apache.taverna.workbench.configuration.workbench.WorkbenchConfiguration;
+import org.apache.taverna.workbench.models.graph.GraphShapeElement.Shape;
+
+import org.apache.batik.dom.svg.SAXSVGDocumentFactory;
+import org.apache.batik.dom.svg.SVGDOMImplementation;
+import org.apache.batik.dom.svg.SVGOMAnimationElement;
+import org.apache.batik.dom.svg.SVGOMPoint;
+import org.apache.log4j.Logger;
+import org.w3c.dom.DOMImplementation;
+import org.w3c.dom.Element;
+import org.w3c.dom.svg.SVGDocument;
+import org.w3c.dom.svg.SVGElement;
+import org.w3c.dom.svg.SVGLocatable;
+import org.w3c.dom.svg.SVGMatrix;
+//import org.apache.batik.transcoder.TranscoderException;
+//import org.apache.batik.transcoder.svg2svg.PrettyPrinter;
+
+/**
+ * Utility methods.
+ *
+ * @author David Withers
+ */
+public class SVGUtil {
+ private static final String C = "C";
+ private static final String M = "M";
+ private static final String SPACE = " ";
+ private static final String COMMA = ",";
+ public static final String svgNS = SVGDOMImplementation.SVG_NAMESPACE_URI;
+ private static final String SVG = "svg";
+ private static final Logger logger = Logger.getLogger(SVGUtil.class);
+
+ private static SAXSVGDocumentFactory docFactory;
+
+ static {
+ String parser = getXMLParserClassName();
+ logger.info("Using XML parser " + parser);
+ docFactory = new SAXSVGDocumentFactory(parser);
+ }
+
+ /**
+ * Creates a new SVGDocument.
+ *
+ * @return a new SVGDocument
+ */
+ public static SVGDocument createSVGDocument() {
+ DOMImplementation impl = getDOMImplementation();
+ return (SVGDocument) impl.createDocument(svgNS, SVG, null);
+ }
+
+ /**
+ * Converts a point in screen coordinates to a point in document
+ * coordinates.
+ *
+ * @param locatable
+ * @param screenPoint
+ * the point in screen coordinates
+ * @return the point in document coordinates
+ */
+ public static SVGOMPoint screenToDocument(SVGLocatable locatable,
+ SVGOMPoint screenPoint) {
+ SVGMatrix mat = ((SVGLocatable) locatable.getFarthestViewportElement())
+ .getScreenCTM().inverse();
+ return (SVGOMPoint) screenPoint.matrixTransform(mat);
+ }
+
+ /**
+ * Writes SVG to the console. For debugging only.
+ *
+ * @param svgDocument
+ * the document to output
+ */
+// public static void writeSVG(SVGDocument svgDocument) {
+// writeSVG(svgDocument, new OutputStreamWriter(System.out));
+// }
+
+ /**
+ * Writes SVG to an output stream.
+ *
+ * @param svgDocument
+ * the document to output
+ * @param writer
+ * the stream to write the document to
+ */
+// public static void writeSVG(SVGDocument svgDocument, Writer writer) {
+// StringWriter sw = new StringWriter();
+// try {
+// Transformer transformer = TransformerFactory.newInstance().newTransformer();
+// Source src = new DOMSource(svgDocument.getDocumentElement());
+// transformer.transform(src, new StreamResult(sw));
+//
+// PrettyPrinter pp = new PrettyPrinter();
+// pp.print(new StringReader(sw.toString()), writer);
+// } catch (TransformerException | TranscoderException | IOException e) {
+// e.printStackTrace(new PrintWriter(writer));
+// }
+// }
+
+ /**
+ * Generates an SVGDocument from DOT text by calling out to GraphViz.
+ *
+ * @param dotText
+ * @return an SVGDocument
+ * @throws IOException
+ */
+ public static SVGDocument getSVG(String dotText,
+ WorkbenchConfiguration workbenchConfiguration) throws IOException {
+ String dotLocation = (String) workbenchConfiguration
+ .getProperty("taverna.dotlocation");
+ if (dotLocation == null)
+ dotLocation = "dot";
+ logger.debug("Invoking dot...");
+ Process dotProcess = exec(dotLocation, "-Tsvg");
+ StreamDevourer devourer = new StreamDevourer(
+ dotProcess.getInputStream());
+ devourer.start();
+ try (PrintWriter out = new PrintWriter(dotProcess.getOutputStream(),
+ true)) {
+ out.print(dotText);
+ out.flush();
+ }
+
+ String svgText = devourer.blockOnOutput();
+ /*
+ * Avoid TAV-424, replace buggy SVG outputted by "modern" GraphViz
+ * versions. http://www.graphviz.org/bugs/b1075.html
+ *
+ * Contributed by Marko Ullgren
+ */
+ svgText = svgText.replaceAll("font-weight:regular",
+ "font-weight:normal");
+ logger.info(svgText);
+ // Fake URI, just used for internal references like #fish
+ return docFactory.createSVGDocument(
+ "http://taverna.sf.net/diagram/generated.svg",
+ new StringReader(svgText));
+ }
+
+ /**
+ * Generates DOT text with layout information from DOT text by calling out
+ * to GraphViz.
+ *
+ * @param dotText
+ * dot text
+ * @return dot text with layout information
+ * @throws IOException
+ */
+ public static String getDot(String dotText,
+ WorkbenchConfiguration workbenchConfiguration) throws IOException {
+ String dotLocation = (String) workbenchConfiguration
+ .getProperty("taverna.dotlocation");
+ if (dotLocation == null)
+ dotLocation = "dot";
+ logger.debug("Invoking dot...");
+ Process dotProcess = exec(dotLocation, "-Tdot", "-Glp=0,0");
+ StreamDevourer devourer = new StreamDevourer(
+ dotProcess.getInputStream());
+ devourer.start();
+ try (PrintWriter out = new PrintWriter(dotProcess.getOutputStream(),
+ true)) {
+ out.print(dotText);
+ out.flush();
+ }
+
+ String dot = devourer.blockOnOutput();
+ // logger.info(dot);
+ return dot;
+ }
+
+ private static Process exec(String...args) throws IOException {
+ Process p = Runtime.getRuntime().exec(args);
+ /*
+ * Must create an error devourer otherwise stderr fills up and the
+ * process stalls!
+ */
+ new StreamDevourer(p.getErrorStream()).start();
+ return p;
+ }
+
+ /**
+ * Returns the hex value for a <code>Color</code>. If color is null "none"
+ * is returned.
+ *
+ * @param color
+ * the <code>Color</code> to convert to hex code
+ * @return the hex value
+ */
+ public static String getHexValue(Color color) {
+ if (color == null)
+ return "none";
+
+ return String.format("#%02x%02x%02x", color.getRed(), color.getGreen(),
+ color.getBlue());
+ }
+
+ /**
+ * Calculates the angle to rotate an arrow head to be placed on the end of a
+ * line.
+ *
+ * @param line
+ * the line to calculate the arrow head angle from
+ * @return the angle to rotate an arrow head
+ */
+ public static double calculateAngle(Element line) {
+ float x1 = parseFloat(line.getAttribute(SVG_X1_ATTRIBUTE));
+ float y1 = parseFloat(line.getAttribute(SVG_Y1_ATTRIBUTE));
+ float x2 = parseFloat(line.getAttribute(SVG_X2_ATTRIBUTE));
+ float y2 = parseFloat(line.getAttribute(SVG_Y2_ATTRIBUTE));
+ return calculateAngle(x1, y1, x2, y2);
+ }
+
+ /**
+ * Calculates the angle to rotate an arrow head to be placed on the end of a
+ * line.
+ *
+ * @param pointList
+ * the list of <code>Point</code>s to calculate the arrow head
+ * angle from
+ * @return the angle to rotate an arrow head
+ */
+ public static double calculateAngle(List<Point> pointList) {
+ double angle = 0d;
+ if (pointList.size() > 1) {
+ int listSize = pointList.size();
+ Point a = pointList.get(listSize - 2);
+ Point b = pointList.get(listSize - 1);
+ /*
+ * dot sometimes generates paths with the same point repeated at the
+ * end of the path, so move back along the path until two different
+ * points are found
+ */
+ while (a.equals(b) && listSize > 2) {
+ b = a;
+ a = pointList.get(--listSize - 2);
+ }
+ angle = calculateAngle(a.x, a.y, b.x, b.y);
+ }
+ return angle;
+ }
+
+ /**
+ * Calculates the angle to rotate an arrow head to be placed on the end of a
+ * line.
+ *
+ * @param x1
+ * the x coordinate of the start of the line
+ * @param y1
+ * the y coordinate of the start of the line
+ * @param x2
+ * the x coordinate of the end of the line
+ * @param y2
+ * the y coordinate of the end of the line
+ * @return the angle to rotate an arrow head
+ */
+ public static double calculateAngle(float x1, float y1, float x2, float y2) {
+ return atan2(y2 - y1, x2 - x1) * 180 / PI;
+ }
+
+ /**
+ * Calculates the points that make up the polygon for the specified
+ * {@link Shape}.
+ *
+ * @param shape
+ * the <code>Shape</code> to calculate points for
+ * @param width
+ * the width of the <code>Shape</code>
+ * @param height
+ * the height of the <code>Shape</code>
+ * @return the points that make up the polygon for the specified
+ * <code>Shape</code>
+ */
+ public static String calculatePoints(Shape shape, int width, int height) {
+ StringBuilder sb = new StringBuilder();
+ switch (shape) {
+ case BOX:
+ case RECORD:
+ addPoint(sb, 0, 0);
+ addPoint(sb, width, 0);
+ addPoint(sb, width, height);
+ addPoint(sb, 0, height);
+ break;
+ case HOUSE:
+ addPoint(sb, width / 2f, 0);
+ addPoint(sb, width, height / 3f);
+ addPoint(sb, width, height - 3);
+ addPoint(sb, 0, height - 3);
+ addPoint(sb, 0, height / 3f);
+ break;
+ case INVHOUSE:
+ addPoint(sb, 0, 3);
+ addPoint(sb, width, 3);
+ addPoint(sb, width, height / 3f * 2f);
+ addPoint(sb, width / 2f, height);
+ addPoint(sb, 0, height / 3f * 2f);
+ break;
+ case TRIANGLE:
+ addPoint(sb, width / 2f, 0);
+ addPoint(sb, width, height);
+ addPoint(sb, 0, height);
+ break;
+ case INVTRIANGLE:
+ addPoint(sb, 0, 0);
+ addPoint(sb, width, 0);
+ addPoint(sb, width / 2f, height);
+ break;
+ default:
+ // Nothing to do for the others
+ break;
+ }
+ return sb.toString();
+ }
+
+ /**
+ * Appends x y coordinates to a <code>StringBuilder</code> in the format
+ * "x,y ".
+ *
+ * @param stringBuilder
+ * the <code>StringBuilder</code> to append the point to
+ * @param x
+ * the x coordinate
+ * @param y
+ * the y coordinate
+ */
+ public static void addPoint(StringBuilder stringBuilder, float x, float y) {
+ stringBuilder.append(x).append(COMMA).append(y).append(SPACE);
+ }
+
+ /**
+ * Converts a list of points into a string format for a cubic Bezier curve.
+ *
+ * For example, "M100,200 C100,100 250,100 250,200". See
+ * http://www.w3.org/TR/SVG11/paths.html#PathDataCubicBezierCommands.
+ *
+ * @param pointList
+ * a list of points that describes a cubic Bezier curve
+ * @return a string that describes a cubic Bezier curve
+ */
+ public static String getPath(List<Point> pointList) {
+ StringBuilder sb = new StringBuilder();
+ if (pointList != null && pointList.size() > 1) {
+ Point firstPoint = pointList.get(0);
+ sb.append(M).append(firstPoint.x).append(COMMA)
+ .append(firstPoint.y);
+ sb.append(SPACE);
+ Point secontPoint = pointList.get(1);
+ sb.append(C).append(secontPoint.x).append(COMMA)
+ .append(secontPoint.y);
+ for (int i = 2; i < pointList.size(); i++) {
+ Point point = pointList.get(i);
+ sb.append(SPACE).append(point.x).append(COMMA).append(point.y);
+ }
+ }
+ return sb.toString();
+ }
+
+ /**
+ * Creates an animation element.
+ *
+ * @param graphController
+ * the SVGGraphController to use to create the animation element
+ * @param elementType
+ * the type of animation element to create
+ * @param attribute
+ * the attribute that the animation should affect
+ * @param transformType
+ * the type of transform - use null not creating a transform
+ * animation
+ * @return an new animation element
+ */
+ public static SVGOMAnimationElement createAnimationElement(
+ SVGGraphController graphController, String elementType,
+ String attribute, String transformType) {
+ SVGOMAnimationElement animationElement = (SVGOMAnimationElement) graphController
+ .createElement(elementType);
+ animationElement.setAttribute(SMIL_ATTRIBUTE_NAME_ATTRIBUTE, attribute);
+ if (transformType != null)
+ animationElement.setAttribute(SVG_TYPE_ATTRIBUTE, transformType);
+ animationElement.setAttribute(SMIL_FILL_ATTRIBUTE, SMIL_FREEZE_VALUE);
+ return animationElement;
+ }
+
+ /**
+ * Adds an animation to the SVG element and starts the animation.
+ *
+ * @param animate
+ * that animation element
+ * @param element
+ * the element to animate
+ * @param duration
+ * the duration of the animation in milliseconds
+ * @param from
+ * the starting point for the animation, can be null
+ * @param to
+ * the end point for the animation, cannot be null
+ */
+ public static void animate(SVGOMAnimationElement animate, SVGElement element, int duration,
+ String from, String to) {
+ animate.setAttribute(SMIL_DUR_ATTRIBUTE, duration + "ms");
+ if (from != null)
+ animate.setAttribute(SMIL_FROM_ATTRIBUTE, from);
+ animate.setAttribute(SMIL_TO_ATTRIBUTE, to);
+ element.appendChild(animate);
+ try {
+ animate.beginElement();
+ } catch (NullPointerException e) {
+ }
+ }
+
+ /**
+ * Adjusts the length of <code>pointList</code> by adding or removing points
+ * to make the length equal to <code>size</code>. If <code>pointList</code>
+ * is shorter than <code>size</code> the last point is repeated. If
+ * <code>pointList</code> is longer than <code>size</code> points at the end
+ * of the list are removed.
+ *
+ * @param pointList
+ * the path to adjust
+ * @param size
+ * the required size for <code>pointList</code>
+ */
+ public static void adjustPathLength(List<Point> pointList, int size) {
+ if (pointList.size() < size) {
+ Point lastPoint = pointList.get(pointList.size() - 1);
+ for (int i = pointList.size(); i < size; i++)
+ pointList.add(lastPoint);
+ } else if (pointList.size() > size) {
+ for (int i = pointList.size(); i > size; i--)
+ pointList.remove(i - 1);
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/a9a52bd5/taverna-graph-model/src/main/java/org/apache/taverna/workbench/models/graph/svg/event/SVGEventListener.java
----------------------------------------------------------------------
diff --git a/taverna-graph-model/src/main/java/org/apache/taverna/workbench/models/graph/svg/event/SVGEventListener.java b/taverna-graph-model/src/main/java/org/apache/taverna/workbench/models/graph/svg/event/SVGEventListener.java
new file mode 100644
index 0000000..e23474a
--- /dev/null
+++ b/taverna-graph-model/src/main/java/org/apache/taverna/workbench/models/graph/svg/event/SVGEventListener.java
@@ -0,0 +1,56 @@
+/*******************************************************************************
+ * Copyright (C) 2007 The University of Manchester
+ *
+ * Modifications to the initial code base are copyright of their
+ * respective authors, or their employers as appropriate.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public License
+ * as published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
+ ******************************************************************************/
+package org.apache.taverna.workbench.models.graph.svg.event;
+
+import static org.apache.taverna.workbench.models.graph.svg.SVGUtil.screenToDocument;
+import org.apache.taverna.workbench.models.graph.GraphElement;
+
+import org.apache.batik.dom.svg.SVGOMPoint;
+import org.w3c.dom.events.Event;
+import org.w3c.dom.events.EventListener;
+import org.w3c.dom.events.MouseEvent;
+import org.w3c.dom.svg.SVGLocatable;
+
+/**
+ * Abstract superclass for SVG event listeners.
+ *
+ * @author David Withers
+ */
+public abstract class SVGEventListener implements EventListener {
+ protected GraphElement graphElement;
+
+ public SVGEventListener(GraphElement graphElement) {
+ this.graphElement = graphElement;
+ }
+
+ protected abstract void event(SVGOMPoint point, MouseEvent evt);
+
+ @Override
+ public final void handleEvent(Event evt) {
+ if (evt instanceof MouseEvent) {
+ MouseEvent me = (MouseEvent) evt;
+ SVGOMPoint point = screenToDocument((SVGLocatable) me.getTarget(),
+ new SVGOMPoint(me.getClientX(), me.getClientY()));
+ event(point, me);
+ evt.stopPropagation();
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/a9a52bd5/taverna-graph-model/src/main/java/org/apache/taverna/workbench/models/graph/svg/event/SVGMouseClickEventListener.java
----------------------------------------------------------------------
diff --git a/taverna-graph-model/src/main/java/org/apache/taverna/workbench/models/graph/svg/event/SVGMouseClickEventListener.java b/taverna-graph-model/src/main/java/org/apache/taverna/workbench/models/graph/svg/event/SVGMouseClickEventListener.java
new file mode 100644
index 0000000..c9dc258
--- /dev/null
+++ b/taverna-graph-model/src/main/java/org/apache/taverna/workbench/models/graph/svg/event/SVGMouseClickEventListener.java
@@ -0,0 +1,45 @@
+/*******************************************************************************
+ * Copyright (C) 2007 The University of Manchester
+ *
+ * Modifications to the initial code base are copyright of their
+ * respective authors, or their employers as appropriate.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public License
+ * as published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
+ ******************************************************************************/
+package org.apache.taverna.workbench.models.graph.svg.event;
+
+import org.apache.taverna.workbench.models.graph.GraphElement;
+
+import org.apache.batik.dom.svg.SVGOMPoint;
+import org.w3c.dom.events.MouseEvent;
+
+/**
+ * SVG event listener for handling mouse click events.
+ *
+ * @author David Withers
+ */
+public class SVGMouseClickEventListener extends SVGEventListener {
+ public SVGMouseClickEventListener(GraphElement graphElement) {
+ super(graphElement);
+ }
+
+ @Override
+ protected void event(SVGOMPoint point, MouseEvent evt) {
+ graphElement.getEventManager().mouseClicked(graphElement,
+ evt.getButton(), evt.getAltKey(), evt.getCtrlKey(),
+ evt.getMetaKey(), (int) point.getX(), (int) point.getY(),
+ evt.getScreenX(), evt.getScreenY());
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/a9a52bd5/taverna-graph-model/src/main/java/org/apache/taverna/workbench/models/graph/svg/event/SVGMouseDownEventListener.java
----------------------------------------------------------------------
diff --git a/taverna-graph-model/src/main/java/org/apache/taverna/workbench/models/graph/svg/event/SVGMouseDownEventListener.java b/taverna-graph-model/src/main/java/org/apache/taverna/workbench/models/graph/svg/event/SVGMouseDownEventListener.java
new file mode 100644
index 0000000..d526d14
--- /dev/null
+++ b/taverna-graph-model/src/main/java/org/apache/taverna/workbench/models/graph/svg/event/SVGMouseDownEventListener.java
@@ -0,0 +1,45 @@
+/*******************************************************************************
+ * Copyright (C) 2007 The University of Manchester
+ *
+ * Modifications to the initial code base are copyright of their
+ * respective authors, or their employers as appropriate.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public License
+ * as published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
+ ******************************************************************************/
+package org.apache.taverna.workbench.models.graph.svg.event;
+
+import org.apache.taverna.workbench.models.graph.GraphElement;
+
+import org.apache.batik.dom.svg.SVGOMPoint;
+import org.w3c.dom.events.MouseEvent;
+
+/**
+ * SVG event listener for handling mouse button down events.
+ *
+ * @author David Withers
+ */
+public class SVGMouseDownEventListener extends SVGEventListener {
+ public SVGMouseDownEventListener(GraphElement graphElement) {
+ super(graphElement);
+ }
+
+ @Override
+ protected void event(SVGOMPoint point, MouseEvent evt) {
+ graphElement.getEventManager().mouseDown(graphElement, evt.getButton(),
+ evt.getAltKey(), evt.getCtrlKey(), evt.getMetaKey(),
+ (int) point.getX(), (int) point.getY(), evt.getScreenX(),
+ evt.getScreenY());
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/a9a52bd5/taverna-graph-model/src/main/java/org/apache/taverna/workbench/models/graph/svg/event/SVGMouseMovedEventListener.java
----------------------------------------------------------------------
diff --git a/taverna-graph-model/src/main/java/org/apache/taverna/workbench/models/graph/svg/event/SVGMouseMovedEventListener.java b/taverna-graph-model/src/main/java/org/apache/taverna/workbench/models/graph/svg/event/SVGMouseMovedEventListener.java
new file mode 100644
index 0000000..0a1a9f9
--- /dev/null
+++ b/taverna-graph-model/src/main/java/org/apache/taverna/workbench/models/graph/svg/event/SVGMouseMovedEventListener.java
@@ -0,0 +1,46 @@
+/*******************************************************************************
+ * Copyright (C) 2007 The University of Manchester
+ *
+ * Modifications to the initial code base are copyright of their
+ * respective authors, or their employers as appropriate.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public License
+ * as published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
+ ******************************************************************************/
+package org.apache.taverna.workbench.models.graph.svg.event;
+
+import org.apache.taverna.workbench.models.graph.GraphElement;
+
+import org.apache.batik.dom.svg.SVGOMPoint;
+import org.w3c.dom.events.MouseEvent;
+
+/**
+ * SVG event listener for handling mouse movement events.
+ *
+ * @author David Withers
+ */
+public class SVGMouseMovedEventListener extends SVGEventListener {
+ public SVGMouseMovedEventListener(GraphElement graphElement) {
+ super(graphElement);
+ }
+
+ @Override
+ protected void event(SVGOMPoint point, MouseEvent mouseEvent) {
+ graphElement.getEventManager().mouseMoved(graphElement,
+ mouseEvent.getButton(), mouseEvent.getAltKey(),
+ mouseEvent.getCtrlKey(), mouseEvent.getMetaKey(),
+ (int) point.getX(), (int) point.getY(),
+ mouseEvent.getScreenX(), mouseEvent.getScreenY());
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/a9a52bd5/taverna-graph-model/src/main/java/org/apache/taverna/workbench/models/graph/svg/event/SVGMouseOutEventListener.java
----------------------------------------------------------------------
diff --git a/taverna-graph-model/src/main/java/org/apache/taverna/workbench/models/graph/svg/event/SVGMouseOutEventListener.java b/taverna-graph-model/src/main/java/org/apache/taverna/workbench/models/graph/svg/event/SVGMouseOutEventListener.java
new file mode 100644
index 0000000..28651a7
--- /dev/null
+++ b/taverna-graph-model/src/main/java/org/apache/taverna/workbench/models/graph/svg/event/SVGMouseOutEventListener.java
@@ -0,0 +1,46 @@
+/*******************************************************************************
+ * Copyright (C) 2007 The University of Manchester
+ *
+ * Modifications to the initial code base are copyright of their
+ * respective authors, or their employers as appropriate.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public License
+ * as published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
+ ******************************************************************************/
+package org.apache.taverna.workbench.models.graph.svg.event;
+
+import org.apache.taverna.workbench.models.graph.GraphElement;
+
+import org.apache.batik.dom.svg.SVGOMPoint;
+import org.w3c.dom.events.MouseEvent;
+
+/**
+ * SVG event listener for handling mouse button up events.
+ *
+ * @author David Withers
+ */
+public class SVGMouseOutEventListener extends SVGEventListener {
+ public SVGMouseOutEventListener(GraphElement graphElement) {
+ super(graphElement);
+ }
+
+ @Override
+ protected void event(SVGOMPoint point, MouseEvent mouseEvent) {
+ graphElement.getEventManager().mouseOut(graphElement,
+ mouseEvent.getButton(), mouseEvent.getAltKey(),
+ mouseEvent.getCtrlKey(), mouseEvent.getMetaKey(),
+ (int) point.getX(), (int) point.getY(),
+ mouseEvent.getScreenX(), mouseEvent.getScreenY());
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/a9a52bd5/taverna-graph-model/src/main/java/org/apache/taverna/workbench/models/graph/svg/event/SVGMouseOverEventListener.java
----------------------------------------------------------------------
diff --git a/taverna-graph-model/src/main/java/org/apache/taverna/workbench/models/graph/svg/event/SVGMouseOverEventListener.java b/taverna-graph-model/src/main/java/org/apache/taverna/workbench/models/graph/svg/event/SVGMouseOverEventListener.java
new file mode 100644
index 0000000..2478a5d
--- /dev/null
+++ b/taverna-graph-model/src/main/java/org/apache/taverna/workbench/models/graph/svg/event/SVGMouseOverEventListener.java
@@ -0,0 +1,46 @@
+/*******************************************************************************
+ * Copyright (C) 2007 The University of Manchester
+ *
+ * Modifications to the initial code base are copyright of their
+ * respective authors, or their employers as appropriate.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public License
+ * as published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
+ ******************************************************************************/
+package org.apache.taverna.workbench.models.graph.svg.event;
+
+import org.apache.taverna.workbench.models.graph.GraphElement;
+
+import org.apache.batik.dom.svg.SVGOMPoint;
+import org.w3c.dom.events.MouseEvent;
+
+/**
+ * SVG event listener for handling mouse button up events.
+ *
+ * @author David Withers
+ */
+public class SVGMouseOverEventListener extends SVGEventListener {
+ public SVGMouseOverEventListener(GraphElement graphElement) {
+ super(graphElement);
+ }
+
+ @Override
+ protected void event(SVGOMPoint point, MouseEvent mouseEvent) {
+ graphElement.getEventManager().mouseOver(graphElement,
+ mouseEvent.getButton(), mouseEvent.getAltKey(),
+ mouseEvent.getCtrlKey(), mouseEvent.getMetaKey(),
+ (int) point.getX(), (int) point.getY(),
+ mouseEvent.getScreenX(), mouseEvent.getScreenY());
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/a9a52bd5/taverna-graph-model/src/main/java/org/apache/taverna/workbench/models/graph/svg/event/SVGMouseUpEventListener.java
----------------------------------------------------------------------
diff --git a/taverna-graph-model/src/main/java/org/apache/taverna/workbench/models/graph/svg/event/SVGMouseUpEventListener.java b/taverna-graph-model/src/main/java/org/apache/taverna/workbench/models/graph/svg/event/SVGMouseUpEventListener.java
new file mode 100644
index 0000000..e4a6f86
--- /dev/null
+++ b/taverna-graph-model/src/main/java/org/apache/taverna/workbench/models/graph/svg/event/SVGMouseUpEventListener.java
@@ -0,0 +1,46 @@
+/*******************************************************************************
+ * Copyright (C) 2007 The University of Manchester
+ *
+ * Modifications to the initial code base are copyright of their
+ * respective authors, or their employers as appropriate.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public License
+ * as published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
+ ******************************************************************************/
+package org.apache.taverna.workbench.models.graph.svg.event;
+
+import org.apache.taverna.workbench.models.graph.GraphElement;
+
+import org.apache.batik.dom.svg.SVGOMPoint;
+import org.w3c.dom.events.MouseEvent;
+
+/**
+ * SVG event listener for handling mouse button up events.
+ *
+ * @author David Withers
+ */
+public class SVGMouseUpEventListener extends SVGEventListener {
+ public SVGMouseUpEventListener(GraphElement graphElement) {
+ super(graphElement);
+ }
+
+ @Override
+ protected void event(SVGOMPoint point, MouseEvent mouseEvent) {
+ graphElement.getEventManager().mouseUp(graphElement,
+ mouseEvent.getButton(), mouseEvent.getAltKey(),
+ mouseEvent.getCtrlKey(), mouseEvent.getMetaKey(),
+ (int) point.getX(), (int) point.getY(),
+ mouseEvent.getScreenX(), mouseEvent.getScreenY());
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/a9a52bd5/taverna-graph-model/src/test/java/net/sf/taverna/t2/workbench/models/graph/GraphControllerTest.java
----------------------------------------------------------------------
diff --git a/taverna-graph-model/src/test/java/net/sf/taverna/t2/workbench/models/graph/GraphControllerTest.java b/taverna-graph-model/src/test/java/net/sf/taverna/t2/workbench/models/graph/GraphControllerTest.java
deleted file mode 100644
index 8ae5a9f..0000000
--- a/taverna-graph-model/src/test/java/net/sf/taverna/t2/workbench/models/graph/GraphControllerTest.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/*******************************************************************************
- * Copyright (C) 2007 The University of Manchester
- *
- * Modifications to the initial code base are copyright of their
- * respective authors, or their employers as appropriate.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public License
- * as published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
- ******************************************************************************/
-package net.sf.taverna.t2.workbench.models.graph;
-
-import static org.junit.Assert.assertEquals;
-
-import java.io.IOException;
-
-import net.sf.taverna.t2.workbench.models.graph.GraphController.PortStyle;
-
-import org.junit.Before;
-import org.junit.Ignore;
-import org.junit.Test;
-
-import org.apache.taverna.scufl2.api.core.Workflow;
-
-public class GraphControllerTest {
-
- Workflow dataflow;
-
- GraphController graphController;
-
- @Before
- public void setUp() throws Exception {
-// System.setProperty("raven.eclipse", "true");
-// setUpRavenRepository();
-// dataflow = WorkflowModelTranslator.doTranslation(loadScufl("nested_iteration.xml"));
- graphController = new GraphController(dataflow, null, false, null, null, null, null) {
-
- @Override
- public GraphEdge createGraphEdge() {
- return new GraphEdge(this);
- }
-
- @Override
- public Graph createGraph() {
- return new Graph(this);
- }
-
- @Override
- public GraphNode createGraphNode() {
- return new GraphNode(this);
- }
-
- @Override
- public void redraw() {
-
- }
-
- };
- graphController.setPortStyle(PortStyle.NONE);
- }
-
- @Test
- @Ignore
- public void testGenerateGraph() throws IOException, InterruptedException {
- Graph graph = graphController.generateGraph();
- assertEquals(5, graph.getNodes().size());
- assertEquals(9, graph.getEdges().size());
- assertEquals(1, graph.getSubgraphs().size());
- }
-
-}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/a9a52bd5/taverna-graph-model/src/test/java/net/sf/taverna/t2/workbench/models/graph/GraphEdgeTest.java
----------------------------------------------------------------------
diff --git a/taverna-graph-model/src/test/java/net/sf/taverna/t2/workbench/models/graph/GraphEdgeTest.java b/taverna-graph-model/src/test/java/net/sf/taverna/t2/workbench/models/graph/GraphEdgeTest.java
deleted file mode 100644
index 10a3c20..0000000
--- a/taverna-graph-model/src/test/java/net/sf/taverna/t2/workbench/models/graph/GraphEdgeTest.java
+++ /dev/null
@@ -1,129 +0,0 @@
-/*******************************************************************************
- * Copyright (C) 2007 The University of Manchester
- *
- * Modifications to the initial code base are copyright of their
- * respective authors, or their employers as appropriate.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public License
- * as published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
- ******************************************************************************/
-package net.sf.taverna.t2.workbench.models.graph;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNull;
-import net.sf.taverna.t2.workbench.models.graph.GraphEdge.ArrowStyle;
-
-import org.junit.Before;
-import org.junit.Test;
-
-public class GraphEdgeTest {
-
- private GraphEdge edge;
-
- private GraphNode source;
-
- private GraphNode sink;
-
- private ArrowStyle arrowHeadStyle;
-
- private ArrowStyle arrowTailStyle;
-
- private GraphController graphController;
-
- @Before
- public void setUp() throws Exception {
- source = new GraphNode(graphController);
- sink = new GraphNode(graphController);
- arrowHeadStyle = ArrowStyle.DOT;
- arrowTailStyle = ArrowStyle.NORMAL;
- edge = new GraphEdge(graphController);
- edge.setArrowHeadStyle(arrowHeadStyle);
- edge.setArrowTailStyle(arrowTailStyle);
- edge.setSink(sink);
- edge.setSource(source);
- }
-
- @Test
- public void testEdge() {
- edge = new GraphEdge(graphController);
- assertNull(edge.getSource());
- assertNull(edge.getSink());
- assertNull(edge.getLabel());
- }
-
- @Test
- public void testEdgeNodeNode() {
- edge = new GraphEdge(graphController);
- edge.setSource(source);
- edge.setSink(sink);
- assertEquals(source, edge.getSource());
- assertEquals(sink, edge.getSink());
- assertNull(edge.getLabel());
- }
-
- @Test
- public void testGetSource() {
- assertEquals(source, edge.getSource());
- }
-
- @Test
- public void testSetSource() {
- GraphNode node = new GraphNode(graphController);
- edge.setSource(node);
- assertEquals(node, edge.getSource());
- edge.setSource(null);
- assertNull(edge.getSource());
- }
-
- @Test
- public void testGetSink() {
- assertEquals(sink, edge.getSink());
- }
-
- @Test
- public void testSetSink() {
- GraphNode node = new GraphNode(graphController);
- edge.setSink(node);
- assertEquals(node, edge.getSink());
- edge.setSink(null);
- assertNull(edge.getSink());
- }
-
- @Test
- public void testGetArrowHeadStyle() {
- assertEquals(arrowHeadStyle, edge.getArrowHeadStyle());
- }
-
- @Test
- public void testSetArrowHeadStyle() {
- edge.setArrowHeadStyle(ArrowStyle.DOT);
- assertEquals(ArrowStyle.DOT, edge.getArrowHeadStyle());
- edge.setArrowHeadStyle(null);
- assertNull(edge.getArrowHeadStyle());
- }
-
- @Test
- public void testGetArrowTailStyle() {
- assertEquals(arrowTailStyle, edge.getArrowTailStyle());
- }
-
- @Test
- public void testSetArrowTailStyle() {
- edge.setArrowTailStyle(ArrowStyle.NORMAL);
- assertEquals(ArrowStyle.NORMAL, edge.getArrowTailStyle());
- edge.setArrowTailStyle(null);
- assertNull(edge.getArrowTailStyle());
- }
-
-}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/a9a52bd5/taverna-graph-model/src/test/java/net/sf/taverna/t2/workbench/models/graph/GraphElementTest.java
----------------------------------------------------------------------
diff --git a/taverna-graph-model/src/test/java/net/sf/taverna/t2/workbench/models/graph/GraphElementTest.java b/taverna-graph-model/src/test/java/net/sf/taverna/t2/workbench/models/graph/GraphElementTest.java
deleted file mode 100644
index 8d6b7f8..0000000
--- a/taverna-graph-model/src/test/java/net/sf/taverna/t2/workbench/models/graph/GraphElementTest.java
+++ /dev/null
@@ -1,148 +0,0 @@
-/*******************************************************************************
- * Copyright (C) 2007 The University of Manchester
- *
- * Modifications to the initial code base are copyright of their
- * respective authors, or their employers as appropriate.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public License
- * as published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
- ******************************************************************************/
-package net.sf.taverna.t2.workbench.models.graph;
-
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNull;
-
-import java.awt.Color;
-
-import net.sf.taverna.t2.workbench.models.graph.GraphElement.LineStyle;
-
-import org.junit.Before;
-import org.junit.Test;
-
-public class GraphElementTest {
-
- private GraphElement element;
-
- private String id;
-
- private String label;
-
- private LineStyle lineStyle;
-
- private Color color;
-
- private Color fillColor;
-
- private GraphElement parent;
-
- private GraphController graphController;
-
- @Before
- public void setUp() throws Exception {
- element = new GraphElement(graphController) {};
- id = "element-id";
- label = "element-label";
- lineStyle = LineStyle.NONE;
- color = Color.BLUE;
- fillColor = Color.GREEN;
- parent = new GraphNode(graphController);
- element.setId(id);
- element.setLabel(label);
- element.setLineStyle(lineStyle);
- element.setColor(color);
- element.setFillColor(fillColor);
- element.setParent(parent);
- }
-
- @Test
- public void testGetParent() {
- assertEquals(parent, element.getParent());
- }
-
- @Test
- public void testSetParent() {
- GraphNode newParent = new GraphNode(graphController);
- element.setParent(newParent);
- assertEquals(newParent, element.getParent());
- element.setParent(null);
- assertNull(element.getParent());
- }
-
- @Test
- public void testGetLabel() {
- assertEquals(label, element.getLabel());
- }
-
- @Test
- public void testSetLabel() {
- element.setLabel("new-label");
- assertEquals("new-label", element.getLabel());
- element.setLabel(null);
- assertNull(element.getLabel());
- }
-
- @Test
- public void testGetId() {
- assertEquals(id, element.getId());
- }
-
- @Test
- public void testSetId() {
- element.setId("new-id");
- assertEquals("new-id", element.getId());
- element.setId(null);
- assertNull(element.getId());
- }
-
- @Test
- public void testGetColor() {
- assertEquals(color, element.getColor());
- }
-
- @Test
- public void testSetColor() {
- element.setColor(Color.RED);
- assertEquals(Color.RED, element.getColor());
- element.setColor(null);
- assertNull(element.getColor());
- }
-
- @Test
- public void testGetFillColor() {
- assertEquals(fillColor, element.getFillColor());
- }
-
- @Test
- public void testSetFillColor() {
- element.setFillColor(Color.RED);
- assertEquals(Color.RED, element.getFillColor());
- element.setFillColor(null);
- assertNull(element.getFillColor());
- }
-
- @Test
- public void testGetLineStyle() {
- assertEquals(lineStyle, element.getLineStyle());
- }
-
- @Test
- public void testSetLineStyle() {
- element.setLineStyle(LineStyle.DOTTED);
- assertEquals(LineStyle.DOTTED, element.getLineStyle());
- element.setLineStyle(null);
- assertNull(element.getLineStyle());
- }
-
-}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/a9a52bd5/taverna-graph-model/src/test/java/net/sf/taverna/t2/workbench/models/graph/GraphNodeTest.java
----------------------------------------------------------------------
diff --git a/taverna-graph-model/src/test/java/net/sf/taverna/t2/workbench/models/graph/GraphNodeTest.java b/taverna-graph-model/src/test/java/net/sf/taverna/t2/workbench/models/graph/GraphNodeTest.java
deleted file mode 100644
index c5bcd6c..0000000
--- a/taverna-graph-model/src/test/java/net/sf/taverna/t2/workbench/models/graph/GraphNodeTest.java
+++ /dev/null
@@ -1,179 +0,0 @@
-/*******************************************************************************
- * Copyright (C) 2007 The University of Manchester
- *
- * Modifications to the initial code base are copyright of their
- * respective authors, or their employers as appropriate.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public License
- * as published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
- ******************************************************************************/
-package net.sf.taverna.t2.workbench.models.graph;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNull;
-import static org.junit.Assert.assertTrue;
-
-import java.awt.Dimension;
-
-import net.sf.taverna.t2.workbench.models.graph.GraphShapeElement.Shape;
-
-import org.junit.Before;
-import org.junit.Test;
-
-public class GraphNodeTest {
-
- private GraphNode node;
-
- private Shape shape;
-
- private Dimension size;
-
- private Graph graph;
-
- private boolean expanded;
-
- private GraphController graphController;
-
- @Before
- public void setUp() throws Exception {
- shape = Shape.HOUSE;
- size = new Dimension(1, 2);
- graph = new Graph(graphController);
- expanded = false;
- node = new GraphNode(graphController);
- node.setShape(shape);
- node.setSize(size);
- node.setGraph(graph);
- node.setExpanded(expanded);
- }
-
- @Test
- public void testNode() {
- assertNotNull(new GraphNode(graphController));
- }
-
- @Test
- public void testAddSinkNode() {
- GraphNode newNode = new GraphNode(graphController);
- node.addSinkNode(newNode);
- assertEquals(1, node.getSinkNodes().size());
- assertTrue(node.getSinkNodes().contains(newNode));
- assertEquals(node, newNode.getParent());
- }
-
- @Test
- public void testAddSourceNode() {
- GraphNode newNode = new GraphNode(graphController);
- node.addSourceNode(newNode);
- assertEquals(1, node.getSourceNodes().size());
- assertTrue(node.getSourceNodes().contains(newNode));
- assertEquals(node, newNode.getParent());
- }
-
- @Test
- public void testGetGraph() {
- assertEquals(graph, node.getGraph());
- }
-
- @Test
- public void testGetHeight() {
- assertEquals(size.height, node.getHeight(), 0);
- }
-
- @Test
- public void testGetShape() {
- assertEquals(shape, node.getShape());
- }
-
- @Test
- public void testGetSinkNodes() {
- assertNotNull(node.getSinkNodes());
- assertEquals(0, node.getSinkNodes().size());
- }
-
- @Test
- public void testGetSize() {
- assertEquals(size, node.getSize());
- }
-
- @Test
- public void testGetSourceNodes() {
- assertNotNull(node.getSourceNodes());
- assertEquals(0, node.getSourceNodes().size());
- }
-
- @Test
- public void testGetWidth() {
- assertEquals(size.width, node.getWidth(), 0);
- }
-
- @Test
- public void testIsExpanded() {
- assertEquals(expanded, node.isExpanded());
- }
-
- @Test
- public void testRemoveSinkNode() {
- GraphNode newNode = new GraphNode(graphController);
- assertFalse(node.removeSinkNode(newNode));
- node.addSinkNode(newNode);
- assertTrue(node.removeSinkNode(newNode));
- assertFalse(node.getSinkNodes().contains(newNode));
- }
-
- @Test
- public void testRemoveSourceNode() {
- GraphNode newNode = new GraphNode(graphController);
- assertFalse(node.removeSourceNode(newNode));
- node.addSourceNode(newNode);
- assertTrue(node.removeSourceNode(newNode));
- assertFalse(node.getSourceNodes().contains(newNode));
- }
-
- @Test
- public void testSetExpanded() {
- node.setExpanded(true);
- assertEquals(true, node.isExpanded());
- node.setExpanded(false);
- assertEquals(false, node.isExpanded());
- }
-
- @Test
- public void testSetGraph() {
- Graph newGraph = new Graph(graphController);
- node.setGraph(newGraph);
- assertEquals(newGraph, node.getGraph());
- node.setGraph(null);
- assertNull(node.getGraph());
- }
-
- @Test
- public void testSetShape() {
- node.setShape(Shape.INVTRIANGLE);
- assertEquals(Shape.INVTRIANGLE, node.getShape());
- node.setShape(Shape.TRIANGLE);
- assertEquals(Shape.TRIANGLE, node.getShape());
- }
-
- @Test
- public void testSetSize() {
- node.setSize(new Dimension(23, 6));
- assertEquals(new Dimension(23, 6), node.getSize());
- node.setSize(new Dimension(14, 4));
- assertEquals(new Dimension(14, 4), node.getSize());
- }
-
-}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/a9a52bd5/taverna-graph-model/src/test/java/net/sf/taverna/t2/workbench/models/graph/GraphTest.java
----------------------------------------------------------------------
diff --git a/taverna-graph-model/src/test/java/net/sf/taverna/t2/workbench/models/graph/GraphTest.java b/taverna-graph-model/src/test/java/net/sf/taverna/t2/workbench/models/graph/GraphTest.java
deleted file mode 100644
index 44a5aaf..0000000
--- a/taverna-graph-model/src/test/java/net/sf/taverna/t2/workbench/models/graph/GraphTest.java
+++ /dev/null
@@ -1,138 +0,0 @@
-/*******************************************************************************
- * Copyright (C) 2007 The University of Manchester
- *
- * Modifications to the initial code base are copyright of their
- * respective authors, or their employers as appropriate.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public License
- * as published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
- ******************************************************************************/
-package net.sf.taverna.t2.workbench.models.graph;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
-import net.sf.taverna.t2.workbench.models.graph.GraphEdge;
-import net.sf.taverna.t2.workbench.models.graph.Graph;
-import net.sf.taverna.t2.workbench.models.graph.GraphNode;
-import net.sf.taverna.t2.workbench.models.graph.Graph.Alignment;
-
-import org.junit.Before;
-import org.junit.Test;
-
-public class GraphTest {
-
- private Graph graph;
-
- private Alignment alignment;
-
- private GraphController graphController;
-
- @Before
- public void setUp() throws Exception {
- alignment = Alignment.VERTICAL;
- graph = new Graph(graphController);
- }
-
- @Test
- public void testGraph() {
- assertNotNull(new Graph(graphController));
- }
-
- @Test
- public void testAddEdge() {
- GraphEdge newEdge = new GraphEdge(graphController);
- graph.addEdge(newEdge);
- assertEquals(1, graph.getEdges().size());
- assertTrue(graph.getEdges().contains(newEdge));
- }
-
- @Test
- public void testAddNode() {
- GraphNode newNode = new GraphNode(graphController);
- graph.addNode(newNode);
- assertEquals(1, graph.getNodes().size());
- assertTrue(graph.getNodes().contains(newNode));
- assertEquals(graph, newNode.getParent());
- }
-
- @Test
- public void testAddSubgraph() {
- Graph newGraph = new Graph(graphController);
- graph.addSubgraph(newGraph);
- assertEquals(1, graph.getSubgraphs().size());
- assertTrue(graph.getSubgraphs().contains(newGraph));
- assertEquals(graph, newGraph.getParent());
- }
-
- @Test
- public void testGetAlignment() {
- assertEquals(alignment, graph.getAlignment());
- }
-
- @Test
- public void testGetEdges() {
- assertNotNull(graph.getNodes());
- assertEquals(0, graph.getNodes().size());
- }
-
- @Test
- public void testGetNodes() {
- assertNotNull(graph.getEdges());
- assertEquals(0, graph.getEdges().size());
- }
-
- @Test
- public void testGetSubgraphs() {
- assertNotNull(graph.getSubgraphs());
- assertEquals(0, graph.getSubgraphs().size());
- }
-
- @Test
- public void testRemoveEdge() {
- GraphEdge newEdge = new GraphEdge(graphController);
- assertFalse(graph.removeEdge(newEdge));
- graph.addEdge(newEdge);
- assertTrue(graph.removeEdge(newEdge));
- assertFalse(graph.getNodes().contains(newEdge));
- }
-
- @Test
- public void testRemoveNode() {
- GraphNode newNode = new GraphNode(graphController);
- assertFalse(graph.removeNode(newNode));
- graph.addNode(newNode);
- assertTrue(graph.removeNode(newNode));
- assertFalse(graph.getNodes().contains(newNode));
- }
-
- @Test
- public void testRemoveSubgraph() {
- Graph newGraph = new Graph(graphController);
- assertFalse(graph.removeSubgraph(newGraph));
- graph.addSubgraph(newGraph);
- assertTrue(graph.removeSubgraph(newGraph));
- assertFalse(graph.getSubgraphs().contains(newGraph));
- }
-
- @Test
- public void testSetAlignment() {
- graph.setAlignment(Alignment.VERTICAL);
- assertEquals(Alignment.VERTICAL, graph.getAlignment());
- graph.setAlignment(Alignment.HORIZONTAL);
- assertEquals(Alignment.HORIZONTAL, graph.getAlignment());
- }
-
-}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/a9a52bd5/taverna-graph-model/src/test/java/org/apache/taverna/workbench/models/graph/GraphControllerTest.java
----------------------------------------------------------------------
diff --git a/taverna-graph-model/src/test/java/org/apache/taverna/workbench/models/graph/GraphControllerTest.java b/taverna-graph-model/src/test/java/org/apache/taverna/workbench/models/graph/GraphControllerTest.java
new file mode 100644
index 0000000..cda5aa8
--- /dev/null
+++ b/taverna-graph-model/src/test/java/org/apache/taverna/workbench/models/graph/GraphControllerTest.java
@@ -0,0 +1,85 @@
+/*******************************************************************************
+ * Copyright (C) 2007 The University of Manchester
+ *
+ * Modifications to the initial code base are copyright of their
+ * respective authors, or their employers as appropriate.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public License
+ * as published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
+ ******************************************************************************/
+package org.apache.taverna.workbench.models.graph;
+
+import org.apache.taverna.workbench.models.graph.GraphNode;
+import org.apache.taverna.workbench.models.graph.Graph;
+import org.apache.taverna.workbench.models.graph.GraphEdge;
+import org.apache.taverna.workbench.models.graph.GraphController;
+import static org.junit.Assert.assertEquals;
+
+import java.io.IOException;
+
+import org.apache.taverna.workbench.models.graph.GraphController.PortStyle;
+
+import org.junit.Before;
+import org.junit.Ignore;
+import org.junit.Test;
+
+import org.apache.taverna.scufl2.api.core.Workflow;
+
+public class GraphControllerTest {
+
+ Workflow dataflow;
+
+ GraphController graphController;
+
+ @Before
+ public void setUp() throws Exception {
+// System.setProperty("raven.eclipse", "true");
+// setUpRavenRepository();
+// dataflow = WorkflowModelTranslator.doTranslation(loadScufl("nested_iteration.xml"));
+ graphController = new GraphController(dataflow, null, false, null, null, null, null) {
+
+ @Override
+ public GraphEdge createGraphEdge() {
+ return new GraphEdge(this);
+ }
+
+ @Override
+ public Graph createGraph() {
+ return new Graph(this);
+ }
+
+ @Override
+ public GraphNode createGraphNode() {
+ return new GraphNode(this);
+ }
+
+ @Override
+ public void redraw() {
+
+ }
+
+ };
+ graphController.setPortStyle(PortStyle.NONE);
+ }
+
+ @Test
+ @Ignore
+ public void testGenerateGraph() throws IOException, InterruptedException {
+ Graph graph = graphController.generateGraph();
+ assertEquals(5, graph.getNodes().size());
+ assertEquals(9, graph.getEdges().size());
+ assertEquals(1, graph.getSubgraphs().size());
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/a9a52bd5/taverna-graph-model/src/test/java/org/apache/taverna/workbench/models/graph/GraphEdgeTest.java
----------------------------------------------------------------------
diff --git a/taverna-graph-model/src/test/java/org/apache/taverna/workbench/models/graph/GraphEdgeTest.java b/taverna-graph-model/src/test/java/org/apache/taverna/workbench/models/graph/GraphEdgeTest.java
new file mode 100644
index 0000000..ba47a35
--- /dev/null
+++ b/taverna-graph-model/src/test/java/org/apache/taverna/workbench/models/graph/GraphEdgeTest.java
@@ -0,0 +1,132 @@
+/*******************************************************************************
+ * Copyright (C) 2007 The University of Manchester
+ *
+ * Modifications to the initial code base are copyright of their
+ * respective authors, or their employers as appropriate.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public License
+ * as published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
+ ******************************************************************************/
+package org.apache.taverna.workbench.models.graph;
+
+import org.apache.taverna.workbench.models.graph.GraphNode;
+import org.apache.taverna.workbench.models.graph.GraphEdge;
+import org.apache.taverna.workbench.models.graph.GraphController;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNull;
+import org.apache.taverna.workbench.models.graph.GraphEdge.ArrowStyle;
+
+import org.junit.Before;
+import org.junit.Test;
+
+public class GraphEdgeTest {
+
+ private GraphEdge edge;
+
+ private GraphNode source;
+
+ private GraphNode sink;
+
+ private ArrowStyle arrowHeadStyle;
+
+ private ArrowStyle arrowTailStyle;
+
+ private GraphController graphController;
+
+ @Before
+ public void setUp() throws Exception {
+ source = new GraphNode(graphController);
+ sink = new GraphNode(graphController);
+ arrowHeadStyle = ArrowStyle.DOT;
+ arrowTailStyle = ArrowStyle.NORMAL;
+ edge = new GraphEdge(graphController);
+ edge.setArrowHeadStyle(arrowHeadStyle);
+ edge.setArrowTailStyle(arrowTailStyle);
+ edge.setSink(sink);
+ edge.setSource(source);
+ }
+
+ @Test
+ public void testEdge() {
+ edge = new GraphEdge(graphController);
+ assertNull(edge.getSource());
+ assertNull(edge.getSink());
+ assertNull(edge.getLabel());
+ }
+
+ @Test
+ public void testEdgeNodeNode() {
+ edge = new GraphEdge(graphController);
+ edge.setSource(source);
+ edge.setSink(sink);
+ assertEquals(source, edge.getSource());
+ assertEquals(sink, edge.getSink());
+ assertNull(edge.getLabel());
+ }
+
+ @Test
+ public void testGetSource() {
+ assertEquals(source, edge.getSource());
+ }
+
+ @Test
+ public void testSetSource() {
+ GraphNode node = new GraphNode(graphController);
+ edge.setSource(node);
+ assertEquals(node, edge.getSource());
+ edge.setSource(null);
+ assertNull(edge.getSource());
+ }
+
+ @Test
+ public void testGetSink() {
+ assertEquals(sink, edge.getSink());
+ }
+
+ @Test
+ public void testSetSink() {
+ GraphNode node = new GraphNode(graphController);
+ edge.setSink(node);
+ assertEquals(node, edge.getSink());
+ edge.setSink(null);
+ assertNull(edge.getSink());
+ }
+
+ @Test
+ public void testGetArrowHeadStyle() {
+ assertEquals(arrowHeadStyle, edge.getArrowHeadStyle());
+ }
+
+ @Test
+ public void testSetArrowHeadStyle() {
+ edge.setArrowHeadStyle(ArrowStyle.DOT);
+ assertEquals(ArrowStyle.DOT, edge.getArrowHeadStyle());
+ edge.setArrowHeadStyle(null);
+ assertNull(edge.getArrowHeadStyle());
+ }
+
+ @Test
+ public void testGetArrowTailStyle() {
+ assertEquals(arrowTailStyle, edge.getArrowTailStyle());
+ }
+
+ @Test
+ public void testSetArrowTailStyle() {
+ edge.setArrowTailStyle(ArrowStyle.NORMAL);
+ assertEquals(ArrowStyle.NORMAL, edge.getArrowTailStyle());
+ edge.setArrowTailStyle(null);
+ assertNull(edge.getArrowTailStyle());
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/a9a52bd5/taverna-graph-model/src/test/java/org/apache/taverna/workbench/models/graph/GraphElementTest.java
----------------------------------------------------------------------
diff --git a/taverna-graph-model/src/test/java/org/apache/taverna/workbench/models/graph/GraphElementTest.java b/taverna-graph-model/src/test/java/org/apache/taverna/workbench/models/graph/GraphElementTest.java
new file mode 100644
index 0000000..623566a
--- /dev/null
+++ b/taverna-graph-model/src/test/java/org/apache/taverna/workbench/models/graph/GraphElementTest.java
@@ -0,0 +1,151 @@
+/*******************************************************************************
+ * Copyright (C) 2007 The University of Manchester
+ *
+ * Modifications to the initial code base are copyright of their
+ * respective authors, or their employers as appropriate.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public License
+ * as published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
+ ******************************************************************************/
+package org.apache.taverna.workbench.models.graph;
+
+
+import org.apache.taverna.workbench.models.graph.GraphNode;
+import org.apache.taverna.workbench.models.graph.GraphController;
+import org.apache.taverna.workbench.models.graph.GraphElement;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNull;
+
+import java.awt.Color;
+
+import org.apache.taverna.workbench.models.graph.GraphElement.LineStyle;
+
+import org.junit.Before;
+import org.junit.Test;
+
+public class GraphElementTest {
+
+ private GraphElement element;
+
+ private String id;
+
+ private String label;
+
+ private LineStyle lineStyle;
+
+ private Color color;
+
+ private Color fillColor;
+
+ private GraphElement parent;
+
+ private GraphController graphController;
+
+ @Before
+ public void setUp() throws Exception {
+ element = new GraphElement(graphController) {};
+ id = "element-id";
+ label = "element-label";
+ lineStyle = LineStyle.NONE;
+ color = Color.BLUE;
+ fillColor = Color.GREEN;
+ parent = new GraphNode(graphController);
+ element.setId(id);
+ element.setLabel(label);
+ element.setLineStyle(lineStyle);
+ element.setColor(color);
+ element.setFillColor(fillColor);
+ element.setParent(parent);
+ }
+
+ @Test
+ public void testGetParent() {
+ assertEquals(parent, element.getParent());
+ }
+
+ @Test
+ public void testSetParent() {
+ GraphNode newParent = new GraphNode(graphController);
+ element.setParent(newParent);
+ assertEquals(newParent, element.getParent());
+ element.setParent(null);
+ assertNull(element.getParent());
+ }
+
+ @Test
+ public void testGetLabel() {
+ assertEquals(label, element.getLabel());
+ }
+
+ @Test
+ public void testSetLabel() {
+ element.setLabel("new-label");
+ assertEquals("new-label", element.getLabel());
+ element.setLabel(null);
+ assertNull(element.getLabel());
+ }
+
+ @Test
+ public void testGetId() {
+ assertEquals(id, element.getId());
+ }
+
+ @Test
+ public void testSetId() {
+ element.setId("new-id");
+ assertEquals("new-id", element.getId());
+ element.setId(null);
+ assertNull(element.getId());
+ }
+
+ @Test
+ public void testGetColor() {
+ assertEquals(color, element.getColor());
+ }
+
+ @Test
+ public void testSetColor() {
+ element.setColor(Color.RED);
+ assertEquals(Color.RED, element.getColor());
+ element.setColor(null);
+ assertNull(element.getColor());
+ }
+
+ @Test
+ public void testGetFillColor() {
+ assertEquals(fillColor, element.getFillColor());
+ }
+
+ @Test
+ public void testSetFillColor() {
+ element.setFillColor(Color.RED);
+ assertEquals(Color.RED, element.getFillColor());
+ element.setFillColor(null);
+ assertNull(element.getFillColor());
+ }
+
+ @Test
+ public void testGetLineStyle() {
+ assertEquals(lineStyle, element.getLineStyle());
+ }
+
+ @Test
+ public void testSetLineStyle() {
+ element.setLineStyle(LineStyle.DOTTED);
+ assertEquals(LineStyle.DOTTED, element.getLineStyle());
+ element.setLineStyle(null);
+ assertNull(element.getLineStyle());
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/a9a52bd5/taverna-graph-model/src/test/java/org/apache/taverna/workbench/models/graph/GraphNodeTest.java
----------------------------------------------------------------------
diff --git a/taverna-graph-model/src/test/java/org/apache/taverna/workbench/models/graph/GraphNodeTest.java b/taverna-graph-model/src/test/java/org/apache/taverna/workbench/models/graph/GraphNodeTest.java
new file mode 100644
index 0000000..20410f7
--- /dev/null
+++ b/taverna-graph-model/src/test/java/org/apache/taverna/workbench/models/graph/GraphNodeTest.java
@@ -0,0 +1,182 @@
+/*******************************************************************************
+ * Copyright (C) 2007 The University of Manchester
+ *
+ * Modifications to the initial code base are copyright of their
+ * respective authors, or their employers as appropriate.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public License
+ * as published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
+ ******************************************************************************/
+package org.apache.taverna.workbench.models.graph;
+
+import org.apache.taverna.workbench.models.graph.GraphNode;
+import org.apache.taverna.workbench.models.graph.Graph;
+import org.apache.taverna.workbench.models.graph.GraphController;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
+
+import java.awt.Dimension;
+
+import org.apache.taverna.workbench.models.graph.GraphShapeElement.Shape;
+
+import org.junit.Before;
+import org.junit.Test;
+
+public class GraphNodeTest {
+
+ private GraphNode node;
+
+ private Shape shape;
+
+ private Dimension size;
+
+ private Graph graph;
+
+ private boolean expanded;
+
+ private GraphController graphController;
+
+ @Before
+ public void setUp() throws Exception {
+ shape = Shape.HOUSE;
+ size = new Dimension(1, 2);
+ graph = new Graph(graphController);
+ expanded = false;
+ node = new GraphNode(graphController);
+ node.setShape(shape);
+ node.setSize(size);
+ node.setGraph(graph);
+ node.setExpanded(expanded);
+ }
+
+ @Test
+ public void testNode() {
+ assertNotNull(new GraphNode(graphController));
+ }
+
+ @Test
+ public void testAddSinkNode() {
+ GraphNode newNode = new GraphNode(graphController);
+ node.addSinkNode(newNode);
+ assertEquals(1, node.getSinkNodes().size());
+ assertTrue(node.getSinkNodes().contains(newNode));
+ assertEquals(node, newNode.getParent());
+ }
+
+ @Test
+ public void testAddSourceNode() {
+ GraphNode newNode = new GraphNode(graphController);
+ node.addSourceNode(newNode);
+ assertEquals(1, node.getSourceNodes().size());
+ assertTrue(node.getSourceNodes().contains(newNode));
+ assertEquals(node, newNode.getParent());
+ }
+
+ @Test
+ public void testGetGraph() {
+ assertEquals(graph, node.getGraph());
+ }
+
+ @Test
+ public void testGetHeight() {
+ assertEquals(size.height, node.getHeight(), 0);
+ }
+
+ @Test
+ public void testGetShape() {
+ assertEquals(shape, node.getShape());
+ }
+
+ @Test
+ public void testGetSinkNodes() {
+ assertNotNull(node.getSinkNodes());
+ assertEquals(0, node.getSinkNodes().size());
+ }
+
+ @Test
+ public void testGetSize() {
+ assertEquals(size, node.getSize());
+ }
+
+ @Test
+ public void testGetSourceNodes() {
+ assertNotNull(node.getSourceNodes());
+ assertEquals(0, node.getSourceNodes().size());
+ }
+
+ @Test
+ public void testGetWidth() {
+ assertEquals(size.width, node.getWidth(), 0);
+ }
+
+ @Test
+ public void testIsExpanded() {
+ assertEquals(expanded, node.isExpanded());
+ }
+
+ @Test
+ public void testRemoveSinkNode() {
+ GraphNode newNode = new GraphNode(graphController);
+ assertFalse(node.removeSinkNode(newNode));
+ node.addSinkNode(newNode);
+ assertTrue(node.removeSinkNode(newNode));
+ assertFalse(node.getSinkNodes().contains(newNode));
+ }
+
+ @Test
+ public void testRemoveSourceNode() {
+ GraphNode newNode = new GraphNode(graphController);
+ assertFalse(node.removeSourceNode(newNode));
+ node.addSourceNode(newNode);
+ assertTrue(node.removeSourceNode(newNode));
+ assertFalse(node.getSourceNodes().contains(newNode));
+ }
+
+ @Test
+ public void testSetExpanded() {
+ node.setExpanded(true);
+ assertEquals(true, node.isExpanded());
+ node.setExpanded(false);
+ assertEquals(false, node.isExpanded());
+ }
+
+ @Test
+ public void testSetGraph() {
+ Graph newGraph = new Graph(graphController);
+ node.setGraph(newGraph);
+ assertEquals(newGraph, node.getGraph());
+ node.setGraph(null);
+ assertNull(node.getGraph());
+ }
+
+ @Test
+ public void testSetShape() {
+ node.setShape(Shape.INVTRIANGLE);
+ assertEquals(Shape.INVTRIANGLE, node.getShape());
+ node.setShape(Shape.TRIANGLE);
+ assertEquals(Shape.TRIANGLE, node.getShape());
+ }
+
+ @Test
+ public void testSetSize() {
+ node.setSize(new Dimension(23, 6));
+ assertEquals(new Dimension(23, 6), node.getSize());
+ node.setSize(new Dimension(14, 4));
+ assertEquals(new Dimension(14, 4), node.getSize());
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/a9a52bd5/taverna-graph-model/src/test/java/org/apache/taverna/workbench/models/graph/GraphTest.java
----------------------------------------------------------------------
diff --git a/taverna-graph-model/src/test/java/org/apache/taverna/workbench/models/graph/GraphTest.java b/taverna-graph-model/src/test/java/org/apache/taverna/workbench/models/graph/GraphTest.java
new file mode 100644
index 0000000..ec7f251
--- /dev/null
+++ b/taverna-graph-model/src/test/java/org/apache/taverna/workbench/models/graph/GraphTest.java
@@ -0,0 +1,139 @@
+/*******************************************************************************
+ * Copyright (C) 2007 The University of Manchester
+ *
+ * Modifications to the initial code base are copyright of their
+ * respective authors, or their employers as appropriate.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public License
+ * as published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
+ ******************************************************************************/
+package org.apache.taverna.workbench.models.graph;
+
+import org.apache.taverna.workbench.models.graph.GraphController;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+import org.apache.taverna.workbench.models.graph.GraphEdge;
+import org.apache.taverna.workbench.models.graph.Graph;
+import org.apache.taverna.workbench.models.graph.GraphNode;
+import org.apache.taverna.workbench.models.graph.Graph.Alignment;
+
+import org.junit.Before;
+import org.junit.Test;
+
+public class GraphTest {
+
+ private Graph graph;
+
+ private Alignment alignment;
+
+ private GraphController graphController;
+
+ @Before
+ public void setUp() throws Exception {
+ alignment = Alignment.VERTICAL;
+ graph = new Graph(graphController);
+ }
+
+ @Test
+ public void testGraph() {
+ assertNotNull(new Graph(graphController));
+ }
+
+ @Test
+ public void testAddEdge() {
+ GraphEdge newEdge = new GraphEdge(graphController);
+ graph.addEdge(newEdge);
+ assertEquals(1, graph.getEdges().size());
+ assertTrue(graph.getEdges().contains(newEdge));
+ }
+
+ @Test
+ public void testAddNode() {
+ GraphNode newNode = new GraphNode(graphController);
+ graph.addNode(newNode);
+ assertEquals(1, graph.getNodes().size());
+ assertTrue(graph.getNodes().contains(newNode));
+ assertEquals(graph, newNode.getParent());
+ }
+
+ @Test
+ public void testAddSubgraph() {
+ Graph newGraph = new Graph(graphController);
+ graph.addSubgraph(newGraph);
+ assertEquals(1, graph.getSubgraphs().size());
+ assertTrue(graph.getSubgraphs().contains(newGraph));
+ assertEquals(graph, newGraph.getParent());
+ }
+
+ @Test
+ public void testGetAlignment() {
+ assertEquals(alignment, graph.getAlignment());
+ }
+
+ @Test
+ public void testGetEdges() {
+ assertNotNull(graph.getNodes());
+ assertEquals(0, graph.getNodes().size());
+ }
+
+ @Test
+ public void testGetNodes() {
+ assertNotNull(graph.getEdges());
+ assertEquals(0, graph.getEdges().size());
+ }
+
+ @Test
+ public void testGetSubgraphs() {
+ assertNotNull(graph.getSubgraphs());
+ assertEquals(0, graph.getSubgraphs().size());
+ }
+
+ @Test
+ public void testRemoveEdge() {
+ GraphEdge newEdge = new GraphEdge(graphController);
+ assertFalse(graph.removeEdge(newEdge));
+ graph.addEdge(newEdge);
+ assertTrue(graph.removeEdge(newEdge));
+ assertFalse(graph.getNodes().contains(newEdge));
+ }
+
+ @Test
+ public void testRemoveNode() {
+ GraphNode newNode = new GraphNode(graphController);
+ assertFalse(graph.removeNode(newNode));
+ graph.addNode(newNode);
+ assertTrue(graph.removeNode(newNode));
+ assertFalse(graph.getNodes().contains(newNode));
+ }
+
+ @Test
+ public void testRemoveSubgraph() {
+ Graph newGraph = new Graph(graphController);
+ assertFalse(graph.removeSubgraph(newGraph));
+ graph.addSubgraph(newGraph);
+ assertTrue(graph.removeSubgraph(newGraph));
+ assertFalse(graph.getSubgraphs().contains(newGraph));
+ }
+
+ @Test
+ public void testSetAlignment() {
+ graph.setAlignment(Alignment.VERTICAL);
+ assertEquals(Alignment.VERTICAL, graph.getAlignment());
+ graph.setAlignment(Alignment.HORIZONTAL);
+ assertEquals(Alignment.HORIZONTAL, graph.getAlignment());
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/a9a52bd5/taverna-graph-view/src/main/java/net/sf/taverna/t2/workbench/views/graph/GraphViewComponent.java
----------------------------------------------------------------------
diff --git a/taverna-graph-view/src/main/java/net/sf/taverna/t2/workbench/views/graph/GraphViewComponent.java b/taverna-graph-view/src/main/java/net/sf/taverna/t2/workbench/views/graph/GraphViewComponent.java
index ef1ac2c..dac96ab 100644
--- a/taverna-graph-view/src/main/java/net/sf/taverna/t2/workbench/views/graph/GraphViewComponent.java
+++ b/taverna-graph-view/src/main/java/net/sf/taverna/t2/workbench/views/graph/GraphViewComponent.java
@@ -25,15 +25,15 @@ import static java.awt.BorderLayout.NORTH;
import static javax.swing.Action.SHORT_DESCRIPTION;
import static javax.swing.Action.SMALL_ICON;
import static javax.swing.BoxLayout.PAGE_AXIS;
-import static net.sf.taverna.t2.workbench.icons.WorkbenchIcons.allportIcon;
-import static net.sf.taverna.t2.workbench.icons.WorkbenchIcons.blobIcon;
-import static net.sf.taverna.t2.workbench.icons.WorkbenchIcons.expandNestedIcon;
-import static net.sf.taverna.t2.workbench.icons.WorkbenchIcons.horizontalIcon;
-import static net.sf.taverna.t2.workbench.icons.WorkbenchIcons.noportIcon;
-import static net.sf.taverna.t2.workbench.icons.WorkbenchIcons.refreshIcon;
-import static net.sf.taverna.t2.workbench.icons.WorkbenchIcons.verticalIcon;
-import static net.sf.taverna.t2.workbench.icons.WorkbenchIcons.zoomInIcon;
-import static net.sf.taverna.t2.workbench.icons.WorkbenchIcons.zoomOutIcon;
+import static org.apache.taverna.workbench.icons.WorkbenchIcons.allportIcon;
+import static org.apache.taverna.workbench.icons.WorkbenchIcons.blobIcon;
+import static org.apache.taverna.workbench.icons.WorkbenchIcons.expandNestedIcon;
+import static org.apache.taverna.workbench.icons.WorkbenchIcons.horizontalIcon;
+import static org.apache.taverna.workbench.icons.WorkbenchIcons.noportIcon;
+import static org.apache.taverna.workbench.icons.WorkbenchIcons.refreshIcon;
+import static org.apache.taverna.workbench.icons.WorkbenchIcons.verticalIcon;
+import static org.apache.taverna.workbench.icons.WorkbenchIcons.zoomInIcon;
+import static org.apache.taverna.workbench.icons.WorkbenchIcons.zoomOutIcon;
import static net.sf.taverna.t2.workbench.views.graph.config.GraphViewConfiguration.ALIGNMENT;
import static net.sf.taverna.t2.workbench.views.graph.config.GraphViewConfiguration.ANIMATION_ENABLED;
import static net.sf.taverna.t2.workbench.views.graph.config.GraphViewConfiguration.ANIMATION_SPEED;
@@ -65,25 +65,25 @@ import javax.swing.border.EmptyBorder;
import org.apache.taverna.lang.observer.Observable;
import org.apache.taverna.lang.observer.SwingAwareObserver;
-import net.sf.taverna.t2.ui.menu.MenuManager;
-import net.sf.taverna.t2.workbench.configuration.colour.ColourManager;
-import net.sf.taverna.t2.workbench.configuration.workbench.WorkbenchConfiguration;
-import net.sf.taverna.t2.workbench.edits.EditManager;
-import net.sf.taverna.t2.workbench.edits.EditManager.AbstractDataflowEditEvent;
-import net.sf.taverna.t2.workbench.edits.EditManager.EditManagerEvent;
-import net.sf.taverna.t2.workbench.file.FileManager;
-import net.sf.taverna.t2.workbench.file.events.ClosedDataflowEvent;
-import net.sf.taverna.t2.workbench.file.events.FileManagerEvent;
-import net.sf.taverna.t2.workbench.models.graph.Graph.Alignment;
-import net.sf.taverna.t2.workbench.models.graph.GraphController;
-import net.sf.taverna.t2.workbench.models.graph.GraphController.PortStyle;
-import net.sf.taverna.t2.workbench.models.graph.svg.SVGGraphController;
-import net.sf.taverna.t2.workbench.selection.SelectionManager;
-import net.sf.taverna.t2.workbench.selection.events.SelectionManagerEvent;
-import net.sf.taverna.t2.workbench.selection.events.WorkflowBundleSelectionEvent;
-import net.sf.taverna.t2.workbench.selection.events.WorkflowSelectionEvent;
-import net.sf.taverna.t2.workbench.ui.dndhandler.ServiceTransferHandler;
-import net.sf.taverna.t2.workbench.ui.zaria.UIComponentSPI;
+import org.apache.taverna.ui.menu.MenuManager;
+import org.apache.taverna.workbench.configuration.colour.ColourManager;
+import org.apache.taverna.workbench.configuration.workbench.WorkbenchConfiguration;
+import org.apache.taverna.workbench.edits.EditManager;
+import org.apache.taverna.workbench.edits.EditManager.AbstractDataflowEditEvent;
+import org.apache.taverna.workbench.edits.EditManager.EditManagerEvent;
+import org.apache.taverna.workbench.file.FileManager;
+import org.apache.taverna.workbench.file.events.ClosedDataflowEvent;
+import org.apache.taverna.workbench.file.events.FileManagerEvent;
+import org.apache.taverna.workbench.models.graph.Graph.Alignment;
+import org.apache.taverna.workbench.models.graph.GraphController;
+import org.apache.taverna.workbench.models.graph.GraphController.PortStyle;
+import org.apache.taverna.workbench.models.graph.svg.SVGGraphController;
+import org.apache.taverna.workbench.selection.SelectionManager;
+import org.apache.taverna.workbench.selection.events.SelectionManagerEvent;
+import org.apache.taverna.workbench.selection.events.WorkflowBundleSelectionEvent;
+import org.apache.taverna.workbench.selection.events.WorkflowSelectionEvent;
+import org.apache.taverna.workbench.ui.dndhandler.ServiceTransferHandler;
+import org.apache.taverna.workbench.ui.zaria.UIComponentSPI;
import net.sf.taverna.t2.workbench.views.graph.config.GraphViewConfiguration;
import net.sf.taverna.t2.workbench.views.graph.menu.ResetDiagramAction;
import net.sf.taverna.t2.workbench.views.graph.menu.ZoomInAction;
http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/a9a52bd5/taverna-graph-view/src/main/java/net/sf/taverna/t2/workbench/views/graph/GraphViewComponentFactory.java
----------------------------------------------------------------------
diff --git a/taverna-graph-view/src/main/java/net/sf/taverna/t2/workbench/views/graph/GraphViewComponentFactory.java b/taverna-graph-view/src/main/java/net/sf/taverna/t2/workbench/views/graph/GraphViewComponentFactory.java
index 388c874..4f603d6 100644
--- a/taverna-graph-view/src/main/java/net/sf/taverna/t2/workbench/views/graph/GraphViewComponentFactory.java
+++ b/taverna-graph-view/src/main/java/net/sf/taverna/t2/workbench/views/graph/GraphViewComponentFactory.java
@@ -24,14 +24,14 @@ import javax.swing.ImageIcon;
import org.apache.taverna.commons.services.ServiceRegistry;
-import net.sf.taverna.t2.ui.menu.MenuManager;
-import net.sf.taverna.t2.workbench.configuration.colour.ColourManager;
-import net.sf.taverna.t2.workbench.configuration.workbench.WorkbenchConfiguration;
-import net.sf.taverna.t2.workbench.edits.EditManager;
-import net.sf.taverna.t2.workbench.file.FileManager;
-import net.sf.taverna.t2.workbench.selection.SelectionManager;
-import net.sf.taverna.t2.workbench.ui.zaria.UIComponentFactorySPI;
-import net.sf.taverna.t2.workbench.ui.zaria.UIComponentSPI;
+import org.apache.taverna.ui.menu.MenuManager;
+import org.apache.taverna.workbench.configuration.colour.ColourManager;
+import org.apache.taverna.workbench.configuration.workbench.WorkbenchConfiguration;
+import org.apache.taverna.workbench.edits.EditManager;
+import org.apache.taverna.workbench.file.FileManager;
+import org.apache.taverna.workbench.selection.SelectionManager;
+import org.apache.taverna.workbench.ui.zaria.UIComponentFactorySPI;
+import org.apache.taverna.workbench.ui.zaria.UIComponentSPI;
import net.sf.taverna.t2.workbench.views.graph.config.GraphViewConfiguration;
/**