Author: kono
Date: 2012-07-25 16:09:36 -0700 (Wed, 25 Jul 2012)
New Revision: 29991

Modified:
   
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/CyActivator.java
   
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/edit/ConnectSelectedNodesEdit.java
   
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/edit/ConnectSelectedNodesTask.java
   
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/edit/ConnectSelectedNodesTaskFactoryImpl.java
Log:
fixes #1303 Connect selected nodes menu moved to node context.

Modified: 
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/CyActivator.java
===================================================================
--- 
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/CyActivator.java
  2012-07-25 23:03:57 UTC (rev 29990)
+++ 
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/CyActivator.java
  2012-07-25 23:09:36 UTC (rev 29991)
@@ -1,7 +1,27 @@
 
 package org.cytoscape.task.internal;
 
-import static org.cytoscape.work.ServiceProperties.*;
+import static org.cytoscape.work.ServiceProperties.ACCELERATOR;
+import static org.cytoscape.work.ServiceProperties.COMMAND;
+import static org.cytoscape.work.ServiceProperties.COMMAND_NAMESPACE;
+import static org.cytoscape.work.ServiceProperties.ENABLE_FOR;
+import static org.cytoscape.work.ServiceProperties.ID;
+import static org.cytoscape.work.ServiceProperties.INSERT_SEPARATOR_AFTER;
+import static org.cytoscape.work.ServiceProperties.IN_MENU_BAR;
+import static 
org.cytoscape.work.ServiceProperties.IN_NETWORK_PANEL_CONTEXT_MENU;
+import static org.cytoscape.work.ServiceProperties.IN_TOOL_BAR;
+import static org.cytoscape.work.ServiceProperties.LARGE_ICON_URL;
+import static org.cytoscape.work.ServiceProperties.MENU_GRAVITY;
+import static org.cytoscape.work.ServiceProperties.NETWORK_GROUP_MENU;
+import static org.cytoscape.work.ServiceProperties.NETWORK_SELECT_MENU;
+import static org.cytoscape.work.ServiceProperties.NODE_EDIT_MENU;
+import static org.cytoscape.work.ServiceProperties.NODE_GROUP_MENU;
+import static org.cytoscape.work.ServiceProperties.NODE_SELECT_MENU;
+import static org.cytoscape.work.ServiceProperties.PREFERRED_ACTION;
+import static org.cytoscape.work.ServiceProperties.PREFERRED_MENU;
+import static org.cytoscape.work.ServiceProperties.TITLE;
+import static org.cytoscape.work.ServiceProperties.TOOLTIP;
+import static org.cytoscape.work.ServiceProperties.TOOL_BAR_GRAVITY;
 
 import java.util.Properties;
 
@@ -55,8 +75,8 @@
 import org.cytoscape.task.edit.EditNetworkTitleTaskFactory;
 import org.cytoscape.task.edit.ExpandGroupTaskFactory;
 import org.cytoscape.task.edit.GroupNodesTaskFactory;
+import org.cytoscape.task.edit.MapGlobalToLocalTableTaskFactory;
 import org.cytoscape.task.edit.MapTableToNetworkTablesTaskFactory;
-import org.cytoscape.task.edit.MapGlobalToLocalTableTaskFactory;
 import org.cytoscape.task.edit.RenameColumnTaskFactory;
 import org.cytoscape.task.edit.UnGroupNodesTaskFactory;
 import org.cytoscape.task.edit.UnGroupTaskFactory;
@@ -116,8 +136,8 @@
 import 
org.cytoscape.task.internal.table.CopyValueToEntireColumnTaskFactoryImpl;
 import org.cytoscape.task.internal.table.DeleteColumnTaskFactoryImpl;
 import org.cytoscape.task.internal.table.DeleteTableTaskFactoryImpl;
+import org.cytoscape.task.internal.table.MapGlobalToLocalTableTaskFactoryImpl;
 import 
org.cytoscape.task.internal.table.MapTableToNetworkTablesTaskFactoryImpl;
-import org.cytoscape.task.internal.table.MapGlobalToLocalTableTaskFactoryImpl;
 import org.cytoscape.task.internal.table.RenameColumnTaskFactoryImpl;
 import org.cytoscape.task.internal.table.UpdateAddedNetworkAttributes;
 import org.cytoscape.task.internal.title.EditNetworkTitleTaskFactoryImpl;
@@ -159,7 +179,6 @@
 import org.cytoscape.view.model.CyNetworkViewManager;
 import org.cytoscape.view.vizmap.VisualMappingManager;
 import org.cytoscape.work.SynchronousTaskManager;
-import org.cytoscape.work.Task;
 import org.cytoscape.work.TaskFactory;
 import org.cytoscape.work.TunableSetter;
 import org.cytoscape.work.undo.UndoSupport;
