Author: kono
Date: 2011-12-23 16:48:12 -0800 (Fri, 23 Dec 2011)
New Revision: 27871
Added:
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/editor/EdgeBendEditor.java
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/editor/EdgeBendPropertyEditor.java
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/editor/EdgeBendValueEditor.java
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/ObjectPositionValueEditor.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/editor/ObjectPositionEditor.java
core3/impl/trunk/presentation-impl/src/main/java/org/cytoscape/view/presentation/internal/RenderingEngineManagerImpl.java
core3/impl/trunk/vizmap-gui-impl/pom.xml
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/CyActivator.java
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/SetViewModeAction.java
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/VizMapPropertyBuilder.java
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/VizMapPropertySheetBuilder.java
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/editor/propertyeditor/CyComboBoxPropertyEditor.java
Log:
Edge Bend property editor added. Next, we need to implement new Bend Interface
in ding.
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-24 00:42:16 UTC (rev 27870)
+++
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/CyActivator.java
2011-12-24 00:48:12 UTC (rev 27871)
@@ -3,6 +3,7 @@
import java.util.Properties;
import org.cytoscape.application.CyApplicationManager;
+import org.cytoscape.ding.action.GraphicsDetailAction;
import org.cytoscape.ding.customgraphics.CustomGraphicsManager;
import org.cytoscape.ding.dependency.CustomGraphicsSizeDependency;
import org.cytoscape.ding.dependency.EdgePaintToArrowHeadPaintDependency;
@@ -12,11 +13,21 @@
import org.cytoscape.ding.impl.DingRenderingEngineFactory;
import org.cytoscape.ding.impl.DingViewModelFactory;
import org.cytoscape.ding.impl.ViewTaskFactoryListener;
+import org.cytoscape.ding.impl.cyannotator.create.AnnotationFactory;
+import org.cytoscape.ding.impl.cyannotator.create.AnnotationFactoryManager;
+import org.cytoscape.ding.impl.cyannotator.create.ImageAnnotationFactory;
+import org.cytoscape.ding.impl.cyannotator.create.ShapeAnnotationFactory;
+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.EdgeBendPropertyEditor;
+import org.cytoscape.ding.impl.editor.EdgeBendValueEditor;
import org.cytoscape.ding.impl.editor.ObjectPositionEditor;
import org.cytoscape.dnd.DropNetworkViewTaskFactory;
import org.cytoscape.dnd.DropNodeViewTaskFactory;
import org.cytoscape.dnd.GraphicalEntity;
import org.cytoscape.event.CyEventHelper;
+import org.cytoscape.model.CyNetworkFactory;
import org.cytoscape.model.CyNetworkManager;
import org.cytoscape.model.CyNetworkTableManager;
import org.cytoscape.model.CyTableFactory;
@@ -34,20 +45,14 @@
import org.cytoscape.view.model.events.UpdateNetworkPresentationEventListener;
import org.cytoscape.view.presentation.RenderingEngineFactory;
import org.cytoscape.view.presentation.RenderingEngineManager;
+import org.cytoscape.view.vizmap.gui.editor.ValueEditor;
+import org.cytoscape.view.vizmap.gui.editor.VisualPropertyEditor;
import org.cytoscape.work.swing.DialogTaskManager;
import org.cytoscape.work.swing.SubmenuTaskManager;
import org.cytoscape.work.undo.UndoSupport;
import org.osgi.framework.BundleContext;
-import org.cytoscape.ding.action.GraphicsDetailAction;
-import org.cytoscape.ding.impl.cyannotator.tasks.BasicGraphicalEntity;
-import org.cytoscape.ding.impl.cyannotator.tasks.DropAnnotationTaskFactory;
-import org.cytoscape.ding.impl.cyannotator.create.AnnotationFactory;
-import org.cytoscape.ding.impl.cyannotator.create.ImageAnnotationFactory;
-import org.cytoscape.ding.impl.cyannotator.create.ArrowAnnotationFactory;
-import org.cytoscape.ding.impl.cyannotator.create.BoundedAnnotationFactory;
-import org.cytoscape.ding.impl.cyannotator.create.ShapeAnnotationFactory;
-import org.cytoscape.ding.impl.cyannotator.create.TextAnnotationFactory;
-import org.cytoscape.ding.impl.cyannotator.create.AnnotationFactoryManager;
+import org.osgi.framework.InvalidSyntaxException;
+import org.osgi.framework.ServiceReference;
public class CyActivator extends AbstractCyActivator {
public CyActivator() {
@@ -72,6 +77,8 @@
CyProperty cyPropertyServiceRef =
getService(bc,CyProperty.class,"(cyPropertyName=cytoscape3.props)");
CyNetworkTableManager cyNetworkTableManagerServiceRef =
getService(bc,CyNetworkTableManager.class);
+ CyNetworkFactory cyNetworkFactory =
getService(bc,CyNetworkFactory.class);
+
DVisualLexicon dVisualLexicon = new
DVisualLexicon(customGraphicsManagerServiceRef);
ViewTaskFactoryListener vtfListener = new
ViewTaskFactoryListener();
@@ -81,12 +88,19 @@
DingRenderingEngineFactory dingRenderingEngineFactory = new
DingRenderingEngineFactory(cyDataTableFactoryServiceRef,cyRootNetworkFactoryServiceRef,undoSupportServiceRef,spacialIndex2DFactoryServiceRef,dVisualLexicon,dialogTaskManager,submenuTaskManager,cyServiceRegistrarRef,cyNetworkTableManagerServiceRef,cyEventHelperServiceRef,renderingEngineManagerServiceRef,
vtfListener,annotationFactoryManager);
DingNavigationRenderingEngineFactory
dingNavigationRenderingEngineFactory = new
DingNavigationRenderingEngineFactory(dVisualLexicon,renderingEngineManagerServiceRef,applicationManagerManagerServiceRef);
AddEdgeNodeViewTaskFactoryImpl addEdgeNodeViewTaskFactory = new
AddEdgeNodeViewTaskFactoryImpl(cyNetworkManagerServiceRef);
+
+ // Object Position Editor
ObjectPositionValueEditor objectPositionValueEditor = new
ObjectPositionValueEditor();
ObjectPositionEditor objectPositionEditor = new
ObjectPositionEditor(objectPositionValueEditor);
+
EdgePaintToArrowHeadPaintDependency
edgeColor2arrowColorDependency = new EdgePaintToArrowHeadPaintDependency();
CustomGraphicsSizeDependency nodeCustomGraphicsSizeDependency =
new CustomGraphicsSizeDependency();
DingViewModelFactory dingNetworkViewFactory = new
DingViewModelFactory(cyDataTableFactoryServiceRef,cyRootNetworkFactoryServiceRef,undoSupportServiceRef,spacialIndex2DFactoryServiceRef,dVisualLexicon,dialogTaskManager,submenuTaskManager,cyServiceRegistrarRef,cyNetworkTableManagerServiceRef,cyEventHelperServiceRef,
vtfListener,annotationFactoryManager);
+ // Edge Bend editor
+ EdgeBendValueEditor edgeBendValueEditor = new
EdgeBendValueEditor(cyNetworkFactory,
dingNetworkViewFactory,dingRenderingEngineFactory);
+ EdgeBendPropertyEditor edgeBendPropertyEditor = new
EdgeBendPropertyEditor(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");
// BasicGraphicalEntity boundedGraphicalEntity = new
BasicGraphicalEntity("Bounded","Bounded Attr","Bounded Value", "A Bounded
annotation", "/images/boundedIcon.png");
@@ -126,8 +140,18 @@
dVisualLexiconProps.setProperty("serviceType","visualLexicon");
dVisualLexiconProps.setProperty("id","ding");
registerService(bc,dVisualLexicon,VisualLexicon.class,
dVisualLexiconProps);
- registerAllServices(bc,objectPositionValueEditor, new
Properties());
- registerAllServices(bc,objectPositionEditor, new Properties());
+
+ final Properties positionEditorProp = new Properties();
+
positionEditorProp.setProperty("id","objectPositionValueEditor");
+ registerService(bc,objectPositionValueEditor,
ValueEditor.class, positionEditorProp);
+
+ final Properties objectPositionEditorProp = new Properties();
+
objectPositionEditorProp.setProperty("id","objectPositionEditor");
+ registerService(bc,objectPositionEditor,
VisualPropertyEditor.class, objectPositionEditorProp);
+
+ registerAllServices(bc, edgeBendValueEditor, new Properties());
+ registerAllServices(bc, edgeBendPropertyEditor, new
Properties());
+
registerAllServices(bc,edgeColor2arrowColorDependency, new
Properties());
registerAllServices(bc,nodeCustomGraphicsSizeDependency, new
Properties());
@@ -178,7 +202,24 @@
GraphicsDetailAction graphicsDetailAction = new
GraphicsDetailAction(applicationManagerManagerServiceRef, dialogTaskManager,
cyPropertyServiceRef);
registerAllServices(bc,graphicsDetailAction, new Properties());
+
+// // Debug:
+// try {
+// final ServiceReference[] refs =
bc.getServiceReferences("org.cytoscape.view.vizmap.gui.editor.ValueEditor",
+// null);
+//
+// System.out.println("%%%%%% REFS in DING = " + refs);
+// for (ServiceReference ref : refs) {
+// final Object service = bc.getService(ref);
+//
+// System.out.println("* serv = " + service);
+// }
+//
+// System.out.println("---------------\n\n\n");
+// } catch (InvalidSyntaxException e) {
+// // TODO Auto-generated catch block
+// e.printStackTrace();
+// }
}
-
}
Modified:
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/ObjectPositionValueEditor.java
===================================================================
---
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/ObjectPositionValueEditor.java
2011-12-24 00:42:16 UTC (rev 27870)
+++
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/ObjectPositionValueEditor.java
2011-12-24 00:48:12 UTC (rev 27871)
@@ -122,59 +122,31 @@
pack();
}
-//FIXME IS this necessary?
-// /**
-// * Handles all property changes that the panel listens for.
-// */
-// public void propertyChange(PropertyChangeEvent e) {
-// final String type = e.getPropertyName();
-//
-// if (type.equals(ObjectPlacerGraphic.OBJECT_POSITION_CHANGED)
-// && e.getNewValue() instanceof ObjectPosition) {
-//
-// position = (ObjectPosition) e.getNewValue();
-//
-//
-// //FIXME!!
-// // horrible, horrible hack
-// GraphObject go = BypassHack.getCurrentObject();
-// if (go != null) {
-// String val =
ValueToStringConverterManager.manager.toString(newPosition);
-// Cytoscape.getNodeAttributes().setAttribute(
-// go.getIdentifier(),
-//
VisualPropertyType.NODE_LABEL_POSITION
-//
.getBypassAttrName(), val);
-//
Cytoscape.getVisualMappingManager().getNetworkView()
-// .redrawGraph(false, true);
-// }
-// }
-// }
@Override
- public <S extends ObjectPosition> ObjectPosition showEditor(
- Component parent, S initialValue) {
-
+ public <S extends ObjectPosition> ObjectPosition showEditor(Component
parent, S initialValue) {
+
ObjectPosition pos;
-
- if(initialValue == null) {
+
+ if (initialValue == null) {
oldValue = null;
pos = new ObjectPositionImpl();
} else {
oldValue = initialValue;
pos = new ObjectPositionImpl(initialValue);
}
-
+
control.setPosition(pos);
graphic.setPosition(pos);
-
- if(parent != null)
+
+ if (parent != null)
this.setLocationRelativeTo(parent);
else
this.setLocationByPlatform(true);
-
+
this.setVisible(true);
-
- if(canceled) {
+
+ if (canceled) {
canceled = false;
return oldValue;
} else {
@@ -182,6 +154,7 @@
}
}
+
@Override
public Class<ObjectPosition> getType() {
return ObjectPosition.class;
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-24 00:42:16 UTC (rev 27870)
+++
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/DEdgeDetails.java
2011-12-24 00:48:12 UTC (rev 27871)
@@ -37,14 +37,15 @@
import java.util.Map;
import java.util.Set;
+import org.cytoscape.ding.Bend;
import org.cytoscape.ding.EdgeView;
+import org.cytoscape.ding.impl.visualproperty.EdgeBendVisualProperty;
import org.cytoscape.graph.render.immed.EdgeAnchors;
import org.cytoscape.graph.render.immed.GraphGraphics;
import org.cytoscape.model.CyEdge;
import org.cytoscape.model.CyNetwork;
import org.cytoscape.model.CyNode;
import org.cytoscape.util.intr.IntEnumerator;
-import org.cytoscape.util.intr.IntIterator;
import org.cytoscape.util.intr.IntObjHash;
import org.cytoscape.util.intr.MinIntHeap;
@@ -77,6 +78,9 @@
// Curved or not
Map<Integer, Integer> m_lineType = new HashMap<Integer, Integer>();
+
+ // Edge Bends
+ Map<Integer, Bend> m_edgeBends = new HashMap<Integer, Bend>();
private Byte m_sourceArrowDefault;
private Paint m_sourceArrowPaintDefault;
@@ -98,6 +102,9 @@
private Color m_selectedColorLowDetailDefault;
private Integer m_lineTypeDefault;
+
+ // Default value for Edge Bends
+ private Bend m_edgeBendDefault;
private boolean isCleared = false;
@@ -134,6 +141,8 @@
selected = new HashSet<Integer>();
m_lineType = new HashMap<Integer, Integer>();
+
+ m_edgeBends = new HashMap<Integer, Bend>();
isCleared = true;
}
@@ -165,6 +174,7 @@
m_unselectedPaints.remove(edgeIdx);
m_lineType.remove(edgeIdx);
+ m_edgeBends.remove(edgeIdx);
selected.remove(edgeIdx);
}
@@ -698,7 +708,6 @@
}
-
public Integer lineType(final int edge) {
final Integer lineType = m_lineType.get(edge);
if (lineType == null)
@@ -713,8 +722,30 @@
public void setLineTypeDefault(int lineType) {
this.m_lineTypeDefault = lineType;
}
+
+
+ /**
+ * Returns current Edge Bend value.
+ * @param edge
+ * @return edge Bend
+ */
+ public Bend bend(final int edge) {
+ final Bend bend = m_edgeBends.get(edge);
+
+ if(bend == null)
+ if (m_edgeBendDefault == null)
+ return EdgeBendVisualProperty.DEFAULT_EDGE_BEND;
+ else
+ return m_edgeBendDefault;
+
+ return bend;
+ }
+ public void setEdgeBendDefault(final Bend bend) {
+ this.m_edgeBendDefault = bend;
+ }
+
// Used by bends
private final MinIntHeap m_heap = new MinIntHeap();
private final float[] m_extentsBuff = new float[4];
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-24 00:42:16 UTC (rev 27870)
+++
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/DEdgeView.java
2011-12-24 00:48:12 UTC (rev 27871)
@@ -56,7 +56,7 @@
import org.cytoscape.view.presentation.property.values.LineType;
-class DEdgeView extends AbstractDViewModel<CyEdge> implements EdgeView, Label,
Bend, EdgeAnchors {
+public class DEdgeView extends AbstractDViewModel<CyEdge> implements EdgeView,
Label, Bend, EdgeAnchors {
static final float DEFAULT_ARROW_SIZE = 8.0f;
static final Paint DEFAULT_ARROW_PAINT = Color.BLACK;
@@ -954,9 +954,9 @@
}
}
- /**
- * DOCUMENT ME!
- */
+
+
+ @Override
public void removeAllHandles() {
synchronized (m_view.m_lock) {
if (m_anchors == null)
@@ -970,18 +970,12 @@
}
m_anchors = null;
+
m_view.m_contentChanged = true;
}
}
- /**
- * DOCUMENT ME!
- *
- * @param pt
- * DOCUMENT ME!
- *
- * @return DOCUMENT ME!
- */
+
public boolean handleAlreadyExists(Point2D pt) {
synchronized (m_view.m_lock) {
final float x = (float) pt.getX();
@@ -1291,6 +1285,8 @@
setLineType(EdgeView.CURVED_LINES);
else
setLineType(EdgeView.STRAIGHT_LINES);
+ } else if(vp == DVisualLexicon.EDGE_BEND) {
+ // TODO: implememt set method
}
visualProperties.put(vp, value);
Added:
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
(rev 0)
+++
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/HandleImpl.java
2011-12-24 00:48:12 UTC (rev 27871)
@@ -0,0 +1,60 @@
+package org.cytoscape.ding.impl;
+
+import org.cytoscape.ding.Handle;
+
+
+/**
+ * A simple implementation of edge handle.
+ *
+ */
+public class HandleImpl implements Handle {
+
+ private static final double MIN = 0d;
+ private static final double MAX = 1d;
+
+ private double x;
+ private double y;
+
+ public HandleImpl(final double x, final double y) {
+ if(validate(x) && validate(y)) {
+ this.x = x;
+ this.y = y;
+ } else {
+ throw new IllegalArgumentException("Given value is
out-of-range.");
+ }
+ }
+
+ private boolean validate(final double value) {
+ if(value>=MIN && value <= MAX)
+ return true;
+ else
+ return false;
+ }
+
+ @Override
+ public double getXFraction() {
+ return x;
+ }
+
+ @Override
+ public double getYFraction() {
+ return y;
+ }
+
+ @Override
+ public void setXFraction(double x) {
+ if(validate(x))
+ this.x = x;
+ else
+ throw new IllegalArgumentException("Given value is
out-of-range.");
+ }
+
+ @Override
+ public void setYFraction(double y) {
+ if(validate(y))
+ this.y = y;
+ else
+ throw new IllegalArgumentException("Given value is
out-of-range.");
+ }
+
+}
Added:
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
(rev 0)
+++
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/editor/EdgeBendEditor.java
2011-12-24 00:48:12 UTC (rev 27871)
@@ -0,0 +1,13 @@
+package org.cytoscape.ding.impl.editor;
+
+import org.cytoscape.ding.Bend;
+import org.cytoscape.view.vizmap.gui.editor.AbstractVisualPropertyEditor;
+import org.cytoscape.view.vizmap.gui.editor.ValueEditor;
+
+public class EdgeBendEditor extends AbstractVisualPropertyEditor<Bend>{
+
+ public EdgeBendEditor(Class<Bend> type, ValueEditor<Bend> valueEditor) {
+ super(type, new EdgeBendPropertyEditor(valueEditor));
+ }
+
+}
Added:
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/editor/EdgeBendPropertyEditor.java
===================================================================
---
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/editor/EdgeBendPropertyEditor.java
(rev 0)
+++
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/editor/EdgeBendPropertyEditor.java
2011-12-24 00:48:12 UTC (rev 27871)
@@ -0,0 +1,71 @@
+package org.cytoscape.ding.impl.editor;
+
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+
+import javax.swing.JButton;
+import javax.swing.JPanel;
+
+import org.cytoscape.ding.Bend;
+import org.cytoscape.view.vizmap.gui.editor.ValueEditor;
+
+import com.l2fprod.common.swing.ComponentFactory;
+import com.l2fprod.common.swing.PercentLayout;
+
+public class EdgeBendPropertyEditor extends
com.l2fprod.common.beans.editor.AbstractPropertyEditor {
+
+ private JButton button;
+ private Bend bend;
+
+ private final ValueEditor<Bend> valueEditor;
+
+ /**
+ * Creates a new CyLabelPositionLabelEditor object.
+ */
+ public EdgeBendPropertyEditor(final ValueEditor<Bend> valueEditor) {
+ this.valueEditor = valueEditor;
+
+ editor = new JPanel(new PercentLayout(PercentLayout.HORIZONTAL,
0));
+ //((JPanel) editor).add("*");
+// label.setOpaque(false);
+ ((JPanel) editor).add(button =
ComponentFactory.Helper.getFactory()
+ .createMiniButton());
+ button.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+ editBend();
+ }
+ });
+ ((JPanel) editor).add(button =
ComponentFactory.Helper.getFactory()
+ .createMiniButton());
+ button.setText("X");
+ button.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+ Bend old = bend;
+ bend = null;
+ firePropertyChange(old, null);
+ }
+ });
+ ((JPanel) editor).setOpaque(false);
+ }
+
+
+ @Override
+ public Object getValue() {
+ return bend;
+ }
+
+
+ @Override
+ public void setValue(Object value) {
+ bend = (Bend) value;
+ }
+
+ private void editBend() {
+ final Bend newVal = valueEditor.showEditor(null, bend);
+
+ if (newVal != null) {
+ setValue(newVal);
+ firePropertyChange(null, newVal);
+ }
+ }
+}
Added:
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
(rev 0)
+++
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/editor/EdgeBendValueEditor.java
2011-12-24 00:48:12 UTC (rev 27871)
@@ -0,0 +1,162 @@
+package org.cytoscape.ding.impl.editor;
+
+import static
org.cytoscape.view.presentation.property.MinimalVisualLexicon.NODE_X_LOCATION;
+import static
org.cytoscape.view.presentation.property.MinimalVisualLexicon.NODE_Y_LOCATION;
+
+import java.awt.BorderLayout;
+import java.awt.Color;
+import java.awt.Component;
+import java.awt.Dimension;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+
+import javax.swing.BoxLayout;
+import javax.swing.JButton;
+import javax.swing.JDialog;
+import javax.swing.JPanel;
+import javax.swing.border.EmptyBorder;
+import javax.swing.border.TitledBorder;
+
+import org.cytoscape.ding.Bend;
+import org.cytoscape.ding.impl.DEdgeView;
+import org.cytoscape.ding.impl.DVisualLexicon;
+import org.cytoscape.model.CyEdge;
+import org.cytoscape.model.CyNetwork;
+import org.cytoscape.model.CyNetworkFactory;
+import org.cytoscape.model.CyNode;
+import org.cytoscape.view.model.CyNetworkView;
+import org.cytoscape.view.model.CyNetworkViewFactory;
+import org.cytoscape.view.model.View;
+import org.cytoscape.view.presentation.RenderingEngine;
+import org.cytoscape.view.presentation.RenderingEngineFactory;
+import org.cytoscape.view.presentation.property.ArrowShapeVisualProperty;
+import org.cytoscape.view.presentation.property.NodeShapeVisualProperty;
+import org.cytoscape.view.presentation.property.RichVisualLexicon;
+import org.cytoscape.view.vizmap.gui.editor.ValueEditor;
+
+public class EdgeBendValueEditor extends JDialog implements ValueEditor<Bend> {
+
+ 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 Color NODE_COLOR = Color.gray;
+ private static final Color EDGE_COLOR = Color.BLACK;
+ private static final Color BACKGROUND_COLOR = Color.white;
+
+ private DEdgeView edgeView;
+
+ private JPanel innerPanel;
+
+ public EdgeBendValueEditor(final CyNetworkFactory cyNetworkFactory,
+ final CyNetworkViewFactory cyNetworkViewFactory, final
RenderingEngineFactory<CyNetwork> presentationFactory) {
+ super();
+
+ // Null check
+ if (cyNetworkFactory == null)
+ throw new NullPointerException("CyNetworkFactory is
null.");
+ if (cyNetworkViewFactory == null)
+ throw new NullPointerException("CyNetworkViewFactory is
null.");
+ if (presentationFactory == null)
+ throw new NullPointerException("RenderingEngineFactory
is null.");
+
+ initUI(cyNetworkFactory, cyNetworkViewFactory,
presentationFactory);
+
+ this.setModal(true);
+ }
+
+ private void initUI(final CyNetworkFactory cyNetworkFactory,
+ final CyNetworkViewFactory cyNetworkViewFactory, final
RenderingEngineFactory<CyNetwork> presentationFactory) {
+ 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);
+
+ // Create very simple dummy view.
+ final CyNetwork dummyNet =
cyNetworkFactory.createNetworkWithPrivateTables();
+ final CyNode source = dummyNet.addNode();
+ final CyNode target = dummyNet.addNode();
+ final CyEdge edge = dummyNet.addEdge(source, target, true);
+
+ // Create View
+ final CyNetworkView dummyview =
cyNetworkViewFactory.createNetworkView(dummyNet);
+
+ // Set appearances of the view
+ final View<CyNode> sourceView = dummyview.getNodeView(source);
+ final View<CyNode> targetView = dummyview.getNodeView(target);
+ edgeView = (DEdgeView) dummyview.getEdgeView(edge);
+
+ sourceView.setVisualProperty(RichVisualLexicon.NODE_FILL_COLOR,
NODE_COLOR);
+ targetView.setVisualProperty(RichVisualLexicon.NODE_FILL_COLOR,
NODE_COLOR);
+
+ sourceView.setVisualProperty(RichVisualLexicon.NODE_SHAPE,
NodeShapeVisualProperty.ELLIPSE);
+ targetView.setVisualProperty(RichVisualLexicon.NODE_SHAPE,
NodeShapeVisualProperty.ELLIPSE);
+
+ sourceView.setVisualProperty(RichVisualLexicon.NODE_WIDTH, 40d);
+ sourceView.setVisualProperty(RichVisualLexicon.NODE_HEIGHT,
40d);
+ targetView.setVisualProperty(RichVisualLexicon.NODE_WIDTH, 40d);
+ targetView.setVisualProperty(RichVisualLexicon.NODE_HEIGHT,
40d);
+
+
edgeView.setVisualProperty(RichVisualLexicon.EDGE_STROKE_UNSELECTED_PAINT,
EDGE_COLOR);
+ edgeView.setVisualProperty(RichVisualLexicon.EDGE_WIDTH, 4d);
+
edgeView.setVisualProperty(RichVisualLexicon.EDGE_TARGET_ARROW_SHAPE,
ArrowShapeVisualProperty.ARROW);
+
edgeView.setVisualProperty(DVisualLexicon.EDGE_TARGET_ARROW_UNSELECTED_PAINT,
EDGE_COLOR);
+
+
+
dummyview.getNodeView(source).setVisualProperty(NODE_X_LOCATION, 0d);
+
dummyview.getNodeView(source).setVisualProperty(NODE_Y_LOCATION, 0d);
+
dummyview.getNodeView(target).setVisualProperty(NODE_X_LOCATION, 200d);
+
dummyview.getNodeView(target).setVisualProperty(NODE_Y_LOCATION, 0d);
+
+ this.innerPanel.setBackground(BACKGROUND_COLOR);
+ // Render it in this panel
+ final RenderingEngine<CyNetwork> renderingEngine =
presentationFactory.createRenderingEngine(innerPanel, dummyview);
+ dummyview.fitContent();
+
+ final JPanel buttonPanel = new JPanel();
+ final BoxLayout buttonLayout = new BoxLayout(buttonPanel,
BoxLayout.X_AXIS);
+ buttonPanel.setLayout(buttonLayout);
+ final JButton okButton = new JButton("OK");
+ okButton.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+ dispose();
+ }
+ });
+ final JButton cancelButton = new JButton("Cancel");
+ cancelButton.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+ dispose();
+ }
+ });
+
+ buttonPanel.add(okButton);
+ buttonPanel.add(cancelButton);
+
+ this.add(buttonPanel, BorderLayout.SOUTH);
+
+ pack();
+ }
+
+ @Override
+ public <S extends Bend> Bend showEditor(Component parent, S
initialValue) {
+ if (parent != null)
+ this.setLocationRelativeTo(parent);
+ else
+ this.setLocationByPlatform(true);
+
+ this.setVisible(true);
+
+ return edgeView;
+ }
+
+ @Override
+ public Class<Bend> getType() {
+ return Bend.class;
+ }
+}
Modified:
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/editor/ObjectPositionEditor.java
===================================================================
---
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/editor/ObjectPositionEditor.java
2011-12-24 00:42:16 UTC (rev 27870)
+++
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/editor/ObjectPositionEditor.java
2011-12-24 00:48:12 UTC (rev 27871)
@@ -15,14 +15,10 @@
* Constructor. Should instantiate one editor per VisualProperty.
*/
public ObjectPositionEditor(final ValueEditor<ObjectPosition>
valueEditor) {
- super(ObjectPosition.class,
- new CyObjectPositionPropertyEditor(valueEditor));
+ super(ObjectPosition.class, new
CyObjectPositionPropertyEditor(valueEditor));
discreteTableCellRenderer = new ObjectPositionCellRenderer();
-// continuousTableCellRenderer = new
ColorContinuousMappingCellRenderer();
-//
-// continuousEditor = new GradientEditor(manager, appManager,
-// selectedManager, editorManager, vmm);
+
}
}
Modified:
core3/impl/trunk/presentation-impl/src/main/java/org/cytoscape/view/presentation/internal/RenderingEngineManagerImpl.java
===================================================================
---
core3/impl/trunk/presentation-impl/src/main/java/org/cytoscape/view/presentation/internal/RenderingEngineManagerImpl.java
2011-12-24 00:42:16 UTC (rev 27870)
+++
core3/impl/trunk/presentation-impl/src/main/java/org/cytoscape/view/presentation/internal/RenderingEngineManagerImpl.java
2011-12-24 00:48:12 UTC (rev 27871)
@@ -9,8 +9,12 @@
import org.cytoscape.view.presentation.RenderingEngine;
import org.cytoscape.view.presentation.RenderingEngineFactory;
import org.cytoscape.view.presentation.RenderingEngineManager;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
public class RenderingEngineManagerImpl implements RenderingEngineManager {
+
+ private static final Logger logger =
LoggerFactory.getLogger(RenderingEngineManagerImpl.class);
private final Map<View<?>, RenderingEngine<?>> renderingEngineMap;
@@ -81,10 +85,10 @@
this.factoryMap.put(id, factory);
// Register default lexicon
- if(id.equals(DEFAULT_FACTORY_ID)) {
+ if(id.equals(DEFAULT_FACTORY_ID))
defaultLexicon = factory.getVisualLexicon();
- }
-
+
+ logger.warn("@@@@@@@ New engine registered: " +
factory.getClass());
}
public void removeRenderingEngineFactory(
Modified: core3/impl/trunk/vizmap-gui-impl/pom.xml
===================================================================
--- core3/impl/trunk/vizmap-gui-impl/pom.xml 2011-12-24 00:42:16 UTC (rev
27870)
+++ core3/impl/trunk/vizmap-gui-impl/pom.xml 2011-12-24 00:48:12 UTC (rev
27871)
@@ -58,6 +58,7 @@
<Bundle-SymbolicName>${bundle.symbolicName}</Bundle-SymbolicName>
<Bundle-Version>${project.version}</Bundle-Version>
<Export-Package>!${bundle.namespace}.*</Export-Package>
+ <Import-Package>*,
org.cytoscape.view.vizmap.gui, org.cytoscape.view.vizmap.gui.*,
org.cytoscape.view.vizmap.gui.editor</Import-Package>
<Private-Package>${bundle.namespace}.*</Private-Package>
<Bundle-Activator>${bundle.namespace}.internal.CyActivator</Bundle-Activator>
</instructions>
Modified:
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/CyActivator.java
===================================================================
---
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/CyActivator.java
2011-12-24 00:42:16 UTC (rev 27870)
+++
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/CyActivator.java
2011-12-24 00:48:12 UTC (rev 27871)
@@ -2,13 +2,9 @@
package org.cytoscape.view.vizmap.gui.internal;
import java.awt.Color;
-import java.awt.Component;
import java.awt.Paint;
-import java.lang.reflect.Field;
import java.util.Properties;
-import javax.swing.JButton;
-import javax.swing.JPanel;
import javax.swing.table.DefaultTableCellRenderer;
import org.cytoscape.application.CyApplicationConfiguration;
Modified:
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/SetViewModeAction.java
===================================================================
---
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/SetViewModeAction.java
2011-12-24 00:42:16 UTC (rev 27870)
+++
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/SetViewModeAction.java
2011-12-24 00:48:12 UTC (rev 27871)
@@ -6,7 +6,6 @@
import javax.swing.event.MenuEvent;
import org.cytoscape.application.swing.AbstractCyAction;
-import org.cytoscape.event.CyEventHelper;
public class SetViewModeAction extends AbstractCyAction {
Modified:
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/VizMapPropertyBuilder.java
===================================================================
---
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/VizMapPropertyBuilder.java
2011-12-24 00:42:16 UTC (rev 27870)
+++
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/VizMapPropertyBuilder.java
2011-12-24 00:48:12 UTC (rev 27871)
@@ -29,8 +29,8 @@
import java.beans.PropertyEditor;
import java.util.ArrayList;
-import java.util.HashSet;
import java.util.HashMap;
+import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
@@ -50,7 +50,6 @@
import org.cytoscape.model.CyTable;
import org.cytoscape.model.CyTableEntry;
import org.cytoscape.model.CyTableManager;
-import org.cytoscape.model.CyTableEntry;
import org.cytoscape.view.model.VisualProperty;
import org.cytoscape.view.vizmap.VisualMappingFunction;
import org.cytoscape.view.vizmap.VisualMappingFunctionFactory;
Modified:
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/VizMapPropertySheetBuilder.java
===================================================================
---
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/VizMapPropertySheetBuilder.java
2011-12-24 00:42:16 UTC (rev 27870)
+++
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/VizMapPropertySheetBuilder.java
2011-12-24 00:48:12 UTC (rev 27871)
@@ -3,7 +3,6 @@
import java.awt.Color;
import java.awt.Font;
import java.beans.PropertyEditor;
-import java.nio.channels.Selector;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
Modified:
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/editor/propertyeditor/CyComboBoxPropertyEditor.java
===================================================================
---
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/editor/propertyeditor/CyComboBoxPropertyEditor.java
2011-12-24 00:42:16 UTC (rev 27870)
+++
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/editor/propertyeditor/CyComboBoxPropertyEditor.java
2011-12-24 00:48:12 UTC (rev 27871)
@@ -20,13 +20,11 @@
import java.awt.Color;
import java.awt.Component;
import java.awt.Font;
-import java.awt.ItemSelectable;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.util.HashSet;
import java.util.Set;
-import javax.management.modelmbean.ModelMBean;
import javax.swing.DefaultComboBoxModel;
import javax.swing.DefaultListCellRenderer;
import javax.swing.Icon;
--
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.