Author: scooter
Date: 2012-06-13 16:37:36 -0700 (Wed, 13 Jun 2012)
New Revision: 29559

Removed:
   
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/cyannotator/modify/
Modified:
   
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/cyannotator/CyAnnotator.java
   
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/cyannotator/annotations/AbstractAnnotation.java
   
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/cyannotator/annotations/ArrowAnnotationImpl.java
   
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/cyannotator/annotations/BoundedTextAnnotationImpl.java
   
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/cyannotator/annotations/GraphicsUtilities.java
   
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/cyannotator/annotations/ImageAnnotationImpl.java
   
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/cyannotator/annotations/ShapeAnnotationImpl.java
   
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/cyannotator/annotations/TextAnnotationImpl.java
   
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/cyannotator/api/ArrowAnnotation.java
   
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/cyannotator/dialogs/ArrowAnnotationDialog.java
   
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/cyannotator/dialogs/ArrowAnnotationPanel.java
   
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/cyannotator/listeners/CanvasMouseListener.java
   
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/cyannotator/listeners/CanvasMouseMotionListener.java
   
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/cyannotator/tasks/AddArrowTaskFactory.java
   
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/cyannotator/tasks/ChangeAnnotationCanvasTaskFactory.java
   
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/cyannotator/tasks/EditAnnotationTaskFactory.java
   
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/cyannotator/tasks/LayerAnnotationTaskFactory.java
   
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/cyannotator/tasks/MoveAnnotationTaskFactory.java
   
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/cyannotator/tasks/RemoveAnnotationTaskFactory.java
   
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/cyannotator/tasks/ResizeAnnotationTaskFactory.java
   
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/cyannotator/tasks/SelectAnnotationTaskFactory.java
Log:
Arrows to nodes now work.  Still need to work on Arrow context menus and
serialization of node targets.


Modified: 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/cyannotator/CyAnnotator.java
===================================================================
--- 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/cyannotator/CyAnnotator.java
        2012-06-13 23:12:27 UTC (rev 29558)
+++ 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/cyannotator/CyAnnotator.java
        2012-06-13 23:37:36 UTC (rev 29559)
@@ -22,6 +22,7 @@
 import java.util.HashSet;
 import java.util.Map;
 import java.util.Set;
+import java.util.UUID;
 
 import org.cytoscape.model.CyNetwork;
 import org.cytoscape.model.CyTable;
@@ -92,8 +93,6 @@
 
                List<String> annotations = network.getRow(network).
                                                          
getList(ANNOTATION_ATTRIBUTE,String.class);
-               Map<Integer, Annotation> idMap = 
-                   new HashMap<Integer, Annotation>(); // Keep a map of the 
original annotation ID's
 
                List<Map<String,String>> arrowList = 
                    new ArrayList<Map<String, String>>(); // Keep a list of 
arrows
@@ -104,32 +103,44 @@
                                Annotation annotation = null;
                                String type = argMap.get("type");
                                if (type == null)
-                       continue;
+                                       continue;
+
+                               if (type.equals("ARROW")) {
+                                       arrowList.add(argMap);
+                                       continue;
+                               }
        
                                annotation = 
annotationFactoryManager.getAnnotation(type,this,view,argMap);
        
                                if (annotation != null) {
-                                       
foreGroundCanvas.add(annotation.getComponent());
+                                       if (annotation.getCanvas() != null)
+                                               
annotation.getCanvas().add(annotation.getComponent());
+                                       else
+                                               
foreGroundCanvas.add(annotation.getComponent());
                                }
                        }
-               }
-               
-/*
-               // OK, now we add the arrows, if we have any
-               for (Map<String, String>argMap: arrowList) {
-                       // Create the arrow annotation
-                       ArrowAnnotation arrow = new 
ArrowAnnotation(this,view,argMap);
-                       // Find the source
-                       Integer source = arrow.getSource();
-                       Annotation annotation = idMap.get(source);
-                       if (annotation != null) {
-                               annotation.addArrow(arrow);
-                               
arrow.setSource(annotation.getComponentNumber());
+
+                       // Now, handle all of our arrows
+                       for (Map<String,String> argMap: arrowList) {
+                               String type = argMap.get("type");
+                               Annotation annotation = 
annotationFactoryManager.getAnnotation(type,this,view,argMap);
+                               if (annotation instanceof ArrowAnnotation) {
+                                       ArrowAnnotation arrow = 
(ArrowAnnotation)annotation;
+                                       arrow.getSource().addArrow(arrow);
+                                       
arrow.getCanvas().add(arrow.getComponent());
+                               }
                        }
                }
-*/
        }
 
+       public Annotation getAnnotation(UUID annotationID) {
+               for (Annotation a: annotationMap.keySet()) {
+                       if (a.getUUID().equals(annotationID))
+                               return a;
+               }
+               return null;
+       }
+
        public void update() { view.updateView(); }
 
        public DGraphView getView() { return view; }
@@ -158,7 +169,7 @@
                return top;
        }
 
