Author: rozagh
Date: 2012-03-28 10:27:03 -0700 (Wed, 28 Mar 2012)
New Revision: 28680

Added:
   core3/support/trunk/archetypes/cyaction-plugin/
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/impl/DGraphView.java
   
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/PopupMenuHelper.java
   
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/ViewTaskFactoryListener.java
Log:
fixes #793 EdgeView and NodeView context menu factories service listeners 
registered in ding-presentation-impl and handled in PopupMenuHelper. A sample 
code created for testing the actions on sample26.

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
 2012-03-28 00:07:36 UTC (rev 28679)
+++ 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/CyActivator.java
 2012-03-28 17:27:03 UTC (rev 28680)
@@ -3,6 +3,8 @@
 import java.util.Properties;
 
 import org.cytoscape.application.CyApplicationManager;
+import org.cytoscape.application.swing.CyEdgeViewContextMenuFactory;
+import org.cytoscape.application.swing.CyNodeViewContextMenuFactory;
 import org.cytoscape.ding.action.GraphicsDetailAction;
 import org.cytoscape.ding.customgraphics.CustomGraphicsManager;
 import org.cytoscape.ding.dependency.CustomGraphicsSizeDependency;
@@ -165,8 +167,10 @@
                
registerServiceListener(bc,vtfListener,"addEdgeViewTaskFactory","removeEdgeViewTaskFactory",EdgeViewTaskFactory.class);
                
registerServiceListener(bc,vtfListener,"addNetworkViewTaskFactory","removeNetworkViewTaskFactory",NetworkViewTaskFactory.class);
                
registerServiceListener(bc,vtfListener,"addNetworkViewLocationTaskFactory","removeNetworkViewLocationTaskFactory",NetworkViewLocationTaskFactory.class);
+               
registerServiceListener(bc,vtfListener,"addCyEdgeViewContextMenuFactory","removeCyEdgeViewContextMenuFactory",CyEdgeViewContextMenuFactory.class);
+               
registerServiceListener(bc,vtfListener,"addCyNodeViewContextMenuFactory","removeCyNodeViewContextMenuFactory",CyNodeViewContextMenuFactory.class);
+               
 
-
                
registerServiceListener(bc,annotationFactoryManager,"addAnnotationFactory","removeAnnotationFactory",AnnotationFactory.class);
 
                GraphicsDetailAction graphicsDetailAction = new 
GraphicsDetailAction(applicationManagerManagerServiceRef, dialogTaskManager,

Modified: 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/DGraphView.java
===================================================================
--- 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/DGraphView.java
     2012-03-28 00:07:36 UTC (rev 28679)
+++ 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/DGraphView.java
     2012-03-28 17:27:03 UTC (rev 28680)
@@ -64,6 +64,8 @@
 import javax.swing.Icon;
 import javax.swing.JLayeredPane;
 
+import org.cytoscape.application.swing.CyEdgeViewContextMenuFactory;
+import org.cytoscape.application.swing.CyNodeViewContextMenuFactory;
 import org.cytoscape.ding.DVisualLexicon;
 import org.cytoscape.ding.EdgeView;
 import org.cytoscape.ding.GraphView;
@@ -389,6 +391,8 @@
        final Map<EdgeViewTaskFactory, Map> edgeViewTFs;
        final Map<NetworkViewTaskFactory, Map> emptySpaceTFs;
        final Map<NetworkViewLocationTaskFactory, Map> networkViewLocationTfs;
+       final Map<CyEdgeViewContextMenuFactory, Map> 
cyEdgeViewContextMenuFactory;
+       final Map<CyNodeViewContextMenuFactory, Map> 
cyNodeViewContextMenuFactory;
 
        final DialogTaskManager manager;
        final SubmenuTaskManager menuTaskManager;
@@ -460,6 +464,9 @@
                this.edgeViewTFs = vtfl.edgeViewTFs;
                this.emptySpaceTFs = vtfl.emptySpaceTFs; 
                this.networkViewLocationTfs = vtfl.networkViewLocationTFs;
+               this.cyEdgeViewContextMenuFactory = 
vtfl.cyEdgeViewContextMenuFactory;
+               this.cyNodeViewContextMenuFactory = 
vtfl.cyNodeViewContexMenuFactory;
+               
                this.manager = manager;
                this.menuTaskManager = menuTaskManager;
                this.cyEventHelper = cyEventHelper;

Modified: 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/PopupMenuHelper.java
===================================================================
--- 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/PopupMenuHelper.java
        2012-03-28 00:07:36 UTC (rev 28679)
+++ 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/PopupMenuHelper.java
        2012-03-28 17:27:03 UTC (rev 28680)
@@ -41,6 +41,8 @@
 import javax.swing.JMenuItem;
 import javax.swing.JPopupMenu;
 
+import org.cytoscape.application.swing.CyEdgeViewContextMenuFactory;
+import org.cytoscape.application.swing.CyNodeViewContextMenuFactory;
 import org.cytoscape.ding.EdgeView;
 import org.cytoscape.ding.NodeView;
 import org.cytoscape.model.CyEdge;
@@ -53,6 +55,8 @@
 import org.cytoscape.task.TunableEdgeViewTaskFactory;
 import org.cytoscape.util.swing.GravityTracker;
 import org.cytoscape.util.swing.JMenuTracker;
+import org.cytoscape.view.model.CyNetworkView;
+import org.cytoscape.view.model.CyNetworkViewFactory;
 import org.cytoscape.view.model.View;
 import org.cytoscape.view.model.VisualProperty;
 import org.cytoscape.work.TaskFactory;
@@ -106,7 +110,9 @@
                                        TaskFactory provisioner = 
factoryProvisioner.createFor(evtf, ev, m_view);
                                        createMenuItem(ev, menu, provisioner, 
context, tracker, m_view.edgeViewTFs.get(evtf) );
                                }
