Author: ruschein
Date: 2011-07-27 16:23:47 -0700 (Wed, 27 Jul 2011)
New Revision: 26298

Modified:
   
core3/core-task-impl/trunk/src/main/java/org/cytoscape/task/internal/select/InvertSelectedNodesTask.java
   
core3/core-task-impl/trunk/src/main/java/org/cytoscape/task/internal/select/InvertSelectedNodesTaskFactory.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/InvertSelectedNodesTaskTest.java
Log:
Added undo/redo support for inversion of node selection.

Modified: 
core3/core-task-impl/trunk/src/main/java/org/cytoscape/task/internal/select/InvertSelectedNodesTask.java
===================================================================
--- 
core3/core-task-impl/trunk/src/main/java/org/cytoscape/task/internal/select/InvertSelectedNodesTask.java
    2011-07-27 23:07:04 UTC (rev 26297)
+++ 
core3/core-task-impl/trunk/src/main/java/org/cytoscape/task/internal/select/InvertSelectedNodesTask.java
    2011-07-27 23:23:47 UTC (rev 26298)
@@ -1,7 +1,7 @@
 /*
  File: InvertSelectedNodesTask.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,26 +26,36 @@
  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.model.CyNetwork;
 import org.cytoscape.model.CyNode;
+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 InvertSelectedNodesTask extends AbstractSelectTask {
-       private final CyEventHelper eventHelper;
+       private final UndoSupport undoSupport;
 
-       public InvertSelectedNodesTask(final CyNetwork net,
-                       final CyNetworkViewManager networkViewManager, final 
CyEventHelper eventHelper) {
+       public InvertSelectedNodesTask(final UndoSupport undoSupport, final 
CyNetwork net,
+                                      final CyNetworkViewManager 
networkViewManager,
+                                      final CyEventHelper eventHelper)
+       {
                super(net, networkViewManager, eventHelper);
-               this.eventHelper = eventHelper;
+               this.undoSupport = undoSupport;
        }
 
        @Override
        public void run(final TaskMonitor tm) {
+               final CyNetworkView view = 
networkViewManager.getNetworkView(network.getSUID());
+               undoSupport.getUndoableEditSupport().postEdit(
+                       new SelectionEdit(eventHelper, "Invert Selected Nodes", 
network, view,
+                                         
SelectionEdit.SelectionFilter.NODES_ONLY));
 
                for (final CyNode n : network.getNodeList()) {
                        if (n.getCyRow().get(CyNetwork.SELECTED, Boolean.class))
@@ -54,6 +64,7 @@
                                n.getCyRow().set(CyNetwork.SELECTED, true);
                }
 
+               eventHelper.flushPayloadEvents();
                updateView();
        }
 }

Modified: 
core3/core-task-impl/trunk/src/main/java/org/cytoscape/task/internal/select/InvertSelectedNodesTaskFactory.java
===================================================================
--- 
core3/core-task-impl/trunk/src/main/java/org/cytoscape/task/internal/select/InvertSelectedNodesTaskFactory.java
     2011-07-27 23:07:04 UTC (rev 26297)
+++ 
core3/core-task-impl/trunk/src/main/java/org/cytoscape/task/internal/select/InvertSelectedNodesTaskFactory.java
     2011-07-27 23:23:47 UTC (rev 26298)
@@ -1,7 +1,7 @@
 /*
  File: InvertSelectedNodesTaskFactory.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
@@ -35,21 +35,25 @@
 import org.cytoscape.view.model.CyNetworkViewManager;
 import org.cytoscape.work.TaskFactory;
 import org.cytoscape.work.TaskIterator;
+import org.cytoscape.work.undo.UndoSupport;
 
 
 public class InvertSelectedNodesTaskFactory extends AbstractNetworkTaskFactory 
{
+       private final UndoSupport undoSupport;
        private CyNetworkViewManager networkViewManager;
        private final CyEventHelper eventHelper;
 
-       public InvertSelectedNodesTaskFactory(final CyNetworkViewManager 
networkViewManager,
-                                             final CyEventHelper eventHelper)
+       public InvertSelectedNodesTaskFactory(final UndoSupport undoSupport,
+                                             final CyNetworkViewManager 
networkViewManager,
+                                             final CyEventHelper eventHelper)
        {
+               this.undoSupport        = undoSupport;
                this.networkViewManager = networkViewManager;
-               this.eventHelper = eventHelper;
+               this.eventHelper        = eventHelper;
        }
 
        public TaskIterator getTaskIterator() {
-               return new TaskIterator(
-                               new InvertSelectedNodesTask(network, 
networkViewManager, eventHelper));
+               return new TaskIterator(new 
InvertSelectedNodesTask(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-27 23:07:04 UTC (rev 26297)
+++ 
core3/core-task-impl/trunk/src/main/resources/META-INF/spring/bundle-context.xml
    2011-07-27 23:23:47 UTC (rev 26298)
@@ -152,6 +152,7 @@
 
        <bean id="invertSelectedNodesTaskFactory"
                
class="org.cytoscape.task.internal.select.InvertSelectedNodesTaskFactory">
+               <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-27 23:07:04 UTC (rev 26297)
+++ 
core3/core-task-impl/trunk/src/test/java/org/cytoscape/task/internal/select/AllFactoryTest.java
     2011-07-27 23:23:47 UTC (rev 26298)
@@ -88,7 +88,7 @@
        @Test
        public void testInvertSelectedNodesTaskFactory() {
                final CyEventHelper eventHelper = mock(CyEventHelper.class);
-               executeTest(new 
InvertSelectedNodesTaskFactory(networkViewManager, eventHelper));
+               executeTest(new InvertSelectedNodesTaskFactory(undoSupport, 
networkViewManager, eventHelper));
        }
 
        @Test

Modified: 
core3/core-task-impl/trunk/src/test/java/org/cytoscape/task/internal/select/InvertSelectedNodesTaskTest.java
===================================================================
--- 
core3/core-task-impl/trunk/src/test/java/org/cytoscape/task/internal/select/InvertSelectedNodesTaskTest.java
        2011-07-27 23:07:04 UTC (rev 26297)
+++ 
core3/core-task-impl/trunk/src/test/java/org/cytoscape/task/internal/select/InvertSelectedNodesTaskTest.java
        2011-07-27 23:23:47 UTC (rev 26298)
@@ -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
@@ -28,6 +28,8 @@
 package org.cytoscape.task.internal.select;
 
 
+import javax.swing.undo.UndoableEditSupport;
+
 import static org.mockito.Mockito.*;
 import static org.junit.Assert.*;
 import org.junit.Test;
@@ -38,12 +40,14 @@
 
 import org.cytoscape.event.CyEventHelper;
 import org.cytoscape.model.CyNetwork;
+import org.cytoscape.model.CyNode;
 import org.cytoscape.model.CyRow;
-import org.cytoscape.model.CyNode;
+import org.cytoscape.model.CyTable;
+import org.cytoscape.work.Task;
+import org.cytoscape.work.TaskFactory;
+import org.cytoscape.work.TaskIterator;
 import org.cytoscape.work.TaskMonitor;
-import org.cytoscape.work.TaskIterator;
-import org.cytoscape.work.TaskFactory;
-import org.cytoscape.work.Task;
+import org.cytoscape.work.undo.UndoSupport;
 
 
 public class InvertSelectedNodesTaskTest extends AbstractSelectTaskTester {
@@ -54,6 +58,12 @@
 
        @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);
+
                // more setup
                when(r3.get("selected", Boolean.class)).thenReturn(false);      
                when(r4.get("selected", Boolean.class)).thenReturn(true);       
@@ -61,7 +71,7 @@
                final CyEventHelper eventHelper = mock(CyEventHelper.class);
 
                // run the task
-               Task t = new InvertSelectedNodesTask(net, networkViewManager, 
eventHelper);
+               Task t = new InvertSelectedNodesTask(undoSupport, net, 
networkViewManager, eventHelper);
                t.run(tm);
 
                // check that the expected rows were set

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