-       public Annotation getAnnotation(Point2D position) {
+       public Annotation getAnnotationAt(Point2D position) {
                Annotation a = getComponentAt(foreGroundCanvas, 
(int)position.getX(), (int)position.getY());
                if (a != null) {
                        return a;

Modified: 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/cyannotator/annotations/AbstractAnnotation.java
===================================================================
--- 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/cyannotator/annotations/AbstractAnnotation.java
     2012-06-13 23:12:27 UTC (rev 29558)
+++ 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/cyannotator/annotations/AbstractAnnotation.java
     2012-06-13 23:37:36 UTC (rev 29559)
@@ -45,17 +45,17 @@
 
        private double globalZoom = 1.0;
        private double myZoom = 1.0;
-       protected boolean usedForPreviews=false;
 
        private ArbitraryGraphicsCanvas canvas;
        private DGraphView.Canvas canvasName;
        private CyAnnotator cyAnnotator;
-       private DGraphView view;
-       private int annotationNumber;
        private UUID uuid = UUID.randomUUID();
 
        private Set<ArrowAnnotation> arrowList;
 
+       protected boolean usedForPreviews=false;
+       protected DGraphView view;
+
        protected static final String ID="id";
        protected static final String ZOOM="zoom";
        protected static final String X="x";
@@ -70,7 +70,6 @@
                arrowList = new HashSet<ArrowAnnotation>();
                this.canvas = 
(ArbitraryGraphicsCanvas)(view.getCanvas(DGraphView.Canvas.FOREGROUND_CANVAS));
                this.canvasName = DGraphView.Canvas.FOREGROUND_CANVAS;
-               this.annotationNumber = nextAnnotationNumber++;
                this.globalZoom = view.getZoom();
        }
 
@@ -80,7 +79,6 @@
                arrowList = new HashSet<ArrowAnnotation>(c.arrowList);
                this.canvas = c.canvas;
                this.canvasName = c.canvasName;
-               this.annotationNumber = nextAnnotationNumber++;
        }
 
        public AbstractAnnotation(CyAnnotator cyAnnotator, DGraphView view, 
@@ -93,7 +91,6 @@
                arrowList = new HashSet<ArrowAnnotation>();
                // super.setBackground(Color.BLUE);
                setLocation((int)x, (int)y);
-               this.annotationNumber = nextAnnotationNumber++;
        }
 
        public AbstractAnnotation(CyAnnotator cyAnnotator, DGraphView view, 
Map<String, String> argMap) {
@@ -113,12 +110,11 @@
                setLocation((int)coords.getX(), (int)coords.getY());
                if (argMap.containsKey(ANNOTATION_ID))
                        this.uuid = UUID.fromString(argMap.get(ANNOTATION_ID));
-               this.annotationNumber = nextAnnotationNumber++;
                
        }
 
        public String toString() {
-               return "annotation "+annotationNumber+" at "+getX()+", 
"+getY()+" zoom="+globalZoom+" on canvas "+canvasName;
+               return "annotation "+uuid.toString()+" at "+getX()+", 
"+getY()+" zoom="+globalZoom+" on canvas "+canvasName;
        }
 
        @Override
@@ -329,6 +325,30 @@
                return new Color(Integer.parseInt(strColor));
   }
 
