Author: kono
Date: 2011-07-11 15:22:44 -0700 (Mon, 11 Jul 2011)
New Revision: 26142

Modified:
   
core3/search-impl/trunk/src/main/java/org/cytoscape/search/internal/IndexAndSearchTask.java
   
core3/search-impl/trunk/src/main/java/org/cytoscape/search/internal/SearchTaskFactory.java
   
core3/search-impl/trunk/src/main/java/org/cytoscape/search/internal/ui/EnhancedSearchPanel.java
Log:
fixes #133 Network selection will be applied to the view correctly.  If there 
is no matching nodes/edges, nothing will be selected in the view.

Modified: 
core3/search-impl/trunk/src/main/java/org/cytoscape/search/internal/IndexAndSearchTask.java
===================================================================
--- 
core3/search-impl/trunk/src/main/java/org/cytoscape/search/internal/IndexAndSearchTask.java
 2011-07-11 19:36:36 UTC (rev 26141)
+++ 
core3/search-impl/trunk/src/main/java/org/cytoscape/search/internal/IndexAndSearchTask.java
 2011-07-11 22:22:44 UTC (rev 26142)
@@ -31,13 +31,13 @@
 import java.util.ArrayList;
 import java.util.Iterator;
 import java.util.List;
-import java.util.Set;
 
 import org.apache.lucene.store.RAMDirectory;
 import org.cytoscape.model.CyEdge;
 import org.cytoscape.model.CyNetwork;
 import org.cytoscape.model.CyNode;
 import org.cytoscape.model.CyTableManager;
+import org.cytoscape.session.CyApplicationManager;
 import org.cytoscape.task.AbstractNetworkTask;
 import org.cytoscape.view.model.CyNetworkView;
 import org.cytoscape.view.model.CyNetworkViewManager;
@@ -55,6 +55,7 @@
        private final EnhancedSearch enhancedSearch;
        private final CyTableManager tableMgr;
        private final CyNetworkViewManager viewManager;
+       private final CyApplicationManager appManager;
 
        public String query;
 
@@ -63,14 +64,16 @@
         * the user should be provided as arguments to the constructor.
         */
        public IndexAndSearchTask(final CyNetwork network, final EnhancedSearch 
enhancedSearch,
-                       final CyTableManager tableMgr, final String query, 
final CyNetworkViewManager viewManager) {
-               
+                       final CyTableManager tableMgr, final String query, 
final CyNetworkViewManager viewManager,
+                       final CyApplicationManager appManager) {
+
                // Will set a CyNetwork field called "net".
                super(network);
                this.enhancedSearch = enhancedSearch;
                this.tableMgr = tableMgr;
                this.query = query;
                this.viewManager = viewManager;
+               this.appManager = appManager;
        }
 
        @Override
@@ -108,7 +111,6 @@
                        return;
                
                showResults(queryHandler, taskMonitor);
-               
                updateView();
        }
 
@@ -119,6 +121,10 @@
                final CyNetworkView targetView = 
viewManager.getNetworkView(network.getSUID());
                if(targetView != null)
                        targetView.updateView();
+               
+               final CyNetworkView view = appManager.getCurrentNetworkView();
+               if(view != null )
+                       view.updateView();
        }
 
        // Display results
@@ -128,11 +134,11 @@
 
                List<CyNode> nodeList = network.getNodeList();
                for (CyNode n : nodeList) {
-                       n.getCyRow().set("selected",false);
+                       n.getCyRow().set(CyNetwork.SELECTED,false);
                }
                List<CyEdge> edgeList = network.getEdgeList();
                for (CyEdge e : edgeList) {
-                       e.getCyRow().set("selected",false);
+                       e.getCyRow().set(CyNetwork.SELECTED, false);
                }
 
                int nodeHitCount = queryHandler.getNodeHitCount();
@@ -145,34 +151,31 @@
                ArrayList<String> nodeHits = queryHandler.getNodeHits();
                ArrayList<String> edgeHits = queryHandler.getEdgeHits();
 
-               Iterator nodeIt = nodeHits.iterator();
+               final Iterator<String> nodeIt = nodeHits.iterator();
                int numCompleted = 0;
                while (nodeIt.hasNext() && !interrupted) {
                        int currESPIndex = 
Integer.parseInt(nodeIt.next().toString());
                        CyNode currNode = network.getNode(currESPIndex);
                        if (currNode != null)
-                               currNode.getCyRow().set("selected", true);
+                               currNode.getCyRow().set(CyNetwork.SELECTED, 
true);
                        else
                                System.out.println("Unknown node identifier " + 
(currESPIndex));
 
                        taskMonitor.setProgress(numCompleted++ / nodeHitCount);
                }
 