-
+                               
+                               for (CyEdgeViewContextMenuFactory edgeCMF: 
m_view.cyEdgeViewContextMenuFactory.keySet())
+                                       menu.add(edgeCMF.createMenuItem(m_view 
, ev).getMenuItem());
                                menu.show(invoker, x, y);
 
                        // execute the task directly if only one factory exists
@@ -140,6 +146,8 @@
                                        createMenuItem(nv, menu, provisioner, 
context, tracker, m_view.nodeViewTFs.get( nvtf ));
                                }
 
+                               for (CyNodeViewContextMenuFactory nodeVMF: 
m_view.cyNodeViewContextMenuFactory.keySet())
+                                       menu.add(nodeVMF.createMenuItem(m_view, 
nv).getMenuItem());
                                menu.show(invoker, x, y);
 
                        // execute the task directly if only one factory exists

Modified: 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/ViewTaskFactoryListener.java
===================================================================
--- 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/ViewTaskFactoryListener.java
        2012-03-28 00:07:36 UTC (rev 28679)
+++ 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/ViewTaskFactoryListener.java
        2012-03-28 17:27:03 UTC (rev 28680)
@@ -3,6 +3,8 @@
 import java.util.HashMap;
 import java.util.Map;
 
+import org.cytoscape.application.swing.CyEdgeViewContextMenuFactory;
+import org.cytoscape.application.swing.CyNodeViewContextMenuFactory;
 import org.cytoscape.task.EdgeViewTaskFactory;
 import org.cytoscape.task.NetworkViewLocationTaskFactory;
 import org.cytoscape.task.NetworkViewTaskFactory;
@@ -16,6 +18,8 @@
        final Map<EdgeViewTaskFactory, Map> edgeViewTFs;
        final Map<NetworkViewTaskFactory, Map> emptySpaceTFs;
        final Map<NetworkViewLocationTaskFactory, Map> networkViewLocationTFs;
+       final Map<CyNodeViewContextMenuFactory, Map> 
cyNodeViewContexMenuFactory;
+       final Map<CyEdgeViewContextMenuFactory, Map> 
cyEdgeViewContextMenuFactory;
 
 
        public ViewTaskFactoryListener(){
@@ -24,6 +28,8 @@
                edgeViewTFs = new HashMap<EdgeViewTaskFactory, Map>();
                emptySpaceTFs = new HashMap<NetworkViewTaskFactory, Map>();
                networkViewLocationTFs = new 
HashMap<NetworkViewLocationTaskFactory, Map>();
+               cyNodeViewContexMenuFactory = new 
HashMap<CyNodeViewContextMenuFactory, Map>();
+               cyEdgeViewContextMenuFactory = new 
HashMap<CyEdgeViewContextMenuFactory, Map>();
 
        }
 
@@ -82,4 +88,30 @@
                        return;
                networkViewLocationTFs.remove(nvltf);
        }
+       
+       public void 
addCyNodeViewContextMenuFactory(CyNodeViewContextMenuFactory cnvcmf, Map props){
+               if(cnvcmf == null)
+                       return;
+               cyNodeViewContexMenuFactory.put(cnvcmf, props);
+       }
+       
+       public void 
removeCyNodeViewContextMenuFactory(CyNodeViewContextMenuFactory cnvcmf, Map 
props){
+               if(cnvcmf == null)
+                       return;
+               cyNodeViewContexMenuFactory.remove(cnvcmf);
+       }
+       
+       public void 
addCyEdgeViewContextMenuFactory(CyEdgeViewContextMenuFactory cevcmf, Map props){
+               if(cevcmf == null)
+                       return;
+               cyEdgeViewContextMenuFactory.put(cevcmf, props);
+       }
+       
+       public void 
removeCyEdgeViewContextMenuFactory(CyEdgeViewContextMenuFactory cevcmf, Map 
props){
+               if(cevcmf == null)
+                       return;
+               cyEdgeViewContextMenuFactory.remove(cevcmf);
+       }
+
+       
 }

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