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.