Author: jm
Date: 2012-05-03 14:15:42 -0700 (Thu, 03 May 2012)
New Revision: 29096

Modified:
   
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/FlagAndSelectionHandler.java
Log:
References #946: Reduced heap allocation frequency in FlagAndSelectionHandler.

Modified: 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/FlagAndSelectionHandler.java
===================================================================
--- 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/FlagAndSelectionHandler.java
        2012-05-03 21:10:55 UTC (rev 29095)
+++ 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/FlagAndSelectionHandler.java
        2012-05-03 21:15:42 UTC (rev 29096)
@@ -44,6 +44,7 @@
 import org.cytoscape.model.CyNetwork;
 import org.cytoscape.model.CyNode;
 import org.cytoscape.model.CyIdentifiable;
+import org.cytoscape.model.CyTableUtil;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -76,37 +77,13 @@
                view.addGraphViewChangeListener(this);
        }
 
-       private Set<CyNode> getSelectedNodes() {
-               final Set<CyNode> selectedNodes = new HashSet<CyNode>();
-
-               for (final CyNode n : network.getNodeList()) {
-                       final Boolean selected = 
network.getRow(n).get(CyNetwork.SELECTED, Boolean.class);
-                       if (selected != null && selected)
-                               selectedNodes.add(n);
-               }
-
-               return selectedNodes;
-       }
-
-       private Set<CyEdge> getSelectedEdges() {
-               final Set<CyEdge> selectedEdges = new HashSet<CyEdge>();
-
-               for (final CyEdge n : network.getEdgeList()) {
-                       final Boolean selected = 
network.getRow(n).get(CyNetwork.SELECTED, Boolean.class);
-                       if (selected != null && selected)
-                               selectedEdges.add(n);
-               }
-
-               return selectedEdges;
-       }
-
        /**
         * Synchronizes the filter and view of this object by selecting every 
object
         * that is currently flagged and vice versa.
         */
        private void syncFilterAndView() {
-               final Set<CyNode> flaggedNodes = getSelectedNodes();
-               final Set<CyEdge> flaggedEdges = getSelectedEdges();
+               final List<CyNode> flaggedNodes = 
CyTableUtil.getNodesInState(network, CyNetwork.SELECTED, true);
+               final List<CyEdge> flaggedEdges = 
CyTableUtil.getEdgesInState(network, CyNetwork.SELECTED, true);
 
                final List<CyNode> selectedNodes = view.getSelectedNodes();
                final List<CyEdge> selectedEdges = view.getSelectedEdges();

-- 
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.

Reply via email to