Author: rodche
Date: 2012-07-09 14:18:36 -0700 (Mon, 09 Jul 2012)
New Revision: 29806

Modified:
   core3/impl/trunk/biopax-impl/pom.xml
   
core3/impl/trunk/biopax-impl/src/main/java/org/cytoscape/biopax/internal/BioPaxMapper.java
   
core3/impl/trunk/biopax-impl/src/main/java/org/cytoscape/biopax/internal/BioPaxReaderTask.java
   
core3/impl/trunk/biopax-impl/src/main/java/org/cytoscape/biopax/internal/BioPaxReaderTaskFactory.java
   
core3/impl/trunk/biopax-impl/src/main/java/org/cytoscape/biopax/internal/CyActivator.java
   
core3/impl/trunk/biopax-impl/src/main/java/org/cytoscape/biopax/internal/action/BioPaxViewTracker.java
Log:
Trying to add Groups (meta nodes)...

Modified: core3/impl/trunk/biopax-impl/pom.xml
===================================================================
--- core3/impl/trunk/biopax-impl/pom.xml        2012-07-09 21:12:50 UTC (rev 
29805)
+++ core3/impl/trunk/biopax-impl/pom.xml        2012-07-09 21:18:36 UTC (rev 
29806)
@@ -58,6 +58,11 @@
                        <artifactId>layout-api</artifactId>
                        <scope>provided</scope>
                </dependency>
+               <dependency>
+                       <groupId>org.cytoscape</groupId>
+                       <artifactId>group-api</artifactId>
+                       <scope>provided</scope>
+               </dependency>
         <dependency>
                <groupId>org.biopax.paxtools</groupId>
                <artifactId>paxtools-core</artifactId>

Modified: 
core3/impl/trunk/biopax-impl/src/main/java/org/cytoscape/biopax/internal/BioPaxMapper.java
===================================================================
--- 
core3/impl/trunk/biopax-impl/src/main/java/org/cytoscape/biopax/internal/BioPaxMapper.java
  2012-07-09 21:12:50 UTC (rev 29805)
+++ 
core3/impl/trunk/biopax-impl/src/main/java/org/cytoscape/biopax/internal/BioPaxMapper.java
  2012-07-09 21:18:36 UTC (rev 29806)
@@ -24,6 +24,7 @@
 import org.cytoscape.biopax.internal.util.ExternalLink;
 import org.cytoscape.biopax.internal.util.ExternalLinkUtil;
 import org.cytoscape.biopax.internal.util.NodeAttributesWrapper;
+import org.cytoscape.group.CyGroupFactory;
 import org.cytoscape.model.CyEdge;
 import org.cytoscape.model.CyNetwork;
 import org.cytoscape.model.CyNetworkFactory;
@@ -144,9 +145,10 @@
         phosNodeSelectedLeft
     };
 
-       private Model model;
-       private CyNetworkFactory networkFactory;
-       private TaskMonitor taskMonitor;
+       private final Model model;
+       private final CyNetworkFactory networkFactory;
+       private final TaskMonitor taskMonitor;
+       private final CyGroupFactory cyGroupFactory;
        
        // BioPAX ID (URI) to CyNode map
        // remark: nodes's CyTable will also have 'URI' (RDF Id) column
@@ -161,11 +163,13 @@
         * @param model
         * @param cyNetworkFactory
         * @param taskMonitor
+        * @param cyGroupFactory 
         */
