Author: jm
Date: 2012-05-04 13:12:38 -0700 (Fri, 04 May 2012)
New Revision: 29116
Modified:
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/select/DeselectAllEdgesTask.java
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/select/DeselectAllNodesTask.java
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/select/DeselectAllTask.java
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/select/SelectAllEdgesTask.java
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/select/SelectAllNodesTask.java
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/select/SelectAllTask.java
core3/impl/trunk/core-task-impl/src/test/java/org/cytoscape/task/internal/select/DeselectAllEdgesTaskTest.java
core3/impl/trunk/core-task-impl/src/test/java/org/cytoscape/task/internal/select/DeselectAllNodesTaskTest.java
core3/impl/trunk/core-task-impl/src/test/java/org/cytoscape/task/internal/select/DeselectAllTaskTest.java
core3/impl/trunk/core-task-impl/src/test/java/org/cytoscape/task/internal/select/SelectAllEdgesTaskTest.java
core3/impl/trunk/core-task-impl/src/test/java/org/cytoscape/task/internal/select/SelectAllNodesTaskTest.java
core3/impl/trunk/core-task-impl/src/test/java/org/cytoscape/task/internal/select/SelectAllTaskTest.java
core3/impl/trunk/model-impl/impl/src/main/java/org/cytoscape/model/internal/CySubNetworkImpl.java
Log:
Fixes #946: Optimized the way selection is done by reducing number of heap
allocations and method calls; Changed CyNode's "selected" attribute to default
to false when created instead of null.
Modified:
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/select/DeselectAllEdgesTask.java
===================================================================
---
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/select/DeselectAllEdgesTask.java
2012-05-04 20:09:49 UTC (rev 29115)
+++
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/select/DeselectAllEdgesTask.java
2012-05-04 20:12:38 UTC (rev 29116)
@@ -34,6 +34,7 @@
import org.cytoscape.event.CyEventHelper;
import org.cytoscape.model.CyNetwork;
+import org.cytoscape.model.CyTableUtil;
import org.cytoscape.view.model.CyNetworkView;
import org.cytoscape.view.model.CyNetworkViewManager;
import org.cytoscape.work.TaskMonitor;
@@ -61,7 +62,7 @@
undoSupport.postEdit(new SelectionEdit(eventHelper, "Deselect
All Edges", network, view,
SelectionEdit.SelectionFilter.EDGES_ONLY));
tm.setProgress(0.2);
- selectUtils.setSelectedEdges(network, network.getEdgeList(),
false);
+ selectUtils.setSelectedEdges(network,
CyTableUtil.getEdgesInState(network, CyNetwork.SELECTED, true), false);
tm.setProgress(0.6);
updateView();
tm.setProgress(1.0);
Modified:
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/select/DeselectAllNodesTask.java
===================================================================
---
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/select/DeselectAllNodesTask.java
2012-05-04 20:09:49 UTC (rev 29115)
+++
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/select/DeselectAllNodesTask.java
2012-05-04 20:12:38 UTC (rev 29116)
@@ -34,6 +34,7 @@
import org.cytoscape.event.CyEventHelper;
import org.cytoscape.model.CyNetwork;
+import org.cytoscape.model.CyTableUtil;
import org.cytoscape.view.model.CyNetworkView;
import org.cytoscape.view.model.CyNetworkViewManager;
import org.cytoscape.work.TaskMonitor;
@@ -62,7 +63,7 @@
undoSupport.postEdit(new SelectionEdit(eventHelper, "Deselect
All Nodes", network, view,
SelectionEdit.SelectionFilter.NODES_ONLY));
tm.setProgress(0.2);
- selectUtils.setSelectedNodes(network, network.getNodeList(),
false);
+ selectUtils.setSelectedNodes(network,
CyTableUtil.getNodesInState(network, CyNetwork.SELECTED, true), false);
tm.setProgress(0.7);
updateView();
tm.setProgress(1.0);
Modified:
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/select/DeselectAllTask.java
===================================================================
---
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/select/DeselectAllTask.java
2012-05-04 20:09:49 UTC (rev 29115)
+++
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/select/DeselectAllTask.java
2012-05-04 20:12:38 UTC (rev 29116)
@@ -34,6 +34,7 @@
import org.cytoscape.event.CyEventHelper;
import org.cytoscape.model.CyNetwork;
+import org.cytoscape.model.CyTableUtil;
import org.cytoscape.view.model.CyNetworkView;
import org.cytoscape.view.model.CyNetworkViewManager;
import org.cytoscape.work.TaskMonitor;
@@ -62,9 +63,9 @@
new SelectionEdit(eventHelper, "Deselect All Nodes and
Edges", network, view,
SelectionEdit.SelectionFilter.NODES_AND_EDGES));
tm.setProgress(0.2);
- selectUtils.setSelectedEdges(network, network.getEdgeList(),
false);
+ selectUtils.setSelectedEdges(network,
CyTableUtil.getEdgesInState(network, CyNetwork.SELECTED, true), false);
tm.setProgress(0.5);
- selectUtils.setSelectedNodes(network, network.getNodeList(),
false);
+ selectUtils.setSelectedNodes(network,
CyTableUtil.getNodesInState(network, CyNetwork.SELECTED, true), false);
tm.setProgress(0.7);
updateView();
tm.setProgress(1.0);
Modified:
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/select/SelectAllEdgesTask.java
===================================================================
---
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/select/SelectAllEdgesTask.java
2012-05-04 20:09:49 UTC (rev 29115)
+++
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/select/SelectAllEdgesTask.java
2012-05-04 20:12:38 UTC (rev 29116)
@@ -34,6 +34,7 @@
import org.cytoscape.event.CyEventHelper;
import org.cytoscape.model.CyNetwork;
+import org.cytoscape.model.CyTableUtil;
import org.cytoscape.view.model.CyNetworkView;
import org.cytoscape.view.model.CyNetworkViewManager;
import org.cytoscape.work.TaskMonitor;
@@ -62,7 +63,7 @@
new SelectionEdit(eventHelper, "Select All Edges",
network, view,
SelectionEdit.SelectionFilter.EDGES_ONLY));
tm.setProgress(0.3);
- selectUtils.setSelectedEdges(network,network.getEdgeList(),
true);
+ selectUtils.setSelectedEdges(network,
CyTableUtil.getEdgesInState(network, CyNetwork.SELECTED, false), true);
tm.setProgress(0.8);
updateView();
tm.setProgress(1.0);
Modified:
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/select/SelectAllNodesTask.java
===================================================================
---
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/select/SelectAllNodesTask.java
2012-05-04 20:09:49 UTC (rev 29115)
+++
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/select/SelectAllNodesTask.java
2012-05-04 20:12:38 UTC (rev 29116)
@@ -34,6 +34,7 @@
import org.cytoscape.event.CyEventHelper;
import org.cytoscape.model.CyNetwork;
+import org.cytoscape.model.CyTableUtil;
import org.cytoscape.view.model.CyNetworkView;
import org.cytoscape.view.model.CyNetworkViewManager;
import org.cytoscape.work.TaskMonitor;
@@ -64,7 +65,7 @@
new SelectionEdit(eventHelper, "Select All Nodes",
network, view,
SelectionEdit.SelectionFilter.NODES_ONLY));
tm.setProgress(0.2);
- selectUtils.setSelectedNodes(network,network.getNodeList(),
true);
+
selectUtils.setSelectedNodes(network,CyTableUtil.getNodesInState(network,
CyNetwork.SELECTED, false), true);
tm.setProgress(0.6);
updateView();
tm.setProgress(1.0);
Modified:
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/select/SelectAllTask.java
===================================================================
---
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/select/SelectAllTask.java
2012-05-04 20:09:49 UTC (rev 29115)
+++
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/select/SelectAllTask.java
2012-05-04 20:12:38 UTC (rev 29116)
@@ -34,6 +34,7 @@
import org.cytoscape.event.CyEventHelper;
import org.cytoscape.model.CyNetwork;
+import org.cytoscape.model.CyTableUtil;
import org.cytoscape.view.model.CyNetworkView;
import org.cytoscape.view.model.CyNetworkViewManager;
import org.cytoscape.work.TaskMonitor;
@@ -62,9 +63,9 @@
new SelectionEdit(eventHelper, "Select All Nodes and
Edges", network, view,
SelectionEdit.SelectionFilter.NODES_AND_EDGES));
monitor.setProgress(0.2);
- selectUtils.setSelectedNodes(network, network.getNodeList(),
true);
+ selectUtils.setSelectedNodes(network,
CyTableUtil.getNodesInState(network, CyNetwork.SELECTED, false), true);
monitor.setProgress(0.5);
- selectUtils.setSelectedEdges(network, network.getEdgeList(),
true);
+ selectUtils.setSelectedEdges(network,
CyTableUtil.getEdgesInState(network, CyNetwork.SELECTED, false), true);
monitor.setProgress(0.8);
updateView();
monitor.setProgress(1.0);
Modified:
core3/impl/trunk/core-task-impl/src/test/java/org/cytoscape/task/internal/select/DeselectAllEdgesTaskTest.java
===================================================================
---
core3/impl/trunk/core-task-impl/src/test/java/org/cytoscape/task/internal/select/DeselectAllEdgesTaskTest.java
2012-05-04 20:09:49 UTC (rev 29115)
+++
core3/impl/trunk/core-task-impl/src/test/java/org/cytoscape/task/internal/select/DeselectAllEdgesTaskTest.java
2012-05-04 20:12:38 UTC (rev 29116)
@@ -33,7 +33,12 @@
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
+import java.util.HashSet;
+import java.util.Set;
+
+import org.cytoscape.model.CyNetwork;
+import org.cytoscape.model.CyRow;
import org.cytoscape.model.CyTable;
import org.cytoscape.work.Task;
import org.cytoscape.work.undo.UndoSupport;
@@ -53,6 +58,16 @@
when(net.getDefaultEdgeTable()).thenReturn(edgeTable);
UndoSupport undoSupport = mock(UndoSupport.class);
+ Set<CyRow> selectedEdges = new HashSet<CyRow>();
+ selectedEdges.add(r1);
+ selectedEdges.add(r2);
+ when(edgeTable.getMatchingRows(CyNetwork.SELECTED,
true)).thenReturn(selectedEdges);
+
+ when (r1.get(CyNetwork.SUID, Long.class)).thenReturn(1L);
+ when (net.getEdge(1L)).thenReturn(e1);
+ when (r2.get(CyNetwork.SUID, Long.class)).thenReturn(2L);
+ when (net.getEdge(2L)).thenReturn(e2);
+
// run the task
Task t = new DeselectAllEdgesTask(undoSupport, net,
networkViewManager, eventHelper);
t.run(tm);
Modified:
core3/impl/trunk/core-task-impl/src/test/java/org/cytoscape/task/internal/select/DeselectAllNodesTaskTest.java
===================================================================
---
core3/impl/trunk/core-task-impl/src/test/java/org/cytoscape/task/internal/select/DeselectAllNodesTaskTest.java
2012-05-04 20:09:49 UTC (rev 29115)
+++
core3/impl/trunk/core-task-impl/src/test/java/org/cytoscape/task/internal/select/DeselectAllNodesTaskTest.java
2012-05-04 20:12:38 UTC (rev 29116)
@@ -33,7 +33,12 @@
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
+import java.util.HashSet;
+import java.util.Set;
+
+import org.cytoscape.model.CyNetwork;
+import org.cytoscape.model.CyRow;
import org.cytoscape.model.CyTable;
import org.cytoscape.work.Task;
import org.cytoscape.work.undo.UndoSupport;
@@ -53,6 +58,16 @@
when(net.getDefaultNodeTable()).thenReturn(nodeTable);
UndoSupport undoSupport = mock(UndoSupport.class);
+ Set<CyRow> selectedNodes = new HashSet<CyRow>();
+ selectedNodes.add(r3);
+ selectedNodes.add(r4);
+ when(nodeTable.getMatchingRows(CyNetwork.SELECTED,
true)).thenReturn(selectedNodes);
+
+ when (r3.get(CyNetwork.SUID, Long.class)).thenReturn(3L);
+ when (net.getNode(3L)).thenReturn(e3);
+ when (r4.get(CyNetwork.SUID, Long.class)).thenReturn(4L);
+ when (net.getNode(4L)).thenReturn(e4);
+
// run the task
Task t = new DeselectAllNodesTask(undoSupport, net,
networkViewManager, eventHelper);
t.run(tm);
Modified:
core3/impl/trunk/core-task-impl/src/test/java/org/cytoscape/task/internal/select/DeselectAllTaskTest.java
===================================================================
---
core3/impl/trunk/core-task-impl/src/test/java/org/cytoscape/task/internal/select/DeselectAllTaskTest.java
2012-05-04 20:09:49 UTC (rev 29115)
+++
core3/impl/trunk/core-task-impl/src/test/java/org/cytoscape/task/internal/select/DeselectAllTaskTest.java
2012-05-04 20:12:38 UTC (rev 29116)
@@ -33,7 +33,12 @@
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
+import java.util.HashSet;
+import java.util.Set;
+
+import org.cytoscape.model.CyNetwork;
+import org.cytoscape.model.CyRow;
import org.cytoscape.model.CyTable;
import org.cytoscape.work.Task;
import org.cytoscape.work.undo.UndoSupport;
@@ -55,6 +60,26 @@
when(net.getDefaultEdgeTable()).thenReturn(edgeTable);
UndoSupport undoSupport = mock(UndoSupport.class);
+ Set<CyRow> selectedEdges = new HashSet<CyRow>();
+ selectedEdges.add(r1);
+ selectedEdges.add(r2);
+ when(edgeTable.getMatchingRows(CyNetwork.SELECTED,
true)).thenReturn(selectedEdges);
+
+ when (r1.get(CyNetwork.SUID, Long.class)).thenReturn(1L);
+ when (net.getEdge(1L)).thenReturn(e1);
+ when (r2.get(CyNetwork.SUID, Long.class)).thenReturn(2L);
+ when (net.getEdge(2L)).thenReturn(e2);
+
+ Set<CyRow> selectedNodes = new HashSet<CyRow>();
+ selectedNodes.add(r3);
+ selectedNodes.add(r4);
+ when(nodeTable.getMatchingRows(CyNetwork.SELECTED,
true)).thenReturn(selectedNodes);
+
+ when (r3.get(CyNetwork.SUID, Long.class)).thenReturn(3L);
+ when (net.getNode(3L)).thenReturn(e3);
+ when (r4.get(CyNetwork.SUID, Long.class)).thenReturn(4L);
+ when (net.getNode(4L)).thenReturn(e4);
+
// run the task
Task t = new DeselectAllTask(undoSupport, net,
networkViewManager, eventHelper);
t.run(tm);
Modified:
core3/impl/trunk/core-task-impl/src/test/java/org/cytoscape/task/internal/select/SelectAllEdgesTaskTest.java
===================================================================
---
core3/impl/trunk/core-task-impl/src/test/java/org/cytoscape/task/internal/select/SelectAllEdgesTaskTest.java
2012-05-04 20:09:49 UTC (rev 29115)
+++
core3/impl/trunk/core-task-impl/src/test/java/org/cytoscape/task/internal/select/SelectAllEdgesTaskTest.java
2012-05-04 20:12:38 UTC (rev 29116)
@@ -33,7 +33,12 @@
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
+import java.util.HashSet;
+import java.util.Set;
+
+import org.cytoscape.model.CyNetwork;
+import org.cytoscape.model.CyRow;
import org.cytoscape.model.CyTable;
import org.cytoscape.work.Task;
import org.cytoscape.work.undo.UndoSupport;
@@ -53,6 +58,16 @@
when(net.getDefaultEdgeTable()).thenReturn(edgeTable);
UndoSupport undoSupport = mock(UndoSupport.class);
+ Set<CyRow> deselectedEdges = new HashSet<CyRow>();
+ deselectedEdges.add(r1);
+ deselectedEdges.add(r2);
+ when(edgeTable.getMatchingRows(CyNetwork.SELECTED,
false)).thenReturn(deselectedEdges);
+
+ when (r1.get(CyNetwork.SUID, Long.class)).thenReturn(1L);
+ when (net.getEdge(1L)).thenReturn(e1);
+ when (r2.get(CyNetwork.SUID, Long.class)).thenReturn(2L);
+ when (net.getEdge(2L)).thenReturn(e2);
+
// run the task
Task t = new SelectAllEdgesTask(undoSupport, net,
networkViewManager, eventHelper);
t.run(tm);
Modified:
core3/impl/trunk/core-task-impl/src/test/java/org/cytoscape/task/internal/select/SelectAllNodesTaskTest.java
===================================================================
---
core3/impl/trunk/core-task-impl/src/test/java/org/cytoscape/task/internal/select/SelectAllNodesTaskTest.java
2012-05-04 20:09:49 UTC (rev 29115)
+++
core3/impl/trunk/core-task-impl/src/test/java/org/cytoscape/task/internal/select/SelectAllNodesTaskTest.java
2012-05-04 20:12:38 UTC (rev 29116)
@@ -33,7 +33,12 @@
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
+import java.util.HashSet;
+import java.util.Set;
+
+import org.cytoscape.model.CyNetwork;
+import org.cytoscape.model.CyRow;
import org.cytoscape.model.CyTable;
import org.cytoscape.work.Task;
import org.cytoscape.work.undo.UndoSupport;
@@ -53,6 +58,16 @@
when(net.getDefaultNodeTable()).thenReturn(nodeTable);
UndoSupport undoSupport = mock(UndoSupport.class);
+ Set<CyRow> deselectedNodes = new HashSet<CyRow>();
+ deselectedNodes.add(r3);
+ deselectedNodes.add(r4);
+ when(nodeTable.getMatchingRows(CyNetwork.SELECTED,
false)).thenReturn(deselectedNodes);
+
+ when (r3.get(CyNetwork.SUID, Long.class)).thenReturn(3L);
+ when (net.getNode(3L)).thenReturn(e3);
+ when (r4.get(CyNetwork.SUID, Long.class)).thenReturn(4L);
+ when (net.getNode(4L)).thenReturn(e4);
+
// run the task
Task t = new SelectAllNodesTask(undoSupport, net,
networkViewManager, eventHelper);
t.run(tm);
Modified:
core3/impl/trunk/core-task-impl/src/test/java/org/cytoscape/task/internal/select/SelectAllTaskTest.java
===================================================================
---
core3/impl/trunk/core-task-impl/src/test/java/org/cytoscape/task/internal/select/SelectAllTaskTest.java
2012-05-04 20:09:49 UTC (rev 29115)
+++
core3/impl/trunk/core-task-impl/src/test/java/org/cytoscape/task/internal/select/SelectAllTaskTest.java
2012-05-04 20:12:38 UTC (rev 29116)
@@ -33,7 +33,12 @@
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
+import java.util.HashSet;
+import java.util.Set;
+
+import org.cytoscape.model.CyNetwork;
+import org.cytoscape.model.CyRow;
import org.cytoscape.model.CyTable;
import org.cytoscape.work.Task;
import org.cytoscape.work.undo.UndoSupport;
@@ -55,6 +60,26 @@
when(net.getDefaultEdgeTable()).thenReturn(edgeTable);
UndoSupport undoSupport = mock(UndoSupport.class);
+ Set<CyRow> deselectedNodes = new HashSet<CyRow>();
+ deselectedNodes.add(r3);
+ deselectedNodes.add(r4);
+ when(nodeTable.getMatchingRows(CyNetwork.SELECTED,
false)).thenReturn(deselectedNodes);
+
+ when (r3.get(CyNetwork.SUID, Long.class)).thenReturn(3L);
+ when (net.getNode(3L)).thenReturn(e3);
+ when (r4.get(CyNetwork.SUID, Long.class)).thenReturn(4L);
+ when (net.getNode(4L)).thenReturn(e4);
+
+ Set<CyRow> deselectedEdges = new HashSet<CyRow>();
+ deselectedEdges.add(r1);
+ deselectedEdges.add(r2);
+ when(edgeTable.getMatchingRows(CyNetwork.SELECTED,
false)).thenReturn(deselectedEdges);
+
+ when (r1.get(CyNetwork.SUID, Long.class)).thenReturn(1L);
+ when (net.getEdge(1L)).thenReturn(e1);
+ when (r2.get(CyNetwork.SUID, Long.class)).thenReturn(2L);
+ when (net.getEdge(2L)).thenReturn(e2);
+
// run the task
Task t = new SelectAllTask(undoSupport, net,
networkViewManager, eventHelper);
t.run(tm);
Modified:
core3/impl/trunk/model-impl/impl/src/main/java/org/cytoscape/model/internal/CySubNetworkImpl.java
===================================================================
---
core3/impl/trunk/model-impl/impl/src/main/java/org/cytoscape/model/internal/CySubNetworkImpl.java
2012-05-04 20:09:49 UTC (rev 29115)
+++
core3/impl/trunk/model-impl/impl/src/main/java/org/cytoscape/model/internal/CySubNetworkImpl.java
2012-05-04 20:12:38 UTC (rev 29116)
@@ -50,7 +50,6 @@
import org.cytoscape.model.events.RemovedNodesEvent;
import org.cytoscape.model.subnetwork.CyRootNetwork;
import org.cytoscape.model.subnetwork.CySubNetwork;
-import org.mockito.cglib.core.Local;
/**
@@ -102,6 +101,7 @@
ret = parent.addNode();
// then add the resulting CyNode to this network
addNodeInternal(ret);
+ getRow(ret).set(SELECTED, false);
}
if (fireAddedNodesAndEdgesEvents)
--
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.