Author: kono
Date: 2012-06-28 15:15:54 -0700 (Thu, 28 Jun 2012)
New Revision: 29720

Modified:
   
core3/impl/trunk/webservice-psicquic-client-impl/src/main/java/org/cytoscape/webservice/psicquic/mapper/MergedNetworkBuilder.java
   
core3/impl/trunk/webservice-psicquic-client-impl/src/main/java/org/cytoscape/webservice/psicquic/task/ExpandFromSelectedSourcesTask.java
Log:
fixes #1164 Expand function correctly connects existing nodes.

Modified: 
core3/impl/trunk/webservice-psicquic-client-impl/src/main/java/org/cytoscape/webservice/psicquic/mapper/MergedNetworkBuilder.java
===================================================================
--- 
core3/impl/trunk/webservice-psicquic-client-impl/src/main/java/org/cytoscape/webservice/psicquic/mapper/MergedNetworkBuilder.java
   2012-06-28 20:59:16 UTC (rev 29719)
+++ 
core3/impl/trunk/webservice-psicquic-client-impl/src/main/java/org/cytoscape/webservice/psicquic/mapper/MergedNetworkBuilder.java
   2012-06-28 22:15:54 UTC (rev 29720)
@@ -10,10 +10,13 @@
 import java.util.Map;
 
 import org.cytoscape.model.CyEdge;
+import org.cytoscape.model.CyIdentifiable;
 import org.cytoscape.model.CyNetwork;
 import org.cytoscape.model.CyNetworkFactory;
 import org.cytoscape.model.CyNode;
 import org.cytoscape.model.CyTable;
+import org.cytoscape.view.model.CyNetworkView;
+import org.cytoscape.view.model.View;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -44,16 +47,27 @@
 
        public CyNetwork buildNetwork(final InteractionCluster iC) throws 
IOException {
                CyNetwork network = networkFactory.createNetwork();
-               process(iC, network);
+               process(iC, network, null, null);
                return network;
        }
        
-       public Map<String, CyNode> addToNetwork(final InteractionCluster iC, 
CyNetwork network) {
-               return process(iC, network);
+       public Map<String, CyNode> addToNetwork(final InteractionCluster iC, 
CyNetworkView networkView, final View<CyNode> hubNode) {
+               return process(iC, networkView.getModel(), networkView, 
hubNode);
        }
        
-       private final Map<String, CyNode> process(final InteractionCluster iC, 
CyNetwork network) {
+       private final Map<String, CyNode> process(final InteractionCluster iC, 
CyNetwork network, CyNetworkView netView, final View<CyNode> hubNode) {
                nodeMap = new HashMap<String, CyNode>();
+               if(hubNode != null) {
+                       
nodeMap.put(network.getRow(hubNode.getModel()).get(CyNetwork.NAME, 
String.class), hubNode.getModel());
+                       if(netView != null)
+                               
network.getRow(hubNode.getModel()).set(CyNetwork.SELECTED, true);
+               }
+               
+               if(network.getNodeCount() != 0) {
+                       for(CyNode existingNode: network.getNodeList())
+                               
nodeMap.put(network.getRow(existingNode).get(CyNetwork.NAME, String.class), 
existingNode);
+               }
+               
                Map<Integer, EncoreInteraction> interactions = 
iC.getInteractionMapping();
                Map<String, List<Integer>> interactorMapping = 
iC.getInteractorMapping();
                Map<String, String> interactorSynonyms = iC.getSynonymMapping();
@@ -73,6 +87,8 @@
                        if (sourceNode == null) {
                                sourceNode = network.addNode();
                                network.getRow(sourceNode).set(CyNetwork.NAME, 
source);
+                               if(netView != null)
+                                       
network.getRow(sourceNode).set(CyNetwork.SELECTED, true);
                                nodeMap.put(source, sourceNode);
                        }
                        final String target = interaction.getInteractorB();
@@ -80,6 +96,8 @@
                        if (targetNode == null) {
                                targetNode = network.addNode();
                                network.getRow(targetNode).set(CyNetwork.NAME, 
target);
+                               if(netView != null)
+                                       
network.getRow(targetNode).set(CyNetwork.SELECTED, true);
                                nodeMap.put(target, targetNode);
                        }
                        mapper.mapNodeColumn(interaction, 
network.getRow(sourceNode), network.getRow(targetNode));

Modified: 
core3/impl/trunk/webservice-psicquic-client-impl/src/main/java/org/cytoscape/webservice/psicquic/task/ExpandFromSelectedSourcesTask.java
===================================================================
--- 
core3/impl/trunk/webservice-psicquic-client-impl/src/main/java/org/cytoscape/webservice/psicquic/task/ExpandFromSelectedSourcesTask.java
    2012-06-28 20:59:16 UTC (rev 29719)
+++ 
core3/impl/trunk/webservice-psicquic-client-impl/src/main/java/org/cytoscape/webservice/psicquic/task/ExpandFromSelectedSourcesTask.java
    2012-06-28 22:15:54 UTC (rev 29720)
@@ -2,7 +2,6 @@
 
 import java.util.ArrayList;
 import java.util.Collection;
-import java.util.HashMap;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
@@ -28,7 +27,6 @@
 import org.cytoscape.work.Tunable;
 import org.cytoscape.work.util.ListMultipleSelection;
 
-import uk.ac.ebi.enfin.mi.cluster.EncoreInteraction;
 import uk.ac.ebi.enfin.mi.cluster.InteractionCluster;
 
 public class ExpandFromSelectedSourcesTask extends AbstractTask {
@@ -68,7 +66,7 @@
                
                final List<String> sourceNames = new 
ArrayList<String>(sourceMap.keySet());
                services = new ListMultipleSelection<String>(sourceNames);
-               services.setSelectedValues(sourceNames);
+               services.setSelectedValues(sourceNames);                
        }
 
        @Override
@@ -110,24 +108,12 @@
        }
        
        private void expand(final InteractionCluster iC) {
-               final CyNetwork parentNetwork = netView.getModel();
-               final Map<String, CyNode> nodeMap = builder.addToNetwork(iC, 
parentNetwork);
-
                eh.flushPayloadEvents();
+               builder.addToNetwork(iC, netView, nodeView);
+               eh.flushPayloadEvents();
 
-               for (CyNode n : nodeMap.values()) {
-                       final View<CyNode> nv = netView.getNodeView(n);
-                       nv.setVisualProperty(BasicVisualLexicon.NODE_X_LOCATION,
-                                       
nodeView.getVisualProperty(BasicVisualLexicon.NODE_X_LOCATION));
-                       nv.setVisualProperty(BasicVisualLexicon.NODE_Y_LOCATION,
-                                       
nodeView.getVisualProperty(BasicVisualLexicon.NODE_Y_LOCATION));
-                       nv.setVisualProperty(BasicVisualLexicon.NODE_SELECTED, 
true);
-                       
parentNetwork.getRow(nv.getModel()).set(CyNetwork.SELECTED, true);
-               }
-
                // Apply visual style
-               eh.flushPayloadEvents();
-               VisualStyle vs = vmm.getVisualStyle(netView);
+               final VisualStyle vs = vmm.getVisualStyle(netView);
                vs.apply(netView);
                netView.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