-       public BioPaxMapper(Model model, CyNetworkFactory cyNetworkFactory, 
TaskMonitor taskMonitor) {
+       public BioPaxMapper(Model model, CyNetworkFactory cyNetworkFactory, 
TaskMonitor taskMonitor, CyGroupFactory cyGroupFactory) {
                this.model = model;
                this.networkFactory = cyNetworkFactory;
-               this.taskMonitor = taskMonitor; 
+               this.taskMonitor = taskMonitor;
+               this.cyGroupFactory = cyGroupFactory;
        }
        
 
@@ -220,14 +224,27 @@
        private void createMemberEdges(CyNetwork network) {
                // for each PE,
                for (PhysicalEntity par : 
model.getObjects(PhysicalEntity.class)) {
+                       Set<PhysicalEntity> members = 
par.getMemberPhysicalEntity();
+                       if(members.isEmpty()) 
+                               continue;
+                       
+                       List<CyNode> nodeList = new ArrayList<CyNode>();
+                       List<CyEdge> edgeList = new ArrayList<CyEdge>();
+                       
                        CyNode cyParentNode = uriToCyNodeMap.get(par);
+                       assert cyParentNode != null : "cyParentNode is NULL.";
                        // for each its member PE, add the directed edge
-                       for (PhysicalEntity member : 
par.getMemberPhysicalEntity()) 
+                       for (PhysicalEntity member : members) 
                        {
                                CyNode cyMemberNode = 
uriToCyNodeMap.get(member);
                                CyEdge edge = network.addEdge(cyParentNode, 
cyMemberNode, true);
                                AttributeUtil.set(network, edge, 
BIOPAX_EDGE_TYPE, "member", String.class);
+                               
+                               nodeList.add(cyMemberNode);
+                               edgeList.add(edge);
                        }
+                       
+                       cyGroupFactory.createGroup(network, cyParentNode, 
nodeList, edgeList, true);
                }
        }
 
@@ -299,16 +316,29 @@
        private void createComplexEdges(CyNetwork network) {
                // interate through all pe's
                for (Complex complexElement : model.getObjects(Complex.class)) {
+                       Set<PhysicalEntity> members = 
complexElement.getComponent();
+                       if(members.isEmpty()) 
+                               continue;
+
                        // get node
                        CyNode complexCyNode = 
uriToCyNodeMap.get(complexElement);
+                       
+                       List<CyNode> nodeList = new ArrayList<CyNode>();
+                       List<CyEdge> edgeList = new ArrayList<CyEdge>();
+                       
                        // get all components. There can be 0 or more
-                       for (PhysicalEntity member : 
complexElement.getComponent()) 
+                       for (PhysicalEntity member : members) 
                        {
                                CyNode complexMemberCyNode = 
uriToCyNodeMap.get(member);
                                // create edge, set attributes
                                CyEdge edge = network.addEdge(complexCyNode, 
complexMemberCyNode, true);
                                AttributeUtil.set(network, edge, 
BIOPAX_EDGE_TYPE, "contains", String.class);
+                               
+                               nodeList.add(complexMemberCyNode);
+                               edgeList.add(edge);
                        }
+                       
+                       cyGroupFactory.createGroup(network, complexCyNode, 
nodeList, edgeList, true);
                }
        }
 

Modified: 
core3/impl/trunk/biopax-impl/src/main/java/org/cytoscape/biopax/internal/BioPaxReaderTask.java
===================================================================
--- 
core3/impl/trunk/biopax-impl/src/main/java/org/cytoscape/biopax/internal/BioPaxReaderTask.java
      2012-07-09 21:12:50 UTC (rev 29805)
+++ 
core3/impl/trunk/biopax-impl/src/main/java/org/cytoscape/biopax/internal/BioPaxReaderTask.java
      2012-07-09 21:18:36 UTC (rev 29806)
@@ -5,6 +5,7 @@
 import org.apache.commons.lang.StringEscapeUtils;
 import org.biopax.paxtools.model.Model;
 import org.cytoscape.biopax.internal.util.BioPaxUtil;
+import org.cytoscape.group.CyGroupFactory;
 import org.cytoscape.io.read.CyNetworkReader;
 import org.cytoscape.model.CyNetwork;
 import org.cytoscape.model.CyNetworkFactory;
@@ -30,6 +31,7 @@
        private final CyNetworkFactory networkFactory;
        private final CyNetworkViewFactory viewFactory;
        private final CyNetworkNaming naming;
+       private final CyGroupFactory cyGroupFactory;
 
        private InputStream stream;
 
@@ -40,17 +42,19 @@
 
        /**
         * Constructor
+        * @param cyGroupFactory 
         * @param model PaxTools BioPAX Model
         */
        public BioPaxReaderTask(InputStream stream, String inputName, 
                        CyNetworkFactory networkFactory, CyNetworkViewFactory 
viewFactory, 
-                       CyNetworkNaming naming) 
+                       CyNetworkNaming naming, CyGroupFactory cyGroupFactory) 
        {
                this.stream = stream;
                this.inputName = inputName;
                this.networkFactory = networkFactory;
                this.viewFactory = viewFactory;
                this.naming = naming;
+               this.cyGroupFactory = cyGroupFactory;
        }
 
        
