Author: jm
Date: 2010-09-29 14:36:22 -0700 (Wed, 29 Sep 2010)
New Revision: 22103

Modified:
   
core3/io-impl/trunk/src/main/java/org/cytoscape/io/internal/read/gml/GMLNetworkViewReader.java
   
core3/io-impl/trunk/src/main/java/org/cytoscape/io/internal/read/gml/GMLNetworkViewReaderFactory.java
   
core3/io-impl/trunk/src/main/resources/META-INF/spring/bundle-context-osgi.xml
   core3/io-impl/trunk/src/main/resources/META-INF/spring/bundle-context.xml
   
core3/io-impl/trunk/src/test/java/org/cytoscape/io/internal/read/gml/GMLNetworkViewReaderTest.java
Log:
Changed GMLNetworkViewReader to use VisualLexicon instead of accessing specific 
lexicons directly

Modified: 
core3/io-impl/trunk/src/main/java/org/cytoscape/io/internal/read/gml/GMLNetworkViewReader.java
===================================================================
--- 
core3/io-impl/trunk/src/main/java/org/cytoscape/io/internal/read/gml/GMLNetworkViewReader.java
      2010-09-29 03:04:19 UTC (rev 22102)
+++ 
core3/io-impl/trunk/src/main/java/org/cytoscape/io/internal/read/gml/GMLNetworkViewReader.java
      2010-09-29 21:36:22 UTC (rev 22103)
@@ -41,6 +41,7 @@
 import java.io.InputStream;
 import java.io.StringWriter;
 import java.util.ArrayList;
+import java.util.Collection;
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.List;
@@ -54,10 +55,14 @@
 import org.cytoscape.model.CyNetwork;
 import org.cytoscape.model.CyNetworkFactory;
 import org.cytoscape.model.CyNode;
+import org.cytoscape.model.CyTableEntry;
+import org.cytoscape.session.CyNetworkManager;
 import org.cytoscape.view.model.CyNetworkView;
 import org.cytoscape.view.model.CyNetworkViewFactory;
 import org.cytoscape.view.model.View;
-import org.cytoscape.view.presentation.property.TwoDVisualLexicon;
+import org.cytoscape.view.model.VisualLexicon;
+import org.cytoscape.view.model.VisualProperty;
+import org.cytoscape.view.presentation.RenderingEngine;
 import org.cytoscape.view.vizmap.VisualStyle;
 import org.cytoscape.work.AbstractTask;
 import org.cytoscape.work.TaskMonitor;
@@ -185,6 +190,7 @@
        private final InputStream inputStream;
        private final CyNetworkFactory networkFactory;
        private final CyNetworkViewFactory viewFactory;
+       private final CyNetworkManager networkManager;
        
        private CyNetwork network;
        private CyNetworkView view;
@@ -192,15 +198,17 @@
        /**
         * Constructor.<br>
         * This is usually used for remote file loading.
+        * @param networkManager 
         *
         * @param is
         *            Input stream of GML file,
         *
         */
