Author: ruschein
Date: 2011-07-28 13:48:56 -0700 (Thu, 28 Jul 2011)
New Revision: 26317
Modified:
core3/core-task-impl/trunk/src/main/java/org/cytoscape/task/internal/select/SelectFromFileListTask.java
core3/core-task-impl/trunk/src/main/java/org/cytoscape/task/internal/select/SelectFromFileListTaskFactory.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/SelectFromFileListTaskTest.java
Log:
Added undo/redo support for selection of nodes that are neighbours of selected
nodes.
Modified:
core3/core-task-impl/trunk/src/main/java/org/cytoscape/task/internal/select/SelectFromFileListTask.java
===================================================================
---
core3/core-task-impl/trunk/src/main/java/org/cytoscape/task/internal/select/SelectFromFileListTask.java
2011-07-28 20:46:57 UTC (rev 26316)
+++
core3/core-task-impl/trunk/src/main/java/org/cytoscape/task/internal/select/SelectFromFileListTask.java
2011-07-28 20:48:56 UTC (rev 26317)
@@ -1,7 +1,7 @@
/*
File: SelectFromFileListTask.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,9 +26,10 @@
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.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
@@ -36,59 +37,66 @@
import java.util.List;
import java.util.Set;
+
import org.cytoscape.event.CyEventHelper;
import org.cytoscape.model.CyNetwork;
import org.cytoscape.model.CyNode;
import org.cytoscape.model.CyTableEntry;
+import org.cytoscape.view.model.CyNetworkView;
import org.cytoscape.view.model.CyNetworkViewManager;
import org.cytoscape.work.TaskMonitor;
import org.cytoscape.work.Tunable;
+import org.cytoscape.work.undo.UndoSupport;
+
public class SelectFromFileListTask extends AbstractSelectTask {
- @Tunable(description = "Node selection file")
- public File file;
+ private final UndoSupport undoSupport;
- private final CyEventHelper eventHelper;
+ @Tunable(description = "Node selection file",params="input=true")
+ public File file;
- public SelectFromFileListTask(final CyNetwork net, final
CyNetworkViewManager networkViewManager,
- final CyEventHelper eventHelper) {
- super(net, networkViewManager, eventHelper);
- this.eventHelper = eventHelper;
- }
+ public SelectFromFileListTask(final UndoSupport undoSupport, final
CyNetwork net,
+ final CyNetworkViewManager
networkViewManager,
+ final CyEventHelper eventHelper)
+ {
+ super(net, networkViewManager, eventHelper);
+ this.undoSupport = undoSupport;
+ }
- public void run(final TaskMonitor tm) throws Exception {
- if (file == null)
- throw new NullPointerException("You must specify a non-null file to
load!");
+ public void run(final TaskMonitor tm) throws Exception {
+ if (file == null)
+ throw new NullPointerException("You must specify a
non-null file to load!");
- try {
- FileReader fin = new FileReader(file);
- BufferedReader bin = new BufferedReader(fin);
- Set<String> fileNodes = new HashSet<String>();
- String s;
+ final CyNetworkView view =
networkViewManager.getNetworkView(network.getSUID());
+ final SelectionEdit edit =
+ new SelectionEdit(eventHelper, "Select Nodes From
File", network, view,
+
SelectionEdit.SelectionFilter.NODES_ONLY);
- while ((s = bin.readLine()) != null) {
- String trimName = s.trim();
+ try {
+ FileReader fin = new FileReader(file);
+ BufferedReader bin = new BufferedReader(fin);
+ Set<String> fileNodes = new HashSet<String>();
+ String s;
- if (trimName.length() > 0)
- fileNodes.add(trimName);
- }
+ while ((s = bin.readLine()) != null) {
+ final String trimName = s.trim();
+ if (trimName.length() > 0)
+ fileNodes.add(trimName);
+ }
+ fin.close();
- fin.close();
+ // Loop through all the node of the graph selecting
those in the file:
+ List<CyNode> nodeList = network.getNodeList();
+ for (final CyNode node : nodeList) {
+ if
(fileNodes.contains(node.getCyRow().get(CyTableEntry.NAME, String.class)))
+ node.getCyRow().set(CyNetwork.SELECTED,
true);
+ }
-
- // loop through all the node of the graph selecting those in the
- // file
- List<CyNode> nodeList = network.getNodeList();
- for (final CyNode node : nodeList) {
- if
(fileNodes.contains(node.getCyRow().get(CyTableEntry.NAME, String.class)))
- node.getCyRow().set("selected", true);
+ updateView();
+ } catch (Exception e) {
+ throw new Exception("Error reading file: " +
file.getAbsolutePath(), e);
}
-
- updateView();
-
- } catch (Exception e) {
- throw new Exception("Error reading file: " +
file.getAbsolutePath(), e);
+ undoSupport.getUndoableEditSupport().postEdit(edit);
}
- }
}
Modified:
core3/core-task-impl/trunk/src/main/java/org/cytoscape/task/internal/select/SelectFromFileListTaskFactory.java
===================================================================
---
core3/core-task-impl/trunk/src/main/java/org/cytoscape/task/internal/select/SelectFromFileListTaskFactory.java
2011-07-28 20:46:57 UTC (rev 26316)
+++
core3/core-task-impl/trunk/src/main/java/org/cytoscape/task/internal/select/SelectFromFileListTaskFactory.java
2011-07-28 20:48:56 UTC (rev 26317)
@@ -1,7 +1,7 @@
/*
File: SelectFromFileListTaskFactory.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,25 @@
import org.cytoscape.work.TaskFactory;
import org.cytoscape.work.TaskIterator;
import org.cytoscape.task.AbstractNetworkTaskFactory;
+import org.cytoscape.work.undo.UndoSupport;
public class SelectFromFileListTaskFactory extends AbstractNetworkTaskFactory {
+ private final UndoSupport undoSupport;
private final CyNetworkViewManager networkViewManager;
private final CyEventHelper eventHelper;
- public SelectFromFileListTaskFactory(final CyNetworkViewManager
networkViewManager,
- final CyEventHelper eventHelper)
+ public SelectFromFileListTaskFactory(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 SelectFromFileListTask(network,
networkViewManager,
-
eventHelper));
+ return new TaskIterator(new SelectFromFileListTask(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 20:46:57 UTC (rev 26316)
+++
core3/core-task-impl/trunk/src/main/resources/META-INF/spring/bundle-context.xml
2011-07-28 20:48:56 UTC (rev 26317)
@@ -165,6 +165,7 @@
<bean id="selectFromFileListTaskFactory"
class="org.cytoscape.task.internal.select.SelectFromFileListTaskFactory">
+ <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 20:46:57 UTC (rev 26316)
+++
core3/core-task-impl/trunk/src/test/java/org/cytoscape/task/internal/select/AllFactoryTest.java
2011-07-28 20:48:56 UTC (rev 26317)
@@ -123,7 +123,7 @@
@Test
public void testSelectFromFileListTaskFactory() {
- executeTest(new
SelectFromFileListTaskFactory(networkViewManager, eventHelper));
+ executeTest(new SelectFromFileListTaskFactory(undoSupport,
networkViewManager, eventHelper));
}
private void executeTest(NetworkTaskFactory ntf) {
Modified:
core3/core-task-impl/trunk/src/test/java/org/cytoscape/task/internal/select/SelectFromFileListTaskTest.java
===================================================================
---
core3/core-task-impl/trunk/src/test/java/org/cytoscape/task/internal/select/SelectFromFileListTaskTest.java
2011-07-28 20:46:57 UTC (rev 26316)
+++
core3/core-task-impl/trunk/src/test/java/org/cytoscape/task/internal/select/SelectFromFileListTaskTest.java
2011-07-28 20:48:56 UTC (rev 26317)
@@ -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;
@@ -41,21 +43,29 @@
import org.cytoscape.model.CyNetwork;
import org.cytoscape.model.CyNode;
import org.cytoscape.model.CyRow;
+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;
import java.io.File;
public class SelectFromFileListTaskTest extends AbstractSelectTaskTester {
CyEventHelper eventHelper;
+ UndoSupport undoSupport;
@Before
public void setUp() throws Exception {
super.setUp();
this.eventHelper = mock(CyEventHelper.class);
+ final CyTable nodeTable = mock(CyTable.class);
+ when(net.getDefaultNodeTable()).thenReturn(nodeTable);
+ UndoableEditSupport undoableEditSupport =
mock(UndoableEditSupport.class);
+ this.undoSupport = mock(UndoSupport.class);
+
when(undoSupport.getUndoableEditSupport()).thenReturn(undoableEditSupport);
}
@Test
@@ -64,8 +74,9 @@
when(r4.get("name",String.class)).thenReturn("marge");
// run the task
- SelectFromFileListTask t = new SelectFromFileListTask(net,
networkViewManager,
-
eventHelper);
+ SelectFromFileListTask t =
+ new SelectFromFileListTask(undoSupport, net,
networkViewManager,
+ eventHelper);
t.file = new File("./src/test/resources/node_names.txt");
t.run(tm);
@@ -77,14 +88,16 @@
@Test(expected=NullPointerException.class)
public void testRunWithoutFileSpecified() throws Exception {
// run the task
- SelectFromFileListTask t = new SelectFromFileListTask(net,
networkViewManager, eventHelper);
+ SelectFromFileListTask t =
+ new SelectFromFileListTask(undoSupport, net,
networkViewManager, eventHelper);
t.run(tm);
}
@Test(expected=Exception.class)
- public void testNonExistantFile() throws Exception {
+ public void testNonExistentFile() throws Exception {
// run the task
- SelectFromFileListTask t = new SelectFromFileListTask(net,
networkViewManager, eventHelper);
+ SelectFromFileListTask t =
+ new SelectFromFileListTask(undoSupport, net,
networkViewManager, eventHelper);
t.file = new File("./src/test/resources/does-not-exist.txt");
t.run(tm);
}
@@ -92,7 +105,8 @@
@Test
public void testRunEmptyFile() throws Exception {
// run the task
- SelectFromFileListTask t = new SelectFromFileListTask(net,
networkViewManager, eventHelper);
+ SelectFromFileListTask t =
+ new SelectFromFileListTask(undoSupport, net,
networkViewManager, eventHelper);
t.file = new File("./src/test/resources/empty.txt");
t.run(tm);
@@ -104,7 +118,8 @@
@Test
public void testRunNamesDontMatch() throws Exception {
// run the task
- SelectFromFileListTask t = new SelectFromFileListTask(net,
networkViewManager, eventHelper);
+ SelectFromFileListTask t =
+ new SelectFromFileListTask(undoSupport, net,
networkViewManager, eventHelper);
t.file = new File("./src/test/resources/bad_names.txt");
t.run(tm);
@@ -112,5 +127,4 @@
verify(r3, never()).set("selected",true);
verify(r4, never()).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.