@@ -80,7 +84,7 @@
 //             }
                
                // Map BioPAX Data to Cytoscape Nodes/Edges (run as task)
-               BioPaxMapper mapper = new BioPaxMapper(model, networkFactory, 
taskMonitor);
+               BioPaxMapper mapper = new BioPaxMapper(model, networkFactory, 
taskMonitor, cyGroupFactory);
                String networkName = getNetworkName(model);
                network = mapper.createCyNetwork(networkName);
                

Modified: 
core3/impl/trunk/biopax-impl/src/main/java/org/cytoscape/biopax/internal/BioPaxReaderTaskFactory.java
===================================================================
--- 
core3/impl/trunk/biopax-impl/src/main/java/org/cytoscape/biopax/internal/BioPaxReaderTaskFactory.java
       2012-07-09 21:12:50 UTC (rev 29805)
+++ 
core3/impl/trunk/biopax-impl/src/main/java/org/cytoscape/biopax/internal/BioPaxReaderTaskFactory.java
       2012-07-09 21:18:36 UTC (rev 29806)
@@ -2,6 +2,7 @@
 
 import java.io.InputStream;
 
+import org.cytoscape.group.CyGroupFactory;
 import org.cytoscape.io.CyFileFilter;
 import org.cytoscape.io.read.AbstractInputStreamTaskFactory;
 import org.cytoscape.model.CyNetworkFactory;
@@ -14,14 +15,16 @@
        private final CyNetworkFactory networkFactory;
        private final CyNetworkViewFactory viewFactory;
        private final CyNetworkNaming naming;
+       private final CyGroupFactory cyGroupFactory;
 
        public BioPaxReaderTaskFactory(CyFileFilter filter, CyNetworkFactory 
networkFactory, 
-                       CyNetworkViewFactory viewFactory, CyNetworkNaming 
naming)
+                       CyNetworkViewFactory viewFactory, CyNetworkNaming 
naming, CyGroupFactory cyGroupFactory)
        {
                super(filter);
                this.networkFactory = networkFactory;
                this.viewFactory = viewFactory;
                this.naming = naming;
+               this.cyGroupFactory = cyGroupFactory;
        }
        
 
@@ -31,7 +34,7 @@
                        inputName = "BioPAX_Network"; //default name fallback
                
                return new TaskIterator(
-                       new BioPaxReaderTask(is, inputName, networkFactory, 
viewFactory, naming)
+                       new BioPaxReaderTask(is, inputName, networkFactory, 
viewFactory, naming, cyGroupFactory)
                        );
        }
 

Modified: 
core3/impl/trunk/biopax-impl/src/main/java/org/cytoscape/biopax/internal/CyActivator.java
===================================================================
--- 
core3/impl/trunk/biopax-impl/src/main/java/org/cytoscape/biopax/internal/CyActivator.java
   2012-07-09 21:12:50 UTC (rev 29805)
+++ 
core3/impl/trunk/biopax-impl/src/main/java/org/cytoscape/biopax/internal/CyActivator.java
   2012-07-09 21:18:36 UTC (rev 29806)