+  protected Color getColor(Map<String, String> argMap, String key, Color 
defValue) {
+               if (!argMap.containsKey(key) || argMap.get(key) == null)
+                       return defValue;
+               return new Color(Integer.parseInt(argMap.get(key)));
+       }
+
+  protected Float getFloat(Map<String, String> argMap, String key, float 
defValue) {
+               if (!argMap.containsKey(key) || argMap.get(key) == null)
+                       return defValue;
+               return Float.parseFloat(argMap.get(key));
+       }
+
+  protected Integer getInteger(Map<String, String> argMap, String key, int 
defValue) {
+               if (!argMap.containsKey(key) || argMap.get(key) == null)
+                       return defValue;
+               return Integer.parseInt(argMap.get(key));
+       }
+
+  protected Double getDouble(Map<String, String> argMap, String key, double 
defValue) {
+               if (!argMap.containsKey(key) || argMap.get(key) == null)
+                       return defValue;
+               return Double.parseDouble(argMap.get(key));
+       }
+
        // Private methods
        private void addNodeCoordinates(Map<String, String> argMap) {
                Point2D xy = getNodeCoordinates(getX(), getY());

Modified: 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/cyannotator/annotations/ArrowAnnotationImpl.java
===================================================================
--- 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/cyannotator/annotations/ArrowAnnotationImpl.java
    2012-06-13 23:12:27 UTC (rev 29558)
+++ 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/cyannotator/annotations/ArrowAnnotationImpl.java
    2012-06-13 23:37:36 UTC (rev 29559)
@@ -15,10 +15,12 @@
 import javax.swing.JFrame;
 
 import java.util.Map;
+import java.util.UUID;
 
 import org.cytoscape.model.CyNode;
 
 import org.cytoscape.ding.impl.DGraphView;
+import org.cytoscape.ding.impl.DNodeView;
 import org.cytoscape.ding.impl.cyannotator.CyAnnotator;
 import org.cytoscape.ding.impl.cyannotator.api.Annotation;
 import org.cytoscape.ding.impl.cyannotator.api.ArrowAnnotation;
@@ -28,7 +30,6 @@
 
 public class ArrowAnnotationImpl extends AbstractAnnotation implements 
ArrowAnnotation {
        private Paint lineColor = Color.BLACK; // These are paint's so we can 
do gradients
-       private double lineOpacity = 100.0;
        private float lineWidth = 1.0f;
 
        private Annotation source = null;
@@ -53,11 +54,16 @@
        public static final String NAME="ARROW";
        protected static final String ARROWCOLOR = "lineColor";
        protected static final String ARROWTHICKNESS = "lineThickness";
-       protected static final String ARROWOPACITY = "lineOpacity";
+
+       protected static final String SOURCEANN = "sourceAnnotation";
        protected static final String SOURCETYPE = "sourceType";
        protected static final String SOURCESIZE = "sourceSize";
        protected static final String SOURCECOLOR = "sourceColor";
 
+       protected static final String TARGETPOINT = "targetPoint";
+       protected static final String TARGETANN = "targetAnnotation";
+       protected static final String TARGETNODE = "targetNode";
+
        protected static final String TARGETTYPE = "targetType";
        protected static final String TARGETSIZE = "targetSize";
        protected static final String TARGETCOLOR = "targetColor";
@@ -67,25 +73,117 @@
                super(cyAnnotator, view);
        }
 
-       public ArrowAnnotationImpl(ShapeAnnotationImpl c) {
+       public ArrowAnnotationImpl(ArrowAnnotationImpl c) {
                super(c);
+
+               // Line parameters
+               this.lineColor = c.lineColor;
+               this.lineWidth = c.lineWidth;
+
+               // Source arrow parameters
+               this.source = c.source;
+               this.sourceType = c.sourceType;
+               this.sourceColor = c.sourceColor;
+               this.sourceSize = c.sourceSize;
+
+               // Target arrow parameters
+               this.target = c.target;
+               this.targetType = c.targetType;
+               this.targetColor = c.targetColor;
+               this.targetSize = c.targetSize;
        }
 
   public ArrowAnnotationImpl(CyAnnotator cyAnnotator, DGraphView view,
-                                  Annotation source, Object target,
-                                  ArrowType arrowType, Paint arrowColor,
-                                  float arrowThickness) {
+                                  Annotation source, Object target, float 
lineWidth,
+                                  Paint lineColor, 
+                                  ArrowType sourceType, Paint sourceColor, 
float sourceSize,
+                                  ArrowType targetType, Paint targetColor, 
float targetSize) {
                // super(cyAnnotator, view, view.getZoom());
                super(cyAnnotator, view, source.getComponent().getX(), 
source.getComponent().getY(), view.getZoom());
+
+               // Line parameters
+               this.lineColor = lineColor;
+               this.lineWidth = lineWidth;
+
+               // Source arrow parameters
+               this.source = source;
+               this.sourceType = sourceType;
+               this.sourceColor = sourceColor;
+               this.sourceSize = sourceSize;
+
+               // Target arrow parameters
+               this.target = target;
+               this.targetType = targetType;
+               this.targetColor = targetColor;
+               this.targetSize = targetSize;
+
+               updateBounds();
   }
 
   public ArrowAnnotationImpl(CyAnnotator cyAnnotator, DGraphView view, 
Map<String, String> argMap) {
     super(cyAnnotator, view, argMap);
+
+    this.lineColor = getColor(argMap, ARROWCOLOR, Color.BLACK);
+               this.lineWidth = getFloat(argMap, ARROWTHICKNESS, 1.0f);
+
+               // Source
+               if (argMap.containsKey(SOURCEANN)) {
+                       UUID uuid = UUID.fromString(argMap.get(SOURCEANN));
+                       source = cyAnnotator.getAnnotation(uuid);
+               }
+
+               // Source Arrow
+    this.sourceType = GraphicsUtilities.getArrowType(argMap, SOURCETYPE, 
ArrowType.NONE);
+    this.sourceSize = getDouble(argMap, SOURCESIZE, 5.0);
+    this.sourceColor = getColor(argMap, SOURCECOLOR, null); // A null color = 
line color
+
+               // Target Arrow
+    this.targetType = GraphicsUtilities.getArrowType(argMap, TARGETTYPE, 
ArrowType.NONE);
+    this.targetSize = getDouble(argMap, TARGETSIZE, 5.0);
+    this.targetColor = getColor(argMap, TARGETCOLOR, null); // A null color = 
line color
+
+               // Figure out the target
+               if (argMap.containsKey(TARGETPOINT)) {
+                       String point = argMap.get(TARGETPOINT);
+                       String[] xy = point.split(",");
+                       double[] nextLocn = new double[2];
+                       nextLocn[0] = Double.parseDouble(xy[0]);
+                       nextLocn[1] = Double.parseDouble(xy[1]);
+                       view.xformNodeToComponentCoords(nextLocn);
+                       target = new Point2D.Double(nextLocn[0], nextLocn[1]);
+               } else if (argMap.containsKey(TARGETANN)) {
+                       UUID uuid = UUID.fromString(argMap.get(TARGETANN));
+                       target = cyAnnotator.getAnnotation(uuid);
+               } else if (argMap.containsKey(TARGETNODE)) {
+               }
   }
 
        public Map<String,String> getArgMap() {
                Map<String, String> argMap = super.getArgMap();
                argMap.put(TYPE,NAME);
+               if (this.lineColor != null)
+                       argMap.put(ARROWCOLOR,convertColor(this.lineColor));
+               argMap.put(ARROWTHICKNESS, Float.toString(this.lineWidth));
+
+               argMap.put(SOURCEANN, source.getUUID().toString());
+
+               argMap.put(SOURCETYPE, 
Integer.toString(this.sourceType.ordinal()));
+               argMap.put(SOURCESIZE, Double.toString(this.sourceSize));
+               if (this.sourceColor != null)
+                       argMap.put(SOURCECOLOR,convertColor(this.sourceColor));
+
+               if (target instanceof Point2D) {
+                       Point2D xy = 
getNodeCoordinates(((Point2D)target).getX(), ((Point2D)target).getY());
+                       
argMap.put(TARGETPOINT,Double.toString(xy.getX())+","+Double.toString(xy.getY()));
+               } else if (target instanceof Annotation) {
+                       
argMap.put(TARGETANN,((Annotation)target).getUUID().toString());
+               } else if (target instanceof CyNode) {
+               }
+
+               argMap.put(TARGETTYPE, 
Integer.toString(this.targetType.ordinal()));
+               argMap.put(TARGETSIZE, Double.toString(this.targetSize));
+               if (this.targetColor != null)
+                       argMap.put(TARGETCOLOR,convertColor(this.targetColor));
                return argMap;
        }
 
@@ -197,7 +295,8 @@
                g2.setStroke(new BasicStroke(border));
                
                Line2D relativeLine = getRelativeLine(arrowLine, scaleFactor);
-               g2.draw(relativeLine);
+               if (relativeLine != null)
+                       g2.draw(relativeLine);
 
                // Add the head
                if (sourceType != ArrowType.NONE) {
@@ -265,7 +364,7 @@
        }
 
        private Line2D getRelativeLine(Line2D line, double scaleFactor) {
-               if (usedForPreviews) 
+               if (usedForPreviews || line == null) 
                        return line;
 
                double x1 = line.getX1();
@@ -335,6 +434,9 @@
                        targetPoint = findFace(sourceCenter, targetBounds);
                } else if (target instanceof CyNode) {
                        // get the target point from ding
+                       DNodeView nv = 
(DNodeView)view.getNodeView((CyNode)target);
+                       Rectangle2D nodeBounds = getNodeBounds(nv);
+                       targetPoint = findFace(sourceCenter, nodeBounds);
                }
 
                Rectangle sourceBounds = source.getComponent().getBounds();
@@ -400,4 +502,38 @@
                        }
                }
        }
