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.