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.

Reply via email to