+
+       private Rectangle2D getNodeBounds(DNodeView nv) {
+               double[] nextLocn = new double[2];
+
+               // First, get our starting and ending points in node coordinates
+               double xCenter = nv.getXPosition();
+               double yCenter = nv.getYPosition();
+
+               double width = nv.getWidth();
+               double height = nv.getHeight();
+
+               double xStart = xCenter-width/2.0;
+               double yStart = yCenter-height/2.0;
+
+               double xEnd = xStart+width;
+               double yEnd = yStart+height;
+
+               // Now convert to component coordinates
+               nextLocn[0] = xStart;
+               nextLocn[1] = yStart;
+               view.xformNodeToComponentCoords(nextLocn);
+
+               double x = nextLocn[0];
+               double y = nextLocn[1];
+
+               nextLocn[0] = xEnd;
+               nextLocn[1] = yEnd;
+               view.xformNodeToComponentCoords(nextLocn);
+
+               width = nextLocn[0]-x;
+               height = nextLocn[1]-y;
+
+               return new Rectangle2D.Double(x, y, width, height);
+       }
 }

Modified: 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/cyannotator/annotations/BoundedTextAnnotationImpl.java
===================================================================
--- 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/cyannotator/annotations/BoundedTextAnnotationImpl.java
      2012-06-13 23:12:27 UTC (rev 29558)
+++ 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/cyannotator/annotations/BoundedTextAnnotationImpl.java
      2012-06-13 23:37:36 UTC (rev 29559)
@@ -84,7 +84,7 @@
                                         Map<String, String> argMap) {
                super(cyAnnotator, view, argMap);
                this.font = getArgFont(argMap);
-               this.textColor = getColor(argMap.get(COLOR));
+    this.textColor = getColor(argMap, COLOR, Color.BLACK);
                this.text = argMap.get(TEXT);
                this.fontSize = font.getSize2D();
                if (!argMap.containsKey(ShapeAnnotationImpl.WIDTH)) {

Modified: 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/cyannotator/annotations/GraphicsUtilities.java
===================================================================
--- 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/cyannotator/annotations/GraphicsUtilities.java
      2012-06-13 23:12:27 UTC (rev 29558)
+++ 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/cyannotator/annotations/GraphicsUtilities.java
      2012-06-13 23:37:36 UTC (rev 29559)
@@ -14,6 +14,8 @@
 import java.awt.geom.Rectangle2D;
 import java.awt.geom.RoundRectangle2D;
 
+import java.util.Map;
+
 import org.cytoscape.ding.impl.cyannotator.api.ShapeAnnotation;
 import org.cytoscape.ding.impl.cyannotator.api.ShapeAnnotation.ShapeType;
 
@@ -30,7 +32,7 @@
        };
 
        protected static final ArrowType supportedArrows[] = {
-               ArrowType.CIRCLE, ArrowType.CLOSED, ArrowType.DIAMOND, 
ArrowType.OPEN, 
+               ArrowType.CIRCLE, ArrowType.CLOSED, ArrowType.CONCAVE, 
ArrowType.DIAMOND, ArrowType.OPEN, 
                ArrowType.NONE, ArrowType.TRIANGLE, ArrowType.TSHAPE
        };
 
@@ -64,6 +66,17 @@
                return ShapeType.RECTANGLE; // If we can't do anything else...
        }
 
+       static public ShapeType getShapeType(Map<String, String> argMap, String 
key, ShapeType defValue) {
+               if (!argMap.containsKey(key) || argMap.get(key) == null)
+                       return defValue;
+               int shapeNumber = Integer.parseInt(argMap.get(key));
+               for (ShapeType type: supportedShapes) {
+                       if (shapeNumber == type.ordinal())
+                               return type;
+               }
+               return defValue;
+       }
+
        static public ShapeType[] getSupportedShapes() {
                return supportedShapes;
        }
@@ -113,6 +126,7 @@
                switch(arrowType) {
                        case CIRCLE: return circleArrow(size);
                        case CLOSED: return closedArrow(size);
+                       case CONCAVE: return concaveArrow(size);
                        case DIAMOND: return diamondArrow(size);
                        case OPEN: return openArrow(size);
                        case TRIANGLE: return triangleArrow(size);
@@ -137,12 +151,26 @@
                return ArrowType.NONE; // If we can't do anything else...
        }
 
