Author: ruschein
Date: 2011-08-01 15:15:51 -0700 (Mon, 01 Aug 2011)
New Revision: 26347
Added:
core3/core-task-impl/trunk/src/main/java/org/cytoscape/task/internal/creation/CreateNetworkViewEdit.java
Modified:
core3/core-task-impl/trunk/src/main/java/org/cytoscape/task/internal/creation/AbstractNetworkFromSelectionTask.java
core3/core-task-impl/trunk/src/main/java/org/cytoscape/task/internal/creation/CreateNetworkViewTask.java
core3/core-task-impl/trunk/src/main/java/org/cytoscape/task/internal/creation/CreateNetworkViewTaskFactory.java
core3/core-task-impl/trunk/src/main/java/org/cytoscape/task/internal/creation/NewNetworkSelectedNodesEdgesTask.java
core3/core-task-impl/trunk/src/main/java/org/cytoscape/task/internal/creation/NewNetworkSelectedNodesEdgesTaskFactory.java
core3/core-task-impl/trunk/src/main/java/org/cytoscape/task/internal/creation/NewNetworkSelectedNodesOnlyTask.java
core3/core-task-impl/trunk/src/main/java/org/cytoscape/task/internal/creation/NewNetworkSelectedNodesOnlyTaskFactory.java
core3/core-task-impl/trunk/src/main/java/org/cytoscape/task/internal/quickstart/subnetworkbuilder/SubnetworkBuilderUtil.java
core3/core-task-impl/trunk/src/main/resources/META-INF/spring/bundle-context.xml
core3/core-task-impl/trunk/src/test/java/org/cytoscape/task/internal/creation/CreateNetworkViewTaskTest.java
core3/core-task-impl/trunk/src/test/java/org/cytoscape/task/internal/creation/NewNetworkSelectedNodesEdgesTaskTest.java
core3/core-task-impl/trunk/src/test/java/org/cytoscape/task/internal/creation/NewNetworkSelectedNodesOnlyTaskTest.java
Log:
Added undo/redo support for the creation of a network view.
Modified:
core3/core-task-impl/trunk/src/main/java/org/cytoscape/task/internal/creation/AbstractNetworkFromSelectionTask.java
===================================================================
---
core3/core-task-impl/trunk/src/main/java/org/cytoscape/task/internal/creation/AbstractNetworkFromSelectionTask.java
2011-08-01 16:21:54 UTC (rev 26346)
+++
core3/core-task-impl/trunk/src/main/java/org/cytoscape/task/internal/creation/AbstractNetworkFromSelectionTask.java
2011-08-01 22:15:51 UTC (rev 26347)
@@ -1,7 +1,7 @@
/*
File: AbstractNetworkFromSelectionTask.java
- Copyright (c) 2006, 2010, The Cytoscape Consortium (www.cytoscape.org)
+ Copyright (c) 2006, 2010-2011, The Cytoscape Consortium (www.cytoscape.org)
This library is free software; you can redistribute it and/or modify it
under the terms of the GNU Lesser General Public License as published
@@ -26,12 +26,14 @@
You should have received a copy of the GNU Lesser General Public License
along with this library; if not, write to the Free Software Foundation,
Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
- */
+*/
package org.cytoscape.task.internal.creation;
+
import java.util.Collection;
import java.util.List;
+import org.cytoscape.event.CyEventHelper;
import org.cytoscape.model.CyEdge;
import org.cytoscape.model.CyNetwork;
import org.cytoscape.model.CyNetworkManager;
@@ -50,25 +52,38 @@
import org.cytoscape.view.vizmap.VisualMappingManager;
import org.cytoscape.view.vizmap.VisualStyle;
import org.cytoscape.work.TaskMonitor;
+import org.cytoscape.work.undo.UndoSupport;
+
abstract class AbstractNetworkFromSelectionTask extends AbstractCreationTask {
-
+ private final UndoSupport undoSupport;
protected final CyRootNetworkFactory rootNetworkFactory;
protected final CyNetworkViewFactory viewFactory;
protected final VisualMappingManager vmm;
protected final CyNetworkNaming cyNetworkNaming;
protected final CyApplicationManager appManager;
+ private final CyEventHelper eventHelper;
- public AbstractNetworkFromSelectionTask(final CyNetwork parentNetwork,
- final CyRootNetworkFactory rootNetworkFactory, final
CyNetworkViewFactory viewFactory,
- final CyNetworkManager netmgr, final
CyNetworkViewManager networkViewManager,
- final CyNetworkNaming cyNetworkNaming, final
VisualMappingManager vmm, final CyApplicationManager appManager) {
+ public AbstractNetworkFromSelectionTask(final UndoSupport undoSupport,
+ final CyNetwork parentNetwork,
+ final CyRootNetworkFactory
rootNetworkFactory,
+ final CyNetworkViewFactory
viewFactory,
+ final CyNetworkManager netmgr,
+ final CyNetworkViewManager
networkViewManager,
+ final CyNetworkNaming
cyNetworkNaming,
+ final VisualMappingManager vmm,
+ final CyApplicationManager
appManager,
+ final CyEventHelper eventHelper)
+ {
super(parentNetwork, netmgr, networkViewManager);
+
+ this.undoSupport = undoSupport;
this.rootNetworkFactory = rootNetworkFactory;
- this.viewFactory = viewFactory;
- this.cyNetworkNaming = cyNetworkNaming;
- this.vmm = vmm;
- this.appManager = appManager;
+ this.viewFactory = viewFactory;
+ this.cyNetworkNaming = cyNetworkNaming;
+ this.vmm = vmm;
+ this.appManager = appManager;
+ this.eventHelper = eventHelper;
}
abstract Collection<CyEdge> getEdges(CyNetwork netx, List<CyNode>
nodes);
@@ -104,8 +119,9 @@
if (curView == null) {
// Create view for the new network.
- final CreateNetworkViewTask createViewTask = new
CreateNetworkViewTask(newNet, viewFactory,
- networkViewManager, null);
+ final CreateNetworkViewTask createViewTask =
+ new CreateNetworkViewTask(undoSupport, newNet,
viewFactory,
+ networkViewManager,
null, eventHelper);
insertTasksAfterCurrentTask(createViewTask);
appManager.setCurrentNetworkView(newNet.getSUID());
Copied:
core3/core-task-impl/trunk/src/main/java/org/cytoscape/task/internal/creation/CreateNetworkViewEdit.java
(from rev 26338,
core3/core-task-impl/trunk/src/main/java/org/cytoscape/task/internal/title/NetworkTitleEdit.java)
===================================================================
---
core3/core-task-impl/trunk/src/main/java/org/cytoscape/task/internal/creation/CreateNetworkViewEdit.java
(rev 0)
+++
core3/core-task-impl/trunk/src/main/java/org/cytoscape/task/internal/creation/CreateNetworkViewEdit.java
2011-08-01 22:15:51 UTC (rev 26347)
@@ -0,0 +1,105 @@
+package org.cytoscape.task.internal.creation;
+
+
+import static
org.cytoscape.view.presentation.property.MinimalVisualLexicon.NETWORK_SCALE_FACTOR;
+import static
org.cytoscape.view.presentation.property.MinimalVisualLexicon.NODE_X_LOCATION;
+import static
org.cytoscape.view.presentation.property.MinimalVisualLexicon.NODE_Y_LOCATION;
+import static
org.cytoscape.view.presentation.property.RichVisualLexicon.NODE_Z_LOCATION;
+import static
org.cytoscape.view.presentation.property.MinimalVisualLexicon.NETWORK_CENTER_X_LOCATION;
+import static
org.cytoscape.view.presentation.property.MinimalVisualLexicon.NETWORK_CENTER_Y_LOCATION;
+import static
org.cytoscape.view.presentation.property.RichVisualLexicon.NETWORK_CENTER_Z_LOCATION;
+
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.cytoscape.event.CyEventHelper;
+import org.cytoscape.model.CyNetwork;
+import org.cytoscape.model.CyNode;
+import org.cytoscape.view.model.CyNetworkView;
+import org.cytoscape.view.model.CyNetworkViewFactory;
+import org.cytoscape.view.model.CyNetworkViewManager;
+import org.cytoscape.view.model.View;
+import org.cytoscape.util.swing.CyAbstractEdit;
+
+
+/** An undoable edit that will undo and redo the creation of a network view.
*/
+final class CreateNetworkViewEdit extends CyAbstractEdit {
+ private final CyEventHelper eventHelper;
+ private final CyNetwork network;
+ private final CyNetworkViewFactory viewFactory;
+ private final CyNetworkViewManager networkViewManager;
+ private Map<CyNode, NodeLocations> nodesAndLocations;
+ private double networkCenterX;
+ private double networkCenterY;
+ private double networkCenterZ;
+ private double networkScaleFactor;
+
+ CreateNetworkViewEdit(final CyEventHelper eventHelper, final CyNetwork
network,
+ final CyNetworkViewFactory viewFactory,
+ final CyNetworkViewManager networkViewManager)
+ {
+ super("Create Network View");
+
+ this.eventHelper = eventHelper;
+ this.network = network;
+ this.viewFactory = viewFactory;
+ this.networkViewManager = networkViewManager;
+ }
+
+ public void redo() {
+ super.redo();
+
+ final CyNetworkView view =
+ viewFactory.getNetworkView(network, /* useThreshold =
*/ false);
+ networkViewManager.addNetworkView(view);
+
+ for (final View<CyNode> nodeView : view.getNodeViews())
+
nodesAndLocations.get(nodeView.getModel()).restoreLocations(nodeView);
+
+ view.setVisualProperty(NETWORK_CENTER_X_LOCATION,
networkCenterX);
+ view.setVisualProperty(NETWORK_CENTER_Y_LOCATION,
networkCenterY);
+ view.setVisualProperty(NETWORK_CENTER_Z_LOCATION,
networkCenterZ);
+ view.setVisualProperty(NETWORK_SCALE_FACTOR,
networkScaleFactor);
+
+ eventHelper.flushPayloadEvents();
+ view.updateView();
+ }
+
+ public void undo() {
+ super.undo();
+
+ final CyNetworkView view =
networkViewManager.getNetworkView(network.getSUID());
+
+ networkCenterX =
view.getVisualProperty(NETWORK_CENTER_X_LOCATION);
+ networkCenterY =
view.getVisualProperty(NETWORK_CENTER_Y_LOCATION);
+ networkCenterZ =
view.getVisualProperty(NETWORK_CENTER_Z_LOCATION);
+ networkScaleFactor =
view.getVisualProperty(NETWORK_SCALE_FACTOR);
+
+ final Collection<View<CyNode>> nodeViews = view.getNodeViews();
+ nodesAndLocations = new HashMap<CyNode,
NodeLocations>(nodeViews.size());
+ for (final View<CyNode> nodeView : nodeViews)
+ nodesAndLocations.put(nodeView.getModel(), new
NodeLocations(nodeView));
+
+ networkViewManager.destroyNetworkView(view);
+ }
+}
+
+
+final class NodeLocations {
+ private final double xLocation;
+ private final double yLocation;
+ private final double zLocation;
+
+ NodeLocations(final View<CyNode> nodeView) {
+ xLocation = nodeView.getVisualProperty(NODE_X_LOCATION);
+ yLocation = nodeView.getVisualProperty(NODE_Y_LOCATION);
+ zLocation = nodeView.getVisualProperty(NODE_Z_LOCATION);
+ }
+
+ void restoreLocations(final View<CyNode> nodeView) {
+ nodeView.setVisualProperty(NODE_X_LOCATION, xLocation);
+ nodeView.setVisualProperty(NODE_Y_LOCATION, yLocation);
+ nodeView.setVisualProperty(NODE_Z_LOCATION, zLocation);
+ }
+}
Modified:
core3/core-task-impl/trunk/src/main/java/org/cytoscape/task/internal/creation/CreateNetworkViewTask.java
===================================================================
---
core3/core-task-impl/trunk/src/main/java/org/cytoscape/task/internal/creation/CreateNetworkViewTask.java
2011-08-01 16:21:54 UTC (rev 26346)
+++
core3/core-task-impl/trunk/src/main/java/org/cytoscape/task/internal/creation/CreateNetworkViewTask.java
2011-08-01 22:15:51 UTC (rev 26347)
@@ -1,7 +1,7 @@
/*
File: CreateNetworkViewTask.java
- Copyright (c) 2006, 2010, The Cytoscape Consortium (www.cytoscape.org)
+ Copyright (c) 2006, 2010-2011, The Cytoscape Consortium (www.cytoscape.org)
This library is free software; you can redistribute it and/or modify it
under the terms of the GNU Lesser General Public License as published
@@ -26,9 +26,11 @@
You should have received a copy of the GNU Lesser General Public License
along with this library; if not, write to the Free Software Foundation,
Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
- */
+*/
package org.cytoscape.task.internal.creation;
+
+import org.cytoscape.event.CyEventHelper;
import org.cytoscape.model.CyNetwork;
import org.cytoscape.model.CyTableEntry;
import org.cytoscape.task.AbstractNetworkTask;
@@ -38,21 +40,29 @@
import org.cytoscape.view.model.CyNetworkViewFactory;
import org.cytoscape.view.model.CyNetworkViewManager;
import org.cytoscape.work.TaskMonitor;
+import org.cytoscape.work.undo.UndoSupport;
+
public class CreateNetworkViewTask extends AbstractNetworkTask {
-
+ private final UndoSupport undoSupport;
private final CyNetworkViewManager networkViewManager;
private final CyNetworkViewFactory viewFactory;
-
private final CyLayoutAlgorithmManager layouts;
+ private final CyEventHelper eventHelper;
- public CreateNetworkViewTask(final CyNetwork networkModel, final
CyNetworkViewFactory viewFactory,
- final CyNetworkViewManager networkViewManager,
- final CyLayoutAlgorithmManager layouts) {
+ public CreateNetworkViewTask(final UndoSupport undoSupport, final
CyNetwork networkModel,
+ final CyNetworkViewFactory viewFactory,
+ final CyNetworkViewManager
networkViewManager,
+ final CyLayoutAlgorithmManager layouts,
+ final CyEventHelper eventHelper)
+ {
super(networkModel);
- this.viewFactory = viewFactory;
+
+ this.undoSupport = undoSupport;
+ this.viewFactory = viewFactory;
this.networkViewManager = networkViewManager;
- this.layouts = layouts;
+ this.layouts = layouts;
+ this.eventHelper = eventHelper;
}
public void run(TaskMonitor taskMonitor) throws Exception {
@@ -66,12 +76,18 @@
networkViewManager.addNetworkView(view);
// Apply layout only when it is necessary.
- if(layouts != null)
- this.insertTasksAfterCurrentTask(new
ApplyPreferredLayoutTask(view, layouts));
+ if (layouts != null)
+ insertTasksAfterCurrentTask(new
ApplyPreferredLayoutTask(view, layouts));
+
} catch (Exception e) {
throw new Exception("Could not create network view for
network: "
- +
network.getCyRow().get(CyTableEntry.NAME, String.class), e);
+ + network.getCyRow().get(CyTableEntry.NAME,
String.class), e);
}
+
+ if (undoSupport != null)
+ undoSupport.getUndoableEditSupport().postEdit(
+ new CreateNetworkViewEdit(eventHelper, network,
viewFactory,
+ networkViewManager));
taskMonitor.setProgress(1.0);
taskMonitor.setStatusMessage("Network view successfully create
for: "
Modified:
core3/core-task-impl/trunk/src/main/java/org/cytoscape/task/internal/creation/CreateNetworkViewTaskFactory.java
===================================================================
---
core3/core-task-impl/trunk/src/main/java/org/cytoscape/task/internal/creation/CreateNetworkViewTaskFactory.java
2011-08-01 16:21:54 UTC (rev 26346)
+++
core3/core-task-impl/trunk/src/main/java/org/cytoscape/task/internal/creation/CreateNetworkViewTaskFactory.java
2011-08-01 22:15:51 UTC (rev 26347)
@@ -1,7 +1,7 @@
/*
File: CreateNetworkViewTaskFactory.java
- Copyright (c) 2006, 2010, The Cytoscape Consortium (www.cytoscape.org)
+ Copyright (c) 2006, 2010-2011, The Cytoscape Consortium (www.cytoscape.org)
This library is free software; you can redistribute it and/or modify it
under the terms of the GNU Lesser General Public License as published
@@ -26,31 +26,42 @@
You should have received a copy of the GNU Lesser General Public License
along with this library; if not, write to the Free Software Foundation,
Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
- */
+*/
package org.cytoscape.task.internal.creation;
+
+import org.cytoscape.event.CyEventHelper;
import org.cytoscape.task.AbstractNetworkTaskFactory;
import org.cytoscape.view.layout.CyLayoutAlgorithmManager;
import org.cytoscape.view.model.CyNetworkViewFactory;
import org.cytoscape.view.model.CyNetworkViewManager;
import org.cytoscape.work.TaskIterator;
+import org.cytoscape.work.undo.UndoSupport;
+
public class CreateNetworkViewTaskFactory extends AbstractNetworkTaskFactory {
-
+ private final UndoSupport undoSupport;
private final CyNetworkViewManager networkViewManager;
private final CyNetworkViewFactory viewFactory;
-
private final CyLayoutAlgorithmManager layouts;
+ private final CyEventHelper eventHelper;
- CreateNetworkViewTaskFactory(final CyNetworkViewFactory viewFactory,
final CyNetworkViewManager networkViewManager,
- final CyLayoutAlgorithmManager layouts) {
- super();
- this.viewFactory = viewFactory;
+ CreateNetworkViewTaskFactory(final UndoSupport undoSupport,
+ final CyNetworkViewFactory viewFactory,
+ final CyNetworkViewManager
networkViewManager,
+ final CyLayoutAlgorithmManager layouts,
+ final CyEventHelper eventHelper)
+ {
+ this.undoSupport = undoSupport;
+ this.viewFactory = viewFactory;
this.networkViewManager = networkViewManager;
- this.layouts = layouts;
+ this.layouts = layouts;
+ this.eventHelper = eventHelper;
}
public TaskIterator getTaskIterator() {
- return new TaskIterator(new CreateNetworkViewTask(network,
viewFactory, networkViewManager, layouts));
+ return new TaskIterator(new CreateNetworkViewTask(undoSupport,
network, viewFactory,
+
networkViewManager, layouts,
+ eventHelper));
}
}
Modified:
core3/core-task-impl/trunk/src/main/java/org/cytoscape/task/internal/creation/NewNetworkSelectedNodesEdgesTask.java
===================================================================
---
core3/core-task-impl/trunk/src/main/java/org/cytoscape/task/internal/creation/NewNetworkSelectedNodesEdgesTask.java
2011-08-01 16:21:54 UTC (rev 26346)
+++
core3/core-task-impl/trunk/src/main/java/org/cytoscape/task/internal/creation/NewNetworkSelectedNodesEdgesTask.java
2011-08-01 22:15:51 UTC (rev 26347)
@@ -1,7 +1,7 @@
/*
File: NewNetworkSelectedNodesEdgesTask.java
- Copyright (c) 2006, 2010, The Cytoscape Consortium (www.cytoscape.org)
+ Copyright (c) 2006, 2010-2011, The Cytoscape Consortium (www.cytoscape.org)
This library is free software; you can redistribute it and/or modify it
under the terms of the GNU Lesser General Public License as published
@@ -26,12 +26,14 @@
You should have received a copy of the GNU Lesser General Public License
along with this library; if not, write to the Free Software Foundation,
Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
- */
+*/
package org.cytoscape.task.internal.creation;
+
import java.util.Collection;
import java.util.List;
+import org.cytoscape.event.CyEventHelper;
import org.cytoscape.model.CyEdge;
import org.cytoscape.model.CyNetwork;
import org.cytoscape.model.CyNetworkManager;
@@ -43,14 +45,22 @@
import org.cytoscape.view.model.CyNetworkViewFactory;
import org.cytoscape.view.model.CyNetworkViewManager;
import org.cytoscape.view.vizmap.VisualMappingManager;
+import org.cytoscape.work.undo.UndoSupport;
+
public class NewNetworkSelectedNodesEdgesTask extends
AbstractNetworkFromSelectionTask {
-
- public NewNetworkSelectedNodesEdgesTask(final CyNetwork net, final
CyRootNetworkFactory cyroot,
- final CyNetworkViewFactory cnvf, final CyNetworkManager
netmgr,
- final CyNetworkViewManager networkViewManager, final
CyNetworkNaming cyNetworkNaming,
- final VisualMappingManager vmm, final
CyApplicationManager appManager) {
- super(net, cyroot, cnvf, netmgr, networkViewManager,
cyNetworkNaming, vmm, appManager);
+ public NewNetworkSelectedNodesEdgesTask(final UndoSupport undoSupport,
final CyNetwork net,
+ final CyRootNetworkFactory
cyroot,
+ final CyNetworkViewFactory cnvf,
+ final CyNetworkManager netmgr,
+ final CyNetworkViewManager
networkViewManager,
+ final CyNetworkNaming
cyNetworkNaming,
+ final VisualMappingManager vmm,
+ final CyApplicationManager
appManager,
+ final CyEventHelper eventHelper)
+ {
+ super(undoSupport, net, cyroot, cnvf, netmgr,
networkViewManager, cyNetworkNaming,
+ vmm, appManager, eventHelper);
}
Collection<CyEdge> getEdges(CyNetwork netx, List<CyNode> nodes) {
Modified:
core3/core-task-impl/trunk/src/main/java/org/cytoscape/task/internal/creation/NewNetworkSelectedNodesEdgesTaskFactory.java
===================================================================
---
core3/core-task-impl/trunk/src/main/java/org/cytoscape/task/internal/creation/NewNetworkSelectedNodesEdgesTaskFactory.java
2011-08-01 16:21:54 UTC (rev 26346)
+++
core3/core-task-impl/trunk/src/main/java/org/cytoscape/task/internal/creation/NewNetworkSelectedNodesEdgesTaskFactory.java
2011-08-01 22:15:51 UTC (rev 26347)
@@ -1,7 +1,7 @@
/*
File: NewNetworkSelectedNodesEdgesTaskFactory.java
- Copyright (c) 2006, 2010, The Cytoscape Consortium (www.cytoscape.org)
+ Copyright (c) 2006, 2010-2011, The Cytoscape Consortium (www.cytoscape.org)
This library is free software; you can redistribute it and/or modify it
under the terms of the GNU Lesser General Public License as published
@@ -26,9 +26,11 @@
You should have received a copy of the GNU Lesser General Public License
along with this library; if not, write to the Free Software Foundation,
Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
- */
+*/
package org.cytoscape.task.internal.creation;
+
+import org.cytoscape.event.CyEventHelper;
import org.cytoscape.model.CyNetworkManager;
import org.cytoscape.model.subnetwork.CyRootNetworkFactory;
import org.cytoscape.session.CyApplicationManager;
@@ -38,32 +40,45 @@
import org.cytoscape.view.model.CyNetworkViewManager;
import org.cytoscape.view.vizmap.VisualMappingManager;
import org.cytoscape.work.TaskIterator;
+import org.cytoscape.work.undo.UndoSupport;
+
public class NewNetworkSelectedNodesEdgesTaskFactory extends
AbstractNetworkTaskFactory {
+ private final UndoSupport undoSupport;
+ private final CyNetworkManager netmgr;
+ private final CyNetworkViewManager networkViewManager;
+ private final CyRootNetworkFactory crnf;
+ private final CyNetworkViewFactory cnvf;
+ private final CyNetworkNaming naming;
+ private final VisualMappingManager vmm;
+ private final CyApplicationManager appManager;
+ private final CyEventHelper eventHelper;
- private CyNetworkManager netmgr;
- private final CyNetworkViewManager networkViewManager;
- private CyRootNetworkFactory crnf;
- private CyNetworkViewFactory cnvf;
- private CyNetworkNaming naming;
- private VisualMappingManager vmm;
- private final CyApplicationManager appManager;
+ public NewNetworkSelectedNodesEdgesTaskFactory(final UndoSupport
undoSupport,
+ final
CyRootNetworkFactory crnf,
+ final
CyNetworkViewFactory cnvf,
+ final CyNetworkManager
netmgr,
+ final
CyNetworkViewManager networkViewManager,
+ final CyNetworkNaming
naming,
+ final
VisualMappingManager vmm,
+ final
CyApplicationManager appManager,
+ final CyEventHelper
eventHelper)
+ {
+ this.undoSupport = undoSupport;
+ this.netmgr = netmgr;
+ this.networkViewManager = networkViewManager;
+ this.crnf = crnf;
+ this.cnvf = cnvf;
+ this.naming = naming;
+ this.vmm = vmm;
+ this.appManager = appManager;
+ this.eventHelper = eventHelper;
+ }
- public NewNetworkSelectedNodesEdgesTaskFactory(CyRootNetworkFactory crnf,
CyNetworkViewFactory cnvf,
- CyNetworkManager netmgr, final CyNetworkViewManager
networkViewManager, CyNetworkNaming naming,
- VisualMappingManager vmm, final CyApplicationManager appManager) {
- this.netmgr = netmgr;
- this.networkViewManager = networkViewManager;
- this.crnf = crnf;
- this.cnvf = cnvf;
- this.naming = naming;
- this.vmm = vmm;
- this.appManager = appManager;
- }
-
- public TaskIterator getTaskIterator() {
- return new TaskIterator(new NewNetworkSelectedNodesEdgesTask(network,
crnf, cnvf, netmgr, networkViewManager,
- naming, vmm, appManager));
- }
-
+ public TaskIterator getTaskIterator() {
+ return new TaskIterator(
+ new NewNetworkSelectedNodesEdgesTask(undoSupport,
network, crnf, cnvf,
+ netmgr,
networkViewManager, naming, vmm,
+ appManager,
eventHelper));
+ }
}
Modified:
core3/core-task-impl/trunk/src/main/java/org/cytoscape/task/internal/creation/NewNetworkSelectedNodesOnlyTask.java
===================================================================
---
core3/core-task-impl/trunk/src/main/java/org/cytoscape/task/internal/creation/NewNetworkSelectedNodesOnlyTask.java
2011-08-01 16:21:54 UTC (rev 26346)
+++
core3/core-task-impl/trunk/src/main/java/org/cytoscape/task/internal/creation/NewNetworkSelectedNodesOnlyTask.java
2011-08-01 22:15:51 UTC (rev 26347)
@@ -1,7 +1,7 @@
/*
File: NewNetworkSelectedNodesOnlyTask.java
- Copyright (c) 2006, 2010, The Cytoscape Consortium (www.cytoscape.org)
+ Copyright (c) 2006, 2010-2011, The Cytoscape Consortium (www.cytoscape.org)
This library is free software; you can redistribute it and/or modify it
under the terms of the GNU Lesser General Public License as published
@@ -26,15 +26,16 @@
You should have received a copy of the GNU Lesser General Public License
along with this library; if not, write to the Free Software Foundation,
Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
- */
-
+*/
package org.cytoscape.task.internal.creation;
+
import java.util.Collection;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
+import org.cytoscape.event.CyEventHelper;
import org.cytoscape.model.CyEdge;
import org.cytoscape.model.CyNetwork;
import org.cytoscape.model.CyNetworkManager;
@@ -45,14 +46,22 @@
import org.cytoscape.view.model.CyNetworkViewFactory;
import org.cytoscape.view.model.CyNetworkViewManager;
import org.cytoscape.view.vizmap.VisualMappingManager;
+import org.cytoscape.work.undo.UndoSupport;
+
public class NewNetworkSelectedNodesOnlyTask extends
AbstractNetworkFromSelectionTask {
-
- public NewNetworkSelectedNodesOnlyTask(final CyNetwork net, final
CyRootNetworkFactory cyroot,
- final CyNetworkViewFactory cnvf, final CyNetworkManager
netmgr,
- final CyNetworkViewManager networkViewManager, final
CyNetworkNaming cyNetworkNaming,
- final VisualMappingManager vmm, final
CyApplicationManager appManager) {
- super(net, cyroot, cnvf, netmgr, networkViewManager,
cyNetworkNaming, vmm, appManager);
+ public NewNetworkSelectedNodesOnlyTask(final UndoSupport undoSupport,
final CyNetwork net,
+ final CyRootNetworkFactory
cyroot,
+ final CyNetworkViewFactory cnvf,
+ final CyNetworkManager netmgr,
+ final CyNetworkViewManager
networkViewManager,
+ final CyNetworkNaming
cyNetworkNaming,
+ final VisualMappingManager vmm,
+ final CyApplicationManager
appManager,
+ final CyEventHelper eventHelper)
+ {
+ super(undoSupport, net, cyroot, cnvf, netmgr,
networkViewManager, cyNetworkNaming,
+ vmm, appManager, eventHelper);
}
Collection<CyEdge> getEdges(CyNetwork netx, List<CyNode> nodes) {
Modified:
core3/core-task-impl/trunk/src/main/java/org/cytoscape/task/internal/creation/NewNetworkSelectedNodesOnlyTaskFactory.java
===================================================================
---
core3/core-task-impl/trunk/src/main/java/org/cytoscape/task/internal/creation/NewNetworkSelectedNodesOnlyTaskFactory.java
2011-08-01 16:21:54 UTC (rev 26346)
+++
core3/core-task-impl/trunk/src/main/java/org/cytoscape/task/internal/creation/NewNetworkSelectedNodesOnlyTaskFactory.java
2011-08-01 22:15:51 UTC (rev 26347)
@@ -1,7 +1,7 @@
/*
File: NewNetworkSelectedNodesOnlyTaskFactory.java
- Copyright (c) 2006, 2010, The Cytoscape Consortium (www.cytoscape.org)
+ Copyright (c) 2006, 2010-2011, The Cytoscape Consortium (www.cytoscape.org)
This library is free software; you can redistribute it and/or modify it
under the terms of the GNU Lesser General Public License as published
@@ -26,9 +26,11 @@
You should have received a copy of the GNU Lesser General Public License
along with this library; if not, write to the Free Software Foundation,
Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
- */
+*/
package org.cytoscape.task.internal.creation;
+
+import org.cytoscape.event.CyEventHelper;
import org.cytoscape.model.CyNetworkManager;
import org.cytoscape.model.subnetwork.CyRootNetworkFactory;
import org.cytoscape.session.CyApplicationManager;
@@ -38,30 +40,45 @@
import org.cytoscape.view.model.CyNetworkViewManager;
import org.cytoscape.view.vizmap.VisualMappingManager;
import org.cytoscape.work.TaskIterator;
+import org.cytoscape.work.undo.UndoSupport;
+
public class NewNetworkSelectedNodesOnlyTaskFactory extends
AbstractNetworkTaskFactory {
- private CyNetworkManager netmgr;
- private final CyNetworkViewManager networkViewManager;
- private CyRootNetworkFactory crnf;
- private CyNetworkViewFactory cnvf;
- private CyNetworkNaming naming;
- private VisualMappingManager vmm;
- private final CyApplicationManager appManager;
+ private final UndoSupport undoSupport;
+ private final CyNetworkManager netmgr;
+ private final CyNetworkViewManager networkViewManager;
+ private final CyRootNetworkFactory crnf;
+ private final CyNetworkViewFactory cnvf;
+ private final CyNetworkNaming naming;
+ private final VisualMappingManager vmm;
+ private final CyApplicationManager appManager;
+ private final CyEventHelper eventHelper;
- public NewNetworkSelectedNodesOnlyTaskFactory(CyRootNetworkFactory crnf,
CyNetworkViewFactory cnvf,
- CyNetworkManager netmgr, final CyNetworkViewManager
networkViewManager, CyNetworkNaming naming,
- VisualMappingManager vmm, final CyApplicationManager appManager) {
- this.netmgr = netmgr;
- this.networkViewManager = networkViewManager;
- this.crnf = crnf;
- this.cnvf = cnvf;
- this.naming = naming;
- this.vmm = vmm;
- this.appManager = appManager;
- }
+ public NewNetworkSelectedNodesOnlyTaskFactory(final UndoSupport
undoSupport,
+ final
CyRootNetworkFactory crnf,
+ final
CyNetworkViewFactory cnvf,
+ final CyNetworkManager
netmgr,
+ final
CyNetworkViewManager networkViewManager,
+ final CyNetworkNaming
naming,
+ final
VisualMappingManager vmm,
+ final
CyApplicationManager appManager,
+ final CyEventHelper
eventHelper)
+ {
+ this.undoSupport = undoSupport;
+ this.netmgr = netmgr;
+ this.networkViewManager = networkViewManager;
+ this.crnf = crnf;
+ this.cnvf = cnvf;
+ this.naming = naming;
+ this.vmm = vmm;
+ this.appManager = appManager;
+ this.eventHelper = eventHelper;
+ }
- public TaskIterator getTaskIterator() {
- return new TaskIterator(new NewNetworkSelectedNodesOnlyTask(network,
crnf, cnvf, netmgr, networkViewManager,
- naming, vmm, appManager));
- }
+ public TaskIterator getTaskIterator() {
+ return new TaskIterator(
+ new NewNetworkSelectedNodesOnlyTask(undoSupport,
network, crnf, cnvf, netmgr,
+ networkViewManager,
naming, vmm,
+ appManager,
eventHelper));
+ }
}
Modified:
core3/core-task-impl/trunk/src/main/java/org/cytoscape/task/internal/quickstart/subnetworkbuilder/SubnetworkBuilderUtil.java
===================================================================
---
core3/core-task-impl/trunk/src/main/java/org/cytoscape/task/internal/quickstart/subnetworkbuilder/SubnetworkBuilderUtil.java
2011-08-01 16:21:54 UTC (rev 26346)
+++
core3/core-task-impl/trunk/src/main/java/org/cytoscape/task/internal/quickstart/subnetworkbuilder/SubnetworkBuilderUtil.java
2011-08-01 22:15:51 UTC (rev 26347)
@@ -99,8 +99,9 @@
}
Task getNewNetworkSelectedNodesOnlyTask(final CyNetwork network) {
- return new NewNetworkSelectedNodesOnlyTask(network, crnf, cnvf,
netmgr, networkViewManager, cyNetworkNaming,
- vmm, appManager);
+ return new NewNetworkSelectedNodesOnlyTask(undoSupport,
network, crnf, cnvf, netmgr,
+ networkViewManager,
cyNetworkNaming, vmm,
+ appManager,
eventHelper);
}
Task getApplLayoutTask() {
Modified:
core3/core-task-impl/trunk/src/main/resources/META-INF/spring/bundle-context.xml
===================================================================
---
core3/core-task-impl/trunk/src/main/resources/META-INF/spring/bundle-context.xml
2011-08-01 16:21:54 UTC (rev 26346)
+++
core3/core-task-impl/trunk/src/main/resources/META-INF/spring/bundle-context.xml
2011-08-01 22:15:51 UTC (rev 26347)
@@ -237,6 +237,7 @@
<bean id="newNetworkSelectedNodesEdgesTaskFactory"
class="org.cytoscape.task.internal.creation.NewNetworkSelectedNodesEdgesTaskFactory">
+ <constructor-arg ref="undoSupportServiceRef" />
<constructor-arg ref="cyRootNetworkFactoryServiceRef" />
<constructor-arg ref="cyNetworkViewFactoryServiceRef" />
<constructor-arg ref="cyNetworkManagerServiceRef" />
@@ -244,11 +245,12 @@
<constructor-arg ref="cyNetworkNamingServiceRef" />
<constructor-arg ref="visualMappingManagerServiceRef" />
<constructor-arg ref="cyApplicationManagerServiceRef" />
-
+ <constructor-arg ref="cyEventHelperRef" />
</bean>
<bean id="newNetworkSelectedNodesOnlyTaskFactory"
class="org.cytoscape.task.internal.creation.NewNetworkSelectedNodesOnlyTaskFactory">
+ <constructor-arg ref="undoSupportServiceRef" />
<constructor-arg ref="cyRootNetworkFactoryServiceRef" />
<constructor-arg ref="cyNetworkViewFactoryServiceRef" />
<constructor-arg ref="cyNetworkManagerServiceRef" />
@@ -256,7 +258,7 @@
<constructor-arg ref="cyNetworkNamingServiceRef" />
<constructor-arg ref="visualMappingManagerServiceRef" />
<constructor-arg ref="cyApplicationManagerServiceRef" />
-
+ <constructor-arg ref="cyEventHelperRef" />
</bean>
<!-- destruction -->
@@ -327,9 +329,11 @@
<bean id="createNetworkViewTaskFactory"
class="org.cytoscape.task.internal.creation.CreateNetworkViewTaskFactory">
+ <constructor-arg ref="undoSupportServiceRef" />
<constructor-arg ref="cyNetworkViewFactoryServiceRef" />
<constructor-arg ref="cyNetworkViewManagerServiceRef" />
<constructor-arg ref="cyLayoutsServiceRef" />
+ <constructor-arg ref="cyEventHelperRef" />
</bean>
<bean id="exportNetworkImageTaskFactory"
Modified:
core3/core-task-impl/trunk/src/test/java/org/cytoscape/task/internal/creation/CreateNetworkViewTaskTest.java
===================================================================
---
core3/core-task-impl/trunk/src/test/java/org/cytoscape/task/internal/creation/CreateNetworkViewTaskTest.java
2011-08-01 16:21:54 UTC (rev 26346)
+++
core3/core-task-impl/trunk/src/test/java/org/cytoscape/task/internal/creation/CreateNetworkViewTaskTest.java
2011-08-01 22:15:51 UTC (rev 26347)
@@ -5,7 +5,11 @@
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+import javax.swing.undo.UndoableEditSupport;
+
+import org.cytoscape.event.CyEventHelper;
import org.cytoscape.model.CyNetwork;
import org.cytoscape.test.support.NetworkTestSupport;
import org.cytoscape.test.support.NetworkViewTestSupport;
@@ -13,11 +17,12 @@
import org.cytoscape.view.model.CyNetworkViewFactory;
import org.cytoscape.view.model.CyNetworkViewManager;
import org.cytoscape.work.TaskMonitor;
+import org.cytoscape.work.undo.UndoSupport;
+
import org.junit.Test;
public class CreateNetworkViewTaskTest {
-
private final NetworkTestSupport support = new NetworkTestSupport();
private final NetworkViewTestSupport viewSupport = new
NetworkViewTestSupport();
@@ -28,8 +33,15 @@
@Test
public void testCreateNetworkViewTask() throws Exception {
+ UndoableEditSupport undoableEditSupport =
mock(UndoableEditSupport.class);
+ UndoSupport undoSupport = mock(UndoSupport.class);
+
when(undoSupport.getUndoableEditSupport()).thenReturn(undoableEditSupport);
+
final TaskMonitor tm = mock(TaskMonitor.class);
- final CreateNetworkViewTask task = new
CreateNetworkViewTask(networkModel, viewFactory, networkViewManager, null);
+ final CyEventHelper eventHelper = mock(CyEventHelper.class);
+ final CreateNetworkViewTask task =
+ new CreateNetworkViewTask(undoSupport, networkModel,
viewFactory,
+ networkViewManager, null,
eventHelper);
task.run(tm);
verify(networkViewManager,
times(1)).addNetworkView(any(CyNetworkView.class));
Modified:
core3/core-task-impl/trunk/src/test/java/org/cytoscape/task/internal/creation/NewNetworkSelectedNodesEdgesTaskTest.java
===================================================================
---
core3/core-task-impl/trunk/src/test/java/org/cytoscape/task/internal/creation/NewNetworkSelectedNodesEdgesTaskTest.java
2011-08-01 16:21:54 UTC (rev 26346)
+++
core3/core-task-impl/trunk/src/test/java/org/cytoscape/task/internal/creation/NewNetworkSelectedNodesEdgesTaskTest.java
2011-08-01 22:15:51 UTC (rev 26347)
@@ -1,7 +1,9 @@
package org.cytoscape.task.internal.creation;
+
import static org.mockito.Mockito.mock;
+import org.cytoscape.event.CyEventHelper;
import org.cytoscape.model.CyNetwork;
import org.cytoscape.model.CyNetworkManager;
import org.cytoscape.model.CyNode;
@@ -15,11 +17,13 @@
import org.cytoscape.view.model.CyNetworkViewManager;
import org.cytoscape.view.vizmap.VisualMappingManager;
import org.cytoscape.work.TaskMonitor;
+import org.cytoscape.work.undo.UndoSupport;
+
import org.junit.Before;
import org.junit.Test;
+
public class NewNetworkSelectedNodesEdgesTaskTest {
-
private final NetworkTestSupport support = new NetworkTestSupport();
private final NetworkViewTestSupport viewSupport = new
NetworkViewTestSupport();
@@ -38,6 +42,7 @@
@Test
public void testNewNetworkSelectedNodesEdgesTask() throws Exception {
+ final UndoSupport undoSupport = mock(UndoSupport.class);
final CyNode node1 = net.addNode();
final CyNode node2 = net.addNode();
@@ -45,11 +50,14 @@
final CyTable nodeTable = net.getDefaultNodeTable();
node1.getCyRow().set(CyNetwork.SELECTED, true);
+
+ CyEventHelper eventHelper = mock(CyEventHelper.class);
+
+ final NewNetworkSelectedNodesEdgesTask task =
+ new NewNetworkSelectedNodesEdgesTask(undoSupport, net,
cyroot, cnvf, netmgr,
+
networkViewManager, cyNetworkNaming,
+ vmm, appManager,
eventHelper);
-
- final NewNetworkSelectedNodesEdgesTask task = new
NewNetworkSelectedNodesEdgesTask(net, cyroot, cnvf, netmgr,
- networkViewManager, cyNetworkNaming, vmm,
appManager);
-
TaskMonitor tm = mock(TaskMonitor.class);
// TODO how can we test this?
Modified:
core3/core-task-impl/trunk/src/test/java/org/cytoscape/task/internal/creation/NewNetworkSelectedNodesOnlyTaskTest.java
===================================================================
---
core3/core-task-impl/trunk/src/test/java/org/cytoscape/task/internal/creation/NewNetworkSelectedNodesOnlyTaskTest.java
2011-08-01 16:21:54 UTC (rev 26346)
+++
core3/core-task-impl/trunk/src/test/java/org/cytoscape/task/internal/creation/NewNetworkSelectedNodesOnlyTaskTest.java
2011-08-01 22:15:51 UTC (rev 26347)
@@ -3,11 +3,15 @@
import static org.junit.Assert.*;
import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
+import javax.swing.undo.UndoableEditSupport;
+
+import org.cytoscape.event.CyEventHelper;
import org.cytoscape.model.CyEdge;
import org.cytoscape.model.CyNetwork;
import org.cytoscape.model.CyNetworkManager;
@@ -21,14 +25,15 @@
import org.cytoscape.view.model.CyNetworkViewFactory;
import org.cytoscape.view.model.CyNetworkViewManager;
import org.cytoscape.view.vizmap.VisualMappingManager;
+import org.cytoscape.work.undo.UndoSupport;
+
import org.junit.Before;
import org.junit.Test;
+
public class NewNetworkSelectedNodesOnlyTaskTest {
-
private final NetworkTestSupport support = new NetworkTestSupport();
private final NetworkViewTestSupport viewSupport = new
NetworkViewTestSupport();
-
private CyNetwork net = support.getNetwork();
private CyRootNetworkFactory cyroot = mock(CyRootNetworkFactory.class);
private CyNetworkViewFactory cnvf = viewSupport.getNetworkViewFactory();
@@ -38,15 +43,22 @@
private VisualMappingManager vmm = mock(VisualMappingManager.class);
private CyApplicationManager appManager =
mock(CyApplicationManager.class);
-
@Before
public void setUp() throws Exception {
}
@Test
public void testNewNetworkSelectedNodesEdgesTask() throws Exception {
- NewNetworkSelectedNodesOnlyTask task = new
NewNetworkSelectedNodesOnlyTask(net, cyroot, cnvf, netmgr,
- networkViewManager, cyNetworkNaming, vmm,
appManager);
+ UndoableEditSupport undoableEditSupport =
mock(UndoableEditSupport.class);
+ UndoSupport undoSupport = mock(UndoSupport.class);
+
when(undoSupport.getUndoableEditSupport()).thenReturn(undoableEditSupport);
+
+ CyEventHelper eventHelper = mock(CyEventHelper.class);
+
+ NewNetworkSelectedNodesOnlyTask task =
+ new NewNetworkSelectedNodesOnlyTask(undoSupport, net,
cyroot, cnvf, netmgr,
+ networkViewManager,
cyNetworkNaming, vmm,
+ appManager,
eventHelper);
final CyNode node1 = net.addNode();
final CyNode node2 = net.addNode();
--
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.