Author: kono
Date: 2011-12-29 17:39:17 -0800 (Thu, 29 Dec 2011)
New Revision: 27886

Modified:
   
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/Bend.java
   
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/CyActivator.java
   
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/Handle.java
   
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/BendImpl.java
   
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/DEdgeDetails.java
   
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/DEdgeView.java
   
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/DVisualLexicon.java
   
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/HandleImpl.java
   
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/InnerCanvas.java
   
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/editor/EdgeBendEditor.java
   
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/editor/EdgeBendValueEditor.java
Log:
Edge bend visual property works.  However, still we need to solve bypass 
problem and modify handle location calculation function.

Modified: 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/Bend.java
===================================================================
--- 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/Bend.java
        2011-12-30 01:36:42 UTC (rev 27885)
+++ 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/Bend.java
        2011-12-30 01:39:17 UTC (rev 27886)
@@ -1,15 +1,7 @@
 package org.cytoscape.ding;
 
-import java.awt.geom.Point2D;
 import java.util.List;
 
-
-/**
- * A class that encapsulates the representation of the bend used for a
- * particular EdgeView.
- * 
- * @author Mike Smoot (mes5k)
- */
 public interface Bend {
        
        List<Handle> getAllHandles();

Modified: 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/CyActivator.java
===================================================================
--- 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/CyActivator.java
 2011-12-30 01:36:42 UTC (rev 27885)
+++ 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/CyActivator.java
 2011-12-30 01:39:17 UTC (rev 27886)
@@ -20,6 +20,7 @@
 import org.cytoscape.ding.impl.cyannotator.create.TextAnnotationFactory;
 import org.cytoscape.ding.impl.cyannotator.tasks.BasicGraphicalEntity;
 import org.cytoscape.ding.impl.cyannotator.tasks.DropAnnotationTaskFactory;
+import org.cytoscape.ding.impl.editor.EdgeBendEditor;
 import org.cytoscape.ding.impl.editor.EdgeBendPropertyEditor;
 import org.cytoscape.ding.impl.editor.EdgeBendValueEditor;
 import org.cytoscape.ding.impl.editor.ObjectPositionEditor;
@@ -99,7 +100,7 @@
 
                // Edge Bend editor
                EdgeBendValueEditor edgeBendValueEditor = new 
EdgeBendValueEditor(cyNetworkFactory, 
dingNetworkViewFactory,dingRenderingEngineFactory);
-               EdgeBendPropertyEditor edgeBendPropertyEditor = new 
EdgeBendPropertyEditor(edgeBendValueEditor);
+               EdgeBendEditor edgeBendEditor = new 
EdgeBendEditor(edgeBendValueEditor);
                
                BasicGraphicalEntity imageGraphicalEntity = new 
BasicGraphicalEntity("Image","Image Attr","Image Value", "An Image annotation", 
"/images/imageIcon.png");
 //             BasicGraphicalEntity arrowGraphicalEntity = new 
BasicGraphicalEntity("Arrow","Arrow Attr","Arrow Value", "An Arrow annotation", 
"/images/arrowIcon.png");
@@ -150,7 +151,7 @@
                registerService(bc,objectPositionEditor, 
VisualPropertyEditor.class, objectPositionEditorProp);
                
                registerAllServices(bc, edgeBendValueEditor, new Properties());
-               registerAllServices(bc, edgeBendPropertyEditor, new 
Properties());
+               registerService(bc, edgeBendEditor, VisualPropertyEditor.class, 
new Properties());
                
                registerAllServices(bc,edgeColor2arrowColorDependency, new 
Properties());
                registerAllServices(bc,nodeCustomGraphicsSizeDependency, new 
Properties());
@@ -203,9 +204,10 @@
                                 cyPropertyServiceRef);
                registerAllServices(bc,graphicsDetailAction, new Properties());
                
+               
 //             // Debug:
 //             try {
