diff --git a/src/main/java/com/tagtraum/perf/gcviewer/GCViewer.java b/src/main/java/com/tagtraum/perf/gcviewer/GCViewer.java index 389f73e6..84fa6083 100755 --- a/src/main/java/com/tagtraum/perf/gcviewer/GCViewer.java +++ b/src/main/java/com/tagtraum/perf/gcviewer/GCViewer.java @@ -1,6 +1,7 @@ package com.tagtraum.perf.gcviewer; import java.io.File; +import java.io.FileOutputStream; import java.io.IOException; import java.util.logging.Level; import java.util.logging.Logger; @@ -82,7 +83,7 @@ private void exportType(GCModel model, String summaryFilePath, DataWriterType ty private void renderChart(GCModel model, String chartFilePath) throws IOException { SimpleChartRenderer renderer = new SimpleChartRenderer(); - renderer.render(model, chartFilePath); + renderer.render(model, new FileOutputStream(new File(chartFilePath))); } private static void usage() { diff --git a/src/main/java/com/tagtraum/perf/gcviewer/SimpleChartRenderer.java b/src/main/java/com/tagtraum/perf/gcviewer/SimpleChartRenderer.java index a5fe3860..0a7ec90b 100644 --- a/src/main/java/com/tagtraum/perf/gcviewer/SimpleChartRenderer.java +++ b/src/main/java/com/tagtraum/perf/gcviewer/SimpleChartRenderer.java @@ -1,19 +1,22 @@ package com.tagtraum.perf.gcviewer; -import com.tagtraum.perf.gcviewer.model.GCModel; - -import javax.imageio.ImageIO; -import javax.swing.*; -import java.awt.*; +import java.awt.Color; +import java.awt.Dimension; +import java.awt.Graphics2D; import java.awt.image.BufferedImage; -import java.io.File; +import java.io.FileOutputStream; import java.io.IOException; import java.util.logging.Logger; +import javax.imageio.ImageIO; +import javax.swing.JScrollPane; + +import com.tagtraum.perf.gcviewer.model.GCModel; + public class SimpleChartRenderer { private static final Logger LOGGER = Logger.getLogger(SimpleChartRenderer.class.getName()); - public void render(GCModel model, String chartFilePath) throws IOException { + public void render(GCModel model, FileOutputStream outputStream) throws IOException { GCPreferences gcPreferences = new GCPreferences(); gcPreferences.load(); @@ -39,6 +42,7 @@ public void render(GCModel model, String chartFilePath) throws IOException { pane.paint(graphics); - ImageIO.write(image, "png", new File(chartFilePath)); + ImageIO.write(image, "png", outputStream); + outputStream.close(); } } diff --git a/src/main/java/com/tagtraum/perf/gcviewer/action/Export.java b/src/main/java/com/tagtraum/perf/gcviewer/action/Export.java index a9279452..48de56dc 100644 --- a/src/main/java/com/tagtraum/perf/gcviewer/action/Export.java +++ b/src/main/java/com/tagtraum/perf/gcviewer/action/Export.java @@ -49,6 +49,7 @@ public Export(final GCViewerGui gcViewer) { saveDialog.addChoosableFileFilter(new ExtensionFileFilter(".txt", LocalisationHelper.getString("fileexport_dialog_txt"), DataWriterType.PLAIN)); saveDialog.addChoosableFileFilter(new ExtensionFileFilter(".simple.log", LocalisationHelper.getString("fileexport_dialog_simplelog"), DataWriterType.SIMPLE)); saveDialog.addChoosableFileFilter(new ExtensionFileFilter(".csv", LocalisationHelper.getString("fileexport_dialog_summarylog"), DataWriterType.SUMMARY)); + saveDialog.addChoosableFileFilter(new ExtensionFileFilter(".png", LocalisationHelper.getString("fileexport_dialog_png"), DataWriterType.PNG)); } public void actionPerformed(final ActionEvent e) { diff --git a/src/main/java/com/tagtraum/perf/gcviewer/exp/DataWriterType.java b/src/main/java/com/tagtraum/perf/gcviewer/exp/DataWriterType.java index fcdc419e..6813d709 100644 --- a/src/main/java/com/tagtraum/perf/gcviewer/exp/DataWriterType.java +++ b/src/main/java/com/tagtraum/perf/gcviewer/exp/DataWriterType.java @@ -11,5 +11,6 @@ public enum DataWriterType { CSV, CSV_TS, SIMPLE, - SUMMARY; + SUMMARY, + PNG; } diff --git a/src/main/java/com/tagtraum/perf/gcviewer/exp/impl/DataWriterFactory.java b/src/main/java/com/tagtraum/perf/gcviewer/exp/impl/DataWriterFactory.java index 0410ae8a..6835c602 100644 --- a/src/main/java/com/tagtraum/perf/gcviewer/exp/impl/DataWriterFactory.java +++ b/src/main/java/com/tagtraum/perf/gcviewer/exp/impl/DataWriterFactory.java @@ -53,6 +53,7 @@ public static DataWriter getDataWriter(File file, DataWriterType type, Map