Author: kono
Date: 2011-06-24 11:53:07 -0700 (Fri, 24 Jun 2011)
New Revision: 25921
Added:
core3/io-impl/trunk/src/main/java/org/cytoscape/io/internal/write/graphics/SVGWriter.java
core3/io-impl/trunk/src/main/java/org/cytoscape/io/internal/write/graphics/SVGWriterFactory.java
Modified:
core3/gui-distribution/trunk/startlevel-3/pom.xml
core3/io-impl/trunk/pom.xml
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
Log:
SVG Exporter had been added with new dependencies.
Modified: core3/gui-distribution/trunk/startlevel-3/pom.xml
===================================================================
--- core3/gui-distribution/trunk/startlevel-3/pom.xml 2011-06-24 18:51:25 UTC
(rev 25920)
+++ core3/gui-distribution/trunk/startlevel-3/pom.xml 2011-06-24 18:53:07 UTC
(rev 25921)
@@ -474,6 +474,11 @@
<artifactId>freehep-graphics-base</artifactId>
<version>2.1.3</version>
</dependency>
+ <dependency>
+ <groupId>cytoscape-temp</groupId>
+ <artifactId>freehep-io</artifactId>
+ <version>2.1</version>
+ </dependency>
<!-- jfreechart -->
<dependency>
Modified: core3/io-impl/trunk/pom.xml
===================================================================
--- core3/io-impl/trunk/pom.xml 2011-06-24 18:51:25 UTC (rev 25920)
+++ core3/io-impl/trunk/pom.xml 2011-06-24 18:53:07 UTC (rev 25921)
@@ -212,6 +212,11 @@
<artifactId>freehep-graphics-base</artifactId>
<version>2.1.3</version>
</dependency>
+ <dependency>
+ <groupId>cytoscape-temp</groupId>
+ <artifactId>freehep-io</artifactId>
+ <version>2.1</version>
+ </dependency>
<!-- For Testing -->
<dependency>
Added:
core3/io-impl/trunk/src/main/java/org/cytoscape/io/internal/write/graphics/SVGWriter.java
===================================================================
---
core3/io-impl/trunk/src/main/java/org/cytoscape/io/internal/write/graphics/SVGWriter.java
(rev 0)
+++
core3/io-impl/trunk/src/main/java/org/cytoscape/io/internal/write/graphics/SVGWriter.java
2011-06-24 18:53:07 UTC (rev 25921)
@@ -0,0 +1,64 @@
+package org.cytoscape.io.internal.write.graphics;
+
+import java.awt.Dimension;
+import java.io.OutputStream;
+
+import org.cytoscape.io.write.CyWriter;
+import org.cytoscape.view.presentation.RenderingEngine;
+import org.cytoscape.view.presentation.property.MinimalVisualLexicon;
+import org.cytoscape.work.AbstractTask;
+import org.cytoscape.work.TaskMonitor;
+import org.freehep.graphicsio.svg.SVGGraphics2D;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class SVGWriter extends AbstractTask implements CyWriter {
+
+ private static final Logger logger =
LoggerFactory.getLogger(PDFWriter.class);
+
+ private boolean exportTextAsFont = true;
+
+ private final Double width;
+ private final Double height;
+ private final RenderingEngine<?> engine;
+ private final OutputStream stream;
+
+ //TODO: enable text font flag
+ public SVGWriter(final RenderingEngine<?> engine, final OutputStream
stream) {
+ if (engine == null)
+ throw new NullPointerException("Rendering Engine is
null.");
+ if (stream == null)
+ throw new NullPointerException("Stream is null.");
+
+ this.engine = engine;
+ this.stream = stream;
+
+ width =
engine.getViewModel().getVisualProperty(MinimalVisualLexicon.NETWORK_WIDTH);
+ height =
engine.getViewModel().getVisualProperty(MinimalVisualLexicon.NETWORK_HEIGHT);
+
+ logger.debug("SVG Writer created.");
+ }
+
+
+ @Override
+ public void run(TaskMonitor taskMonitor) throws Exception {
+
+ logger.debug("SVG Rendering Start.");
+
+ final SVGGraphics2D g = new SVGGraphics2D(stream, new
Dimension(width.intValue(), height.intValue()));
+
+ // this sets text as shape
+ java.util.Properties p = new java.util.Properties();
+
p.setProperty("org.freehep.graphicsio.AbstractVectorGraphicsIO.TEXT_AS_SHAPES",
+ Boolean.toString(!exportTextAsFont));
+ g.setProperties(p);
+
+ g.startExport();
+ engine.printCanvas(g);
+ g.endExport();
+
+ logger.debug("SVG Rendering DONE!");
+
+ }
+
+}
Added:
core3/io-impl/trunk/src/main/java/org/cytoscape/io/internal/write/graphics/SVGWriterFactory.java
===================================================================
---
core3/io-impl/trunk/src/main/java/org/cytoscape/io/internal/write/graphics/SVGWriterFactory.java
(rev 0)
+++
core3/io-impl/trunk/src/main/java/org/cytoscape/io/internal/write/graphics/SVGWriterFactory.java
2011-06-24 18:53:07 UTC (rev 25921)
@@ -0,0 +1,20 @@
+package org.cytoscape.io.internal.write.graphics;
+
+import org.cytoscape.io.CyFileFilter;
+import org.cytoscape.io.write.CyWriter;
+
+public class SVGWriterFactory extends AbstractPresentationWriterFactory {
+
+ public SVGWriterFactory(final CyFileFilter fileFilter) {
+ super(fileFilter);
+ }
+
+ @Override
+ public CyWriter getWriterTask() {
+ if (re == null)
+ throw new NullPointerException("RenderingEngine is
null");
+
+ return new SVGWriter(re, outputStream);
+ }
+
+}
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
2011-06-24 18:51:25 UTC (rev 25920)
+++
core3/io-impl/trunk/src/main/resources/META-INF/spring/bundle-context-osgi.xml
2011-06-24 18:53:07 UTC (rev 25921)
@@ -244,6 +244,13 @@
<value>org.cytoscape.io.write.PresentationWriterFactory</value>
</interfaces>
</osgi:service>
+ <osgi:service id="svgWriterFactoryService" ref="svgWriterFactory">
+ <interfaces>
+ <value>org.cytoscape.io.write.CyWriterFactory</value>
+
<value>org.cytoscape.io.write.PresentationWriterFactory</value>
+ </interfaces>
+ </osgi:service>
+
<osgi:service id="cysessionWriterFactoryService"
ref="cysessionWriterFactory">
<interfaces>
<value>org.cytoscape.io.write.CyWriterFactory</value>
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
2011-06-24 18:51:25 UTC (rev 25920)
+++ core3/io-impl/trunk/src/main/resources/META-INF/spring/bundle-context.xml
2011-06-24 18:53:07 UTC (rev 25921)
@@ -113,6 +113,25 @@
<ref bean="streamUtil" />
</constructor-arg>
</bean>
+
+ <bean id="svgFilter" class="org.cytoscape.io.BasicCyFileFilter">
+ <constructor-arg index="0">
+ <set>
+ <value>svg</value>
+ </set>
+ </constructor-arg>
+ <constructor-arg index="1">
+ <set>
+ <value>image/svg</value>
+ </set>
+ </constructor-arg>
+ <constructor-arg value="Scalable Vector Graphics (SVG) File" />
+ <constructor-arg type="org.cytoscape.io.DataCategory"
+ value="IMAGE" />
+ <constructor-arg type="org.cytoscape.io.util.StreamUtil">
+ <ref bean="streamUtil" />
+ </constructor-arg>
+ </bean>
<bean id="textTableFilter" class="org.cytoscape.io.BasicCyFileFilter">
<constructor-arg index="0">
@@ -455,6 +474,10 @@
class="org.cytoscape.io.internal.write.graphics.PSWriterFactory">
<constructor-arg ref="psFilter" />
</bean>
+ <bean id="svgWriterFactory"
+
class="org.cytoscape.io.internal.write.graphics.SVGWriterFactory">
+ <constructor-arg ref="svgFilter" />
+ </bean>
<!-- Network Writers -->
--
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.