-//                     final ServiceReference[] refs = 
bc.getServiceReferences("org.cytoscape.view.vizmap.gui.editor.ValueEditor",
+//                     final ServiceReference[] refs = 
bc.getServiceReferences("org.cytoscape.view.vizmap.gui.editor.VisualPropertyEditor",
 //                                     null);
 //
 //                     System.out.println("%%%%%% REFS in DING = " + refs);

Modified: 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/Handle.java
===================================================================
--- 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/Handle.java
      2011-12-30 01:36:42 UTC (rev 27885)
+++ 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/Handle.java
      2011-12-30 01:39:17 UTC (rev 27886)
@@ -1,13 +1,13 @@
 package org.cytoscape.ding;
 
+import java.awt.geom.Point2D;
 
+import org.cytoscape.ding.impl.DEdgeView;
+import org.cytoscape.ding.impl.DGraphView;
+
+
 public interface Handle {
-       
-       double getXFraction();
-       double getYFraction();
 
-//     void setXFraction(final double x);
-//     void setYFraction(final double y);
-       
-       void setPoint(double x, double y);
+       Point2D getPoint(DGraphView graphView, DEdgeView view);
+       void setPoint(DGraphView graphView, DEdgeView view, double x, double y);
 }

Modified: 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/BendImpl.java
===================================================================
--- 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/BendImpl.java
       2011-12-30 01:36:42 UTC (rev 27885)
+++ 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/BendImpl.java
       2011-12-30 01:39:17 UTC (rev 27886)
@@ -56,4 +56,9 @@
        public void insertHandle(final int index, final Handle handle) {
                this.handles.add(index, handle);
        }
+       
+       @Override
+       public String toString() {
+               return "Handles[ " + handles.size() + " ]" ;
+       }
 }

Modified: 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/DEdgeDetails.java
===================================================================
--- 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/DEdgeDetails.java
   2011-12-30 01:36:42 UTC (rev 27885)
+++ 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/DEdgeDetails.java
   2011-12-30 01:39:17 UTC (rev 27886)
@@ -733,12 +733,10 @@
                Bend bend = m_edgeBends.get(edge);
                
                if(bend == null) {
-                       bend = new BendImpl();
-                       m_edgeBends.put(edge, bend);
-//                     if (m_edgeBendDefault == null)
-//                             return EdgeBendVisualProperty.DEFAULT_EDGE_BEND;
-//                     else
-//                             return m_edgeBendDefault;
+                       if (m_edgeBendDefault == null)
+                               return EdgeBendVisualProperty.DEFAULT_EDGE_BEND;
+                       else
+                               return m_edgeBendDefault;
                }
 
                return bend;

Modified: 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/DEdgeView.java
===================================================================
--- 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/DEdgeView.java
      2011-12-30 01:36:42 UTC (rev 27885)
+++ 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/DEdgeView.java
      2011-12-30 01:39:17 UTC (rev 27886)
@@ -47,6 +47,7 @@
 import org.cytoscape.graph.render.immed.EdgeAnchors;
 import org.cytoscape.graph.render.immed.GraphGraphics;
 import org.cytoscape.model.CyEdge;
+import org.cytoscape.util.intr.IntEnumerator;
 import org.cytoscape.view.model.View;
 import org.cytoscape.view.model.VisualLexicon;
 import org.cytoscape.view.model.VisualLexiconNode;
@@ -666,7 +667,7 @@
                
 //             final Point2D movePt = (Point2D) m_anchors.get(inx);
 //             movePt.setLocation(x, y);
-               handle.setPoint(x, y);
+               handle.setPoint(m_view, this, x, y);
 
                if (m_view.m_spacialA.delete((m_inx << 6) | inx))
                        m_view.m_spacialA.insert((m_inx << 6) | inx,
@@ -681,9 +682,9 @@
                
                final Bend bend = m_view.m_edgeDetails.bend(m_inx);
                final Handle handle = bend.getAllHandles().get(inx);
-               
-               buff[0] = (float) handle.getXFraction();
-               buff[1] = (float) handle.getYFraction();
+               final Point2D newPoint = handle.getPoint(m_view, this);
+               buff[0] = (float) newPoint.getX();
+               buff[1] = (float) newPoint.getY();
        }
 
 //     /**
@@ -735,7 +736,6 @@
        public int addHandlePoint(final Point2D pt) {
                synchronized (m_view.m_lock) {
                        
-                       System.out.println("!!ADD Ancor called: ");
                        final Bend bend = m_view.m_edgeDetails.bend(m_inx);
                        
                        if (bend.getAllHandles().size() == 0) {
@@ -748,8 +748,8 @@
                        final Point2D sourcePt = 
m_view.getDNodeView(getEdge().getSource()).getOffset();
                        final Point2D targetPt = 
m_view.getDNodeView(getEdge().getTarget()).getOffset();
                        final Handle firstHandle = bend.getAllHandles().get(0); 
-                       final Point2D point = new Point2D.Float();
-                       point.setLocation(firstHandle.getXFraction(), 
firstHandle.getYFraction());
+                       final Point2D point = firstHandle.getPoint(m_view, 
this);
+                       //point.setLocation(firstHandle.getXFraction(), 
firstHandle.getYFraction());
                        
 //                     double bestDist = (pt.distance(sourcePt) + 
pt.distance((Point2D) m_anchors.get(0)))
 //                                     - sourcePt.distance((Point2D) 
m_anchors.get(0));
@@ -759,10 +759,10 @@
                        for (int i = 1; i < bend.getAllHandles().size(); i++) {
                                final Handle handle1 = 
bend.getAllHandles().get(i);
                                final Handle handle2 = 
bend.getAllHandles().get(i-1);
-                               final Point2D point1 = new Point2D.Float();
-                               final Point2D point2 = new Point2D.Float();
-                               point1.setLocation(handle1.getXFraction(), 
handle1.getYFraction());
-                               point2.setLocation(handle2.getXFraction(), 
handle2.getYFraction());
+                               final Point2D point1 = handle1.getPoint(m_view, 
this);
+                               final Point2D point2 = handle2.getPoint(m_view, 
this);
+//                             point1.setLocation(handle1.getXFraction(), 
handle1.getYFraction());
+//                             point2.setLocation(handle2.getXFraction(), 
handle2.getYFraction());
                                
 //                             final double distCand = (pt.distance((Point2D) 
