Author: pwang
Date: 2009-11-24 16:58:25 -0800 (Tue, 24 Nov 2009)
New Revision: 18576
Modified:
cytoscape/trunk/src/cytoscape/actions/SelectConnectedNodesAction.java
Log:
Fixed Bug:0001941: SelectConnectedNodesAction horribly inefficient when lots of
edges are selected
Modified: cytoscape/trunk/src/cytoscape/actions/SelectConnectedNodesAction.java
===================================================================
--- cytoscape/trunk/src/cytoscape/actions/SelectConnectedNodesAction.java
2009-11-25 00:03:59 UTC (rev 18575)
+++ cytoscape/trunk/src/cytoscape/actions/SelectConnectedNodesAction.java
2009-11-25 00:58:25 UTC (rev 18576)
@@ -40,23 +40,17 @@
import cytoscape.CyNetwork;
import cytoscape.Cytoscape;
-
import cytoscape.util.CytoscapeAction;
-
-//-------------------------------------------------------------------------
import giny.model.Node;
import giny.model.Edge;
-
import java.awt.event.ActionEvent;
import java.awt.event.KeyEvent;
-
import java.util.ArrayList;
-import java.util.Iterator;
import java.util.List;
-
-import javax.swing.KeyStroke;
-
import javax.swing.event.MenuEvent;
+import java.util.Set;
+import java.util.HashSet;
+import cytoscape.CyEdge;
//-------------------------------------------------------------------------
/**
@@ -79,14 +73,17 @@
*/
public void actionPerformed(ActionEvent e) {
final CyNetwork currentNetwork = Cytoscape.getCurrentNetwork();
- final List<Edge> selectedEdges = new
ArrayList<Edge>(currentNetwork.getSelectedEdges());
+ Set<CyEdge> edgeSet = currentNetwork.getSelectedEdges();
+ final List<Edge> selectedEdges = new ArrayList<Edge>(edgeSet);
+ final Set<Node>nodesToSelect = new HashSet<Node>();
for (Edge edge: selectedEdges) {
- currentNetwork.setSelectedNodeState(edge.getSource(),
true);
- currentNetwork.setSelectedNodeState(edge.getTarget(),
true);
+ nodesToSelect.add(edge.getSource());
+ nodesToSelect.add(edge.getTarget());
}
-
+ currentNetwork.setSelectedNodeState(nodesToSelect, true);
Cytoscape.getCurrentNetworkView().updateView();
+
} // actionPerformed
public void menuSelected(MenuEvent e) {
--
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.