Author: kono
Date: 2012-01-12 11:22:50 -0800 (Thu, 12 Jan 2012)
New Revision: 27995

Added:
   
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/icon/EdgeBendIcon.java
Modified:
   
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/DArrowShape.java
   
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/DNodeShape.java
   
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/icon/ArrowIcon.java
   
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/icon/NodeIcon.java
   
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/icon/VisualPropertyIconFactory.java
   
core3/impl/trunk/ding-impl/graph-render/src/main/java/org/cytoscape/graph/render/immed/GraphGraphics.java
Log:
refs #569 edge arrow icon renderer implemented.

Modified: 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/DArrowShape.java
===================================================================
--- 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/DArrowShape.java
 2012-01-12 18:15:07 UTC (rev 27994)
+++ 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/DArrowShape.java
 2012-01-12 19:22:50 UTC (rev 27995)
@@ -35,10 +35,12 @@
 package org.cytoscape.ding;
 
 
+import java.awt.Shape;
 import java.util.Hashtable;
 import java.util.Map;
 
 import org.cytoscape.graph.render.immed.GraphGraphics;
+import org.cytoscape.view.presentation.property.values.ArrowShape;
 
 
 /**
@@ -48,22 +50,23 @@
  *
  */
 public enum DArrowShape {
-       NONE("No Arrow", GraphGraphics.ARROW_NONE),
-       DIAMOND("Diamond", GraphGraphics.ARROW_DIAMOND),
-       DELTA("Delta", GraphGraphics.ARROW_DELTA),
-       ARROW("Arrow", GraphGraphics.ARROW_ARROWHEAD),
-       T("T", GraphGraphics.ARROW_TEE),
-       CIRCLE("Circle", GraphGraphics.ARROW_DISC),
-       HALF_TOP("Half Top", GraphGraphics.ARROW_HALF_TOP),
-       HALF_BOTTOM("Half Top", GraphGraphics.ARROW_HALF_BOTTOM);
+       NONE("None", "NONE", GraphGraphics.ARROW_NONE),
+       DIAMOND("Diamond", "DIAMOND", GraphGraphics.ARROW_DIAMOND),
+       DELTA("Delta", "DELTA", GraphGraphics.ARROW_DELTA),
+       ARROW("Arrow", "ARROW", GraphGraphics.ARROW_ARROWHEAD),
+       T("T", "T", GraphGraphics.ARROW_TEE),
+       CIRCLE("Circle", "CIRCLE", GraphGraphics.ARROW_DISC),
+       HALF_TOP("Half Top", "HALF_TOP", GraphGraphics.ARROW_HALF_TOP),
+       HALF_BOTTOM("Half Top", "HALF_BOTTOM", GraphGraphics.ARROW_HALF_BOTTOM);
        
 
        private final String displayName;
+       private final String serializableString;
        private final byte rendererTypeID;
        
+       private static final Map<Byte, Shape> ARROW_SHAPES;
        /** old_key -> ArrowShape */
        private static final Map<String, DArrowShape> legacyShapes = new 
Hashtable<String, DArrowShape>();
-
        static {
                // We have to support Cytoscape 2.8 XGMML shapes!
                legacyShapes.put("0", NONE);
@@ -74,11 +77,14 @@
                legacyShapes.put("15", T);
                legacyShapes.put("16", HALF_TOP);
                legacyShapes.put("17", HALF_BOTTOM);
+               ARROW_SHAPES = GraphGraphics.getArrowShapes();
        }
        
-       private DArrowShape(final String displayName, final byte 
rendererTypeID) {
+       
+       private DArrowShape(final String displayName, final String 
serializableString, final byte rendererTypeID) {
                this.displayName = displayName;
                this.rendererTypeID = rendererTypeID;
+               this.serializableString = serializableString;
        }
 
        /**
@@ -99,6 +105,10 @@
        public String getDisplayName() {
                return displayName;
        }
+       
+       public Shape getShape() {
+               return ARROW_SHAPES.get((Byte) rendererTypeID);
+       }
 
        /**
         *
@@ -137,10 +147,11 @@
        }
 
        
-       public static DArrowShape getArrowShape(final int rendererTypeID) {
+       public static DArrowShape getArrowShape(final ArrowShape arrowShape) {
+               final String serializedString = 
arrowShape.getSerializableString();
                // first try for an exact match
                for (DArrowShape shape : values()) {
-                       if (shape.getRendererTypeID() == rendererTypeID)
+                       if (shape.serializableString.equals(serializedString))
                                return shape;
                }
 

Modified: 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/DNodeShape.java
===================================================================
--- 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/DNodeShape.java
  2012-01-12 18:15:07 UTC (rev 27994)
+++ 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/DNodeShape.java
  2012-01-12 19:22:50 UTC (rev 27995)
@@ -67,8 +67,7 @@
        private final String displayName;
        private final String serializableString;
 
-       private static final Map<Byte, Shape> nodeShapes = GraphGraphics
-                       .getNodeShapes();
+       private static final Map<Byte, Shape> nodeShapes = 
GraphGraphics.getNodeShapes();
 
        public DNodeShape(final Byte rendererShapeID, final String displayName,
                        final String serializableString) {

Modified: 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/icon/ArrowIcon.java
===================================================================
--- 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/icon/ArrowIcon.java
      2012-01-12 18:15:07 UTC (rev 27994)
+++ 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/icon/ArrowIcon.java
      2012-01-12 19:22:50 UTC (rev 27995)
@@ -47,42 +47,22 @@
 
 /**
  * Icon for arrow shape.
- *
- * @version 0.5
- * @since Cytoscape 2.5
- * @author kono
  */
 public class ArrowIcon extends VisualPropertyIcon<Shape> {
        private final static long serialVersionUID = 1202339877462891L;
-       private static final Stroke EDGE_STROKE = new BasicStroke(6.0f, 
BasicStroke.CAP_SQUARE,
-                                                                 
BasicStroke.JOIN_MITER);
+       
+       private static final Stroke EDGE_STROKE = new BasicStroke(6.0f, 
BasicStroke.CAP_SQUARE, BasicStroke.JOIN_MITER);
        private static final Stroke EDGE_STROKE_SMALL = new BasicStroke(4.0f, 
BasicStroke.CAP_SQUARE,
-                                                                       
BasicStroke.JOIN_MITER);
+                       BasicStroke.JOIN_MITER);
        protected Graphics2D g2d;
        private static final int DEF_L_PAD = 15;
 
 
-       /**
-        * Creates a new ArrowIcon object.
-        *
-        * @param shape DOCUMENT ME!
-        * @param width DOCUMENT ME!
-        * @param height DOCUMENT ME!
-        * @param name DOCUMENT ME!
-        * @param color DOCUMENT ME!
-        */
-       public ArrowIcon(Shape shape, int width, int height, String name) {
+       public ArrowIcon(final Shape shape, int width, int height, String name) 
{
                super(shape, width, height, name);
        }
 
-       /**
-        * Draw icon using Java2D.
-        *
-        * @param c DOCUMENT ME!
-        * @param g DOCUMENT ME!
-        * @param x DOCUMENT ME!
-        * @param y DOCUMENT ME!
-        */
+       
        public void paintIcon(Component c, Graphics g, int x, int y) {
                g2d = (Graphics2D) g;
 
@@ -99,8 +79,7 @@
                        if ((width < 20) || (height < 20)) {
                                g2d.translate(-leftPad, -bottomPad);
                                g2d.setStroke(EDGE_STROKE_SMALL);
-                               g2d.drawLine(3, c.getHeight()/2,
-                                    width/2 +10, c.getHeight()/2);
+                               g2d.drawLine(3, c.getHeight() / 2, width / 2 + 
10, c.getHeight() / 2);
                                return;
                        } else {
 //                             g2d.setStroke(EDGE_STROKE);
@@ -135,7 +114,7 @@
                }
 
                final double shapeWidth = newShape.getBounds2D().getWidth();
-               final double shapeHeight = newShape.getBounds2D().getHeight();
+               final double shapeHeight = newShape.getBounds2D().getHeight()*2;
 
                final double originalXYRatio = shapeWidth / shapeHeight;
 

Added: 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/icon/EdgeBendIcon.java
===================================================================
--- 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/icon/EdgeBendIcon.java
                           (rev 0)
+++ 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/icon/EdgeBendIcon.java
   2012-01-12 19:22:50 UTC (rev 27995)
@@ -0,0 +1,5 @@
+package org.cytoscape.ding.icon;
+
+public class EdgeBendIcon {
+
+}

Modified: 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/icon/NodeIcon.java
===================================================================
--- 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/icon/NodeIcon.java
       2012-01-12 18:15:07 UTC (rev 27994)
+++ 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/icon/NodeIcon.java
       2012-01-12 19:22:50 UTC (rev 27995)
@@ -41,7 +41,6 @@
 import java.awt.RenderingHints;
 import java.awt.Shape;
 import java.awt.geom.AffineTransform;
-import java.awt.geom.Rectangle2D;
 
 
 /**
@@ -53,19 +52,10 @@
        private final static long serialVersionUID = 1202339876280466L;
 
        private Shape newShape;
-       
        private Graphics2D g2d;
 
 
-       /**
-        * Creates a new NodeShapeIcon object.
-        *
-        * @param shape DOCUMENT ME!
-        * @param width DOCUMENT ME!
-        * @param height DOCUMENT ME!
-        * @param name DOCUMENT ME!
-        * @param color DOCUMENT ME!
-        */
+       
        public NodeIcon(Shape shape, int width, int height, String name) {
                super(shape, width, height, name);
 

Modified: 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/icon/VisualPropertyIconFactory.java
===================================================================
--- 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/icon/VisualPropertyIconFactory.java
      2012-01-12 18:15:07 UTC (rev 27994)
+++ 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/icon/VisualPropertyIconFactory.java
      2012-01-12 19:22:50 UTC (rev 27995)
@@ -2,15 +2,19 @@
 
 import java.awt.Color;
 import java.awt.Font;
+import java.awt.Shape;
 
 import javax.swing.Icon;
 
+import org.cytoscape.ding.DArrowShape;
 import org.cytoscape.ding.DNodeShape;
 import org.cytoscape.ding.ObjectPosition;
 import org.cytoscape.ding.customgraphics.CyCustomGraphics;
 import org.cytoscape.ding.impl.DLineType;
 import org.cytoscape.view.model.VisualProperty;
+import org.cytoscape.view.presentation.property.ArrowShapeVisualProperty;
 import org.cytoscape.view.presentation.property.NodeShapeVisualProperty;
+import org.cytoscape.view.presentation.property.values.ArrowShape;
 import org.cytoscape.view.presentation.property.values.LineType;
 import org.cytoscape.view.presentation.property.values.NodeShape;
 
@@ -42,10 +46,22 @@
                        icon = new CustomGraphicsIcon(((CyCustomGraphics) 
value), w, h, ((CyCustomGraphics) value).getDisplayName());
                } else if(value instanceof ObjectPosition) {
                        icon = new ObjectPositionIcon((ObjectPosition) value, 
w, h, "Label");
-               }  else if(value instanceof Font) {
+               } else if(value instanceof Font) {
                        icon = new FontFaceIcon((Font) value, w, h, "");
+               } else if(value instanceof ArrowShape) {
+                       final ArrowShape arrowShape = (ArrowShape) value;
+                       final DArrowShape dShape;
+                       if(ArrowShapeVisualProperty.isDefaultShape(arrowShape))
+                               dShape = DArrowShape.getArrowShape(arrowShape);
+                       else
+                               dShape = DArrowShape.NONE;
+                       
+                       if(dShape.getShape() == null)
+                               icon = new TextIcon(value, w, h, ""); // No 
arrow
+                       else
+                               icon = new ArrowIcon(dShape.getShape(), w, h, 
dShape.getDisplayName());
                } else {
-                       // If not found, use text as icon.
+                       // If not found, use return value of toString() as icon.
                        icon = new TextIcon(value, w, h, value.toString());
                }
                

Modified: 
core3/impl/trunk/ding-impl/graph-render/src/main/java/org/cytoscape/graph/render/immed/GraphGraphics.java
===================================================================
--- 
core3/impl/trunk/ding-impl/graph-render/src/main/java/org/cytoscape/graph/render/immed/GraphGraphics.java
   2012-01-12 18:15:07 UTC (rev 27994)
+++ 
core3/impl/trunk/ding-impl/graph-render/src/main/java/org/cytoscape/graph/render/immed/GraphGraphics.java
   2012-01-12 19:22:50 UTC (rev 27995)
@@ -893,18 +893,18 @@
                return shapeMap;
        }
 
-//     /**
-//      * Get list of arrow heads.
-//      * 
-//      * @return A map of arrow shape bytes to Shape objects.
-//      */
-//     public static Map<Byte, Shape> getArrowShapes() {
-//             final Map<Byte, Shape> shapeMap = new HashMap<Byte, Shape>();
-//             for ( Arrow a : arrows.values() )
-//                     shapeMap.put( a.get.getType(), a.getArrowShape() );
-// 
-//             return shapeMap;
-//     }
+       /**
+        * Get list of arrow heads.
+        * 
+        * @return A map of arrow shape bytes to Shape objects.
+        */
+       public static Map<Byte, Shape> getArrowShapes() {
+               final Map<Byte, Shape> shapeMap = new HashMap<Byte, Shape>();
+               for (final Byte key : arrows.keySet()) {
+                       shapeMap.put(key, arrows.get(key).getArrowShape() );
+               }
+               return shapeMap;
+       }
 
        /**
         * This is the method that will render an edge very quickly. Translucent

-- 
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