Author: jm
Date: 2012-05-04 13:09:49 -0700 (Fri, 04 May 2012)
New Revision: 29115

Modified:
   
core3/impl/trunk/filter-impl/src/main/java/org/cytoscape/filter/internal/filters/model/NodeInteractionFilter.java
   
core3/impl/trunk/filter-impl/src/main/java/org/cytoscape/filter/internal/filters/util/SelectUtil.java
   
core3/impl/trunk/search-impl/src/main/java/org/cytoscape/search/internal/IndexAndSearchTask.java
Log:
References #945: More optimizations for filter-impl and search-impl

Modified: 
core3/impl/trunk/filter-impl/src/main/java/org/cytoscape/filter/internal/filters/model/NodeInteractionFilter.java
===================================================================
--- 
core3/impl/trunk/filter-impl/src/main/java/org/cytoscape/filter/internal/filters/model/NodeInteractionFilter.java
   2012-05-04 20:08:39 UTC (rev 29114)
+++ 
core3/impl/trunk/filter-impl/src/main/java/org/cytoscape/filter/internal/filters/model/NodeInteractionFilter.java
   2012-05-04 20:09:49 UTC (rev 29115)
@@ -85,16 +85,16 @@
                        passFilter.apply();             
                }       
 
-               List<CyNode> nodes_list = null;
+               List<CyNode> nodes_list = network.getNodeList();
+               List<CyEdge> edges = network.getEdgeList();
 
                // NodeInteractionFilter will select node only
-               nodes_list = network.getNodeList();
                int objectCount = nodes_list.size();
                nodeBits = new BitSet(objectCount); // all the bits are false 
at very beginning
                        
                if ((nodeType != 
NODE_UNDEFINED)&&(!passFilter.getName().equalsIgnoreCase("None"))) {
                        for (int i=0; i<objectCount; i++) {
-                               if (isHit(nodes_list.get(i))) {
+                               if (isHit(nodes_list.get(i), edges)) {
                                        nodeBits.set(i);
                                }
                        }                       
@@ -108,7 +108,7 @@
        }
 
 
-       private boolean isHit(CyNode pNode) {
+       private boolean isHit(CyNode pNode, List<CyEdge> edges) {
                
                // Get the list of relevant edges for this node
                List<CyEdge> adjacentEdges = null;
@@ -134,7 +134,7 @@
 
                int edgeIndex = -1;
                for (int i=0; i < adjacentEdges.size(); i++) {
-                       edgeIndex = 
network.getEdgeList().indexOf(adjacentEdges.get(i));
+                       edgeIndex = edges.indexOf(adjacentEdges.get(i));
                
                        if (passFilter_edgeBits.get(edgeIndex) == true) {
                                return true;

Modified: 
core3/impl/trunk/filter-impl/src/main/java/org/cytoscape/filter/internal/filters/util/SelectUtil.java
===================================================================
--- 
core3/impl/trunk/filter-impl/src/main/java/org/cytoscape/filter/internal/filters/util/SelectUtil.java
       2012-05-04 20:08:39 UTC (rev 29114)
+++ 
core3/impl/trunk/filter-impl/src/main/java/org/cytoscape/filter/internal/filters/util/SelectUtil.java
       2012-05-04 20:09:49 UTC (rev 29115)
@@ -44,40 +44,17 @@
        }
        
        public static void selectAllNodes(CyNetwork cyNetwork) {
-               selectAll(cyNetwork,cyNetwork.getNodeList());
+               selectAll(cyNetwork, CyTableUtil.getNodesInState(cyNetwork, 
CyNetwork.SELECTED, false));
        }
        
        public static void selectAllEdges(CyNetwork cyNetwork) {
-               selectAll(cyNetwork,cyNetwork.getEdgeList());
+               selectAll(cyNetwork, CyTableUtil.getEdgesInState(cyNetwork, 
CyNetwork.SELECTED, false));
        }
        
        static <T extends CyIdentifiable> void selectAll(CyNetwork network, 
Collection<T> items) {
                for (T item : items) {
                        CyRow row = network.getRow(item);
-                       if (!row.get(CyNetwork.SELECTED, Boolean.class)) {
-                               row.set(CyNetwork.SELECTED, Boolean.TRUE);
-                       }
+                       row.set(CyNetwork.SELECTED, Boolean.TRUE);
                }
        }
-
-       public static int getSelectedNodeCount(CyNetwork cyNetwork) {
-               return countSelected(cyNetwork, cyNetwork.getNodeList());
-       }
-
-       public static int getSelectedEdgeCount(CyNetwork cyNetwork) {
-               return countSelected(cyNetwork, cyNetwork.getNodeList());
-       }
-       
-       static <T extends CyIdentifiable> int countSelected(CyNetwork network, 
Collection<T> items) {
-               int count = 0;
-               for (T item : items) {
-                       CyRow row = network.getRow(item);
-                       if (row.get(CyNetwork.SELECTED, Boolean.class)) {
-                               count++;
-                       }
-               }
-               return count;
-       }
-       
-
 }

Modified: 
core3/impl/trunk/search-impl/src/main/java/org/cytoscape/search/internal/IndexAndSearchTask.java
===================================================================
--- 
core3/impl/trunk/search-impl/src/main/java/org/cytoscape/search/internal/IndexAndSearchTask.java
    2012-05-04 20:08:39 UTC (rev 29114)
+++ 
core3/impl/trunk/search-impl/src/main/java/org/cytoscape/search/internal/IndexAndSearchTask.java
    2012-05-04 20:09:49 UTC (rev 29115)
@@ -40,6 +40,7 @@
 import org.cytoscape.model.CyEdge;
 import org.cytoscape.model.CyNetwork;
 import org.cytoscape.model.CyNode;
+import org.cytoscape.model.CyTableUtil;
 import org.cytoscape.task.AbstractNetworkTask;
 import org.cytoscape.view.model.CyNetworkView;
 import org.cytoscape.view.model.CyNetworkViewManager;
@@ -151,11 +152,11 @@
                        return;
                }
 
-               List<CyNode> nodeList = network.getNodeList();
+               List<CyNode> nodeList = CyTableUtil.getNodesInState(network, 
CyNetwork.SELECTED, true);
                for (CyNode n : nodeList) {
                        network.getRow(n).set(CyNetwork.SELECTED,false);
                }
-               List<CyEdge> edgeList = network.getEdgeList();
+               List<CyEdge> edgeList = CyTableUtil.getEdgesInState(network, 
CyNetwork.SELECTED, true);
                for (CyEdge e : edgeList) {
                        network.getRow(e).set(CyNetwork.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.

Reply via email to