m_anchors
 //                                             .get(i - 1)) + 
pt.distance((Point2D) m_anchors.get(i)))
@@ -780,8 +780,8 @@
 //                                     - targetPt.distance((Point2D) 
m_anchors.get(m_anchors.size() - 1));
                        final int lastIndex = bend.getAllHandles().size() - 1;
                        final Handle lastHandle = 
bend.getAllHandles().get(lastIndex);
-                       final Point2D lastPoint = new Point2D.Float();
-                       lastPoint.setLocation(lastHandle.getXFraction(), 
lastHandle.getYFraction());
+                       final Point2D lastPoint = lastHandle.getPoint(m_view, 
this);
+                       //lastPoint.setLocation(lastHandle.getXFraction(), 
lastHandle.getYFraction());
                        
                        final double lastCand = (pt.distance(targetPt) + 
pt.distance(lastPoint)) - targetPt.distance(lastPoint);
 
@@ -833,11 +833,13 @@
                                                
m_view.m_selectedAnchors.insert((m_inx << 6) | j);
                                }
 
+                               final Point2D newPoint = 
handle.getPoint(m_view, this);
+                               
                                m_view.m_spacialA.insert((m_inx << 6) | 
insertInx,
-                                               (float) (handle.getXFraction() 
- (m_view.getAnchorSize() / 2.0d)),
-                                               (float) (handle.getYFraction() 
- (m_view.getAnchorSize() / 2.0d)),
-                                               (float) (handle.getXFraction() 
+ (m_view.getAnchorSize() / 2.0d)),
-                                               (float) (handle.getYFraction() 
+ (m_view.getAnchorSize() / 2.0d)));
+                                               (float) (newPoint.getX() - 
(m_view.getAnchorSize() / 2.0d)),
+                                               (float) (newPoint.getY() - 
(m_view.getAnchorSize() / 2.0d)),
+                                               (float) (newPoint.getX() + 
(m_view.getAnchorSize() / 2.0d)),
+                                               (float) (newPoint.getY() + 
(m_view.getAnchorSize() / 2.0d)));
                        }
 
                        m_view.m_contentChanged = true;
