Author: paperwing
Date: 2012-03-09 14:00:28 -0800 (Fri, 09 Mar 2012)
New Revision: 28474

Added:
   
csplugins/trunk/toronto/yuedong/paperwing-impl/src/main/java/org/cytoscape/paperwing/internal/task/
   
csplugins/trunk/toronto/yuedong/paperwing-impl/src/main/java/org/cytoscape/paperwing/internal/task/PopupMenuCreator.java
   
csplugins/trunk/toronto/yuedong/paperwing-impl/src/main/java/org/cytoscape/paperwing/internal/task/TaskFactoryListener.java
Modified:
   csplugins/trunk/toronto/yuedong/paperwing-impl/pom.xml
   
csplugins/trunk/toronto/yuedong/paperwing-impl/src/main/java/org/cytoscape/paperwing/internal/CyActivator.java
Log:
Added TaskFactory listener to obtain references to task factories containing 
tasks to be placed inside right-click context menu, added Cytoscape work API to 
pom file, started class for creating popup menus

Modified: csplugins/trunk/toronto/yuedong/paperwing-impl/pom.xml
===================================================================
--- csplugins/trunk/toronto/yuedong/paperwing-impl/pom.xml      2012-03-09 
21:45:31 UTC (rev 28473)
+++ csplugins/trunk/toronto/yuedong/paperwing-impl/pom.xml      2012-03-09 
22:00:28 UTC (rev 28474)
@@ -57,7 +57,17 @@
                        <version>${cytoscape.version}</version>
                </dependency>
                
+               <!-- Dependencies used for context menus -->
                <dependency>
+                       <groupId>org.cytoscape</groupId>
+                       <artifactId>core-task-api</artifactId>
+               </dependency>
+               <dependency>
+                       <groupId>org.cytoscape</groupId>
+                       <artifactId>swing-util-api</artifactId>
+               </dependency>
+               
+               <dependency>
                        <groupId>junit</groupId>
                        <artifactId>junit</artifactId>
                        <version>${junit.version}</version>

Modified: 
csplugins/trunk/toronto/yuedong/paperwing-impl/src/main/java/org/cytoscape/paperwing/internal/CyActivator.java
===================================================================
--- 
csplugins/trunk/toronto/yuedong/paperwing-impl/src/main/java/org/cytoscape/paperwing/internal/CyActivator.java
      2012-03-09 21:45:31 UTC (rev 28473)
+++ 
csplugins/trunk/toronto/yuedong/paperwing-impl/src/main/java/org/cytoscape/paperwing/internal/CyActivator.java
      2012-03-09 22:00:28 UTC (rev 28474)
@@ -3,14 +3,19 @@
 import java.util.Properties;
 
 import org.cytoscape.paperwing.internal.cytoscape.view.WindNetworkViewFactory;
+import org.cytoscape.paperwing.internal.task.TaskFactoryListener;
 import org.cytoscape.service.util.AbstractCyActivator;
 import org.cytoscape.service.util.CyServiceRegistrar;
+import org.cytoscape.task.EdgeViewTaskFactory;
+import org.cytoscape.task.NetworkViewTaskFactory;
+import org.cytoscape.task.NodeViewTaskFactory;
 import org.cytoscape.view.model.CyNetworkViewFactory;
 import org.cytoscape.view.model.CyNetworkViewManager;
 import org.cytoscape.view.model.VisualLexicon;
 import org.cytoscape.view.presentation.RenderingEngineFactory;
 import org.cytoscape.view.presentation.RenderingEngineManager;
 import org.cytoscape.view.vizmap.VisualMappingManager;
