Author: kono
Date: 2012-07-25 17:44:03 -0700 (Wed, 25 Jul 2012)
New Revision: 29993
Added:
core3/impl/trunk/webservice-psicquic-client-impl/src/main/java/org/cytoscape/webservice/psicquic/task/BuildQueryTask.java
Modified:
core3/impl/trunk/webservice-psicquic-client-impl/src/main/java/org/cytoscape/webservice/psicquic/CyActivator.java
core3/impl/trunk/webservice-psicquic-client-impl/src/main/java/org/cytoscape/webservice/psicquic/task/ExpandNodeContextMenuFactory.java
Log:
Query column can be selected by Tunable.
Modified:
core3/impl/trunk/webservice-psicquic-client-impl/src/main/java/org/cytoscape/webservice/psicquic/CyActivator.java
===================================================================
---
core3/impl/trunk/webservice-psicquic-client-impl/src/main/java/org/cytoscape/webservice/psicquic/CyActivator.java
2012-07-25 23:49:30 UTC (rev 29992)
+++
core3/impl/trunk/webservice-psicquic-client-impl/src/main/java/org/cytoscape/webservice/psicquic/CyActivator.java
2012-07-26 00:44:03 UTC (rev 29993)
@@ -50,13 +50,12 @@
registerAllServices(bc, psicquicClient, new Properties());
final ExpandNodeContextMenuFactory expandNodeContextMenuFactory
= new ExpandNodeContextMenuFactory(eh, vmm,
- psicquicClient.getRestClient(),
psicquicClient.getRegistryManager(), taskManager, layoutManager, builder);
+ psicquicClient.getRestClient(),
psicquicClient.getRegistryManager(), layoutManager, builder);
final Properties nodeProp = new Properties();
nodeProp.setProperty("preferredTaskManager", "menu");
- nodeProp.setProperty(PREFERRED_MENU, NODE_EDIT_MENU);
- nodeProp.setProperty(INSERT_SEPARATOR_BEFORE, "true");
+ nodeProp.setProperty(PREFERRED_MENU, NODE_APPS_MENU);
nodeProp.setProperty(MENU_GRAVITY, "10.0");
- nodeProp.setProperty(TITLE, "Extend Network");
+ nodeProp.setProperty(TITLE, "Extend Network by PSICQUIC...");
registerService(bc, expandNodeContextMenuFactory,
NodeViewTaskFactory.class, nodeProp);
}
}
Added:
core3/impl/trunk/webservice-psicquic-client-impl/src/main/java/org/cytoscape/webservice/psicquic/task/BuildQueryTask.java
===================================================================
---
core3/impl/trunk/webservice-psicquic-client-impl/src/main/java/org/cytoscape/webservice/psicquic/task/BuildQueryTask.java
(rev 0)
+++
core3/impl/trunk/webservice-psicquic-client-impl/src/main/java/org/cytoscape/webservice/psicquic/task/BuildQueryTask.java
2012-07-26 00:44:03 UTC (rev 29993)
@@ -0,0 +1,105 @@
+package org.cytoscape.webservice.psicquic.task;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.cytoscape.event.CyEventHelper;
+import org.cytoscape.model.CyColumn;
+import org.cytoscape.model.CyNetwork;
+import org.cytoscape.model.CyNode;
+import org.cytoscape.model.CyRow;
+import org.cytoscape.model.CyTable;
+import org.cytoscape.view.layout.CyLayoutAlgorithmManager;
+import org.cytoscape.view.model.CyNetworkView;
+import org.cytoscape.view.model.View;
+import org.cytoscape.view.vizmap.VisualMappingManager;
+import org.cytoscape.webservice.psicquic.PSICQUICRestClient;
+import org.cytoscape.webservice.psicquic.RegistryManager;
+import org.cytoscape.webservice.psicquic.PSICQUICRestClient.SearchMode;
+import org.cytoscape.webservice.psicquic.mapper.MergedNetworkBuilder;
+import org.cytoscape.work.AbstractTask;
+import org.cytoscape.work.TaskMonitor;
+import org.cytoscape.work.Tunable;
+import org.cytoscape.work.util.ListSingleSelection;
+
+public class BuildQueryTask extends AbstractTask {
+
+ @Tunable(description = "Select column send as query:")
+ public ListSingleSelection<String> columnList;
+
+ private PSICQUICRestClient client;
+ private final RegistryManager manager;
+
+ private final CyTable table;
+ private final View<CyNode> nodeView;
+
+ private final CyEventHelper eh;
+ private final VisualMappingManager vmm;
+
+ private final CyLayoutAlgorithmManager layouts;
+ private final MergedNetworkBuilder builder;
+
+ private final CyNetworkView netView;
+
+ private final Map<String, CyColumn> colName2column;
+
+ BuildQueryTask(final CyNetworkView netView, final View<CyNode>
nodeView, CyEventHelper eh,
+ VisualMappingManager vmm, final PSICQUICRestClient
client, final RegistryManager manager,
+ final CyLayoutAlgorithmManager layouts, final
MergedNetworkBuilder builder) {
+ this.table = netView.getModel().getDefaultNodeTable();
+ this.nodeView = nodeView;
+ this.manager = manager;
+ this.eh = eh;
+ this.vmm = vmm;
+ this.client = client;
+ this.layouts = layouts;
+ this.builder = builder;
+ this.netView = netView;
+
+ colName2column = new HashMap<String, CyColumn>();
+ final Collection<CyColumn> columns = table.getColumns();
+
+ final CyRow row = table.getRow(nodeView.getModel().getSUID());
+
+ String defaultSelection = null;
+ for (CyColumn col : columns) {
+ final Object val = row.get(col.getName(),
col.getType());
+ if (val != null && col.getType() == String.class) {
+ final String labelString = col.getName() + "("
+ val.toString() + ")";
+ colName2column.put(labelString, col);
+ if (col.getName().equals(CyNetwork.NAME))
+ defaultSelection = labelString;
+ }
+ }
+ columnList = new ListSingleSelection<String>(new
ArrayList<String>(colName2column.keySet()));
+
+ if (defaultSelection != null)
+ columnList.setSelectedValue(defaultSelection);
+ }
+
+ @Override
+ public void run(TaskMonitor taskMonitor) throws Exception {
+
+ final String selectedStr = columnList.getSelectedValue();
+ final CyColumn selected = colName2column.get(selectedStr);
+ final Object value =
table.getRow(nodeView.getModel().getSUID()).get(selected.getName(),
selected.getType());
+
+ if (value == null)
+ throw new NullPointerException("Selected column value
is null: " + selected.getName());
+
+ final String query = value.toString();
+ SearchRecoredsTask searchTask = new SearchRecoredsTask(client,
SearchMode.INTERACTOR);
+ final Map<String, String> activeSource =
manager.getActiveServices();
+ searchTask.setQuery(query);
+ searchTask.setTargets(activeSource.values());
+
+ final ProcessSearchResultTask expandTask = new
ProcessSearchResultTask(query, client, searchTask, netView,
+ nodeView, eh, vmm, layouts, manager, builder);
+
+ insertTasksAfterCurrentTask(searchTask, expandTask);
+
+ }
+
+}
Property changes on:
core3/impl/trunk/webservice-psicquic-client-impl/src/main/java/org/cytoscape/webservice/psicquic/task/BuildQueryTask.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Modified:
core3/impl/trunk/webservice-psicquic-client-impl/src/main/java/org/cytoscape/webservice/psicquic/task/ExpandNodeContextMenuFactory.java
===================================================================
---
core3/impl/trunk/webservice-psicquic-client-impl/src/main/java/org/cytoscape/webservice/psicquic/task/ExpandNodeContextMenuFactory.java
2012-07-25 23:49:30 UTC (rev 29992)
+++
core3/impl/trunk/webservice-psicquic-client-impl/src/main/java/org/cytoscape/webservice/psicquic/task/ExpandNodeContextMenuFactory.java
2012-07-26 00:44:03 UTC (rev 29993)
@@ -1,9 +1,5 @@
package org.cytoscape.webservice.psicquic.task;
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
-import java.util.Map;
-
import org.cytoscape.event.CyEventHelper;
import org.cytoscape.model.CyNetwork;
import org.cytoscape.model.CyNode;
@@ -13,11 +9,9 @@
import org.cytoscape.view.model.View;
import org.cytoscape.view.vizmap.VisualMappingManager;
import org.cytoscape.webservice.psicquic.PSICQUICRestClient;
-import org.cytoscape.webservice.psicquic.PSICQUICRestClient.SearchMode;
-import org.cytoscape.webservice.psicquic.mapper.MergedNetworkBuilder;
import org.cytoscape.webservice.psicquic.RegistryManager;
+import org.cytoscape.webservice.psicquic.mapper.MergedNetworkBuilder;
import org.cytoscape.work.TaskIterator;
-import org.cytoscape.work.TaskManager;
public class ExpandNodeContextMenuFactory extends AbstractNodeViewTaskFactory {
@@ -25,17 +19,15 @@
private final VisualMappingManager vmm;
private final RegistryManager manager;
private final PSICQUICRestClient client;
- private final TaskManager<?, ?> taskManager;
-
+
private final CyLayoutAlgorithmManager layouts;
private final MergedNetworkBuilder builder;
public ExpandNodeContextMenuFactory(CyEventHelper eh,
VisualMappingManager vmm, final PSICQUICRestClient client,
- final RegistryManager manager, final TaskManager
taskManager, final CyLayoutAlgorithmManager layouts, final MergedNetworkBuilder
builder) {
+ final RegistryManager manager, final
CyLayoutAlgorithmManager layouts, final MergedNetworkBuilder builder) {
this.eh = eh;
this.vmm = vmm;
this.client = client;
- this.taskManager = taskManager;
this.manager = manager;
this.layouts = layouts;
this.builder = builder;
@@ -46,19 +38,12 @@
throw new NullPointerException("RegistryManager is
null");
// Create query
- String query = netView.getModel().getDefaultNodeTable()
- .getRow(nodeView.getModel().getSUID())
- .get(CyNetwork.NAME,
String.class);
+ String query =
netView.getModel().getDefaultNodeTable().getRow(nodeView.getModel().getSUID())
+ .get(CyNetwork.NAME, String.class);
if (query == null)
throw new NullPointerException("Query object is null.");
else {
- SearchRecoredsTask searchTask = new
SearchRecoredsTask(client, SearchMode.INTERACTOR);
- final Map<String, String> activeSource =
manager.getActiveServices();
- searchTask.setQuery(query);
- searchTask.setTargets(activeSource.values());
-
- final ProcessSearchResultTask expandTask = new
ProcessSearchResultTask(query, client, searchTask, netView, nodeView, eh, vmm,
layouts, manager, builder);
- return new TaskIterator(searchTask, expandTask);
+ return new TaskIterator(new BuildQueryTask(netView,
nodeView, eh, vmm, client, manager, layouts, builder));
}
}
}
--
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.