@@ -979,8 +981,9 @@
                        handle = bend.getAllHandles().get(anchorIndex/2);
 //                     anchor = (Point2D.Float) m_anchors.get(anchorIndex / 2);
 
-               anchorArr[offset] = (float) handle.getXFraction();
-               anchorArr[offset + 1] = (float) handle.getYFraction();
+               final Point2D newPoint = handle.getPoint(m_view, this);
+               anchorArr[offset] = (float) newPoint.getX();
+               anchorArr[offset + 1] = (float) newPoint.getY();
        }
 
 //     // TODO: Can we remove this?
@@ -1098,6 +1101,9 @@
        public void setBend(final Bend bend) {
                synchronized (m_view.m_lock) {
                        m_view.m_edgeDetails.m_edgeBends.put(m_inx, bend);
+
+                       // TODO: move bends here!
+
                }
                m_view.m_contentChanged = true;
        }

Modified: 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/DVisualLexicon.java
===================================================================
--- 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/DVisualLexicon.java
 2011-12-30 01:36:42 UTC (rev 27885)
+++ 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/DVisualLexicon.java
 2011-12-30 01:39:17 UTC (rev 27886)
@@ -243,7 +243,7 @@
                        EdgeBendVisualProperty.DEFAULT_EDGE_BEND, "EDGE_BEND",
                        "Edge Bend");
        
