Author: ruschein
Date: 2011-07-19 10:09:15 -0700 (Tue, 19 Jul 2011)
New Revision: 26211

Added:
   
core3/core-task-impl/trunk/src/main/java/org/cytoscape/task/internal/title/NetworkTitleEdit.java
Modified:
   
core3/core-task-impl/trunk/src/main/java/org/cytoscape/task/internal/title/EditNetworkTitleTask.java
   
core3/core-task-impl/trunk/src/main/java/org/cytoscape/task/internal/title/EditNetworkTitleTaskFactory.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/title/EditNetworkTitleTaskFactoryTest.java
   
core3/core-task-impl/trunk/src/test/java/org/cytoscape/task/internal/title/EditNetworkTitleTaskTest.java
Log:
Added undo/redo support to EditNetworkTitleTask.

Modified: 
core3/core-task-impl/trunk/src/main/java/org/cytoscape/task/internal/title/EditNetworkTitleTask.java
===================================================================
--- 
core3/core-task-impl/trunk/src/main/java/org/cytoscape/task/internal/title/EditNetworkTitleTask.java
        2011-07-19 17:08:43 UTC (rev 26210)
+++ 
core3/core-task-impl/trunk/src/main/java/org/cytoscape/task/internal/title/EditNetworkTitleTask.java
        2011-07-19 17:09:15 UTC (rev 26211)
@@ -1,15 +1,8 @@
 /*
   File: EditNetworkTitleTask.java
 
-  Copyright (c) 2006, The Cytoscape Consortium (www.cytoscape.org)
+  Copyright (c) 2006, 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
@@ -33,27 +26,35 @@
   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.title;
 
+
 import org.cytoscape.model.CyNetwork;
 import org.cytoscape.model.CyTableEntry;
 import org.cytoscape.task.AbstractNetworkTask;
 import org.cytoscape.work.TaskMonitor;
 import org.cytoscape.work.Tunable;
+import org.cytoscape.work.undo.UndoSupport;
 
+
 public class EditNetworkTitleTask extends AbstractNetworkTask {
+       private final UndoSupport undoSupport;
 
-    @Tunable(description = "Edit network title")
-    public String title;
+       @Tunable(description = "Edit network title")
+       public String title;
 
-    public EditNetworkTitleTask(CyNetwork n) {
-       super(n);
-       title = network.getCyRow().get(CyTableEntry.NAME, String.class);
-    }
+       public EditNetworkTitleTask(final UndoSupport undoSupport, final 
CyNetwork net) {
+               super(net);
+               this.undoSupport = undoSupport;
+               title = network.getCyRow().get(CyTableEntry.NAME, String.class);
+       }
 
-    public void run(TaskMonitor e) {
-       network.getCyRow().set(CyTableEntry.NAME, title);
-    }
+       public void run(TaskMonitor e) {
+               final String oldTitle = 
network.getCyRow().get(CyTableEntry.NAME, String.class);
+               network.getCyRow().set(CyTableEntry.NAME, title);
+
+               undoSupport.getUndoableEditSupport().postEdit(
+                       new NetworkTitleEdit(network, oldTitle));
+       }
 }

Modified: 
core3/core-task-impl/trunk/src/main/java/org/cytoscape/task/internal/title/EditNetworkTitleTaskFactory.java
===================================================================
--- 
core3/core-task-impl/trunk/src/main/java/org/cytoscape/task/internal/title/EditNetworkTitleTaskFactory.java
 2011-07-19 17:08:43 UTC (rev 26210)
+++ 
core3/core-task-impl/trunk/src/main/java/org/cytoscape/task/internal/title/EditNetworkTitleTaskFactory.java
 2011-07-19 17:09:15 UTC (rev 26211)
@@ -1,7 +1,7 @@
 /*
   File: EditNetworkTitleTaskFactory.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
@@ -32,11 +32,17 @@
 
 import org.cytoscape.task.AbstractNetworkTaskFactory;
 import org.cytoscape.work.TaskIterator;
+import org.cytoscape.work.undo.UndoSupport;
 
 
 public class EditNetworkTitleTaskFactory extends AbstractNetworkTaskFactory {
+       private final UndoSupport undoSupport;
 
+       EditNetworkTitleTaskFactory(final UndoSupport undoSupport) {
+               this.undoSupport = undoSupport;
+       }
+
        public TaskIterator getTaskIterator() {
-               return new TaskIterator(new EditNetworkTitleTask(network));
+               return new TaskIterator(new EditNetworkTitleTask(undoSupport, 
network));
        } 
 }

Added: 
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/title/NetworkTitleEdit.java
                            (rev 0)
+++ 
core3/core-task-impl/trunk/src/main/java/org/cytoscape/task/internal/title/NetworkTitleEdit.java
    2011-07-19 17:09:15 UTC (rev 26211)
@@ -0,0 +1,36 @@
+package org.cytoscape.task.internal.title;
+
+
+import org.cytoscape.model.CyNetwork;
+import org.cytoscape.model.CyTableEntry;
+import org.cytoscape.util.swing.CyAbstractEdit;
+
+
+/** An undoable edit that will undo and redo renaming of a network. */ 
+final class NetworkTitleEdit extends CyAbstractEdit {
+       private final CyNetwork network;
+       private String previousTitle;
+
+       NetworkTitleEdit(final CyNetwork network, final String previousTitle) {
+               super("Rename Title");
+
+               this.network = network;
+               this.previousTitle = previousTitle;
+       }
+
+       public void redo() {
+               super.redo();
+
+               final String savedTitle = 
network.getCyRow().get(CyTableEntry.NAME, String.class);
+               network.getCyRow().set(CyTableEntry.NAME, previousTitle);
+               previousTitle = savedTitle;
+       }
+
+       public void undo() {
+               super.undo();
+
+               final String savedTitle = 
network.getCyRow().get(CyTableEntry.NAME, String.class);
+               network.getCyRow().set(CyTableEntry.NAME, previousTitle);
+               previousTitle = savedTitle;
+       }
+}

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-19 17:08:43 UTC (rev 26210)
+++ 
core3/core-task-impl/trunk/src/main/resources/META-INF/spring/bundle-context.xml
    2011-07-19 17:09:15 UTC (rev 26211)
