From 07ec71c7ef421f7d5269e5413bf503ca8c5a11f9 Mon Sep 17 00:00:00 2001 From: Bill Kuker Date: Thu, 2 Dec 2010 02:18:55 +0000 Subject: [PATCH] Add settings dialog --- .../visual/workbench/MotorEditor.java | 2 + .../visual/workbench/MotorWorkbench.java | 15 +++++++ .../visual/workbench/SettingsEditor.java | 45 +++++++++++++++++++ 3 files changed, 62 insertions(+) create mode 100644 gui/com/billkuker/rocketry/motorsim/visual/workbench/SettingsEditor.java diff --git a/gui/com/billkuker/rocketry/motorsim/visual/workbench/MotorEditor.java b/gui/com/billkuker/rocketry/motorsim/visual/workbench/MotorEditor.java index 38e47fb..76f846e 100644 --- a/gui/com/billkuker/rocketry/motorsim/visual/workbench/MotorEditor.java +++ b/gui/com/billkuker/rocketry/motorsim/visual/workbench/MotorEditor.java @@ -87,6 +87,8 @@ public class MotorEditor extends JPanel implements PropertyChangeListener, FuelR FuelResolver.addFuelsChangeListener(this); fuelsChanged(); setMotor(m); + + Burn.getBurnSettings().addPropertyChangeListener(this); } @Override diff --git a/gui/com/billkuker/rocketry/motorsim/visual/workbench/MotorWorkbench.java b/gui/com/billkuker/rocketry/motorsim/visual/workbench/MotorWorkbench.java index 140036d..991c2bb 100644 --- a/gui/com/billkuker/rocketry/motorsim/visual/workbench/MotorWorkbench.java +++ b/gui/com/billkuker/rocketry/motorsim/visual/workbench/MotorWorkbench.java @@ -27,6 +27,8 @@ public class MotorWorkbench extends RememberJFrame { private MultiMotorThrustChart mb; private JFrame allBurns; + private SettingsEditor settings = new SettingsEditor(this); + private JFrame fuelEditorFrame = new RememberJFrame(800,600){ private static final long serialVersionUID = 1L; { @@ -161,6 +163,19 @@ public class MotorWorkbench extends RememberJFrame { }); add(sci); add(nonsci); + + add(new JSeparator()); + add(new JMenuItem("Simulation Settings"){ + private static final long serialVersionUID = 1L; + { + addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + settings.setVisible(true); + } + }); + } + }); } }); add(new JMenu("View") { diff --git a/gui/com/billkuker/rocketry/motorsim/visual/workbench/SettingsEditor.java b/gui/com/billkuker/rocketry/motorsim/visual/workbench/SettingsEditor.java new file mode 100644 index 0000000..dc11f1d --- /dev/null +++ b/gui/com/billkuker/rocketry/motorsim/visual/workbench/SettingsEditor.java @@ -0,0 +1,45 @@ +package com.billkuker.rocketry.motorsim.visual.workbench; + +import javax.swing.JDialog; +import javax.swing.JFrame; +import javax.swing.SwingUtilities; + +import com.billkuker.rocketry.motorsim.Burn; +import com.billkuker.rocketry.motorsim.visual.Editor; + +public class SettingsEditor extends JDialog { + private static final long serialVersionUID = 1L; + + private final JFrame f; + + public SettingsEditor(final JFrame f) { + super(f, MotorWorkbench.name + " - Simulation Settings", true); + this.f = f; + setSize(320, 240); + setContentPane(new Editor(Burn.getBurnSettings())); + } + + @Override + public void setVisible(boolean v) { + int x = f.getLocation().x + f.getWidth() / 2 - getWidth() / 2; + int y = f.getLocation().y + f.getHeight() / 2 - getHeight() / 2; + setLocation(x, y); + super.setVisible(v); + } + + public static void main(String args[]) { + JFrame f = new JFrame(); + f.setSize(1024, 768); + f.setVisible(true); + final SettingsEditor s = new SettingsEditor(f); + SwingUtilities.invokeLater(new Runnable() { + + @Override + public void run() { + s.setVisible(true); + + } + }); + + } +} -- 2.30.2