Author: kono
Date: 2011-06-28 17:27:02 -0700 (Tue, 28 Jun 2011)
New Revision: 25971
Modified:
core3/search-impl/trunk/src/main/java/org/cytoscape/search/internal/EnhancedSearchIndex.java
core3/search-impl/trunk/src/main/java/org/cytoscape/search/internal/EnhancedSearchPlugin.java
core3/search-impl/trunk/src/main/java/org/cytoscape/search/internal/EnhancedSearchQuery.java
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
core3/search-impl/trunk/src/main/resources/META-INF/spring/bundle-context-osgi.xml
core3/search-impl/trunk/src/main/resources/META-INF/spring/bundle-context.xml
Log:
EnhancedSearch now works without view.
Modified:
core3/search-impl/trunk/src/main/java/org/cytoscape/search/internal/EnhancedSearchIndex.java
===================================================================
---
core3/search-impl/trunk/src/main/java/org/cytoscape/search/internal/EnhancedSearchIndex.java
2011-06-28 22:30:36 UTC (rev 25970)
+++
core3/search-impl/trunk/src/main/java/org/cytoscape/search/internal/EnhancedSearchIndex.java
2011-06-29 00:27:02 UTC (rev 25971)
@@ -29,34 +29,34 @@
import java.io.IOException;
+import java.util.List;
+import java.util.Set;
-import org.cytoscape.model.CyNetwork;
-import org.cytoscape.model.CyNode;
-import org.cytoscape.model.CyEdge;
-import org.cytoscape.model.CyTable;
-import org.cytoscape.model.CyTableUtil;
-
-import org.cytoscape.search.internal.util.EnhancedSearchUtils;
+import org.apache.lucene.analysis.standard.StandardAnalyzer;
+import org.apache.lucene.document.Document;
import org.apache.lucene.document.Field;
+import org.apache.lucene.document.NumericField;
import org.apache.lucene.index.IndexWriter;
-import org.apache.lucene.document.Document;
import org.apache.lucene.store.RAMDirectory;
-import org.apache.lucene.analysis.standard.StandardAnalyzer;
-import java.util.Set;
-
+import org.apache.lucene.util.Version;
+import org.cytoscape.model.CyEdge;
+import org.cytoscape.model.CyNetwork;
+import org.cytoscape.model.CyNode;
+import org.cytoscape.model.CyRow;
+import org.cytoscape.model.CyTable;
import org.cytoscape.model.CyTableEntry;
-import org.cytoscape.model.CyRow;
-import java.util.List;
-import java.util.Map;
-import org.apache.lucene.util.Version;
-import org.apache.lucene.document.NumericField;
+import org.cytoscape.model.CyTableUtil;
+import org.cytoscape.search.internal.util.EnhancedSearchUtils;
public class EnhancedSearchIndex {
RAMDirectory idx;
// Index the given network
- public EnhancedSearchIndex(CyNetwork network) {
+ public EnhancedSearchIndex(final CyNetwork network) {
+ if(network == null)
+ throw new NullPointerException("Network is null.");
+
// Construct a RAMDirectory to hold the in-memory
representation of the index.
idx = new RAMDirectory();
BuildIndex(idx, network);
Modified:
core3/search-impl/trunk/src/main/java/org/cytoscape/search/internal/EnhancedSearchPlugin.java
===================================================================
---
core3/search-impl/trunk/src/main/java/org/cytoscape/search/internal/EnhancedSearchPlugin.java
2011-06-28 22:30:36 UTC (rev 25970)
+++
core3/search-impl/trunk/src/main/java/org/cytoscape/search/internal/EnhancedSearchPlugin.java
2011-06-29 00:27:02 UTC (rev 25971)
@@ -43,6 +43,7 @@
import org.cytoscape.session.events.SetCurrentNetworkViewListener;
import org.cytoscape.application.swing.CySwingApplication;
import org.cytoscape.search.internal.ui.EnhancedSearchPanel;
+import org.cytoscape.view.model.CyNetworkViewManager;
import org.cytoscape.work.swing.GUITaskManager;
@@ -55,15 +56,15 @@
static CyEventHelper eventHelper;
public EnhancedSearchPlugin(final CySwingApplication desktopApp,
- final CyApplicationManager netmgr,
+ final CyApplicationManager appManager,
final CyTableManager tableMgr,
final GUITaskManager taskMgr,
- final CyEventHelper eventHelper)
+ final CyEventHelper eventHelper, final
CyNetworkViewManager viewManager)
{
searchMgr = new EnhancedSearchManager();
// Add a text-field and a search button on tool-bar
- searchPnl = new EnhancedSearchPanel(netmgr, tableMgr,
searchMgr, taskMgr);
+ searchPnl = new EnhancedSearchPanel(appManager, viewManager,
tableMgr, searchMgr, taskMgr);
this.setToolBarGravity(150.0f);
EnhancedSearchPlugin.eventHelper = eventHelper;
}
Modified:
core3/search-impl/trunk/src/main/java/org/cytoscape/search/internal/EnhancedSearchQuery.java
===================================================================
---
core3/search-impl/trunk/src/main/java/org/cytoscape/search/internal/EnhancedSearchQuery.java
2011-06-28 22:30:36 UTC (rev 25970)
+++
core3/search-impl/trunk/src/main/java/org/cytoscape/search/internal/EnhancedSearchQuery.java
2011-06-29 00:27:02 UTC (rev 25971)
@@ -49,9 +49,14 @@
import org.cytoscape.search.internal.util.AttributeFields;
import org.cytoscape.search.internal.util.CustomMultiFieldQueryParser;
import org.cytoscape.search.internal.util.EnhancedSearchUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
public class EnhancedSearchQuery {
+
+ private static final Logger logger =
LoggerFactory.getLogger(EnhancedSearchQuery.class);
+
private final RAMDirectory idx;
private final CyNetwork network;
private final CyTableManager tableMgr;
@@ -66,6 +71,8 @@
public void executeQuery(String queryString) {
try {
+ logger.debug("Query start for: " + queryString);
+
// Define attribute fields in which the search is to be
carried on
AttributeFields attFields = new
AttributeFields(network, tableMgr);
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-06-28 22:30:36 UTC (rev 25970)
+++
core3/search-impl/trunk/src/main/java/org/cytoscape/search/internal/IndexAndSearchTask.java
2011-06-29 00:27:02 UTC (rev 25971)
@@ -29,25 +29,32 @@
import java.util.ArrayList;
+import java.util.Iterator;
import java.util.List;
-import java.util.Iterator;
+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.task.AbstractNetworkTask;
import org.cytoscape.view.model.CyNetworkView;
-import org.cytoscape.model.CyNode;
-import org.cytoscape.model.CyEdge;
-import org.cytoscape.task.AbstractNetworkViewTask;
+import org.cytoscape.view.model.CyNetworkViewManager;
import org.cytoscape.work.TaskMonitor;
-import org.cytoscape.model.CyTableManager;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
-public class IndexAndSearchTask extends AbstractNetworkViewTask {
+public class IndexAndSearchTask extends AbstractNetworkTask {
+
+ private static final Logger logger =
LoggerFactory.getLogger(IndexAndSearchTask.class);
+
private boolean interrupted = false;
- private EnhancedSearch enhancedSearch;
- private CyNetwork network;
- private CyTableManager tableMgr;
+
+ private final EnhancedSearch enhancedSearch;
+ private final CyTableManager tableMgr;
+ private final CyNetworkViewManager viewManager;
public String query;
@@ -55,33 +62,36 @@
* The constructor. Any necessary data that is <i>not</i> provided by
* the user should be provided as arguments to the constructor.
*/
- public IndexAndSearchTask(final CyNetworkView networkView,
- final EnhancedSearch enhancedSearch,
- final CyTableManager tableMgr, String query)
- {
+ public IndexAndSearchTask(final CyNetwork network, final EnhancedSearch
enhancedSearch,
+ final CyTableManager tableMgr, final String query,
final CyNetworkViewManager viewManager) {
+
// Will set a CyNetwork field called "net".
- super(networkView);
- network = networkView.getModel();
+ super(network);
this.enhancedSearch = enhancedSearch;
this.tableMgr = tableMgr;
this.query = query;
+ this.viewManager = viewManager;
}
@Override
public void run(final TaskMonitor taskMonitor) {
+
+ logger.debug("Index and search start.");
+
// Give the task a title.
taskMonitor.setTitle("Searching the network");
// Index the given network or use existing index
RAMDirectory idx = null;
- String status = enhancedSearch.getNetworkIndexStatus(network);
-
+ final String status =
enhancedSearch.getNetworkIndexStatus(network);
+ logger.debug("Index status = " + status);
+
if (status != null &&
status.equalsIgnoreCase(EnhancedSearch.INDEX_SET))
idx = enhancedSearch.getNetworkIndex(network);
else {
taskMonitor.setStatusMessage("Indexing network");
- EnhancedSearchIndex indexHandler = new
EnhancedSearchIndex(network);
+ final EnhancedSearchIndex indexHandler = new
EnhancedSearchIndex(network);
idx = indexHandler.getIndex();
enhancedSearch.setNetworkIndex(network, idx);
}
@@ -96,12 +106,23 @@
if (interrupted)
return;
+
+ showResults(queryHandler, taskMonitor);
+
+ updateView();
}
+ /**
+ * If view(s) exists for the current network, update them.
+ */
+ private void updateView() {
+ final CyNetworkView targetView =
viewManager.getNetworkView(network.getSUID());
+ if(targetView != null)
+ targetView.updateView();
+ }
+
// Display results
- private void showResults(final EnhancedSearchQuery queryHandler,
- final TaskMonitor taskMonitor)
- {
+ private void showResults(final EnhancedSearchQuery queryHandler, final
TaskMonitor taskMonitor) {
if (network == null || network.getNodeList().size() == 0)
return;
@@ -151,7 +172,7 @@
}
// Refresh view to show selected nodes and edges
- view.updateView();
+ //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-06-28 22:30:36 UTC (rev 25970)
+++
core3/search-impl/trunk/src/main/java/org/cytoscape/search/internal/SearchTaskFactory.java
2011-06-29 00:27:02 UTC (rev 25971)
@@ -1,24 +1,29 @@
package org.cytoscape.search.internal;
+import org.cytoscape.model.CyNetwork;
import org.cytoscape.model.CyTableManager;
-import org.cytoscape.task.AbstractNetworkViewTaskFactory;
+import org.cytoscape.task.AbstractNetworkTaskFactory;
+import org.cytoscape.view.model.CyNetworkViewManager;
import org.cytoscape.work.TaskFactory;
import org.cytoscape.work.TaskIterator;
-import org.cytoscape.view.model.CyNetworkView;
-public class SearchTaskFactory extends AbstractNetworkViewTaskFactory
implements TaskFactory {
+
+public class SearchTaskFactory extends AbstractNetworkTaskFactory implements
TaskFactory {
private CyTableManager tableMgr;
private EnhancedSearch searchMgr;
private String query;
- public SearchTaskFactory(CyNetworkView view, EnhancedSearch searchMgr,
CyTableManager tableMgr, String query) {
- this.view = view;
+ private final CyNetworkViewManager viewManager;
+
+ public SearchTaskFactory(final CyNetwork network, EnhancedSearch
searchMgr, CyTableManager tableMgr, String query, final CyNetworkViewManager
viewManager) {
+ this.network = network;
this.searchMgr = searchMgr;
this.tableMgr = tableMgr;
this.query = query;
+ this.viewManager = viewManager;
}
public TaskIterator getTaskIterator() {
- return new TaskIterator(new IndexAndSearchTask(view, searchMgr,
tableMgr, query));
+ return new TaskIterator(new IndexAndSearchTask(network,
searchMgr, tableMgr, query, viewManager));
}
}
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-06-28 22:30:36 UTC (rev 25970)
+++
core3/search-impl/trunk/src/main/java/org/cytoscape/search/internal/ui/EnhancedSearchPanel.java
2011-06-29 00:27:02 UTC (rev 25971)
@@ -1,19 +1,33 @@
package org.cytoscape.search.internal.ui;
+import org.cytoscape.model.CyNetwork;
import org.cytoscape.model.CyTableManager;
+import org.cytoscape.search.internal.EnhancedSearch;
+import org.cytoscape.search.internal.SearchTaskFactory;
import org.cytoscape.session.CyApplicationManager;
-import org.cytoscape.search.internal.*;
+import org.cytoscape.view.model.CyNetworkView;
+import org.cytoscape.view.model.CyNetworkViewManager;
+import org.cytoscape.work.AbstractTask;
+import org.cytoscape.work.TaskMonitor;
import org.cytoscape.work.swing.GUITaskManager;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
public class EnhancedSearchPanel extends javax.swing.JPanel {
- private CyApplicationManager netmgr;
+ private static final long serialVersionUID = 3748296514173533886L;
+
+ private static final Logger logger =
LoggerFactory.getLogger(EnhancedSearchPanel.class);
+
+ private CyApplicationManager appManager;
private CyTableManager tableMgr;
private EnhancedSearch searchMgr;
private GUITaskManager taskMgr;
+
+ private final CyNetworkViewManager viewManager;
/** Creates new form NewJPanel */
- public EnhancedSearchPanel(CyApplicationManager netmgr, CyTableManager
tableMgr, EnhancedSearch searchMgr,
+ public EnhancedSearchPanel(CyApplicationManager appManager, final
CyNetworkViewManager viewManager, CyTableManager tableMgr, EnhancedSearch
searchMgr,
GUITaskManager taskMgr) {
initComponents();
@@ -21,12 +35,11 @@
this.btnSearch.setVisible(false);
this.lbSearch.setVisible(true);
- this.netmgr = netmgr;
+ this.appManager = appManager;
this.tableMgr = tableMgr;
this.searchMgr = searchMgr;
this.taskMgr = taskMgr;
- // The following is for debug only
- // this.tfSearchText.setText("TestNodeAttribute1:[0 to 5]");
+ this.viewManager = viewManager;
}
private void btnSearchActionPerformed(java.awt.event.ActionEvent evt) {
@@ -39,13 +52,18 @@
// Do searching based on the query string from user on text-field
private void doSearching() {
- if (this.netmgr.getCurrentNetworkView() != null) {
- String queryStr = this.tfSearchText.getText().trim();
+ final String queryStr = this.tfSearchText.getText().trim();
+ logger.debug("Search Start. Query text = " + queryStr);
- SearchTaskFactory factory = new
SearchTaskFactory(this.netmgr.getCurrentNetworkView(), searchMgr, tableMgr,
- 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);
this.taskMgr.execute(factory);
- }
+ } else
+ logger.error("Could not find network for search");
}
/**
@@ -93,4 +111,25 @@
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();
+ }
+
+ }
}
Modified:
core3/search-impl/trunk/src/main/resources/META-INF/spring/bundle-context-osgi.xml
===================================================================
---
core3/search-impl/trunk/src/main/resources/META-INF/spring/bundle-context-osgi.xml
2011-06-28 22:30:36 UTC (rev 25970)
+++
core3/search-impl/trunk/src/main/resources/META-INF/spring/bundle-context-osgi.xml
2011-06-29 00:27:02 UTC (rev 25971)
@@ -22,6 +22,9 @@
<osgi:reference id="guiTaskManagerServiceRef"
interface="org.cytoscape.work.swing.GUITaskManager" />
<osgi:reference id="cyEventHelperServiceRef"
interface="org.cytoscape.event.CyEventHelper" />
+
+ <osgi:reference id="cyNetworkViewManagerServiceRef"
+ interface="org.cytoscape.view.model.CyNetworkViewManager" />
<!--
This code registers the bean we just created "sampleTaskFactory" as an
Modified:
core3/search-impl/trunk/src/main/resources/META-INF/spring/bundle-context.xml
===================================================================
---
core3/search-impl/trunk/src/main/resources/META-INF/spring/bundle-context.xml
2011-06-28 22:30:36 UTC (rev 25970)
+++
core3/search-impl/trunk/src/main/resources/META-INF/spring/bundle-context.xml
2011-06-29 00:27:02 UTC (rev 25971)
@@ -21,5 +21,6 @@
<constructor-arg ref="cyTableManagerServiceRef" />
<constructor-arg ref="guiTaskManagerServiceRef" />
<constructor-arg ref="cyEventHelperServiceRef" />
+ <constructor-arg ref="cyNetworkViewManagerServiceRef" />
</bean>
</beans>
--
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.