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.

Reply via email to