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.