-       public GMLNetworkViewReader(InputStream inputStream, CyNetworkFactory 
networkFactory, CyNetworkViewFactory viewFactory) {
+       public GMLNetworkViewReader(InputStream inputStream, CyNetworkFactory 
networkFactory, CyNetworkViewFactory viewFactory, CyNetworkManager 
networkManager) {
                this.inputStream = inputStream;
                this.networkFactory = networkFactory;
                this.viewFactory = viewFactory;
+               this.networkManager = networkManager;
                
                // Set new style name
                edge_names = new Vector<CyEdge>();
@@ -691,21 +699,35 @@
         * matches to the "graphics" key word
         */
        private void layoutNodeGraphics(CyNetworkView myView, List<KeyValue> 
list, View<CyNode> nodeView) {
-               for (KeyValue keyVal : list) {
-                       if (keyVal.key.equals(X)) {
-                               
nodeView.setVisualProperty(TwoDVisualLexicon.NODE_X_LOCATION, 
asDouble(keyVal.value));
-                       } else if (keyVal.key.equals(Y)) {
-                               
nodeView.setVisualProperty(TwoDVisualLexicon.NODE_Y_LOCATION, 
asDouble(keyVal.value));
-                       } else if (keyVal.key.equals(H)) {
-                               
nodeView.setVisualProperty(TwoDVisualLexicon.NODE_Y_SIZE, 
asDouble(keyVal.value));
-                       } else if (keyVal.key.equals(W)) {
-                               
nodeView.setVisualProperty(TwoDVisualLexicon.NODE_X_SIZE, 
asDouble(keyVal.value));
-                       } else if (keyVal.key.equals(FILL)) {
-                               
nodeView.setVisualProperty(TwoDVisualLexicon.NODE_COLOR, asPaint(keyVal.value));
-//                     } else if (keyVal.key.equals(OUTLINE)) {
-//                             nodeView.setBorderPaint(getColor((String) 
keyVal.value));
-//                     } else if (keyVal.key.equals(OUTLINE_WIDTH)) {
-//                             nodeView.setBorderWidth(((Number) 
keyVal.value).floatValue());
+               RenderingEngine<CyNetwork> engine = 
networkManager.getCurrentRenderingEngine();
+               if (engine == null) {
+                       // TODO: Remove this once CyNetworkManager can provide 
an engine
+                       //       instance with zero networks loaded.
+                       return;
+               }
+               VisualLexicon lexicon = engine.getVisualLexicon();
+               Collection<VisualProperty<?>> properties = 
lexicon.getVisualProperties(CyTableEntry.NODE);
+               for (VisualProperty<?> property : properties) {
+                       String id = property.getIdString();
+                       
+                       for (KeyValue keyVal : list) {
+                               if (keyVal.key.equals(X) && 
id.equals("NODE_X_LOCATION")) {
+                                       nodeView.setVisualProperty(property, 
(Object) asDouble(keyVal.value));
+                               } else if (keyVal.key.equals(Y) && 
id.equals("NODE_Y_LOCATION")) {
+                                       nodeView.setVisualProperty(property, 
(Object) asDouble(keyVal.value));
+                               } else if (keyVal.key.equals(W) && 
id.equals("NODE_X_SIZE")) {
+                                       nodeView.setVisualProperty(property, 
(Object) asDouble(keyVal.value));
+                               } else if (keyVal.key.equals(H) && 
id.equals("NODE_Y_SIZE")) {
+                                       nodeView.setVisualProperty(property, 
(Object) asDouble(keyVal.value));
+                               } else if (keyVal.key.equals(FILL) && 
id.equals("NODE_COLOR")) {
+                                       nodeView.setVisualProperty(property, 
(Object) asPaint(keyVal.value));
+                               } else if (keyVal.key.equals(OUTLINE) && 
id.equals("NODE_BORDER_PAINT")) {
+                                       nodeView.setVisualProperty(property, 
(Object) asPaint(keyVal.value));
+                               } else if (keyVal.key.equals(OUTLINE_WIDTH) && 
id.equals("NODE_BORDER_WIDTH")) {
+                                       nodeView.setVisualProperty(property, 
(Object) asDouble(keyVal.value));
+                               }
+                       }
+               }
 //                     } else if (keyVal.key.equals(TYPE)) {
 //                             String type = (String) keyVal.value;
 //
@@ -724,8 +746,6 @@
 //                             } else if (type.equals(TRIANGLE)) {
 //                                     nodeView.setShape(NodeView.TRIANGLE);
 //                             }
-                       }
-               }
        }
 
        private Paint asPaint(Object object) {
@@ -893,15 +913,30 @@
        //
        @SuppressWarnings("unchecked")
        private void layoutEdgeGraphics(CyNetworkView myView, List<KeyValue> 
list, View<CyEdge> edgeView) {
-               for (KeyValue keyVal : list) {
-                       // This is a polyline obj. However, it will be 
translated into
-                       // straight line.
-                       if (keyVal.key.equals(LINE)) {
-                               layoutEdgeGraphicsLine(myView, (List<KeyValue>) 
keyVal.value, edgeView);
-                       } else if (keyVal.key.equals(WIDTH)) {
-                               
edgeView.setVisualProperty(TwoDVisualLexicon.EDGE_WIDTH, 
asDouble(keyVal.value));
-                       } else if (keyVal.key.equals(FILL)) {
-                               
edgeView.setVisualProperty(TwoDVisualLexicon.EDGE_COLOR, asPaint(keyVal.value));
+               RenderingEngine<CyNetwork> engine = 
networkManager.getCurrentRenderingEngine();
+               if (engine == null) {
+                       // TODO: Remove this once CyNetworkManager can provide 
an engine
+                       //       instance with zero networks loaded.
+                       return;
+               }
+               VisualLexicon lexicon = engine.getVisualLexicon();
+               Collection<VisualProperty<?>> properties = 
lexicon.getVisualProperties(CyTableEntry.NODE);
+               for (VisualProperty<?> property : properties) {
+                       String id = property.getIdString();
+                       
+                       for (KeyValue keyVal : list) {
+                               // This is a polyline obj. However, it will be 
translated into
+                               // straight line.
+                               if (keyVal.key.equals(LINE)) {
+                                       layoutEdgeGraphicsLine(myView, 
(List<KeyValue>) keyVal.value, edgeView);
+                               } else if (keyVal.key.equals(WIDTH) && 
id.equals("EDGE_WIDTH")) {
+                                       edgeView.setVisualProperty(property, 
(Object) asDouble(keyVal.value));
+                               } else if (keyVal.key.equals(FILL) && 
id.equals("EDGE_COLOR")) {
+                                       edgeView.setVisualProperty(property, 
(Object) asPaint(keyVal.value));
+                               }
+                       }
+               }
+               
 //                     } else if (keyVal.key.equals(TYPE)) {
 //                             String value = (String) keyVal.value;
 //
@@ -933,8 +968,6 @@
 //                             } else if (keyVal.value.equals(TARGET_ARROW)) {
 //                                     edgeView.setTargetEdgeEnd(((Number) 
keyVal.value).intValue());
 //                             }
-                       }
-               }
        }
 
        /**

Modified: 
core3/io-impl/trunk/src/main/java/org/cytoscape/io/internal/read/gml/GMLNetworkViewReaderFactory.java
===================================================================
--- 
core3/io-impl/trunk/src/main/java/org/cytoscape/io/internal/read/gml/GMLNetworkViewReaderFactory.java
       2010-09-29 03:04:19 UTC (rev 22102)
+++ 
core3/io-impl/trunk/src/main/java/org/cytoscape/io/internal/read/gml/GMLNetworkViewReaderFactory.java
       2010-09-29 21:36:22 UTC (rev 22103)
@@ -3,20 +3,25 @@
 import org.cytoscape.io.CyFileFilter;
 import org.cytoscape.io.internal.read.AbstractNetworkViewReaderFactory;
 import org.cytoscape.model.CyNetworkFactory;
+import org.cytoscape.session.CyNetworkManager;
 import org.cytoscape.view.model.CyNetworkViewFactory;
 import org.cytoscape.work.TaskIterator;
 
 public class GMLNetworkViewReaderFactory extends 
AbstractNetworkViewReaderFactory {
 
+       private final CyNetworkManager networkManager;
+
        public GMLNetworkViewReaderFactory(CyFileFilter filter,
                        CyNetworkViewFactory networkViewFactory,
-                       CyNetworkFactory networkFactory) {
+                       CyNetworkFactory networkFactory,
+                       CyNetworkManager networkManager) {
                super(filter, networkViewFactory, networkFactory);
+               this.networkManager = networkManager;
        }
 
        @Override
        public TaskIterator getTaskIterator() {
-               return new TaskIterator(new GMLNetworkViewReader(inputStream, 
cyNetworkFactory, cyNetworkViewFactory));
+               return new TaskIterator(new GMLNetworkViewReader(inputStream, 
cyNetworkFactory, cyNetworkViewFactory, networkManager));
        }
 
 }

Modified: 
core3/io-impl/trunk/src/main/resources/META-INF/spring/bundle-context-osgi.xml
===================================================================
--- 
core3/io-impl/trunk/src/main/resources/META-INF/spring/bundle-context-osgi.xml  
    2010-09-29 03:04:19 UTC (rev 22102)
+++ 
core3/io-impl/trunk/src/main/resources/META-INF/spring/bundle-context-osgi.xml  
    2010-09-29 21:36:22 UTC (rev 22103)
@@ -23,6 +23,8 @@
                        interface="org.cytoscape.property.CyProperty"
                        filter="(cyPropertyName=coreSettings)" />
 
+       <osgi:reference id="cyNetworkManagerServiceRef"
+               interface="org.cytoscape.session.CyNetworkManager" />
 
        <!-- Export services -->
        <osgi:service id="cyNetworkViewReaderManagerService" 
ref="cyNetworkViewReaderManager"

Modified: 
core3/io-impl/trunk/src/main/resources/META-INF/spring/bundle-context.xml
===================================================================
--- core3/io-impl/trunk/src/main/resources/META-INF/spring/bundle-context.xml   
2010-09-29 03:04:19 UTC (rev 22102)
+++ core3/io-impl/trunk/src/main/resources/META-INF/spring/bundle-context.xml   
2010-09-29 21:36:22 UTC (rev 22103)
@@ -181,6 +181,7 @@
                <constructor-arg ref="gmlFilter" />
                <constructor-arg ref="cyNetworkViewFactoryServiceRef" />
                <constructor-arg ref="cyNetworkFactoryServiceRef" />
+               <constructor-arg ref="cyNetworkManagerServiceRef" />
        </bean>
 
        <!-- Writer Factories -->

Modified: 
core3/io-impl/trunk/src/test/java/org/cytoscape/io/internal/read/gml/GMLNetworkViewReaderTest.java
===================================================================
--- 
core3/io-impl/trunk/src/test/java/org/cytoscape/io/internal/read/gml/GMLNetworkViewReaderTest.java
  2010-09-29 03:04:19 UTC (rev 22102)
+++ 
core3/io-impl/trunk/src/test/java/org/cytoscape/io/internal/read/gml/GMLNetworkViewReaderTest.java
  2010-09-29 21:36:22 UTC (rev 22103)
@@ -1,19 +1,46 @@
 package org.cytoscape.io.internal.read.gml;
 
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.mockito.Matchers.any;
+import static org.mockito.Mockito.when;
+
 import java.io.File;
 import java.io.FileInputStream;
+import java.util.LinkedList;
 
 import org.cytoscape.io.internal.read.AbstractNetworkViewReaderTester;
 import org.cytoscape.model.CyNetwork;
+import org.cytoscape.session.CyNetworkManager;
 import org.cytoscape.view.model.CyNetworkView;
+import org.cytoscape.view.model.VisualLexicon;
+import org.cytoscape.view.model.VisualProperty;
+import org.cytoscape.view.presentation.RenderingEngine;
+import org.junit.Before;
 import org.junit.Test;
-import static org.junit.Assert.*;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
 
 public class GMLNetworkViewReaderTest extends AbstractNetworkViewReaderTester {
+       @Mock private CyNetworkManager networkManager;
+       @Mock private RenderingEngine<CyNetwork> engine;
+       @Mock private VisualLexicon lexicon;
+
+       @Before
+       public void setUp() throws Exception {
+               super.setUp();
+               
+               MockitoAnnotations.initMocks(this);
+               
+               
when(networkManager.getCurrentRenderingEngine()).thenReturn(engine);
+               when(engine.getVisualLexicon()).thenReturn(lexicon);
+               
when(lexicon.getVisualProperties(any(String.class))).thenReturn(new 
LinkedList<VisualProperty<?>>());
+       }
+       
        @Test
        public void testLoadGml() throws Exception {
                File file = new 
File("src/test/resources/testData/gml/example1.gml");
-               GMLNetworkViewReader reader = new GMLNetworkViewReader(new 
FileInputStream(file), netFactory, viewFactory);
+               GMLNetworkViewReader reader = new GMLNetworkViewReader(new 
FileInputStream(file), netFactory, viewFactory, networkManager);
                reader.run(taskMonitor);
                CyNetworkView[] networkViews = reader.getNetworkViews();
                

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