-       public static final VisualProperty<Boolean> EDGE_CURVED = new 
BooleanVisualProperty(false, "EDGE_CURVED",
+       public static final VisualProperty<Boolean> EDGE_CURVED = new 
BooleanVisualProperty(true, "EDGE_CURVED",
                        "Edge Curved", CyEdge.class);
        
 

Modified: 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/HandleImpl.java
===================================================================
--- 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/HandleImpl.java
     2011-12-30 01:36:42 UTC (rev 27885)
+++ 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/HandleImpl.java
     2011-12-30 01:39:17 UTC (rev 27886)
@@ -12,67 +12,46 @@
  */
 public class HandleImpl implements Handle {
 
-       private static final double MIN = Double.MIN_VALUE;
-       private static final double MAX = Double.MAX_VALUE;
+//     private static final double MIN = Double.MIN_VALUE;
+//     private static final double MAX = Double.MAX_VALUE;
 
        private double x;
        private double y;
-
-       private final DGraphView graphView;
-       private final DEdgeView view;
-
-       private Point2D absolute;
+       
        private Point2D ratio;
 
        public HandleImpl(DGraphView graphView, DEdgeView view, final double x,
                        final double y) {
-               this.graphView = graphView;
-               this.view = view;
-
-               if (validate(x) && validate(y)) {
-                       this.x = x;
-                       this.y = y;
-               } else {
-                       throw new IllegalArgumentException("Given value is 
out-of-range.");
-               }
+               this.x = x;
+               this.y = y;             
        }
 
-       private boolean validate(final double value) {
-               if (value >= MIN && value <= MAX)
-                       return true;
-               else
-                       return false;
-       }
-
-       @Override
-       public double getXFraction() {
-               
-               System.out.println("!!!!!! Get X called: " + x);
-               return x;
-       }
-
-       @Override
-       public double getYFraction() {
-               return y;
-       }
-
 //     @Override
-//     public void setXFraction(double x) {
-//             if (validate(x))
-//                     this.x = x;
+//     public double getXFraction(DGraphView graphView, DEdgeView view) {
+//             
+//             System.out.println("!!!!!! Get X called: " + x);
+//             if(ratio == null)
+//                     return x;
 //             else
-//                     throw new IllegalArgumentException("Given value is 
out-of-range.");
+//                     return convertToAbsolute(true);
 //     }
 //
 //     @Override
-//     public void setYFraction(double y) {
-//             if (validate(y))
-//                     this.y = y;
+//     public double getYFraction() {
+//             System.out.println("!!!!!! Get Y called: " + y);
+//             if(ratio == null)
+//                     return y;
 //             else
-//                     throw new IllegalArgumentException("Given value is 
out-of-range.");
+//                     return convertToAbsolute(false);
 //     }
+       
+       @Override
+       public Point2D getPoint(DGraphView graphView, DEdgeView view) {
+               return convertToAbsolute(graphView, view);
+       }
 
-       private double convertToRelativePosition() {
+
+       private Point2D convertToAbsolute(DGraphView graphView, DEdgeView view) 
{
                final CyNode source = view.getModel().getSource();
                final CyNode target = view.getModel().getTarget();
                final View<CyNode> sourceView = graphView.getNodeView(source);
@@ -88,11 +67,19 @@
                final Double targetY = targetView
                                
.getVisualProperty(DVisualLexicon.NODE_Y_LOCATION);
 
-               // graphView.getNodeView(node);
-               return 0d;
+               final Point2D newPoint = new Point2D.Double();
+               if(ratio != null) {
+               double newX = getAbsolute(sourceX, targetX, ratio.getX());
+               double newY = getAbsolute(sourceY, targetY, ratio.getY());
+               newPoint.setLocation(newX, newY);
+               } else {
+                       newPoint.setLocation(x, y);
+               }
+               
+               return newPoint;
        }
 
-       private Point2D convertToRatio(final Point2D absolutePoint) {
+       private Point2D convertToRatio(DGraphView graphView, DEdgeView view, 
final Point2D absolutePoint) {
                final Point2D relativePoint = new Point2D.Float();
                final CyNode source = view.getModel().getSource();
                final CyNode target = view.getModel().getTarget();
@@ -109,50 +96,33 @@
                final Double targetY = targetView
                                
.getVisualProperty(DVisualLexicon.NODE_Y_LOCATION);
 
-               double xRatio = getRatio(sourceX, targetX, 
absolutePoint.getX());
-               double yRatio = getRatio(sourceY, targetY, 
absolutePoint.getY());
+               final double xRatio = getRatio(sourceX, targetX, 
absolutePoint.getX());
+               final double yRatio = getRatio(sourceY, targetY, 
absolutePoint.getY());
+               
                relativePoint.setLocation(xRatio, yRatio);
                
                return relativePoint;
        }
 
        private double getRatio(double p1, double p2, double p) {
-               double ratio;
-               
-               final double distance;
-               if (p1 < p2) {
-                       distance = p2-p1;
-                       if(p1<p) {
-                               ratio = (p-p1)/distance;
-                       } else {
-                               ratio = (p1-p)/distance;
-                       }
-               } else {
-                       distance = p1-p2;
-                       if(p2<p) {
-                               ratio = (p-p2)/distance;
-                       } else {
-                               ratio = (p2-p)/distance;
-                       }
-               }
-               
-               return Math.abs(ratio);
+               final double distance = Math.abs(p2-p1);
+               if(distance == 0)
+                       return 0.5;
+               else
+                       return (p-p1)/distance;                 
        }
+       
+       private double getAbsolute(double p1, double p2, double r) {
+               final double distance = Math.abs(p2-p1);
+               return p1 + (distance * r);
+       }
 
        @Override
-       public void setPoint(double x, double y) {
-               if (validate(x))
-                       this.x = x;
-               else
-                       throw new IllegalArgumentException("Given value is 
out-of-range.");
-               
-               if (validate(y))
-                       this.y = y;
-               else
-                       throw new IllegalArgumentException("Given value is 
out-of-range.");
-               ratio = convertToRatio(new Point2D.Double(x, y));
-               
-               System.out.println("#### Ratio = " + ratio);
+       public void setPoint(DGraphView graphView, DEdgeView view, double x, 
double y) {
+               this.x = x;
+               this.y = y;
+
+               ratio = convertToRatio(graphView, view, new Point2D.Double(x, 
y));              
        }
 
 }

Modified: 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/InnerCanvas.java
===================================================================
--- 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/InnerCanvas.java
    2011-12-30 01:36:42 UTC (rev 27885)
+++ 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/InnerCanvas.java
    2011-12-30 01:39:17 UTC (rev 27886)
@@ -1159,7 +1159,7 @@
        
                @Override
                void singleLeftControlClick(MouseEvent e) {
-                       System.out.println("MousePressed ----> 
singleLeftControlClick");
+                       //System.out.println("MousePressed ----> 
singleLeftControlClick");
                        
                        // clicking on empty space
                        if ((getChosenNode() < 0) && (getChosenEdge() < 0) && 
(getChosenAnchor() < 0)) {

Modified: 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/editor/EdgeBendEditor.java
===================================================================
--- 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/editor/EdgeBendEditor.java
  2011-12-30 01:36:42 UTC (rev 27885)
+++ 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/editor/EdgeBendEditor.java
  2011-12-30 01:39:17 UTC (rev 27886)
@@ -6,8 +6,8 @@
 
 public class EdgeBendEditor extends AbstractVisualPropertyEditor<Bend>{
 
-       public EdgeBendEditor(Class<Bend> type, ValueEditor<Bend> valueEditor) {
-               super(type, new EdgeBendPropertyEditor(valueEditor));
+       public EdgeBendEditor(ValueEditor<Bend> valueEditor) {
+               super(Bend.class, new EdgeBendPropertyEditor(valueEditor));
        }
 
 }

Modified: 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/editor/EdgeBendValueEditor.java
===================================================================
--- 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/editor/EdgeBendValueEditor.java
     2011-12-30 01:36:42 UTC (rev 27885)
+++ 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/editor/EdgeBendValueEditor.java
     2011-12-30 01:39:17 UTC (rev 27886)
@@ -18,6 +18,7 @@
 import javax.swing.border.TitledBorder;
 
 import org.cytoscape.ding.Bend;
+import org.cytoscape.ding.impl.BendImpl;
 import org.cytoscape.ding.impl.DEdgeView;
 import org.cytoscape.ding.impl.DVisualLexicon;
 import org.cytoscape.model.CyEdge;
@@ -38,9 +39,7 @@
 
        private static final long serialVersionUID = 9145223127932839836L;
 
-       private static final int BORDER_WIDTH = 10;
-
-       private static final Dimension DEF_PANEL_SIZE = new Dimension(400, 200);
+       private static final Dimension DEF_PANEL_SIZE = new Dimension(600, 300);
        
        private static final Color NODE_COLOR = Color.gray;
        private static final Color EDGE_COLOR = Color.BLACK;
@@ -48,12 +47,14 @@
        
        private DEdgeView edgeView;
 
-       private JPanel innerPanel;
+       private final CyNetworkFactory cyNetworkFactory;
+       private final CyNetworkViewFactory cyNetworkViewFactory;
+       private final RenderingEngineFactory<CyNetwork> presentationFactory;
 
        public EdgeBendValueEditor(final CyNetworkFactory cyNetworkFactory,
                        final CyNetworkViewFactory cyNetworkViewFactory, final 
RenderingEngineFactory<CyNetwork> presentationFactory) {
                super();
-
+               
                // Null check
                if (cyNetworkFactory == null)
                        throw new NullPointerException("CyNetworkFactory is 
null.");
@@ -61,22 +62,28 @@
                        throw new NullPointerException("CyNetworkViewFactory is 
null.");
                if (presentationFactory == null)
                        throw new NullPointerException("RenderingEngineFactory 
is null.");
-
-               initUI(cyNetworkFactory, cyNetworkViewFactory, 
presentationFactory);
                
+               this.cyNetworkFactory = cyNetworkFactory;
+               this.cyNetworkViewFactory = cyNetworkViewFactory;
+               this.presentationFactory = presentationFactory;
+               
+               
                this.setModal(true);
        }
 
        private void initUI(final CyNetworkFactory cyNetworkFactory,
                        final CyNetworkViewFactory cyNetworkViewFactory, final 
RenderingEngineFactory<CyNetwork> presentationFactory) {
+               
+               this.getContentPane().removeAll();
+               
                setTitle("Edge Bend Editor");
 
                // Create Dummy View for this editor
-               innerPanel = new JPanel();
-               this.innerPanel.setBorder(new TitledBorder("CTRL-Click to add 
new Edge Handle / Drag Handles to adjust Bend"));
-               this.setPreferredSize(DEF_PANEL_SIZE);
-               this.setLayout(new BorderLayout());
-               this.add(innerPanel, BorderLayout.CENTER);
+               JPanel innerPanel = new JPanel();
+               innerPanel.setBorder(new TitledBorder("CTRL-Click to add new 
Edge Handle / Drag Handles to adjust Bend"));
+               setPreferredSize(DEF_PANEL_SIZE);
+               setLayout(new BorderLayout());
+               add(innerPanel, BorderLayout.CENTER);
 
                // Create very simple dummy view.
                final CyNetwork dummyNet = 
cyNetworkFactory.createNetworkWithPrivateTables();
@@ -108,13 +115,16 @@
                
edgeView.setVisualProperty(RichVisualLexicon.EDGE_TARGET_ARROW_SHAPE, 
ArrowShapeVisualProperty.ARROW);
                
edgeView.setVisualProperty(DVisualLexicon.EDGE_TARGET_ARROW_UNSELECTED_PAINT, 
EDGE_COLOR);
                
+               final Bend newBend = new BendImpl();
+               edgeView.setVisualProperty(DVisualLexicon.EDGE_BEND, newBend);
                
+               
                
dummyview.getNodeView(source).setVisualProperty(NODE_X_LOCATION, 0d);
-               
dummyview.getNodeView(source).setVisualProperty(NODE_Y_LOCATION, 0d);
+               
dummyview.getNodeView(source).setVisualProperty(NODE_Y_LOCATION, 20d);
                
dummyview.getNodeView(target).setVisualProperty(NODE_X_LOCATION, 200d);
                
dummyview.getNodeView(target).setVisualProperty(NODE_Y_LOCATION, 0d);
 
-               this.innerPanel.setBackground(BACKGROUND_COLOR);
+               innerPanel.setBackground(BACKGROUND_COLOR);
                // Render it in this panel
                final RenderingEngine<CyNetwork> renderingEngine = 
presentationFactory.createRenderingEngine(innerPanel, dummyview);
                dummyview.fitContent();
@@ -145,13 +155,9 @@
 
        @Override
        public <S extends Bend> Bend showEditor(Component parent, S 
initialValue) {
-               if (parent != null)
-                       this.setLocationRelativeTo(parent);
-               else
-                       this.setLocationByPlatform(true);
-               
-               this.setVisible(true);
-               
+               initUI(cyNetworkFactory, cyNetworkViewFactory, 
presentationFactory);
+               this.setLocationRelativeTo(parent);
+               this.setVisible(true);          
                return edgeView.getBend();
        }
 

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