+       static public ArrowType getArrowType(Map<String, String> argMap, String 
key, ArrowType defValue) {
+               if (!argMap.containsKey(key) || argMap.get(key) == null)
+                       return defValue;
+               int arrowNumber = Integer.parseInt(argMap.get(key));
+               for (ArrowType type: supportedArrows) {
+                       if (arrowNumber == type.ordinal())
+                               return type;
+               }
+               return defValue;
+       }
+
        static public ArrowType[] getSupportedArrowTypes() {
                return supportedArrows;
        }
 
        static public void drawArrow(Graphics g, Line2D line, ArrowEnd end, 
Paint paint, double size, 
                                     ArrowType type) {
+               if (line == null)
+                       return;
+
                // Get the shape
                Shape arrow = getArrowShape(type, size);
 
@@ -254,22 +282,33 @@
        // Create a shape with a 30 degree arrow
        static Shape openArrow(double size) {
                Path2D path = new Path2D.Double();
-               path.moveTo(-size*1.7, -size);
+               path.moveTo(-size*1.7, -size/2.0);
                path.lineTo(0.0, 0.0);
-               path.lineTo(-size*1.7,size);
+               path.lineTo(-size*1.7,size/2.0);
                return path;
        }
 
-       // Create a shape with a 30 degree arrow
+       // Create a shape with a filled 30 degree arrow
        static Shape closedArrow(double size) {
                Path2D path = new Path2D.Double();
-               path.moveTo(-size*1.7, -size);
+               path.moveTo(-size*1.7, -size/2.0);
                path.lineTo(0.0, 0.0);
-               path.lineTo(-size*1.7,size);
+               path.lineTo(-size*1.7,size/2.0);
                path.closePath();
                return path;
        }
 
+       // Create a shape with a 30 degree arrow
+       static Shape concaveArrow(double size) {
+               Path2D path = new Path2D.Double();
+               path.moveTo(-size, 0.0);
+               path.lineTo(-size*1.7, -size/2.0);
+               path.lineTo(0.0, 0.0);
+               path.lineTo(-size*1.7,size/2.0);
+               path.closePath();
+               return path;
+       }
+
        static Shape diamondArrow(double size) {
                Path2D path = new Path2D.Double();
                path.moveTo(-size*1.7*2,0.0);

Modified: 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/cyannotator/annotations/ImageAnnotationImpl.java
===================================================================
--- 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/cyannotator/annotations/ImageAnnotationImpl.java
    2012-06-13 23:12:27 UTC (rev 29558)
+++ 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/cyannotator/annotations/ImageAnnotationImpl.java
    2012-06-13 23:37:36 UTC (rev 29559)
@@ -102,8 +102,8 @@
                super(cyAnnotator, view, argMap);
                this.customGraphicsManager = customGraphicsManager;
 
-               imageWidth = Double.parseDouble(argMap.get(WIDTH));
-               imageHeight = Double.parseDouble(argMap.get(HEIGHT));
+               imageWidth = getDouble(argMap, WIDTH, 100.0);
+               imageHeight = getDouble(argMap, HEIGHT, 100.0);
 
                this.image = null;
                this.resizedImage = null;
@@ -122,15 +122,10 @@
                        logger.warn("Unable to restore image 
'"+argMap.get(URL)+"'",e);
                        return;
                }
-               if (argMap.containsKey(OPACITY))
-                       opacity = Float.parseFloat(argMap.get(OPACITY));
 
-               if (argMap.containsKey(LIGHTNESS))
-                       brightness = Integer.parseInt(argMap.get(LIGHTNESS));
-
-               if (argMap.containsKey(CONTRAST))
-                       contrast = Integer.parseInt(argMap.get(CONTRAST));
-
+               opacity = getFloat(argMap, OPACITY, 1.0f);
+               brightness = getInteger(argMap, LIGHTNESS, 0);
+               contrast = getInteger(argMap, CONTRAST, 0);
        }
 
        public Map<String,String> getArgMap() {

Modified: 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/cyannotator/annotations/ShapeAnnotationImpl.java
===================================================================
--- 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/cyannotator/annotations/ShapeAnnotationImpl.java
    2012-06-13 23:12:27 UTC (rev 29558)
+++ 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/cyannotator/annotations/ShapeAnnotationImpl.java
    2012-06-13 23:37:36 UTC (rev 29559)
@@ -79,30 +79,20 @@
 
   public ShapeAnnotationImpl(CyAnnotator cyAnnotator, DGraphView view, 
Map<String, String> argMap) {
     super(cyAnnotator, view, argMap);
-    this.borderColor = getColor(argMap.get(EDGECOLOR));
-    this.fillColor = getColor(argMap.get(FILLCOLOR));
+    this.borderColor = getColor(argMap, EDGECOLOR, Color.BLACK);
+    this.fillColor = getColor(argMap, FILLCOLOR, null);
     setFillColor(fillColor);
-               if (argMap.containsKey(FILLOPACITY))
-       this.fillOpacity = Double.parseDouble(argMap.get(FILLOPACITY));
+    this.fillOpacity = getDouble(argMap, FILLOPACITY, 100.0);
 
-               // If this is an old bounded text, we might not (yet) have a 
width or height
-               if (argMap.containsKey(WIDTH))
-       this.shapeWidth = Double.parseDouble(argMap.get(WIDTH));
-               else
-                       this.shapeWidth = 100;
+    // If this is an old bounded text, we might not (yet) have a width or 
height
+    this.shapeWidth = getDouble(argMap, WIDTH, 100.0);
+    this.shapeHeight = getDouble(argMap, HEIGHT, 100.0);
 
-               if (argMap.containsKey(HEIGHT))
-       this.shapeHeight = Double.parseDouble(argMap.get(HEIGHT));
-               else
-                       this.shapeHeight = 100;
+    this.borderWidth = getDouble(argMap, EDGETHICKNESS, 0.0);
+    this.borderOpacity = getDouble(argMap, EDGEOPACITY, 100.0);
 
-    this.borderWidth = Double.parseDouble(argMap.get(EDGETHICKNESS));
-
-               if (argMap.containsKey(EDGEOPACITY))
-           this.borderOpacity = Double.parseDouble(argMap.get(EDGEOPACITY));
-
-    this.shapeType = 
GraphicsUtilities.getShapeType(Integer.parseInt(argMap.get(SHAPETYPE)));
-               this.shape = GraphicsUtilities.getShape(shapeType, 0.0, 0.0, 
shapeWidth, shapeHeight);
+    this.shapeType = GraphicsUtilities.getShapeType(argMap, SHAPETYPE, 
ShapeType.RECTANGLE);
+    this.shape = GraphicsUtilities.getShape(shapeType, 0.0, 0.0, shapeWidth, 
shapeHeight);
     setSize((int)(shapeWidth+borderWidth*2), (int)(shapeHeight+borderWidth*2));
   }
 

Modified: 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/cyannotator/annotations/TextAnnotationImpl.java
===================================================================
--- 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/cyannotator/annotations/TextAnnotationImpl.java
     2012-06-13 23:12:27 UTC (rev 29558)
+++ 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/cyannotator/annotations/TextAnnotationImpl.java
     2012-06-13 23:37:36 UTC (rev 29559)
@@ -66,7 +66,7 @@
        public TextAnnotationImpl(CyAnnotator cyAnnotator, DGraphView view, 
Map<String, String> argMap) {
                super(cyAnnotator, view, argMap);
                this.font = getArgFont(argMap);
-               this.textColor = getColor(argMap.get(COLOR));
+    this.textColor = getColor(argMap, COLOR, Color.BLACK);
                this.text = argMap.get(TEXT);
                this.fontSize = font.getSize2D();
                setSize(getAnnotationWidth(), getAnnotationHeight());

Modified: 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/cyannotator/api/ArrowAnnotation.java
===================================================================
--- 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/cyannotator/api/ArrowAnnotation.java
        2012-06-13 23:12:27 UTC (rev 29558)
+++ 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/cyannotator/api/ArrowAnnotation.java
        2012-06-13 23:37:36 UTC (rev 29559)
@@ -10,6 +10,7 @@
        public enum ArrowType {
                CIRCLE ("Circle"),
                CLOSED ("Closed Arrow"),
+               CONCAVE ("Concave Arrow"),
                DIAMOND ("Diamond"),
                OPEN ("Open Arrow"),
                NONE ("No Arrow"),

Modified: 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/cyannotator/dialogs/ArrowAnnotationDialog.java
===================================================================
--- 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/cyannotator/dialogs/ArrowAnnotationDialog.java
      2012-06-13 23:12:27 UTC (rev 29558)
+++ 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/cyannotator/dialogs/ArrowAnnotationDialog.java
      2012-06-13 23:37:36 UTC (rev 29559)
@@ -31,7 +31,7 @@
                this.cyAnnotator = view.getCyAnnotator();
                this.startingLocation = start;
                this.mAnnotation = new ArrowAnnotationImpl(cyAnnotator, view);
-               this.source = cyAnnotator.getAnnotation(start);
+               this.source = cyAnnotator.getAnnotationAt(start);
                this.create = true;
 
                initComponents();                       

Modified: 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/cyannotator/dialogs/ArrowAnnotationPanel.java
===================================================================
--- 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/cyannotator/dialogs/ArrowAnnotationPanel.java
       2012-06-13 23:12:27 UTC (rev 29558)
+++ 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/cyannotator/dialogs/ArrowAnnotationPanel.java
       2012-06-13 23:37:36 UTC (rev 29559)
@@ -142,7 +142,7 @@
                        add(jLabel6);
 
                        final JComboBox eThickness = new JComboBox();
-                       eThickness.setModel(new DefaultComboBoxModel(new 
String[] { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", 
"13" }));
+                       eThickness.setModel(new DefaultComboBoxModel(new 
String[] { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", 
"13", "14", "15" }));
                        eThickness.setSelectedIndex(1);
                        for(int i=0;i<eThickness.getModel().getSize();i++){
                                if( 
((int)mAnnotation.getLineWidth())==Integer.parseInt((String)eThickness.getModel().getElementAt(i))
 ){
@@ -156,7 +156,7 @@
                                                previewPanel.repaint();
                                }
                        });      
-                       eThickness.setBounds(COLUMN2, y, 42, 20);
+                       eThickness.setBounds(COLUMN2, y, 48, 20);
                        add(eThickness);
                }
 
@@ -208,7 +208,7 @@
                                                previewPanel.repaint();
                                }
                        });                 