@@ -6,6 +6,7 @@
 import org.cytoscape.view.vizmap.VisualMappingManager;
 import org.cytoscape.view.layout.CyLayoutAlgorithmManager;
 import org.cytoscape.view.model.CyNetworkViewManager;
+import org.cytoscape.group.CyGroupFactory;
 import org.cytoscape.io.util.StreamUtil;
 import org.cytoscape.property.CyProperty;
 import org.cytoscape.session.CyNetworkNaming;
@@ -66,6 +67,7 @@
                CyLayoutAlgorithmManager cyLayoutsRef = 
getService(bc,CyLayoutAlgorithmManager.class);  
                TaskManager taskManagerRef = getService(bc, 
DialogTaskManager.class);
                CyProperty<Properties> cytoscapePropertiesServiceRef = 
getService(bc, CyProperty.class, "(cyPropertyName=cytoscape3.props)");
+               CyGroupFactory cyGroupFactory = getService(bc, 
CyGroupFactory.class);
                
                BioPaxFilter bioPaxFilter = new BioPaxFilter(streamUtilRef);
                LaunchExternalBrowser launchExternalBrowser = new 
LaunchExternalBrowser(openBrowserRef);        
@@ -74,7 +76,7 @@
                BioPaxVisualStyleUtil bioPaxVisualStyleUtil = new 
BioPaxVisualStyleUtil(visualStyleFactoryRef,visualMappingManagerRef,discreteMappingFunctionFactoryRef,passthroughMappingFunctionFactoryRef);
                BioPaxViewTracker bioPaxViewTracker = new 
BioPaxViewTracker(bioPaxDetailsPanel,bioPaxContainer, cyApplicationManagerRef, 
                                visualMappingManagerRef, bioPaxVisualStyleUtil, 
cyLayoutsRef, taskManagerRef, cytoscapePropertiesServiceRef);
-               InputStreamTaskFactory inputStreamTaskFactory = new 
BioPaxReaderTaskFactory(bioPaxFilter,cyNetworkFactoryRef,cyNetworkViewFactoryRef,cyNetworkNamingRef);
+               InputStreamTaskFactory inputStreamTaskFactory = new 
BioPaxReaderTaskFactory(bioPaxFilter,cyNetworkFactoryRef,cyNetworkViewFactoryRef,cyNetworkNamingRef,
 cyGroupFactory);
                CytoPanelComponent cytoPanelComponent = new 
BioPaxCytoPanelComponent(bioPaxContainer);
                
                // register/export osgi services
@@ -95,6 +97,8 @@
 //                     System.out.println("Failed test biopax-impl.");
 //                     t.printStackTrace();
 //             }
+               
+               
        }
 }
 

Modified: 
core3/impl/trunk/biopax-impl/src/main/java/org/cytoscape/biopax/internal/action/BioPaxViewTracker.java
===================================================================
--- 
core3/impl/trunk/biopax-impl/src/main/java/org/cytoscape/biopax/internal/action/BioPaxViewTracker.java
      2012-07-09 21:12:50 UTC (rev 29805)
+++ 
core3/impl/trunk/biopax-impl/src/main/java/org/cytoscape/biopax/internal/action/BioPaxViewTracker.java
      2012-07-09 21:18:36 UTC (rev 29806)
@@ -103,7 +103,6 @@
                                        if (prop != null)
                                                pref = 
prop.getProperties().getProperty("preferredLayoutAlgorithm", pref);
                                        final CyLayoutAlgorithm layout = 
layoutAlgorithmManager.getLayout(pref);                                        
-//                             final CyLayoutAlgorithm layout = 
layoutAlgorithmManager.getDefaultLayout();
                                final Object context = 
layout.getDefaultLayoutContext();
                                        taskManagerRef.execute(
                                        layout.createTaskIterator(view, 
context, CyLayoutAlgorithm.ALL_NODE_VIEWS,""));

-- 
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