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.