Adds Export PNG Button To Sim Chart Page
This commit is contained in:
parent
402cc4b97e
commit
d846094151
@ -6,26 +6,32 @@ import java.awt.event.ActionListener;
|
||||
import java.awt.event.InputEvent;
|
||||
import java.awt.event.ItemEvent;
|
||||
import java.awt.event.ItemListener;
|
||||
import java.io.File;
|
||||
import java.util.ArrayList;
|
||||
|
||||
import javax.swing.JButton;
|
||||
import javax.swing.JCheckBox;
|
||||
import javax.swing.JComboBox;
|
||||
import javax.swing.JDialog;
|
||||
import javax.swing.JFileChooser;
|
||||
import javax.swing.JLabel;
|
||||
import javax.swing.JPanel;
|
||||
|
||||
import net.miginfocom.swing.MigLayout;
|
||||
import net.sf.openrocket.document.Simulation;
|
||||
import net.sf.openrocket.gui.components.StyledLabel;
|
||||
import net.sf.openrocket.gui.util.FileHelper;
|
||||
import net.sf.openrocket.gui.util.GUIUtil;
|
||||
import net.sf.openrocket.gui.util.Icons;
|
||||
import net.sf.openrocket.gui.util.SwingPreferences;
|
||||
import net.sf.openrocket.l10n.Translator;
|
||||
import net.sf.openrocket.startup.Application;
|
||||
import net.sf.openrocket.startup.Preferences;
|
||||
import net.sf.openrocket.gui.widgets.SelectColorButton;
|
||||
|
||||
import org.jfree.chart.ChartPanel;
|
||||
import org.jfree.chart.ChartUtilities;
|
||||
import org.jfree.chart.JFreeChart;
|
||||
|
||||
/**
|
||||
* Dialog that shows a plot of a simulation results based on user options.
|
||||
@ -50,6 +56,7 @@ public class SimulationPlotDialog extends JDialog {
|
||||
this.add(panel);
|
||||
|
||||
final ChartPanel chartPanel = new SimulationChart(myPlot.getJFreeChart());
|
||||
final JFreeChart jChart = myPlot.getJFreeChart();
|
||||
panel.add(chartPanel, "grow, wrap 20lp");
|
||||
|
||||
//// Description text
|
||||
@ -108,6 +115,16 @@ public class SimulationPlotDialog extends JDialog {
|
||||
}
|
||||
});
|
||||
panel.add(button, "gapleft rel");
|
||||
|
||||
//// Print chart button
|
||||
button = new SelectColorButton(Icons.FILE_PRINT);
|
||||
button.addActionListener(new ActionListener() {
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
doPngExport(jChart);
|
||||
}
|
||||
});
|
||||
panel.add(button, "gapleft rel");
|
||||
|
||||
//// Add series selection box
|
||||
ArrayList<String> stages = new ArrayList<String>();
|
||||
@ -141,16 +158,42 @@ public class SimulationPlotDialog extends JDialog {
|
||||
}
|
||||
});
|
||||
panel.add(button, "right");
|
||||
|
||||
this.setLocationByPlatform(true);
|
||||
this.pack();
|
||||
|
||||
GUIUtil.setDisposableDialogOptions(this, button);
|
||||
GUIUtil.rememberWindowSize(this);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
private boolean doPngExport(JFreeChart chart){
|
||||
JFileChooser chooser = new JFileChooser();
|
||||
chooser.setFileFilter(FileHelper.getImageFileFilter());
|
||||
chooser.setCurrentDirectory(((SwingPreferences) Application.getPreferences()).getDefaultDirectory());
|
||||
|
||||
/* Ensures No Problems When Choosing File */
|
||||
if (chooser.showSaveDialog(this) != JFileChooser.APPROVE_OPTION)
|
||||
return false;
|
||||
|
||||
File file = chooser.getSelectedFile();
|
||||
if (file == null)
|
||||
return false;
|
||||
|
||||
file = FileHelper.forceExtension(file, "png");
|
||||
if (!FileHelper.confirmWrite(file, this)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
/* Uses JFreeChart Built In PNG Export Method */
|
||||
try{
|
||||
ChartUtilities.saveChartAsPNG(file, chart, 1000, 500);
|
||||
} catch(Exception e){
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Static method that shows a plot with the specified parameters.
|
||||
*
|
||||
|
Loading…
x
Reference in New Issue
Block a user