diff --git a/pom.xml b/pom.xml index 3848ec96..ca4cb000 100644 --- a/pom.xml +++ b/pom.xml @@ -135,6 +135,10 @@ Fred Rolland https://github.com/rollandf + + Sandro Rossi + https://github.com/rossisandro + Heiko W. Rupp https://github.com/pilhuhn diff --git a/src/main/java/com/tagtraum/perf/gcviewer/ctrl/action/Export.java b/src/main/java/com/tagtraum/perf/gcviewer/ctrl/action/Export.java index 4ad89915..6cc7a98a 100644 --- a/src/main/java/com/tagtraum/perf/gcviewer/ctrl/action/Export.java +++ b/src/main/java/com/tagtraum/perf/gcviewer/ctrl/action/Export.java @@ -3,12 +3,13 @@ import java.awt.Toolkit; import java.awt.event.ActionEvent; import java.io.File; +import java.util.Map; +import java.util.HashMap; import javax.swing.AbstractAction; import javax.swing.JFileChooser; import javax.swing.JOptionPane; import javax.swing.KeyStroke; -import javax.swing.filechooser.FileFilter; import com.tagtraum.perf.gcviewer.exp.DataWriter; import com.tagtraum.perf.gcviewer.exp.DataWriterType; @@ -86,7 +87,9 @@ public void exportFile(final GCModel model, File file, final String extension, f LocalisationHelper.getString("fileexport_dialog_title"), JOptionPane.YES_NO_OPTION)) { - try (DataWriter writer = DataWriterFactory.getDataWriter(file, dataWriterType)) { + Map configuration = new HashMap<>(); + configuration.put(DataWriterFactory.GC_PREFERENCES, gcViewer.getSelectedGCDocument().getPreferences()); + try (DataWriter writer = DataWriterFactory.getDataWriter(file, dataWriterType, configuration)) { writer.write(model); } catch (Exception ioe) { 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 536dca11..de0b1e9b 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 @@ -17,6 +17,7 @@ * @author Hendrik Schreiber */ public class DataWriterFactory { + public static final String GC_PREFERENCES = "gcPreferences"; /** * Standard factory method to retrieve one of the DataWriter implementations. @@ -53,7 +54,7 @@ public static DataWriter getDataWriter(File file, DataWriterType type, Mapconfiguration parameter. + * + * @param outputStream FileOutputStream, file where the image should be written to + * @param configuration Configuration for this PNGDataWriter; expected contents of the parameter: + *
    + *
  • String: DataWriterFactory.GC_PREFERENCES
  • + *
  • Object: Instance of GCPreferences (E.g. current screen selection for chart) + *
+ */ + public PNGDataWriter(OutputStream outputStream, Map configuration) { + super(outputStream, configuration); out = (FileOutputStream)outputStream; } @Override public void write(GCModel model) throws IOException { - new SimpleChartRenderer().render(model, out); + SimpleChartRenderer simpleChartRenderer = new SimpleChartRenderer(); + + Object gcPreferences = getConfiguration().get(DataWriterFactory.GC_PREFERENCES); + if (gcPreferences instanceof GCPreferences) { + simpleChartRenderer.render(model, out, (GCPreferences)gcPreferences); + } else { + simpleChartRenderer.render(model, out); + } } } diff --git a/src/main/java/com/tagtraum/perf/gcviewer/view/AboutDialog.java b/src/main/java/com/tagtraum/perf/gcviewer/view/AboutDialog.java index 8a1b4ad6..c5c59650 100644 --- a/src/main/java/com/tagtraum/perf/gcviewer/view/AboutDialog.java +++ b/src/main/java/com/tagtraum/perf/gcviewer/view/AboutDialog.java @@ -67,6 +67,7 @@ public class AboutDialog extends ScreenCenteredDialog implements ActionListener "Thomas Peyrard", "Rupesh Ramachandran", "Fred Rolland", + "Sandro Rossi", "Heiko W. Rupp", "Stephan Schroevers", "François Secherre", diff --git a/src/main/java/com/tagtraum/perf/gcviewer/view/SimpleChartRenderer.java b/src/main/java/com/tagtraum/perf/gcviewer/view/SimpleChartRenderer.java index c36ffb5c..9932076b 100644 --- a/src/main/java/com/tagtraum/perf/gcviewer/view/SimpleChartRenderer.java +++ b/src/main/java/com/tagtraum/perf/gcviewer/view/SimpleChartRenderer.java @@ -22,6 +22,10 @@ public class SimpleChartRenderer { public void render(GCModel model, FileOutputStream outputStream) throws IOException { GCPreferences gcPreferences = new GCPreferences(); gcPreferences.load(); + render(model, outputStream, gcPreferences); + } + + public void render(GCModel model, FileOutputStream outputStream, GCPreferences gcPreferences) throws IOException { Dimension d = new Dimension(gcPreferences.getWindowWidth(), gcPreferences.getWindowHeight()); BufferedImage image = new BufferedImage(d.width, d.height, BufferedImage.TYPE_INT_RGB);