-               Iterator edgeIt = edgeHits.iterator();
+               final Iterator<String> edgeIt = edgeHits.iterator();
                numCompleted = 0;
                while (edgeIt.hasNext() && !interrupted) {
                        int currESPIndex = 
Integer.parseInt(edgeIt.next().toString());
                        CyEdge currEdge = network.getEdge(currESPIndex);
                        if (currEdge != null)
-                               currEdge.getCyRow().set("selected", true);
+                               currEdge.getCyRow().set(CyNetwork.SELECTED, 
true);
                        else
                                System.out.println("Unknown edge identifier " + 
(currESPIndex));
 
                        taskMonitor.setProgress(++numCompleted / edgeHitCount);
                }
-
-               // Refresh view to show selected nodes and edges
-               //view.updateView();
        }
 
        @Override

Modified: 
core3/search-impl/trunk/src/main/java/org/cytoscape/search/internal/SearchTaskFactory.java
===================================================================
--- 
core3/search-impl/trunk/src/main/java/org/cytoscape/search/internal/SearchTaskFactory.java
  2011-07-11 19:36:36 UTC (rev 26141)
+++ 
core3/search-impl/trunk/src/main/java/org/cytoscape/search/internal/SearchTaskFactory.java
  2011-07-11 22:22:44 UTC (rev 26142)
@@ -2,6 +2,7 @@
 
 import org.cytoscape.model.CyNetwork;
 import org.cytoscape.model.CyTableManager;
+import org.cytoscape.session.CyApplicationManager;
 import org.cytoscape.task.AbstractNetworkTaskFactory;
 import org.cytoscape.view.model.CyNetworkViewManager;
 import org.cytoscape.work.TaskFactory;
@@ -14,16 +15,19 @@
        private String query;
        
        private final CyNetworkViewManager viewManager;
+       private final CyApplicationManager appManager;
        
-       public SearchTaskFactory(final CyNetwork network, EnhancedSearch 
searchMgr, CyTableManager tableMgr, String query, final CyNetworkViewManager 
viewManager) {
+       public SearchTaskFactory(final CyNetwork network, EnhancedSearch 
searchMgr, CyTableManager tableMgr, String query,
+                       final CyNetworkViewManager viewManager, final 
CyApplicationManager appManager) {
                this.network = network;
                this.searchMgr = searchMgr;
                this.tableMgr = tableMgr;
                this.query = query;
                this.viewManager = viewManager;
+               this.appManager = appManager;
        }
 
        public TaskIterator getTaskIterator() {
-               return new TaskIterator(new IndexAndSearchTask(network, 
searchMgr, tableMgr, query, viewManager));
+               return new TaskIterator(new IndexAndSearchTask(network, 
searchMgr, tableMgr, query, viewManager, appManager));
        }
 }

Modified: 
core3/search-impl/trunk/src/main/java/org/cytoscape/search/internal/ui/EnhancedSearchPanel.java
===================================================================
--- 
core3/search-impl/trunk/src/main/java/org/cytoscape/search/internal/ui/EnhancedSearchPanel.java
     2011-07-11 19:36:36 UTC (rev 26141)
+++ 
core3/search-impl/trunk/src/main/java/org/cytoscape/search/internal/ui/EnhancedSearchPanel.java
     2011-07-11 22:22:44 UTC (rev 26142)
@@ -53,14 +53,14 @@
        // Do searching based on the query string from user on text-field
        private void doSearching() {
                final String queryStr = this.tfSearchText.getText().trim();
-               logger.debug("Search Start.  Query text = " + queryStr);
+               logger.info("Search Start.  Query text = " + queryStr);
 
                final CyNetwork currentNetwork = appManager.getCurrentNetwork();
                if (currentNetwork != null) {
                        logger.debug("Target Network ID = " + 
currentNetwork.getSUID());
 
                        final SearchTaskFactory factory = new 
SearchTaskFactory(currentNetwork, searchMgr,
-                                       tableMgr, queryStr, viewManager);
+                                       tableMgr, queryStr, viewManager, 
appManager);
                        this.taskMgr.execute(factory);
                } else
                        logger.error("Could not find network for search");
@@ -110,26 +110,4 @@
        private javax.swing.JLabel lbSearch;
        private javax.swing.JTextField tfSearchText;
        // End of variables declaration
-
-       
-       /**
-        * Simply updates view if necessary.
-        */
-       private final class UpdateViewTask extends AbstractTask {
-
-               private final CyApplicationManager appManager;
-               
-               UpdateViewTask(final CyApplicationManager appManager) {
-                       this.appManager = appManager;
-               }
-               
-               @Override
-               public void run(TaskMonitor tm) throws Exception {
-                       CyNetworkView view = appManager.getCurrentNetworkView();
-                       
-                       if(view != null)
-                               view.updateView();
-               }
-               
-       }
 }

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