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.

Reply via email to