@@ -265,7 +284,7 @@
                CopyValueToEntireColumnTaskFactoryImpl 
copyValueToEntireColumnTaskFactory = new 
CopyValueToEntireColumnTaskFactoryImpl(undoSupportServiceRef);
                DeleteTableTaskFactoryImpl deleteTableTaskFactory = new 
DeleteTableTaskFactoryImpl(cyTableManagerServiceRef);
                ExportVizmapTaskFactoryImpl exportVizmapTaskFactory = new 
ExportVizmapTaskFactoryImpl(vizmapWriterManagerServiceRef,visualMappingManagerServiceRef,
 tunableSetterServiceRef);
-               ConnectSelectedNodesTaskFactoryImpl 
connectSelectedNodesTaskFactory = new 
ConnectSelectedNodesTaskFactoryImpl(undoSupportServiceRef,cyEventHelperRef,visualMappingManagerServiceRef,cyNetworkViewManagerServiceRef);
+               ConnectSelectedNodesTaskFactoryImpl 
connectSelectedNodesTaskFactory = new 
ConnectSelectedNodesTaskFactoryImpl(undoSupportServiceRef, cyEventHelperRef, 
visualMappingManagerServiceRef, cyNetworkViewManagerServiceRef);
                MapGlobalToLocalTableTaskFactoryImpl mapGlobal = new 
MapGlobalToLocalTableTaskFactoryImpl(cyTableManagerServiceRef, 
cyNetworkManagerServiceRef, tunableSetterServiceRef);
                
                DynamicTaskFactoryProvisionerImpl 
dynamicTaskFactoryProvisionerImpl = new 
DynamicTaskFactoryProvisionerImpl(cyApplicationManagerServiceRef);
@@ -927,15 +946,22 @@
                
registerService(bc,deleteTableTaskFactory,TableTaskFactory.class, new 
Properties());
                
registerService(bc,deleteTableTaskFactory,DeleteTableTaskFactory.class, new 
Properties());
 
+               // Register as 3 types of service.
                Properties connectSelectedNodesTaskFactoryProps = new 
