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.

Reply via email to