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.