Author: kono
Date: 2010-12-29 15:45:05 -0800 (Wed, 29 Dec 2010)
New Revision: 23278

Modified:
   
core3/io-api/trunk/src/main/java/org/cytoscape/io/write/PresentationWriterFactory.java
   
core3/io-impl/trunk/src/main/java/org/cytoscape/io/internal/write/graphics/BitmapWriter.java
   
core3/io-impl/trunk/src/main/java/org/cytoscape/io/internal/write/graphics/BitmapWriterFactory.java
Log:
Export as graphics function fixed.  Currently it supports bitmap only.

Modified: 
core3/io-api/trunk/src/main/java/org/cytoscape/io/write/PresentationWriterFactory.java
===================================================================
--- 
core3/io-api/trunk/src/main/java/org/cytoscape/io/write/PresentationWriterFactory.java
      2010-12-29 23:18:48 UTC (rev 23277)
+++ 
core3/io-api/trunk/src/main/java/org/cytoscape/io/write/PresentationWriterFactory.java
      2010-12-29 23:45:05 UTC (rev 23278)
@@ -2,7 +2,6 @@
 
 
 import org.cytoscape.view.presentation.RenderingEngine;
-import org.cytoscape.view.model.View;
 
 /**
  * A specialization of {...@link CyWriterFactory} that allows a View to
@@ -18,5 +17,5 @@
         * @param re The {...@link 
org.cytoscape.view.presentation.RenderingEngine} used to generate the image of 
the
         * specified View.
         */
-       void setRenderingEngine(RenderingEngine re);
+       void setRenderingEngine(final RenderingEngine<?> re);
 }

Modified: 
core3/io-impl/trunk/src/main/java/org/cytoscape/io/internal/write/graphics/BitmapWriter.java
===================================================================
--- 
core3/io-impl/trunk/src/main/java/org/cytoscape/io/internal/write/graphics/BitmapWriter.java
        2010-12-29 23:18:48 UTC (rev 23277)
+++ 
core3/io-impl/trunk/src/main/java/org/cytoscape/io/internal/write/graphics/BitmapWriter.java
        2010-12-29 23:45:05 UTC (rev 23278)
@@ -1,64 +1,83 @@
 package org.cytoscape.io.internal.write.graphics;
 
+import static 
org.cytoscape.view.presentation.property.TwoDVisualLexicon.NETWORK_HEIGHT;
+import static 
org.cytoscape.view.presentation.property.TwoDVisualLexicon.NETWORK_WIDTH;
+
+import java.awt.image.BufferedImage;
+import java.io.OutputStream;
+import java.util.Set;
+
+import javax.imageio.ImageIO;
+
 import org.cytoscape.io.write.CyWriter;
-import org.cytoscape.view.model.View;
 import org.cytoscape.view.presentation.RenderingEngine;
-import static org.cytoscape.view.presentation.property.TwoDVisualLexicon.*;
-
-import org.cytoscape.work.util.BoundedDouble;
 import org.cytoscape.work.AbstractTask;
 import org.cytoscape.work.TaskMonitor;
 import org.cytoscape.work.Tunable;
