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.