@@ -294,6 +294,7 @@
 
        <bean id="editNetworkTitleTaskFactory"
                
class="org.cytoscape.task.internal.title.EditNetworkTitleTaskFactory">
+               <constructor-arg ref="undoSupportServiceRef" />
        </bean>
 
        <bean id="createNetworkViewTaskFactory"

Modified: 
core3/core-task-impl/trunk/src/test/java/org/cytoscape/task/internal/title/EditNetworkTitleTaskFactoryTest.java
===================================================================
--- 
core3/core-task-impl/trunk/src/test/java/org/cytoscape/task/internal/title/EditNetworkTitleTaskFactoryTest.java
     2011-07-19 17:08:43 UTC (rev 26210)
+++ 
core3/core-task-impl/trunk/src/test/java/org/cytoscape/task/internal/title/EditNetworkTitleTaskFactoryTest.java
     2011-07-19 17:09:15 UTC (rev 26211)
@@ -1,5 +1,6 @@
 package org.cytoscape.task.internal.title;
 
+
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
 import static org.mockito.Mockito.mock;
@@ -10,19 +11,23 @@
 import org.cytoscape.work.Task;
 import org.cytoscape.work.TaskIterator;
 import org.cytoscape.work.TaskMonitor;
+import org.cytoscape.work.undo.UndoSupport;
+
 import org.junit.Test;
 
+
 public class EditNetworkTitleTaskFactoryTest {
        @Test
        public void testGetTaskIterator() {
-               
                CyNetwork net = mock(CyNetwork.class);
                
                CyRow r1 =  mock(CyRow.class);
                when(net.getCyRow()).thenReturn(r1);
-               when(r1.get("name",String.class)).thenReturn("title");
-               
-               EditNetworkTitleTaskFactory factory = new 
EditNetworkTitleTaskFactory();
+               when(r1.get("name", String.class)).thenReturn("title");
+
+               UndoSupport undoSupport = mock(UndoSupport.class);
+
+               EditNetworkTitleTaskFactory factory = new 
EditNetworkTitleTaskFactory(undoSupport);
                factory.setNetwork(net);
                
                TaskIterator ti = factory.getTaskIterator();

Modified: 
core3/core-task-impl/trunk/src/test/java/org/cytoscape/task/internal/title/EditNetworkTitleTaskTest.java
===================================================================
--- 
core3/core-task-impl/trunk/src/test/java/org/cytoscape/task/internal/title/EditNetworkTitleTaskTest.java
    2011-07-19 17:08:43 UTC (rev 26210)
+++ 
core3/core-task-impl/trunk/src/test/java/org/cytoscape/task/internal/title/EditNetworkTitleTaskTest.java
    2011-07-19 17:09:15 UTC (rev 26211)
@@ -1,5 +1,8 @@
 package org.cytoscape.task.internal.title;
 
+
+import javax.swing.undo.UndoableEditSupport;
+
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.times;
 import static org.mockito.Mockito.verify;
@@ -7,10 +10,11 @@
 import org.cytoscape.work.TaskMonitor;
 import org.junit.Test;
 import org.cytoscape.model.CyRow;
+import org.cytoscape.work.undo.UndoSupport;
 import static org.mockito.Mockito.*;
 
+
 public class EditNetworkTitleTaskTest {
-
        @Test
        public void testRun() throws Exception {
                CyNetwork net = mock(CyNetwork.class);
@@ -20,8 +24,12 @@
 
                when(net.getCyRow()).thenReturn(r1);
                when(r1.get("name",String.class)).thenReturn("title");
+               
+               UndoableEditSupport undoableEditSupport = 
mock(UndoableEditSupport.class);
+               UndoSupport undoSupport = mock(UndoSupport.class);
+               
when(undoSupport.getUndoableEditSupport()).thenReturn(undoableEditSupport);
                                        
-               EditNetworkTitleTask t = new EditNetworkTitleTask(net);
+               EditNetworkTitleTask t = new EditNetworkTitleTask(undoSupport, 
net);
                
                t.run(tm);
                

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