-
-import javax.imageio.ImageIO;
-import java.io.OutputStream;
-import java.awt.image.BufferedImage;
-import java.util.Set;
-
+import org.cytoscape.work.util.BoundedDouble;
+import org.cytoscape.work.util.BoundedInteger;
+import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.slf4j.Logger;
 
 /**
  */
 public class BitmapWriter extends AbstractTask implements CyWriter {
 
-       private static final Logger logger = 
LoggerFactory.getLogger(BitmapWriter.class);
+       private static final Logger logger = LoggerFactory
+                       .getLogger(BitmapWriter.class);
+       
+       private static final int MAX_SIZE = 50000;
 
-       @Tunable(description="Image scale")
+       @Tunable(description = "Image scale")
        public BoundedDouble scaleFactor;
+       
+       @Tunable(description = "Original Width (px)")
+       public BoundedInteger width;
+       
+       @Tunable(description = "Original Height (px)")
+       public BoundedInteger height;
 
        private final OutputStream outStream;
-       private final RenderingEngine re;
-       private final View<?> view;
-       private String extension = null; 
-       
-       public BitmapWriter(View<?> view, RenderingEngine re, OutputStream 
outStream, Set<String> extensions) {
-               this.view = view;
+       private final RenderingEngine<?> re;
+       private String extension = null;
+
+       public BitmapWriter(final RenderingEngine<?> re, OutputStream outStream,
+                       Set<String> extensions) {
                this.re = re;
                this.outStream = outStream;
-               setExtension( extensions );
-               scaleFactor = new BoundedDouble(0.0,1.0,5.0,false,false);       
+               setExtension(extensions);
+               scaleFactor = new BoundedDouble(0.0, 1.0, 50.0, false, false);
+               
+               final int w = (int) (re.getViewModel()
+                               
.getVisualProperty(NETWORK_WIDTH).doubleValue());
+               final int h = (int) (re.getViewModel()
+                               
.getVisualProperty(NETWORK_HEIGHT).doubleValue());
+               
+               width = new BoundedInteger(1, w, MAX_SIZE, false, false);
+               height = new BoundedInteger(1, h, MAX_SIZE, false, false);
+
        }
 
-       private void setExtension( Set<String> extensions ) {
+       private void setExtension(Set<String> extensions) {
 
-               for ( String format : ImageIO.getWriterFormatNames() ) {
-                       for ( String ext : extensions ) {
-                               if ( format.equals(ext) ) {
+               for (String format : ImageIO.getWriterFormatNames()) {
+                       for (String ext : extensions) {
+                               if (format.equals(ext)) {
                                        extension = format;
                                        return;
                                }
                        }
                }
-               throw new IllegalArgumentException("Image format ("+ 
extensions.toString() +") NOT supported by ImageIO");
+               throw new IllegalArgumentException("Image format ("
+                               + extensions.toString() + ") NOT supported by 
ImageIO");
        }
 
        public void run(TaskMonitor tm) throws Exception {
                final double scale = scaleFactor.getValue().doubleValue();
+               final int finalW = 
((Number)(width.getValue()*scale)).intValue();
+               final int finalH = 
((Number)(height.getValue()*scale)).intValue();
 
-               int width  = (int) 
(view.getVisualProperty(NETWORK_WIDTH).doubleValue() * scale);
-               int height = (int) 
(view.getVisualProperty(NETWORK_HEIGHT).doubleValue() * scale);
-
-               ImageIO.write(((BufferedImage)re.createImage(width,height)), 
extension, outStream);
+               ImageIO.write(((BufferedImage) re.createImage(finalW, finalH)),
+                               extension, outStream);
        }
 }

Modified: 
core3/io-impl/trunk/src/main/java/org/cytoscape/io/internal/write/graphics/BitmapWriterFactory.java
===================================================================
--- 
core3/io-impl/trunk/src/main/java/org/cytoscape/io/internal/write/graphics/BitmapWriterFactory.java
 2010-12-29 23:18:48 UTC (rev 23277)
+++ 
core3/io-impl/trunk/src/main/java/org/cytoscape/io/internal/write/graphics/BitmapWriterFactory.java
 2010-12-29 23:45:05 UTC (rev 23278)
@@ -17,11 +17,10 @@
 
        private final CyFileFilter bitmapFilter; 
 
-       private View<?> view;
        private RenderingEngine<?> re;
        private OutputStream outputStream;
 
-       public BitmapWriterFactory(CyFileFilter bitmapFilter) {
+       public BitmapWriterFactory(final CyFileFilter bitmapFilter) {
                this.bitmapFilter = bitmapFilter;       
        }
 
@@ -29,13 +28,10 @@
                return bitmapFilter; 
        }
 
-       public void setRenderingEngine(RenderingEngine re) {
-               if ( view == null )
-                       throw new NullPointerException("View is null");
+       public void setRenderingEngine(final RenderingEngine<?> re) {
                if ( re == null )
                        throw new NullPointerException("RenderingEngine is 
null");
 
-               this.view = view;
                this.re = re;
        }
 
@@ -46,6 +42,9 @@
        }
 
        public CyWriter getWriterTask() {
-               return new BitmapWriter(view, re, outputStream, 
bitmapFilter.getExtensions() );
+               if ( re == null )
+                       throw new NullPointerException("RenderingEngine is 
null");
+               
+               return new BitmapWriter(re, outputStream, 
bitmapFilter.getExtensions() );
        }
 }

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