+import org.cytoscape.work.TaskFactory;
 import org.osgi.framework.BundleContext;
 
 /**
@@ -75,6 +80,10 @@
                                RenderingEngineFactory.class,
                                windBirdsEyeRenderingEngineFactoryProps);
 
-               
+               // Register service to collect references to relevant task 
factories for the right-click context menu
+               TaskFactoryListener taskFactoryListerner = new 
TaskFactoryListener();
+               registerServiceListener(bc, taskFactoryListerner, 
"addNodeViewTaskFactory", "removeNodeViewTaskFactory", 
NodeViewTaskFactory.class);
+               registerServiceListener(bc, taskFactoryListerner, 
"addEdgeViewTaskFactory", "removeEdgeViewTaskFactory", 
EdgeViewTaskFactory.class);
+               registerServiceListener(bc, taskFactoryListerner, 
"addNetworkViewTaskFactory", "removeNetworkViewTaskFactory", 
NetworkViewTaskFactory.class);
        }
 }

Added: 
csplugins/trunk/toronto/yuedong/paperwing-impl/src/main/java/org/cytoscape/paperwing/internal/task/PopupMenuCreator.java
===================================================================
--- 
csplugins/trunk/toronto/yuedong/paperwing-impl/src/main/java/org/cytoscape/paperwing/internal/task/PopupMenuCreator.java
                            (rev 0)
+++ 
csplugins/trunk/toronto/yuedong/paperwing-impl/src/main/java/org/cytoscape/paperwing/internal/task/PopupMenuCreator.java
    2012-03-09 22:00:28 UTC (rev 28474)
@@ -0,0 +1,26 @@
+package org.cytoscape.paperwing.internal.task;
+
+import java.util.Collection;
+
+import javax.swing.JPopupMenu;
+
+import org.cytoscape.model.CyNode;
+import org.cytoscape.task.NodeViewTaskFactory;
+import org.cytoscape.util.swing.JMenuTracker;
+import org.cytoscape.view.model.View;
+
+/**
+ * This class is responsible for creating and populating pop-up menus created 
when right-clicking the network.
+ */
+public class PopupMenuCreator {
+
+       public void createNodeMenu(View<CyNode> nodeView, 
Collection<NodeViewTaskFactory> taskFactories) {
+       
+               JPopupMenu menu = new JPopupMenu();
+               JMenuTracker tracker = new JMenuTracker(menu);
+               
+               for (NodeViewTaskFactory taskFactory : taskFactories) {
+                       
+               }
+       }
+}


Property changes on: 
csplugins/trunk/toronto/yuedong/paperwing-impl/src/main/java/org/cytoscape/paperwing/internal/task/PopupMenuCreator.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Added: 
csplugins/trunk/toronto/yuedong/paperwing-impl/src/main/java/org/cytoscape/paperwing/internal/task/TaskFactoryListener.java
===================================================================
--- 
csplugins/trunk/toronto/yuedong/paperwing-impl/src/main/java/org/cytoscape/paperwing/internal/task/TaskFactoryListener.java
                         (rev 0)
+++ 
csplugins/trunk/toronto/yuedong/paperwing-impl/src/main/java/org/cytoscape/paperwing/internal/task/TaskFactoryListener.java
 2012-03-09 22:00:28 UTC (rev 28474)
@@ -0,0 +1,51 @@
+package org.cytoscape.paperwing.internal.task;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.cytoscape.event.CyListener;
+import org.cytoscape.task.EdgeViewTaskFactory;
+import org.cytoscape.task.NetworkViewTaskFactory;
+import org.cytoscape.task.NodeViewTaskFactory;
+import org.cytoscape.work.TaskFactory;
+
+/**
+ * This class is responsible for keeping track of all the current view {@link 
TaskFactory} objects,
+ * which are used in situations such as needing to execute a certain task via 
the right-click menu.
+ */
+public class TaskFactoryListener implements CyListener {
+       private Map<NodeViewTaskFactory, Map<String, String>> 
nodeViewTaskFactories;
+       private Map<EdgeViewTaskFactory, Map<String, String>> 
edgeViewTaskFactories;
+       
+       private Map<NetworkViewTaskFactory, Map<String, String>> 
networkViewTaskFactories;
+       
+       public TaskFactoryListener() {
+               nodeViewTaskFactories = new HashMap<NodeViewTaskFactory, 
Map<String, String>>();
+               edgeViewTaskFactories = new HashMap<EdgeViewTaskFactory, 
Map<String, String>>();
+               networkViewTaskFactories = new HashMap<NetworkViewTaskFactory, 
Map<String, String>>();
+       }
+       
+       public void addNodeViewTaskFactory(NodeViewTaskFactory taskFactory, 
Map<String, String> properties) {
+               nodeViewTaskFactories.put(taskFactory, properties);
+       }
+       
+       public void addEdgeViewTaskFactory(EdgeViewTaskFactory taskFactory, 
Map<String, String> properties) {
+               edgeViewTaskFactories.put(taskFactory, properties);
+       }
+       
+       public void addNetworkViewTaskFactory(NetworkViewTaskFactory 
taskFactory, Map<String, String> properties) {
+               networkViewTaskFactories.put(taskFactory, properties);
+       }
+       
+       public void removeNodeViewTaskFactory(NodeViewTaskFactory taskFactory, 
Map<String, String> properties) {
+               nodeViewTaskFactories.put(taskFactory, properties);
+       }
+       
+       public void removeEdgeViewTaskFactory(EdgeViewTaskFactory taskFactory, 
Map<String, String> properties) {
+               edgeViewTaskFactories.put(taskFactory, properties);
+       }
+       
+       public void removeNetworkViewTaskFactory(NetworkViewTaskFactory 
taskFactory, Map<String, String> properties) {
+               networkViewTaskFactories.put(taskFactory, properties);
+       }
+}


Property changes on: 
csplugins/trunk/toronto/yuedong/paperwing-impl/src/main/java/org/cytoscape/paperwing/internal/task/TaskFactoryListener.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

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