Properties();
-               
connectSelectedNodesTaskFactoryProps.setProperty(PREFERRED_MENU,"Edit");
-               
connectSelectedNodesTaskFactoryProps.setProperty(ENABLE_FOR,"network");
-               
connectSelectedNodesTaskFactoryProps.setProperty(TOOL_BAR_GRAVITY,"2.5");
-               connectSelectedNodesTaskFactoryProps.setProperty(TITLE,"Connect 
Selected Nodes");
-               
connectSelectedNodesTaskFactoryProps.setProperty(COMMAND,"connect-selected-nodes");
-               
connectSelectedNodesTaskFactoryProps.setProperty(COMMAND_NAMESPACE,"network");
-               
registerService(bc,connectSelectedNodesTaskFactory,NetworkTaskFactory.class, 
connectSelectedNodesTaskFactoryProps);
-               
registerService(bc,connectSelectedNodesTaskFactory,ConnectSelectedNodesTaskFactory.class,
 connectSelectedNodesTaskFactoryProps);
+               
connectSelectedNodesTaskFactoryProps.setProperty(IN_MENU_BAR,"false");
+               
connectSelectedNodesTaskFactoryProps.setProperty(IN_TOOL_BAR,"false");
+               
connectSelectedNodesTaskFactoryProps.setProperty(PREFERRED_ACTION, "NEW");
+               
connectSelectedNodesTaskFactoryProps.setProperty(PREFERRED_MENU, 
NODE_EDIT_MENU);
+               connectSelectedNodesTaskFactoryProps.setProperty(MENU_GRAVITY, 
"0.9");
+               connectSelectedNodesTaskFactoryProps.setProperty(TITLE, 
"Connect Selected Nodes with Undirected Edges");
+               connectSelectedNodesTaskFactoryProps.setProperty(COMMAND, 
"connect-selected-nodes");
+               
connectSelectedNodesTaskFactoryProps.setProperty(COMMAND_NAMESPACE, "network");
+//             registerService(bc, connectSelectedNodesTaskFactory, 
NetworkTaskFactory.class,
+//                             connectSelectedNodesTaskFactoryProps);
+               registerService(bc, connectSelectedNodesTaskFactory, 
NodeViewTaskFactory.class,
+                               connectSelectedNodesTaskFactoryProps);
+               registerService(bc, connectSelectedNodesTaskFactory, 
ConnectSelectedNodesTaskFactory.class,
+                               connectSelectedNodesTaskFactoryProps);
 
                GroupNodesTaskFactoryImpl groupNodesTaskFactory = 
                        new GroupNodesTaskFactoryImpl(cyGroupManager, 
cyGroupFactory);

Modified: 
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/edit/ConnectSelectedNodesEdit.java
===================================================================
--- 
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/edit/ConnectSelectedNodesEdit.java
        2012-07-25 23:03:57 UTC (rev 29990)
+++ 
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/edit/ConnectSelectedNodesEdit.java
        2012-07-25 23:09:36 UTC (rev 29991)
@@ -1,20 +1,20 @@
 package org.cytoscape.task.internal.edit;
 
-
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.List;
 
-import org.cytoscape.work.undo.AbstractCyEdit;
 import org.cytoscape.model.CyEdge;
-import org.cytoscape.model.CyEdge.Type;
 import org.cytoscape.model.CyNetwork;
 import org.cytoscape.model.CyNode;
-import org.cytoscape.model.CyIdentifiable;
+import org.cytoscape.work.undo.AbstractCyEdit;
 
-
-/** An undoable edit that will undo and redo the connecting of selected nodes. 
*/
+/**
+ * An undoable edit that will undo and redo the connecting of selected nodes.
+ * 
+ * */
 final class ConnectSelectedNodesEdit extends AbstractCyEdit {
+
        private final CyNetwork network;
        private Collection<CyEdge> edges;
 
@@ -22,31 +22,30 @@
                super("Connect Selected Nodes");
 
                this.network = network;
-               this.edges   = edges;
+               this.edges = edges;
        }
 
+       @Override
        public void redo() {
-               ;
 
                final List<CyEdge> newEdges = new 
ArrayList<CyEdge>(edges.size());
                for (final CyEdge edge : edges) {
                        final CyNode source = edge.getSource();
                        final CyNode target = edge.getTarget();
-                       final CyEdge newEdge = network.addEdge(source, target, 
/* isDirected = */ false);
-                       network.getRow(newEdge).set(CyNetwork.NAME,
-                                              
network.getRow(source).get(CyNetwork.NAME, String.class)
-                                              + " (" + 
ConnectSelectedNodesTask.INTERACTION + ") "
-                                              + 
network.getRow(target).get(CyNetwork.NAME, String.class));
+                       final CyEdge newEdge = network.addEdge(source, target, 
false);
+                       network.getRow(newEdge).set(
+                                       CyNetwork.NAME,
+                                       
network.getRow(source).get(CyNetwork.NAME, String.class) + " ("
+                                                       + 
ConnectSelectedNodesTask.INTERACTION + ") "
+                                                       + 
network.getRow(target).get(CyNetwork.NAME, String.class));
                        network.getRow(newEdge).set(CyEdge.INTERACTION, 
ConnectSelectedNodesTask.INTERACTION);
                        newEdges.add(newEdge);
                }
-
                edges = newEdges;
        }
 
+       @Override
        public void undo() {
-               ;
-
                network.removeEdges(edges);
        }
 }

Modified: 
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/edit/ConnectSelectedNodesTask.java
===================================================================
--- 
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/edit/ConnectSelectedNodesTask.java
        2012-07-25 23:03:57 UTC (rev 29990)
+++ 
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/edit/ConnectSelectedNodesTask.java
        2012-07-25 23:09:36 UTC (rev 29991)
@@ -1,6 +1,5 @@
 package org.cytoscape.task.internal.edit;
 
-
 import java.util.ArrayList;
 import java.util.List;
 
@@ -9,8 +8,6 @@
 import org.cytoscape.model.CyEdge.Type;
 import org.cytoscape.model.CyNetwork;
 import org.cytoscape.model.CyNode;
-import org.cytoscape.model.CyTable;
-import org.cytoscape.model.CyIdentifiable;
 import org.cytoscape.model.CyTableUtil;
 import org.cytoscape.view.model.CyNetworkView;
 import org.cytoscape.view.model.CyNetworkViewManager;
@@ -20,26 +17,24 @@
 import org.cytoscape.work.TaskMonitor;
 import org.cytoscape.work.undo.UndoSupport;
 
