Author: ruschein
Date: 2011-07-27 16:07:04 -0700 (Wed, 27 Jul 2011)
New Revision: 26297
Modified:
core3/core-task-impl/trunk/src/main/java/org/cytoscape/task/internal/select/InvertSelectedEdgesTask.java
core3/core-task-impl/trunk/src/main/java/org/cytoscape/task/internal/select/InvertSelectedEdgesTaskFactory.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/InvertSelectedEdgesTaskTest.java
Log:
Added undo/redo support for inversion of edge selection.
Modified:
core3/core-task-impl/trunk/src/main/java/org/cytoscape/task/internal/select/InvertSelectedEdgesTask.java
===================================================================
---
core3/core-task-impl/trunk/src/main/java/org/cytoscape/task/internal/select/InvertSelectedEdgesTask.java
2011-07-27 22:40:56 UTC (rev 26296)
+++
core3/core-task-impl/trunk/src/main/java/org/cytoscape/task/internal/select/InvertSelectedEdgesTask.java
2011-07-27 23:07:04 UTC (rev 26297)
@@ -1,7 +1,7 @@
/*
File: InvertSelectedEdgesTask.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,34 +26,44 @@
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.CyEdge;
import org.cytoscape.model.CyNetwork;
+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 InvertSelectedEdgesTask extends AbstractSelectTask {
- private final CyEventHelper eventHelper;
+ private final UndoSupport undoSupport;
- public InvertSelectedEdgesTask(final CyNetwork net, final
CyNetworkViewManager networkViewManager,
- final CyEventHelper eventHelper) {
- super(net, networkViewManager, eventHelper);
- this.eventHelper = eventHelper;
- }
+ public InvertSelectedEdgesTask(final UndoSupport undoSupport, final
CyNetwork net,
+ final CyNetworkViewManager
networkViewManager,
+ final CyEventHelper eventHelper)
+ {
+ super(net, networkViewManager, eventHelper);
+ this.undoSupport = undoSupport;
+ }
- public void run(TaskMonitor tm) {
+ public void run(final TaskMonitor tm) {
+ final CyNetworkView view =
networkViewManager.getNetworkView(network.getSUID());
+ undoSupport.getUndoableEditSupport().postEdit(
+ new SelectionEdit(eventHelper, "Invert Selected Edges",
network, view,
+
SelectionEdit.SelectionFilter.EDGES_ONLY));
- for (final CyEdge e : network.getEdgeList()) {
- if (e.getCyRow().get(CyNetwork.SELECTED, Boolean.class))
- e.getCyRow().set(CyNetwork.SELECTED, false);
- else
- e.getCyRow().set(CyNetwork.SELECTED, true);
- }
+ for (final CyEdge e : network.getEdgeList()) {
+ if (e.getCyRow().get(CyNetwork.SELECTED, Boolean.class))
+ e.getCyRow().set(CyNetwork.SELECTED, false);
+ else
+ e.getCyRow().set(CyNetwork.SELECTED, true);
+ }
-
- updateView();
- }
+ eventHelper.flushPayloadEvents();
+ updateView();
+ }
}
Modified:
core3/core-task-impl/trunk/src/main/java/org/cytoscape/task/internal/select/InvertSelectedEdgesTaskFactory.java
===================================================================
---
core3/core-task-impl/trunk/src/main/java/org/cytoscape/task/internal/select/InvertSelectedEdgesTaskFactory.java
2011-07-27 22:40:56 UTC (rev 26296)
+++
core3/core-task-impl/trunk/src/main/java/org/cytoscape/task/internal/select/InvertSelectedEdgesTaskFactory.java
2011-07-27 23:07:04 UTC (rev 26297)
@@ -1,7 +1,7 @@
/*
File: InvertSelectedEdgesTaskFactory.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,7 +26,7 @@
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;
@@ -35,21 +35,26 @@
import org.cytoscape.view.model.CyNetworkViewManager;
import org.cytoscape.work.TaskFactory;
import org.cytoscape.work.TaskIterator;
+import org.cytoscape.work.undo.UndoSupport;
public class InvertSelectedEdgesTaskFactory extends AbstractNetworkTaskFactory
{
+ private final UndoSupport undoSupport;
private CyNetworkViewManager networkViewManager;
private final CyEventHelper eventHelper;
- public InvertSelectedEdgesTaskFactory(final CyNetworkViewManager
networkViewManager,
- final CyEventHelper eventHelper)
+ public InvertSelectedEdgesTaskFactory(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 InvertSelectedEdgesTask(network,
networkViewManager,
-
eventHelper));
+ return new TaskIterator(new
InvertSelectedEdgesTask(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 22:40:56 UTC (rev 26296)
+++
core3/core-task-impl/trunk/src/main/resources/META-INF/spring/bundle-context.xml
2011-07-27 23:07:04 UTC (rev 26297)
@@ -145,6 +145,7 @@
<bean id="invertSelectedEdgesTaskFactory"
class="org.cytoscape.task.internal.select.InvertSelectedEdgesTaskFactory">
+ <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 22:40:56 UTC (rev 26296)
+++
core3/core-task-impl/trunk/src/test/java/org/cytoscape/task/internal/select/AllFactoryTest.java
2011-07-27 23:07:04 UTC (rev 26297)
@@ -82,7 +82,7 @@
@Test
public void testInvertSelectedEdgesTaskFactory() {
- executeTest(new
InvertSelectedEdgesTaskFactory(networkViewManager, eventHelper));
+ executeTest(new InvertSelectedEdgesTaskFactory(undoSupport,
networkViewManager, eventHelper));
}
@Test
Modified:
core3/core-task-impl/trunk/src/test/java/org/cytoscape/task/internal/select/InvertSelectedEdgesTaskTest.java
===================================================================
---
core3/core-task-impl/trunk/src/test/java/org/cytoscape/task/internal/select/InvertSelectedEdgesTaskTest.java
2011-07-27 22:40:56 UTC (rev 26296)
+++
core3/core-task-impl/trunk/src/test/java/org/cytoscape/task/internal/select/InvertSelectedEdgesTaskTest.java
2011-07-27 23:07:04 UTC (rev 26297)
@@ -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;
@@ -37,13 +39,15 @@
import java.util.ArrayList;
import org.cytoscape.event.CyEventHelper;
+import org.cytoscape.model.CyEdge;
+import org.cytoscape.model.CyNetwork;
+import org.cytoscape.model.CyRow;
+import org.cytoscape.model.CyTable;
import org.cytoscape.work.TaskMonitor;
+import org.cytoscape.work.Task;
+import org.cytoscape.work.TaskFactory;
import org.cytoscape.work.TaskIterator;
-import org.cytoscape.work.TaskFactory;
-import org.cytoscape.work.Task;
-import org.cytoscape.model.CyNetwork;
-import org.cytoscape.model.CyRow;
-import org.cytoscape.model.CyEdge;
+import org.cytoscape.work.undo.UndoSupport;
public class InvertSelectedEdgesTaskTest extends AbstractSelectTaskTester {
@@ -57,12 +61,18 @@
@Test
public void testRun() throws Exception {
+ final CyTable edgeTable = mock(CyTable.class);
+ when(net.getDefaultEdgeTable()).thenReturn(edgeTable);
+ UndoableEditSupport undoableEditSupport =
mock(UndoableEditSupport.class);
+ UndoSupport undoSupport = mock(UndoSupport.class);
+
when(undoSupport.getUndoableEditSupport()).thenReturn(undoableEditSupport);
+
// more setup
when(r1.get("selected",Boolean.class)).thenReturn(false);
when(r2.get("selected",Boolean.class)).thenReturn(true);
// run the task
- Task t = new InvertSelectedEdgesTask(net, networkViewManager,
eventHelper);
+ Task t = new InvertSelectedEdgesTask(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.