1 package net.sf.openrocket.gui.dialogs;
4 import java.awt.Window;
5 import java.awt.event.ActionEvent;
6 import java.awt.event.ActionListener;
7 import java.beans.PropertyChangeEvent;
8 import java.beans.PropertyChangeListener;
10 import javax.swing.JButton;
11 import javax.swing.JComboBox;
12 import javax.swing.JDialog;
13 import javax.swing.JLabel;
14 import javax.swing.JPanel;
16 import net.miginfocom.swing.MigLayout;
17 import net.sf.openrocket.gui.adaptors.EnumModel;
18 import net.sf.openrocket.gui.components.ColorChooserButton;
19 import net.sf.openrocket.gui.print.PaperOrientation;
20 import net.sf.openrocket.gui.print.PaperSize;
21 import net.sf.openrocket.gui.print.PrintSettings;
22 import net.sf.openrocket.gui.util.GUIUtil;
23 import net.sf.openrocket.l10n.Translator;
24 import net.sf.openrocket.logging.LogHelper;
25 import net.sf.openrocket.startup.Application;
28 * This class is a dialog for displaying advanced settings for printing rocket related info.
30 public class PrintSettingsDialog extends JDialog {
31 private static final LogHelper log = Application.getLogger();
32 private static final Translator trans = Application.getTranslator();
36 * Construct a dialog for setting the advanced rocket print settings.
38 * @param parent the owning dialog
40 public PrintSettingsDialog(Window parent, final PrintSettings settings) {
42 super(parent, trans.get("title"), ModalityType.APPLICATION_MODAL);
45 JPanel panel = new JPanel(new MigLayout("fill"));
47 ////Template fill color:
48 panel.add(new JLabel(trans.get("lbl.Templatefillcolor")));
49 final ColorChooserButton fillColorButton = new ColorChooserButton(settings.getTemplateFillColor());
50 fillColorButton.addColorPropertyChangeListener(new PropertyChangeListener() {
52 public void propertyChange(PropertyChangeEvent evt) {
53 Color c = (Color) evt.getNewValue();
54 log.info("Template fill color changed to " + c);
55 settings.setTemplateFillColor(c);
58 panel.add(fillColorButton, "wrap para");
60 //// Template border color:
61 panel.add(new JLabel(trans.get("lbl.Templatebordercolor")));
62 final ColorChooserButton borderColorButton = new ColorChooserButton(settings.getTemplateBorderColor());
63 borderColorButton.addColorPropertyChangeListener(new PropertyChangeListener() {
65 public void propertyChange(PropertyChangeEvent evt) {
66 Color c = (Color) evt.getNewValue();
67 log.info("Template border color changed to " + c);
68 settings.setTemplateBorderColor(c);
71 panel.add(borderColorButton, "wrap para*2");
75 JComboBox combo = new JComboBox(new EnumModel<PaperSize>(settings, "PaperSize"));
77 panel.add(new JLabel(trans.get("lbl.Papersize")));
78 panel.add(combo, "growx, wrap para");
81 combo = new JComboBox(new EnumModel<PaperOrientation>(settings, "PaperOrientation"));
82 //// Paper orientation:
83 panel.add(new JLabel(trans.get("lbl.Paperorientation")));
84 panel.add(combo, "growx, wrap para*2");
90 JButton button = new JButton(trans.get("but.Reset"));
91 button.addActionListener(new ActionListener() {
93 public void actionPerformed(ActionEvent e) {
94 log.user("Resetting print setting values to defaults");
95 PrintSettings defaults = new PrintSettings();
96 settings.loadFrom(defaults);
97 fillColorButton.setSelectedColor(settings.getTemplateFillColor());
98 borderColorButton.setSelectedColor(settings.getTemplateBorderColor());
101 panel.add(button, "spanx, split, right");
104 JButton closeButton = new JButton(trans.get("but.Close"));
105 closeButton.addActionListener(new ActionListener() {
107 public void actionPerformed(ActionEvent e) {
108 PrintSettingsDialog.this.setVisible(false);
111 panel.add(closeButton, "right");
114 GUIUtil.setDisposableDialogOptions(this, closeButton);