Author: mes
Date: 2012-05-03 16:47:56 -0700 (Thu, 03 May 2012)
New Revision: 29101
Added:
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/NVLTFActionSupport.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/impl/ViewTaskFactoryListener.java
Log:
This change registers all NetworkViewLocationTaskFactories as CyActions, so
that those task factories can appear in top level menus. This is happening
here in Ding so that we can eventually calculate XY positions based on cursor
location.
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-05-03 23:23:52 UTC (rev 29100)
+++
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/CyActivator.java
2012-05-03 23:47:56 UTC (rev 29101)
@@ -30,6 +30,7 @@
import org.cytoscape.ding.impl.DingRenderingEngineFactory;
import org.cytoscape.ding.impl.DingViewModelFactory;
import org.cytoscape.ding.impl.HandleFactoryImpl;
+import org.cytoscape.ding.impl.NVLTFActionSupport;
import org.cytoscape.ding.impl.ViewTaskFactoryListener;
import org.cytoscape.ding.impl.cyannotator.create.AnnotationFactory;
import org.cytoscape.ding.impl.cyannotator.create.AnnotationFactoryManager;
@@ -87,7 +88,7 @@
private void startPresentationImpl(BundleContext bc) {
CyServiceRegistrar cyServiceRegistrarServiceRef =
getService(bc, CyServiceRegistrar.class);
- CyApplicationManager applicationManagerManagerServiceRef =
getService(bc, CyApplicationManager.class);
+ CyApplicationManager applicationManagerServiceRef =
getService(bc, CyApplicationManager.class);
CustomGraphicsManager customGraphicsManagerServiceRef =
getService(bc, CustomGraphicsManager.class);
RenderingEngineManager renderingEngineManagerServiceRef =
getService(bc, RenderingEngineManager.class);
CyRootNetworkManager cyRootNetworkFactoryServiceRef =
getService(bc, CyRootNetworkManager.class);
@@ -106,12 +107,13 @@
DVisualLexicon dVisualLexicon = new
DVisualLexicon(customGraphicsManagerServiceRef);
- ViewTaskFactoryListener vtfListener = new
ViewTaskFactoryListener();
+ NVLTFActionSupport nvltfActionSupport = new
NVLTFActionSupport(applicationManagerServiceRef,cyNetworkViewManagerServiceRef,dialogTaskManager,cyServiceRegistrarRef);
+ ViewTaskFactoryListener vtfListener = new
ViewTaskFactoryListener(nvltfActionSupport);
AnnotationFactoryManager annotationFactoryManager = new
AnnotationFactoryManager();
- DingGraphLOD dingGraphLOD = new
DingGraphLOD(cyPropertyServiceRef, applicationManagerManagerServiceRef);
+ DingGraphLOD dingGraphLOD = new
DingGraphLOD(cyPropertyServiceRef, applicationManagerServiceRef);
registerService(bc, dingGraphLOD,
PropertyUpdatedListener.class, new Properties());
DingGraphLODAll dingGraphLODAll = new DingGraphLODAll();
@@ -123,7 +125,7 @@
vtfListener, annotationFactoryManager,
dingGraphLOD);
DingNavigationRenderingEngineFactory
dingNavigationRenderingEngineFactory = new DingNavigationRenderingEngineFactory(
cyServiceRegistrarServiceRef, dVisualLexicon,
renderingEngineManagerServiceRef,
- applicationManagerManagerServiceRef);
+ applicationManagerServiceRef);
AddEdgeNodeViewTaskFactoryImpl addEdgeNodeViewTaskFactory = new
AddEdgeNodeViewTaskFactoryImpl(
cyNetworkManagerServiceRef);
@@ -218,7 +220,7 @@
registerServiceListener(bc, annotationFactoryManager,
"addAnnotationFactory", "removeAnnotationFactory",
AnnotationFactory.class);
- GraphicsDetailAction graphicsDetailAction = new
GraphicsDetailAction(applicationManagerManagerServiceRef,
+ GraphicsDetailAction graphicsDetailAction = new
GraphicsDetailAction(applicationManagerServiceRef,
cyNetworkViewManagerServiceRef,
dialogTaskManager, cyPropertyServiceRef, dingGraphLOD, dingGraphLODAll);
registerAllServices(bc, graphicsDetailAction, new Properties());
Added:
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/NVLTFActionSupport.java
===================================================================
---
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/NVLTFActionSupport.java
(rev 0)
+++
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/NVLTFActionSupport.java
2012-05-03 23:47:56 UTC (rev 29101)
@@ -0,0 +1,65 @@
+
+package org.cytoscape.ding.impl;
+
+import java.awt.geom.Point2D;
+import java.util.Map;
+import java.util.Properties;
+import java.awt.event.ActionEvent;
+
+import org.cytoscape.application.CyApplicationManager;
+import org.cytoscape.application.swing.AbstractCyAction;
+import org.cytoscape.application.swing.CyAction;
+import org.cytoscape.service.util.CyServiceRegistrar;
+import org.cytoscape.task.NetworkViewLocationTaskFactory;
+import org.cytoscape.view.model.CyNetworkView;
+import org.cytoscape.view.model.CyNetworkViewManager;
+import org.cytoscape.work.TaskManager;
+
+/**
+ * NetworkViewLocationTaskFactory Action Support.
+ */
+public class NVLTFActionSupport {
+ private final CyApplicationManager appMgr;
+ private final CyNetworkViewManager netViewMgr;
+ private final TaskManager tm;
+ private final CyServiceRegistrar registrar;
+
+ public NVLTFActionSupport(final CyApplicationManager appMgr, final
CyNetworkViewManager netViewMgr, final TaskManager
+ tm, final CyServiceRegistrar registrar) {
+ this.appMgr = appMgr;
+ this.netViewMgr = netViewMgr;
+ this.tm = tm;
+ this.registrar = registrar;
+ }
+
+ public void registerAction(NetworkViewLocationTaskFactory
nvltf,Map<String,String> props) {
+ // TODO: evaluate the properties to determine if this is something we
actually want to make an action out of?
+ CyAction action = new NVLTFAction(nvltf,props);
+ registrar.registerService(action,CyAction.class,new Properties());
+ }
+
+ private class NVLTFAction extends AbstractCyAction {
+ private static final long serialVersionUID =
6590168183571319473L;
+ private final NetworkViewLocationTaskFactory nvltf;
+
+ public NVLTFAction(NetworkViewLocationTaskFactory nvltf,
Map<String,String> props) {
+ super(props,appMgr,netViewMgr);
+ this.nvltf = nvltf;
+ }
+
+ public void actionPerformed(ActionEvent a) {
+ CyNetworkView view = appMgr.getCurrentNetworkView();
+
+ if ( !(view instanceof DGraphView) )
+ return;
+ DGraphView dgview = (DGraphView)view;
+
+ // SCOOTER START HERE
+ Point2D javaPt = new Point2D.Double(0.0,0.0);
+ Point2D xformPt = new Point2D.Double(0.0,0.0);
+ // SCOOTER END HERE
+
+ tm.execute(nvltf.createTaskIterator(view,javaPt,xformPt));
+ }
+ }
+}
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-05-03 23:23:52 UTC (rev 29100)
+++
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/ViewTaskFactoryListener.java
2012-05-03 23:47:56 UTC (rev 29101)
@@ -22,9 +22,12 @@
final Map<NetworkViewLocationTaskFactory, Map> networkViewLocationTFs;
final Map<CyNodeViewContextMenuFactory, Map>
cyNodeViewContexMenuFactory;
final Map<CyEdgeViewContextMenuFactory, Map>
cyEdgeViewContextMenuFactory;
+
+ private final NVLTFActionSupport nvltfActionSupport;
- public ViewTaskFactoryListener(){
+ public ViewTaskFactoryListener(NVLTFActionSupport nvltfActionSupport){
+ this.nvltfActionSupport = nvltfActionSupport;
viewMap = new WeakHashMap<CyNetworkView,
Reference<DGraphView>>();
nodeViewTFs = new HashMap<NodeViewTaskFactory, Map>();
edgeViewTFs = new HashMap<EdgeViewTaskFactory, Map>();
@@ -83,6 +86,7 @@
if(nvltf == null)
return;
networkViewLocationTFs.put(nvltf, props);
+ nvltfActionSupport.registerAction(nvltf,props);
}
public void
removeNetworkViewLocationTaskFactory(NetworkViewLocationTaskFactory nvltf, Map
props){
--
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.