-                       arrowList.setBounds(COLUMN2, arrowY, 125, 20);
+                       arrowList.setBounds(COLUMN2, arrowY, 140, 20);
                        arrowPanel.add(arrowList);
                }
 
@@ -288,7 +288,7 @@
                        arrowPanel.add(jLabel6);
 
                        final JComboBox aSize = new JComboBox();
-                       aSize.setModel(new javax.swing.DefaultComboBoxModel(new 
String[] { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", 
"13" }));
+                       aSize.setModel(new javax.swing.DefaultComboBoxModel(new 
String[] { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", 
"13", "14", "15", "16", "17", "18", "19", "20" }));
                        aSize.setSelectedIndex(1);
                        for(int i=0;i<aSize.getModel().getSize();i++){
                                if( 
((int)mAnnotation.getArrowSize(end))==Integer.parseInt((String)aSize.getModel().getElementAt(i))
 ){
@@ -302,7 +302,7 @@
                                                previewPanel.repaint();
                                }
                        });      
-                       aSize.setBounds(COLUMN2, arrowY, 42, 20);
+                       aSize.setBounds(COLUMN2, arrowY, 48, 20);
                        arrowPanel.add(aSize);
                }
 

Modified: 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/cyannotator/listeners/CanvasMouseListener.java
===================================================================
--- 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/cyannotator/listeners/CanvasMouseListener.java
      2012-06-13 23:12:27 UTC (rev 29558)
+++ 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/cyannotator/listeners/CanvasMouseListener.java
      2012-06-13 23:37:36 UTC (rev 29559)
@@ -48,7 +48,7 @@
                }
 
 
