From c73a41071a262542dbb5c44a79893f50e472870a Mon Sep 17 00:00:00 2001 From: Remington Holder Date: Sun, 20 Mar 2022 20:38:20 -0400 Subject: [PATCH] Various Small Updates To PNG Chart Export - Creates PNG file filter - Adds new file filter to translation file - Makes Exported Chart's Width & Height as it is displayed - Changes Button From Print Icon to "Save As Image" text --- core/resources/l10n/messages.properties | 1 + .../sf/openrocket/gui/plot/SimulationPlotDialog.java | 11 ++++++----- swing/src/net/sf/openrocket/gui/util/FileHelper.java | 4 ++++ 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/core/resources/l10n/messages.properties b/core/resources/l10n/messages.properties index 9e4a2782b..49a7e3769 100644 --- a/core/resources/l10n/messages.properties +++ b/core/resources/l10n/messages.properties @@ -96,6 +96,7 @@ FileHelper.ALL_DESIGNS_FILTER = All rocket designs (*.ork; *.rkt) FileHelper.OPENROCKET_DESIGN_FILTER = OpenRocket designs (*.ork) FileHelper.ROCKSIM_DESIGN_FILTER = RockSim designs (*.rkt) FileHelper.OPEN_ROCKET_COMPONENT_FILTER = OpenRocket presets (*.orc) +FileHelper.PNG_FILTER = PNG image (*.png) FileHelper.IMAGES = Image files diff --git a/swing/src/net/sf/openrocket/gui/plot/SimulationPlotDialog.java b/swing/src/net/sf/openrocket/gui/plot/SimulationPlotDialog.java index cc6ed951d..a3dd2a462 100644 --- a/swing/src/net/sf/openrocket/gui/plot/SimulationPlotDialog.java +++ b/swing/src/net/sf/openrocket/gui/plot/SimulationPlotDialog.java @@ -117,11 +117,11 @@ public class SimulationPlotDialog extends JDialog { panel.add(button, "gapleft rel"); //// Print chart button - button = new SelectColorButton(Icons.FILE_PRINT); + button = new SelectColorButton("Save As Image"); button.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { - doPngExport(jChart); + doPngExport(chartPanel,jChart); } }); panel.add(button, "gapleft rel"); @@ -165,9 +165,10 @@ public class SimulationPlotDialog extends JDialog { GUIUtil.rememberWindowSize(this); } - private boolean doPngExport(JFreeChart chart){ + private boolean doPngExport(ChartPanel chartPanel, JFreeChart chart){ JFileChooser chooser = new JFileChooser(); - chooser.setFileFilter(FileHelper.getImageFileFilter()); + chooser.setAcceptAllFileFilterUsed(false); + chooser.setFileFilter(FileHelper.PNG_FILTER); chooser.setCurrentDirectory(((SwingPreferences) Application.getPreferences()).getDefaultDirectory()); /* Ensures No Problems When Choosing File */ @@ -185,7 +186,7 @@ public class SimulationPlotDialog extends JDialog { /* Uses JFreeChart Built In PNG Export Method */ try{ - ChartUtilities.saveChartAsPNG(file, chart, 1000, 500); + ChartUtilities.saveChartAsPNG(file, chart, chartPanel.getWidth(), chartPanel.getHeight()); } catch(Exception e){ return false; } diff --git a/swing/src/net/sf/openrocket/gui/util/FileHelper.java b/swing/src/net/sf/openrocket/gui/util/FileHelper.java index c88b99a58..96d8234f4 100644 --- a/swing/src/net/sf/openrocket/gui/util/FileHelper.java +++ b/swing/src/net/sf/openrocket/gui/util/FileHelper.java @@ -56,6 +56,10 @@ public final class FileHelper { public static final FileFilter CSV_FILTER = new SimpleFileFilter(trans.get("FileHelper.CSV_FILTER"), ".csv"); + /** File filter for PNG files (*.png) */ + public static final FileFilter PNG_FILTER = + new SimpleFileFilter(trans.get("FileHelper.PNG_FILTER"), ".png"); +