Author: ruschein
Date: 2011-07-27 15:40:56 -0700 (Wed, 27 Jul 2011)
New Revision: 26296
Modified:
core3/core-task-impl/trunk/src/main/java/org/cytoscape/task/internal/select/DeselectAllNodesTask.java
core3/core-task-impl/trunk/src/main/java/org/cytoscape/task/internal/select/DeselectAllNodesTaskFactory.java
core3/core-task-impl/trunk/src/main/java/org/cytoscape/task/internal/select/DeselectAllTask.java
core3/core-task-impl/trunk/src/main/java/org/cytoscape/task/internal/select/DeselectAllTaskFactory.java
core3/core-task-impl/trunk/src/main/java/org/cytoscape/task/internal/select/SelectionEdit.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/DeselectAllNodesTaskTest.java
core3/core-task-impl/trunk/src/test/java/org/cytoscape/task/internal/select/DeselectAllTaskTest.java
Log:
Added undo/redo support for the deselection of all nodes and all nodes+edges.
Modified:
core3/core-task-impl/trunk/src/main/java/org/cytoscape/task/internal/select/DeselectAllNodesTask.java
===================================================================
---
core3/core-task-impl/trunk/src/main/java/org/cytoscape/task/internal/select/DeselectAllNodesTask.java
2011-07-27 22:01:36 UTC (rev 26295)
+++
core3/core-task-impl/trunk/src/main/java/org/cytoscape/task/internal/select/DeselectAllNodesTask.java
2011-07-27 22:40:56 UTC (rev 26296)
@@ -1,7 +1,7 @@
/*
File: DeselectAllNodesTask.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,22 +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.select;
import org.cytoscape.event.CyEventHelper;
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.view.model.CyNetworkViewManager;
+import org.cytoscape.work.undo.UndoSupport;
public class DeselectAllNodesTask extends AbstractSelectTask {
- public DeselectAllNodesTask(final CyNetwork net, final
CyNetworkViewManager networkViewManager, final CyEventHelper eventHelper) {
- super(net,networkViewManager, eventHelper);
+ private final UndoSupport undoSupport;
+
+ public DeselectAllNodesTask(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, "Deselect All Nodes",
network, view,
+
SelectionEdit.SelectionFilter.NODES_ONLY));
+
selectUtils.setSelectedNodes( network.getNodeList(), false);
updateView();
}
Modified:
core3/core-task-impl/trunk/src/main/java/org/cytoscape/task/internal/select/DeselectAllNodesTaskFactory.java
===================================================================
---
core3/core-task-impl/trunk/src/main/java/org/cytoscape/task/internal/select/DeselectAllNodesTaskFactory.java
2011-07-27 22:01:36 UTC (rev 26295)
+++
core3/core-task-impl/trunk/src/main/java/org/cytoscape/task/internal/select/DeselectAllNodesTaskFactory.java
2011-07-27 22:40:56 UTC (rev 26296)
@@ -1,7 +1,7 @@
/*
File: DeselectAllNodesTaskFactory.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,24 +26,33 @@
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.task.AbstractNetworkTaskFactory;
import org.cytoscape.view.model.CyNetworkViewManager;
import org.cytoscape.work.TaskIterator;
+import org.cytoscape.work.undo.UndoSupport;
+
public class DeselectAllNodesTaskFactory extends AbstractNetworkTaskFactory {
- private final CyNetworkViewManager networkViewManager;
- private final CyEventHelper eventHelper;
+ private final UndoSupport undoSupport;
+ private final CyNetworkViewManager networkViewManager;
+ private final CyEventHelper eventHelper;
- public DeselectAllNodesTaskFactory(final CyNetworkViewManager
networkViewManager, final CyEventHelper eventHelper) {
- this.networkViewManager = networkViewManager;
- this.eventHelper = eventHelper;
- }
+ public DeselectAllNodesTaskFactory(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 DeselectAllNodesTask(network,
networkViewManager, eventHelper));
- }
+ public TaskIterator getTaskIterator() {
+ return new TaskIterator(new DeselectAllNodesTask(undoSupport,
network,
+
networkViewManager, eventHelper));
+ }
}
Modified:
core3/core-task-impl/trunk/src/main/java/org/cytoscape/task/internal/select/DeselectAllTask.java
===================================================================
---
core3/core-task-impl/trunk/src/main/java/org/cytoscape/task/internal/select/DeselectAllTask.java
2011-07-27 22:01:36 UTC (rev 26295)
+++
core3/core-task-impl/trunk/src/main/java/org/cytoscape/task/internal/select/DeselectAllTask.java
2011-07-27 22:40:56 UTC (rev 26296)
@@ -1,7 +1,7 @@
/*
File: DeselectAllTask.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,24 +26,37 @@
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.view.model.CyNetworkView;
import org.cytoscape.view.model.CyNetworkViewManager;
import org.cytoscape.work.TaskMonitor;
+import org.cytoscape.work.undo.UndoSupport;
+
public class DeselectAllTask extends AbstractSelectTask {
+ private final UndoSupport undoSupport;
- public DeselectAllTask(final CyNetwork net, final CyNetworkViewManager
networkViewManager,
- final CyEventHelper eventHelper) {
- super(net, networkViewManager, eventHelper);
- }
+ public DeselectAllTask(final UndoSupport undoSupport, final CyNetwork
net,
+ final CyNetworkViewManager networkViewManager,
+ final CyEventHelper eventHelper)
+ {
+ super(net, networkViewManager, eventHelper);
+ this.undoSupport = undoSupport;
+ }
- public void run(TaskMonitor tm) {
- selectUtils.setSelectedEdges(network.getEdgeList(), false);
- selectUtils.setSelectedNodes(network.getNodeList(), false);
- updateView();
- }
+ public void run(final TaskMonitor tm) {
+ final CyNetworkView view =
networkViewManager.getNetworkView(network.getSUID());
+ undoSupport.getUndoableEditSupport().postEdit(
+ new SelectionEdit(eventHelper, "Deselect All Nodes and
Edges", network, view,
+
SelectionEdit.SelectionFilter.NODES_AND_EDGES));
+
+ selectUtils.setSelectedEdges(network.getEdgeList(), false);
+ selectUtils.setSelectedNodes(network.getNodeList(), false);
+ updateView();
+ }
}
Modified:
core3/core-task-impl/trunk/src/main/java/org/cytoscape/task/internal/select/DeselectAllTaskFactory.java
===================================================================
---
core3/core-task-impl/trunk/src/main/java/org/cytoscape/task/internal/select/DeselectAllTaskFactory.java
2011-07-27 22:01:36 UTC (rev 26295)
+++
core3/core-task-impl/trunk/src/main/java/org/cytoscape/task/internal/select/DeselectAllTaskFactory.java
2011-07-27 22:40:56 UTC (rev 26296)
@@ -1,7 +1,7 @@
/*
File: DeselectAllTaskFactory.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,24 +26,33 @@
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.task.AbstractNetworkTaskFactory;
import org.cytoscape.view.model.CyNetworkViewManager;
import org.cytoscape.work.TaskIterator;
+import org.cytoscape.work.undo.UndoSupport;
+
public class DeselectAllTaskFactory extends AbstractNetworkTaskFactory {
- private CyNetworkViewManager networkViewManager;
- private final CyEventHelper eventHelper;
+ private final UndoSupport undoSupport;
+ private CyNetworkViewManager networkViewManager;
+ private final CyEventHelper eventHelper;
- public DeselectAllTaskFactory(final CyNetworkViewManager
networkViewManager, final CyEventHelper eventHelper) {
- this.networkViewManager = networkViewManager;
- this.eventHelper = eventHelper;
- }
+ public DeselectAllTaskFactory(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 DeselectAllTask(network,
networkViewManager, eventHelper));
- }
+ public TaskIterator getTaskIterator() {
+ return new TaskIterator(new DeselectAllTask(undoSupport,
network, networkViewManager,
+ eventHelper));
+ }
}
Modified:
core3/core-task-impl/trunk/src/main/java/org/cytoscape/task/internal/select/SelectionEdit.java
===================================================================
---
core3/core-task-impl/trunk/src/main/java/org/cytoscape/task/internal/select/SelectionEdit.java
2011-07-27 22:01:36 UTC (rev 26295)
+++
core3/core-task-impl/trunk/src/main/java/org/cytoscape/task/internal/select/SelectionEdit.java
2011-07-27 22:40:56 UTC (rev 26296)
@@ -2,11 +2,12 @@
import java.util.Collection;
+import java.util.ArrayList;
+import java.util.List;
import org.cytoscape.event.CyEventHelper;
import org.cytoscape.model.CyNetwork;
import org.cytoscape.model.CyRow;
-import org.cytoscape.model.CyTable;
import org.cytoscape.view.model.CyNetworkView;
import org.cytoscape.util.swing.CyAbstractEdit;
@@ -21,8 +22,8 @@
private final CyNetwork network;
private final CyNetworkView view;
private final SelectionFilter filter;
- private Collection<CyRow> nodeRows;
- private Collection<CyRow> edgeRows;
+ private List<RowAndSelectionState> nodeRows;
+ private List<RowAndSelectionState> edgeRows;
SelectionEdit(final CyEventHelper eventHelper, final String description,
final CyNetwork network, final CyNetworkView view,
@@ -40,45 +41,61 @@
public void redo() {
super.redo();
-
- saveSelectionState();
- restoreSelectionState();
-
- eventHelper.flushPayloadEvents();
- view.updateView();
+ saveAndRestoreState();
}
public void undo() {
super.undo();
+ saveAndRestoreState();
+ }
- restoreSelectionState();
+ private void saveAndRestoreState() {
+ final List<RowAndSelectionState> oldNodeRows = nodeRows;
+ final List<RowAndSelectionState> oldEdgeRows = edgeRows;
+
saveSelectionState();
- eventHelper.flushPayloadEvents();
- view.updateView();
- }
-
- private void restoreSelectionState() {
if (filter == SelectionFilter.NODES_ONLY || filter ==
SelectionFilter.NODES_AND_EDGES) {
- for (final CyRow row : nodeRows)
- row.set(CyNetwork.SELECTED,
Boolean.valueOf(true));
+ for (final RowAndSelectionState rowAndState :
oldNodeRows)
+ rowAndState.getRow().set(CyNetwork.SELECTED,
rowAndState.isSelected());
}
if (filter == SelectionFilter.EDGES_ONLY || filter ==
SelectionFilter.NODES_AND_EDGES) {
- for (final CyRow row : edgeRows)
- row.set(CyNetwork.SELECTED,
Boolean.valueOf(true));
+ for (final RowAndSelectionState rowAndState :
oldEdgeRows)
+ rowAndState.getRow().set(CyNetwork.SELECTED,
rowAndState.isSelected());
}
+
+ eventHelper.flushPayloadEvents();
+ view.updateView();
}
private void saveSelectionState() {
if (filter == SelectionFilter.NODES_ONLY || filter ==
SelectionFilter.NODES_AND_EDGES) {
- final CyTable nodeTable = network.getDefaultNodeTable();
- nodeRows =
nodeTable.getMatchingRows(CyNetwork.SELECTED, Boolean.valueOf(true));
+ final Collection<CyRow> rows =
network.getDefaultNodeTable().getAllRows();
+ nodeRows = new
ArrayList<RowAndSelectionState>(rows.size());
+ for (final CyRow row : rows)
+ nodeRows.add(new RowAndSelectionState(row,
row.get(CyNetwork.SELECTED, Boolean.class)));
}
if (filter == SelectionFilter.EDGES_ONLY || filter ==
SelectionFilter.NODES_AND_EDGES) {
- final CyTable edgeTable = network.getDefaultEdgeTable();
- edgeRows =
edgeTable.getMatchingRows(CyNetwork.SELECTED, Boolean.valueOf(true));
+ final Collection<CyRow> rows =
network.getDefaultEdgeTable().getAllRows();
+ edgeRows = new
ArrayList<RowAndSelectionState>(rows.size());
+ for (final CyRow row : rows)
+ edgeRows.add(new RowAndSelectionState(row,
row.get(CyNetwork.SELECTED, Boolean.class)));
}
}
}
+
+
+final class RowAndSelectionState {
+ private final CyRow row;
+ private final Boolean selected;
+
+ RowAndSelectionState(final CyRow row, final Boolean selected) {
+ this.row = row;
+ this.selected = selected;
+ }
+
+ CyRow getRow() { return row; }
+ Boolean isSelected() { return selected; }
+}
\ No newline at end of file
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:01:36 UTC (rev 26295)
+++
core3/core-task-impl/trunk/src/main/resources/META-INF/spring/bundle-context.xml
2011-07-27 22:40:56 UTC (rev 26296)
@@ -124,6 +124,7 @@
<bean id="deselectAllTaskFactory"
class="org.cytoscape.task.internal.select.DeselectAllTaskFactory">
+ <constructor-arg ref="undoSupportServiceRef" />
<constructor-arg ref="cyNetworkViewManagerServiceRef" />
<constructor-arg ref="cyEventHelperRef" />
</bean>
@@ -137,6 +138,7 @@
<bean id="deselectAllNodesTaskFactory"
class="org.cytoscape.task.internal.select.DeselectAllNodesTaskFactory">
+ <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:01:36 UTC (rev 26295)
+++
core3/core-task-impl/trunk/src/test/java/org/cytoscape/task/internal/select/AllFactoryTest.java
2011-07-27 22:40:56 UTC (rev 26296)
@@ -72,12 +72,12 @@
@Test
public void testDeselectAllNodesTaskFactory() {
- executeTest(new DeselectAllNodesTaskFactory(networkViewManager,
eventHelper));
+ executeTest(new DeselectAllNodesTaskFactory(undoSupport,
networkViewManager, eventHelper));
}
@Test
public void testDeselectAllTaskFactory() {
- executeTest(new DeselectAllTaskFactory(networkViewManager,
eventHelper));
+ executeTest(new DeselectAllTaskFactory(undoSupport,
networkViewManager, eventHelper));
}
@Test
Modified:
core3/core-task-impl/trunk/src/test/java/org/cytoscape/task/internal/select/DeselectAllNodesTaskTest.java
===================================================================
---
core3/core-task-impl/trunk/src/test/java/org/cytoscape/task/internal/select/DeselectAllNodesTaskTest.java
2011-07-27 22:01:36 UTC (rev 26295)
+++
core3/core-task-impl/trunk/src/test/java/org/cytoscape/task/internal/select/DeselectAllNodesTaskTest.java
2011-07-27 22:40:56 UTC (rev 26296)
@@ -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
@@ -24,31 +24,45 @@
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 javax.swing.undo.UndoableEditSupport;
+
+import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+import org.cytoscape.model.CyTable;
import org.cytoscape.work.Task;
+import org.cytoscape.work.undo.UndoSupport;
+
import org.junit.Before;
import org.junit.Test;
+
public class DeselectAllNodesTaskTest extends AbstractSelectTaskTester {
- @Before
- public void setUp() throws Exception {
- super.setUp();
- }
+ @Before
+ public void setUp() throws Exception {
+ super.setUp();
+ }
- @Test
- public void testRun() throws Exception {
- // run the task
- Task t = new DeselectAllNodesTask(net, networkViewManager, eventHelper);
- t.run(tm);
+ @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);
- // check that the expected rows were set
- verify(r3, times(1)).set("selected", false);
- verify(r4, times(1)).set("selected", false);
- }
+ // run the task
+ Task t = new DeselectAllNodesTask(undoSupport, net,
networkViewManager, eventHelper);
+ t.run(tm);
+
+ // check that the expected rows were set
+ verify(r3, times(1)).set("selected", false);
+ verify(r4, times(1)).set("selected", false);
+ }
}
Modified:
core3/core-task-impl/trunk/src/test/java/org/cytoscape/task/internal/select/DeselectAllTaskTest.java
===================================================================
---
core3/core-task-impl/trunk/src/test/java/org/cytoscape/task/internal/select/DeselectAllTaskTest.java
2011-07-27 22:01:36 UTC (rev 26295)
+++
core3/core-task-impl/trunk/src/test/java/org/cytoscape/task/internal/select/DeselectAllTaskTest.java
2011-07-27 22:40:56 UTC (rev 26296)
@@ -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
@@ -24,33 +24,49 @@
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 javax.swing.undo.UndoableEditSupport;
+
+import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+import org.cytoscape.model.CyTable;
import org.cytoscape.work.Task;
+import org.cytoscape.work.undo.UndoSupport;
+
import org.junit.Before;
import org.junit.Test;
+
public class DeselectAllTaskTest extends AbstractSelectTaskTester {
- @Before
- public void setUp() throws Exception {
- super.setUp();
- }
+ @Before
+ public void setUp() throws Exception {
+ super.setUp();
+ }
- @Test
- public void testRun() throws Exception {
- // run the task
- Task t = new DeselectAllTask(net, networkViewManager, eventHelper);
- t.run(tm);
+ @Test
+ public void testRun() throws Exception {
+ final CyTable nodeTable = mock(CyTable.class);
+ when(net.getDefaultNodeTable()).thenReturn(nodeTable);
+ 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);
- // check that the expected rows were set
- verify(r1, times(1)).set("selected", false);
- verify(r2, times(1)).set("selected", false);
- verify(r3, times(1)).set("selected", false);
- verify(r4, times(1)).set("selected", false);
- }
+ // run the task
+ Task t = new DeselectAllTask(undoSupport, net,
networkViewManager, eventHelper);
+ t.run(tm);
+
+ // check that the expected rows were set
+ verify(r1, times(1)).set("selected", false);
+ verify(r2, times(1)).set("selected", false);
+ verify(r3, times(1)).set("selected", false);
+ verify(r4, times(1)).set("selected", false);
+ }
}
--
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.