-
 public class ConnectSelectedNodesTask extends AbstractTask {
+
        // TODO: is it sufficient to create undirected edge only?
        static final String INTERACTION = "undirected";
+
        private final UndoSupport undoSupport;
        private final CyNetwork network;
        private final CyEventHelper eventHelper;
        private final VisualMappingManager vmm;
        private final CyNetworkViewManager netViewMgr;
 
-       public ConnectSelectedNodesTask(final UndoSupport undoSupport,
-                                                                       final 
CyNetwork network,
-                                                                       final 
CyEventHelper eventHelper,
-                                                                       final 
VisualMappingManager vmm,
-                                                                       final 
CyNetworkViewManager netViewMgr) {
+       public ConnectSelectedNodesTask(final UndoSupport undoSupport, final 
CyNetwork network,
+                       final CyEventHelper eventHelper, final 
VisualMappingManager vmm, final CyNetworkViewManager netViewMgr) {
                this.undoSupport = undoSupport;
-               
+
                if (network == null)
                        throw new NullPointerException("Network is null.");
-               
+
                this.network = network;
                this.eventHelper = eventHelper;
                this.vmm = vmm;
@@ -49,8 +44,9 @@
        @Override
        public void run(TaskMonitor taskMonitor) throws Exception {
                taskMonitor.setProgress(0.0);
-               final CyTable nodeTable = network.getDefaultNodeTable();
-               final CyTable edgeTable = network.getDefaultEdgeTable();
+               taskMonitor.setTitle("Connectiong Selected Nodes");
+               taskMonitor.setStatusMessage("Connecting nodes.  Please 
wait...");
+               
                final List<CyNode> selectedNodes = 
CyTableUtil.getNodesInState(network, CyNetwork.SELECTED, true);
 
                taskMonitor.setProgress(0.1);
@@ -86,13 +82,13 @@
 
                // Apply visual style
                eventHelper.flushPayloadEvents(); // To make sure the edge 
views are created before applying the style
-               
+
                for (final CyNetworkView view : 
netViewMgr.getNetworkViews(network)) {
                        VisualStyle vs = vmm.getVisualStyle(view);
                        vs.apply(view);
                        view.updateView();
                }
-               
+
                taskMonitor.setProgress(1.0);
        }
 }

Modified: 
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/edit/ConnectSelectedNodesTaskFactoryImpl.java
===================================================================
--- 
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/edit/ConnectSelectedNodesTaskFactoryImpl.java
     2012-07-25 23:03:57 UTC (rev 29990)
+++ 
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/edit/ConnectSelectedNodesTaskFactoryImpl.java
     2012-07-25 23:09:36 UTC (rev 29991)
@@ -1,26 +1,28 @@
 package org.cytoscape.task.internal.edit;
 
-
 import org.cytoscape.event.CyEventHelper;
 import org.cytoscape.model.CyNetwork;
+import org.cytoscape.model.CyNode;
 import org.cytoscape.task.AbstractNetworkTaskFactory;
+import org.cytoscape.task.NodeViewTaskFactory;
 import org.cytoscape.task.edit.ConnectSelectedNodesTaskFactory;
+import org.cytoscape.view.model.CyNetworkView;
 import org.cytoscape.view.model.CyNetworkViewManager;
+import org.cytoscape.view.model.View;
 import org.cytoscape.view.vizmap.VisualMappingManager;
 import org.cytoscape.work.TaskIterator;
 import org.cytoscape.work.undo.UndoSupport;
 
-
-public class ConnectSelectedNodesTaskFactoryImpl extends 
AbstractNetworkTaskFactory implements ConnectSelectedNodesTaskFactory{
+public class ConnectSelectedNodesTaskFactoryImpl extends 
AbstractNetworkTaskFactory implements
+               ConnectSelectedNodesTaskFactory, NodeViewTaskFactory {
+       
        private final UndoSupport undoSupport;
        private final CyEventHelper eventHelper;
        private final VisualMappingManager vmm;
        private final CyNetworkViewManager netViewMgr;
 
-       public ConnectSelectedNodesTaskFactoryImpl(final UndoSupport 
undoSupport,
-                                                                               
           final CyEventHelper eventHelper,
-                                                                               
           final VisualMappingManager vmm,
-                                                                               
           final CyNetworkViewManager netViewMgr) {
+       public ConnectSelectedNodesTaskFactoryImpl(final UndoSupport 
undoSupport, final CyEventHelper eventHelper,
+                       final VisualMappingManager vmm, final 
CyNetworkViewManager netViewMgr) {
                this.undoSupport = undoSupport;
                this.eventHelper = eventHelper;
                this.vmm = vmm;
@@ -31,4 +33,17 @@
        public TaskIterator createTaskIterator(final CyNetwork network) {
                return new TaskIterator(new 
ConnectSelectedNodesTask(undoSupport, network, eventHelper, vmm, netViewMgr));
        }
+
+       /**
+        * This is for registering this to node context menu
+        */
+       @Override
+       public TaskIterator createTaskIterator(View<CyNode> nodeView, 
CyNetworkView networkView) {
+               return new TaskIterator(new 
ConnectSelectedNodesTask(undoSupport, networkView.getModel(), eventHelper, vmm, 
netViewMgr));
+       }
+
+       @Override
+       public boolean isReady(View<CyNode> nodeView, CyNetworkView 
networkView) {
+               return nodeView != null && networkView != null;
+       }
 }

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