-               Annotation annotation = cyAnnotator.getAnnotation(new 
Point(e.getX(), e.getY()));
+               Annotation annotation = cyAnnotator.getAnnotationAt(new 
Point(e.getX(), e.getY()));
                if (annotation == null) {
                        cyAnnotator.clearSelectedAnnotations();
                        if (!e.isConsumed()) {

Modified: 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/cyannotator/listeners/CanvasMouseMotionListener.java
===================================================================
--- 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/cyannotator/listeners/CanvasMouseMotionListener.java
        2012-06-13 23:12:27 UTC (rev 29558)
+++ 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/cyannotator/listeners/CanvasMouseMotionListener.java
        2012-06-13 23:37:36 UTC (rev 29559)
@@ -8,6 +8,7 @@
 import org.cytoscape.model.CyNode;
 
 import org.cytoscape.ding.impl.DGraphView;
+import org.cytoscape.ding.impl.DNodeView;
 import org.cytoscape.ding.impl.InnerCanvas;
 import org.cytoscape.ding.impl.cyannotator.CyAnnotator;
 import org.cytoscape.ding.impl.cyannotator.api.Annotation;
@@ -76,7 +77,7 @@
 
                        // See what's under our mouse
                        // Annotation?
-                       Annotation a = cyAnnotator.getAnnotation(mousePoint);
+                       Annotation a = cyAnnotator.getAnnotationAt(mousePoint);
                        if (a != null && !(a instanceof ArrowAnnotation)) {
                                repositionAnnotation.setTarget(a);
 
@@ -95,10 +96,13 @@
        }
 
        private boolean overNode(Point2D mousePoint) {
+               if (view.getPickedNodeView(mousePoint) != null)
+                       return true;
                return false;
        }
 
        private CyNode getNodeAtLocation(Point2D mousePoint) {
-               return null;
+               DNodeView nv = (DNodeView)view.getPickedNodeView(mousePoint);
+               return nv.getModel();
        }
 }

Modified: 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/cyannotator/tasks/AddArrowTaskFactory.java
===================================================================
--- 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/cyannotator/tasks/AddArrowTaskFactory.java
  2012-06-13 23:12:27 UTC (rev 29558)
+++ 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/cyannotator/tasks/AddArrowTaskFactory.java
  2012-06-13 23:37:36 UTC (rev 29559)
@@ -34,7 +34,7 @@
 
                // We need to be over an annotation
                CyAnnotator cyAnnotator = 
((DGraphView)networkView).getCyAnnotator();
-               Annotation annotation = cyAnnotator.getAnnotation(javaPt);
+               Annotation annotation = cyAnnotator.getAnnotationAt(javaPt);
                if (annotation == null || annotation instanceof 
ArrowAnnotation) 
                        return false;
 

Modified: 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/cyannotator/tasks/ChangeAnnotationCanvasTaskFactory.java
===================================================================
--- 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/cyannotator/tasks/ChangeAnnotationCanvasTaskFactory.java
    2012-06-13 23:12:27 UTC (rev 29558)
+++ 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/cyannotator/tasks/ChangeAnnotationCanvasTaskFactory.java
    2012-06-13 23:37:36 UTC (rev 29559)
@@ -26,7 +26,7 @@
        @Override
        public TaskIterator createTaskIterator(CyNetworkView networkView, 
Point2D javaPt, Point2D xformPt) {
                this.cyAnnotator = ((DGraphView)networkView).getCyAnnotator();
-               annotation = cyAnnotator.getAnnotation(javaPt);
+               annotation = cyAnnotator.getAnnotationAt(javaPt);
                return new TaskIterator(new 
ChangeAnnotationCanvasTask(networkView, annotation, canvas));
 
        }
@@ -34,7 +34,7 @@
        @Override
        public boolean isReady(CyNetworkView networkView, Point2D javaPt, 
Point2D xformPt) {
                this.cyAnnotator = ((DGraphView)networkView).getCyAnnotator();
-               annotation = cyAnnotator.getAnnotation(javaPt);
+               annotation = cyAnnotator.getAnnotationAt(javaPt);
                if (annotation == null) return false;
 
                if (!annotation.getCanvasName().equals(canvas))

Modified: 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/cyannotator/tasks/EditAnnotationTaskFactory.java
===================================================================
--- 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/cyannotator/tasks/EditAnnotationTaskFactory.java
    2012-06-13 23:12:27 UTC (rev 29558)
+++ 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/cyannotator/tasks/EditAnnotationTaskFactory.java
    2012-06-13 23:37:36 UTC (rev 29559)
@@ -20,7 +20,7 @@
        @Override
        public TaskIterator createTaskIterator(CyNetworkView networkView, 
Point2D javaPt, Point2D xformPt) {
                this.cyAnnotator = ((DGraphView)networkView).getCyAnnotator();
-               annotation = cyAnnotator.getAnnotation(javaPt);
+               annotation = cyAnnotator.getAnnotationAt(javaPt);
                return new TaskIterator(new EditAnnotationTask(networkView, 
annotation, javaPt));
 
        }
@@ -28,7 +28,7 @@
        @Override
        public boolean isReady(CyNetworkView networkView, Point2D javaPt, 
Point2D xformPt) {
                this.cyAnnotator = ((DGraphView)networkView).getCyAnnotator();
-               annotation = cyAnnotator.getAnnotation(javaPt);
+               annotation = cyAnnotator.getAnnotationAt(javaPt);
                if (annotation != null)
                        return true;
                return false;

Modified: 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/cyannotator/tasks/LayerAnnotationTaskFactory.java
===================================================================
--- 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/cyannotator/tasks/LayerAnnotationTaskFactory.java
   2012-06-13 23:12:27 UTC (rev 29558)
+++ 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/cyannotator/tasks/LayerAnnotationTaskFactory.java
   2012-06-13 23:37:36 UTC (rev 29559)
@@ -29,7 +29,7 @@
        @Override
        public TaskIterator createTaskIterator(CyNetworkView networkView, 
Point2D javaPt, Point2D xformPt) {
                this.cyAnnotator = ((DGraphView)networkView).getCyAnnotator();
-               annotation = cyAnnotator.getAnnotation(javaPt);
+               annotation = cyAnnotator.getAnnotationAt(javaPt);
                return new TaskIterator(new LayerAnnotationTask(networkView, 
annotation, newZorder));
 
        }
@@ -37,7 +37,7 @@
        @Override
        public boolean isReady(CyNetworkView networkView, Point2D javaPt, 
Point2D xformPt) {
                this.cyAnnotator = ((DGraphView)networkView).getCyAnnotator();
-               annotation = cyAnnotator.getAnnotation(javaPt);
+               annotation = cyAnnotator.getAnnotationAt(javaPt);
                if (annotation == null) return false;
 
                JComponent canvas = annotation.getCanvas();

Modified: 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/cyannotator/tasks/MoveAnnotationTaskFactory.java
===================================================================
--- 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/cyannotator/tasks/MoveAnnotationTaskFactory.java
    2012-06-13 23:12:27 UTC (rev 29558)
+++ 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/cyannotator/tasks/MoveAnnotationTaskFactory.java
    2012-06-13 23:37:36 UTC (rev 29559)
@@ -21,7 +21,7 @@
        @Override
        public TaskIterator createTaskIterator(CyNetworkView networkView, 
Point2D javaPt, Point2D xformPt) {
                this.cyAnnotator = ((DGraphView)networkView).getCyAnnotator();
-               annotation = cyAnnotator.getAnnotation(javaPt);
+               annotation = cyAnnotator.getAnnotationAt(javaPt);
                return new TaskIterator(new MoveAnnotationTask(networkView, 
annotation, javaPt));
 
        }
@@ -29,7 +29,7 @@
        @Override
        public boolean isReady(CyNetworkView networkView, Point2D javaPt, 
Point2D xformPt) {
                this.cyAnnotator = ((DGraphView)networkView).getCyAnnotator();
-               annotation = cyAnnotator.getAnnotation(javaPt);
+               annotation = cyAnnotator.getAnnotationAt(javaPt);
                if (annotation != null)
                        return true;
                return false;

Modified: 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/cyannotator/tasks/RemoveAnnotationTaskFactory.java
===================================================================
--- 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/cyannotator/tasks/RemoveAnnotationTaskFactory.java
  2012-06-13 23:12:27 UTC (rev 29558)
+++ 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/cyannotator/tasks/RemoveAnnotationTaskFactory.java
  2012-06-13 23:37:36 UTC (rev 29559)
@@ -21,7 +21,7 @@
        @Override
        public TaskIterator createTaskIterator(CyNetworkView networkView, 
Point2D javaPt, Point2D xformPt) {
                this.cyAnnotator = ((DGraphView)networkView).getCyAnnotator();
-               annotation = cyAnnotator.getAnnotation(javaPt);
+               annotation = cyAnnotator.getAnnotationAt(javaPt);
                return new TaskIterator(new RemoveAnnotationTask(networkView, 
annotation));
 
        }
@@ -29,7 +29,7 @@
        @Override
        public boolean isReady(CyNetworkView networkView, Point2D javaPt, 
Point2D xformPt) {
                this.cyAnnotator = ((DGraphView)networkView).getCyAnnotator();
-               annotation = cyAnnotator.getAnnotation(javaPt);
+               annotation = cyAnnotator.getAnnotationAt(javaPt);
                if (annotation != null)
                        return true;
                return false;

Modified: 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/cyannotator/tasks/ResizeAnnotationTaskFactory.java
===================================================================
--- 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/cyannotator/tasks/ResizeAnnotationTaskFactory.java
  2012-06-13 23:12:27 UTC (rev 29558)
+++ 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/cyannotator/tasks/ResizeAnnotationTaskFactory.java
  2012-06-13 23:37:36 UTC (rev 29559)
@@ -21,7 +21,7 @@
        @Override
        public TaskIterator createTaskIterator(CyNetworkView networkView, 
Point2D javaPt, Point2D xformPt) {
                this.cyAnnotator = ((DGraphView)networkView).getCyAnnotator();
-               annotation = cyAnnotator.getAnnotation(javaPt);
+               annotation = cyAnnotator.getAnnotationAt(javaPt);
                return new TaskIterator(new ResizeAnnotationTask(networkView, 
annotation, javaPt));
 
        }
@@ -29,7 +29,7 @@
        @Override
        public boolean isReady(CyNetworkView networkView, Point2D javaPt, 
Point2D xformPt) {
                this.cyAnnotator = ((DGraphView)networkView).getCyAnnotator();
-               annotation = cyAnnotator.getAnnotation(javaPt);
+               annotation = cyAnnotator.getAnnotationAt(javaPt);
                if (annotation != null && 
                    (annotation instanceof ShapeAnnotation || annotation 
instanceof ImageAnnotation))
                        return true;

Modified: 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/cyannotator/tasks/SelectAnnotationTaskFactory.java
===================================================================
--- 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/cyannotator/tasks/SelectAnnotationTaskFactory.java
  2012-06-13 23:12:27 UTC (rev 29558)
+++ 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/cyannotator/tasks/SelectAnnotationTaskFactory.java
  2012-06-13 23:37:36 UTC (rev 29559)
@@ -21,7 +21,7 @@
        @Override
        public TaskIterator createTaskIterator(CyNetworkView networkView, 
Point2D javaPt, Point2D xformPt) {
                this.cyAnnotator = ((DGraphView)networkView).getCyAnnotator();
-               annotation = cyAnnotator.getAnnotation(javaPt);
+               annotation = cyAnnotator.getAnnotationAt(javaPt);
                return new TaskIterator(new SelectAnnotationTask(networkView, 
annotation));
 
        }
@@ -29,7 +29,7 @@
        @Override
        public boolean isReady(CyNetworkView networkView, Point2D javaPt, 
Point2D xformPt) {
                this.cyAnnotator = ((DGraphView)networkView).getCyAnnotator();
-               annotation = cyAnnotator.getAnnotation(javaPt);
+               annotation = cyAnnotator.getAnnotationAt(javaPt);
                if (annotation != null)
                        return true;
                return false;

-- 
You received this message because you are subscribed to the Google Groups 
"cytoscape-cvs" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/cytoscape-cvs?hl=en.

Reply via email to