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.