Author: ruschein
Date: 2011-07-28 11:01:37 -0700 (Thu, 28 Jul 2011)
New Revision: 26303
Modified:
core3/core-task-impl/trunk/src/main/java/org/cytoscape/task/internal/select/SelectConnectedNodesTask.java
core3/core-task-impl/trunk/src/main/java/org/cytoscape/task/internal/select/SelectConnectedNodesTaskFactory.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/select/AllFactoryTest.java
core3/core-task-impl/trunk/src/test/java/org/cytoscape/task/internal/select/SelectConnectedNodesTaskTest.java
Log:
Added undo/redo support for selection of all nodes attached to selected edges.
Modified:
core3/core-task-impl/trunk/src/main/java/org/cytoscape/task/internal/select/SelectConnectedNodesTask.java
===================================================================
---
core3/core-task-impl/trunk/src/main/java/org/cytoscape/task/internal/select/SelectConnectedNodesTask.java
2011-07-28 17:30:17 UTC (rev 26302)
+++
core3/core-task-impl/trunk/src/main/java/org/cytoscape/task/internal/select/SelectConnectedNodesTask.java
2011-07-28 18:01:37 UTC (rev 26303)
@@ -1,7 +1,7 @@
/*
File: SelectConnectedNodesTask.java
- Copyright (c) 2007, 2010, The Cytoscape Consortium (www.cytoscape.org)
+ Copyright (c) 2007, 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,38 +26,52 @@
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.select;
+
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.CyNode;
import org.cytoscape.model.CyTableUtil;
+import org.cytoscape.view.model.CyNetworkView;
import org.cytoscape.view.model.CyNetworkViewManager;
import org.cytoscape.work.TaskMonitor;
+import org.cytoscape.work.undo.UndoSupport;
+
public class SelectConnectedNodesTask extends AbstractSelectTask {
- public SelectConnectedNodesTask(final CyNetwork net, final
CyNetworkViewManager networkViewManager,
- final CyEventHelper eventHelper) {
- super(net, networkViewManager, eventHelper);
- }
+ private final UndoSupport undoSupport;
- public void run(TaskMonitor tm) {
- final List<CyEdge> selectedEdges = CyTableUtil.getEdgesInState(network,
"selected", true);
- final Set<CyNode> nodes = new HashSet<CyNode>();
+ public SelectConnectedNodesTask(final UndoSupport undoSupport, final
CyNetwork net,
+ final CyNetworkViewManager
networkViewManager,
+ final CyEventHelper eventHelper)
+ {
+ super(net, networkViewManager, eventHelper);
+ this.undoSupport = undoSupport;
+ }
- for (CyEdge edge : selectedEdges) {
- nodes.add(edge.getSource());
- nodes.add(edge.getTarget());
+ public void run(TaskMonitor tm) {
+ final CyNetworkView view =
networkViewManager.getNetworkView(network.getSUID());
+ undoSupport.getUndoableEditSupport().postEdit(
+ new SelectionEdit(eventHelper, "Select Nodes Connected
by Selected Edges",
+ network, view,
SelectionEdit.SelectionFilter.NODES_ONLY));
+
+ final List<CyEdge> selectedEdges =
CyTableUtil.getEdgesInState(network, "selected", true);
+ final Set<CyNode> nodes = new HashSet<CyNode>();
+
+ for (CyEdge edge : selectedEdges) {
+ nodes.add(edge.getSource());
+ nodes.add(edge.getTarget());
+ }
+
+ selectUtils.setSelectedNodes(nodes, true);
+ updateView();
}
-
- selectUtils.setSelectedNodes(nodes, true);
- updateView();
- }
}
Modified:
core3/core-task-impl/trunk/src/main/java/org/cytoscape/task/internal/select/SelectConnectedNodesTaskFactory.java
===================================================================
---
core3/core-task-impl/trunk/src/main/java/org/cytoscape/task/internal/select/SelectConnectedNodesTaskFactory.java
2011-07-28 17:30:17 UTC (rev 26302)
+++
core3/core-task-impl/trunk/src/main/java/org/cytoscape/task/internal/select/SelectConnectedNodesTaskFactory.java
2011-07-28 18:01:37 UTC (rev 26303)
@@ -1,7 +1,7 @@
/*
File: SelectConnectedNodesTaskFactory.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,25 +26,33 @@
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.select;
+
import org.cytoscape.event.CyEventHelper;
import org.cytoscape.task.AbstractNetworkTaskFactory;
import org.cytoscape.view.model.CyNetworkViewManager;
import org.cytoscape.work.TaskIterator;
+import org.cytoscape.work.undo.UndoSupport;
+
public class SelectConnectedNodesTaskFactory extends
AbstractNetworkTaskFactory {
- private CyNetworkViewManager networkViewManager;
- private final CyEventHelper eventHelper;
+ private final UndoSupport undoSupport;
+ private final CyNetworkViewManager networkViewManager;
+ private final CyEventHelper eventHelper;
- public SelectConnectedNodesTaskFactory(final CyNetworkViewManager
networkViewManager,
- final CyEventHelper eventHelper) {
- this.networkViewManager = networkViewManager;
- this.eventHelper = eventHelper;
- }
+ public SelectConnectedNodesTaskFactory(final UndoSupport undoSupport,
+ final CyNetworkViewManager
networkViewManager,
+ final CyEventHelper eventHelper)
+ {
+ this.undoSupport = undoSupport;
+ this.networkViewManager = networkViewManager;
+ this.eventHelper = eventHelper;
+ }
- public TaskIterator getTaskIterator() {
- return new TaskIterator(new SelectConnectedNodesTask(network,
networkViewManager, eventHelper));
- }
+ public TaskIterator getTaskIterator() {
+ return new TaskIterator(new
SelectConnectedNodesTask(undoSupport, network,
+
networkViewManager, eventHelper));
+ }
}
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-07-28 17:30:17 UTC (rev 26302)
+++
core3/core-task-impl/trunk/src/main/resources/META-INF/spring/bundle-context.xml
2011-07-28 18:01:37 UTC (rev 26303)
@@ -116,6 +116,7 @@
<bean id="selectConnectedNodesTaskFactory"
class="org.cytoscape.task.internal.select.SelectConnectedNodesTaskFactory">
+ <constructor-arg ref="undoSupportServiceRef" />
<constructor-arg ref="cyNetworkViewManagerServiceRef" />
<constructor-arg ref="cyEventHelperRef" />
</bean>
Modified:
core3/core-task-impl/trunk/src/test/java/org/cytoscape/task/internal/select/AllFactoryTest.java
===================================================================
---
core3/core-task-impl/trunk/src/test/java/org/cytoscape/task/internal/select/AllFactoryTest.java
2011-07-28 17:30:17 UTC (rev 26302)
+++
core3/core-task-impl/trunk/src/test/java/org/cytoscape/task/internal/select/AllFactoryTest.java
2011-07-28 18:01:37 UTC (rev 26303)
@@ -1,5 +1,5 @@
/*
- Copyright (c) 2010, The Cytoscape Consortium (www.cytoscape.org)
+ Copyright (c) 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
@@ -113,7 +113,7 @@
@Test
public void testSelectConnectedNodesTaskFactory() {
- executeTest(new
SelectConnectedNodesTaskFactory(networkViewManager, eventHelper));
+ executeTest(new SelectConnectedNodesTaskFactory(undoSupport,
networkViewManager, eventHelper));
}
@Test
Modified:
core3/core-task-impl/trunk/src/test/java/org/cytoscape/task/internal/select/SelectConnectedNodesTaskTest.java
===================================================================
---
core3/core-task-impl/trunk/src/test/java/org/cytoscape/task/internal/select/SelectConnectedNodesTaskTest.java
2011-07-28 17:30:17 UTC (rev 26302)
+++
core3/core-task-impl/trunk/src/test/java/org/cytoscape/task/internal/select/SelectConnectedNodesTaskTest.java
2011-07-28 18:01:37 UTC (rev 26303)
@@ -1,13 +1,6 @@
/*
- Copyright (c) 2010, The Cytoscape Consortium (www.cytoscape.org)
+ Copyright (c) 2010-2011, The Cytoscape Consortium (www.cytoscape.org)
- The Cytoscape Consortium is:
- - Institute for Systems Biology
- - University of California San Diego
- - Memorial Sloan-Kettering Cancer Center
- - Institut Pasteur
- - Agilent Technologies
-
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
by the Free Software Foundation; either version 2.1 of the License, or
@@ -31,39 +24,52 @@
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.select;
+
+import javax.swing.undo.UndoableEditSupport;
+
+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 org.cytoscape.model.CyTable;
import org.cytoscape.work.Task;
+import org.cytoscape.work.undo.UndoSupport;
+
import org.junit.Before;
import org.junit.Test;
+
public class SelectConnectedNodesTaskTest extends AbstractSelectTaskTester {
- @Before
- public void setUp() throws Exception {
- super.setUp();
- }
+ @Before
+ public void setUp() throws Exception {
+ super.setUp();
+ }
- @Test
- public void testRun() throws Exception {
- // more setup
- when(r1.get("selected", Boolean.class)).thenReturn(true);
- when(r2.get("selected", Boolean.class)).thenReturn(false);
+ @Test
+ public void testRun() throws Exception {
+ final CyTable nodeTable = mock(CyTable.class);
+ when(net.getDefaultNodeTable()).thenReturn(nodeTable);
+ UndoableEditSupport undoableEditSupport =
mock(UndoableEditSupport.class);
+ UndoSupport undoSupport = mock(UndoSupport.class);
+
when(undoSupport.getUndoableEditSupport()).thenReturn(undoableEditSupport);
- when(e1.getSource()).thenReturn(e3);
- when(e1.getTarget()).thenReturn(e4);
+ // more setup
+ when(r1.get("selected", Boolean.class)).thenReturn(true);
+ when(r2.get("selected", Boolean.class)).thenReturn(false);
- // run the task
- Task t = new SelectConnectedNodesTask(net, networkViewManager,
eventHelper);
- t.run(tm);
+ when(e1.getSource()).thenReturn(e3);
+ when(e1.getTarget()).thenReturn(e4);
- // check that the expected rows were set
- verify(r3, times(1)).set("selected", true);
- verify(r4, times(1)).set("selected", true);
- }
+ // run the task
+ Task t = new SelectConnectedNodesTask(undoSupport, net,
networkViewManager, eventHelper);
+ t.run(tm);
+
+ // check that the expected rows were set
+ verify(r3, times(1)).set("selected", true);
+ verify(r4, times(1)).set("selected", true);
+ }
}
--
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.