From e78b8164c714287a73168902a23ee9ffa8012426 Mon Sep 17 00:00:00 2001 From: Bill Kuker Date: Sun, 24 Oct 2010 19:08:31 +0000 Subject: [PATCH] Save preferred units as user preference --- .../rocketry/motorsim/RocketScience.java | 19 +- .../rocketry/motorsim/visual/Chart.java | 4 +- .../motorsim/visual/CrappyEditor.java | 173 ------------------ .../visual/workbench/MotorWorkbench.java | 9 +- .../visual/workbench/MultiBurnChart.java | 4 +- .../visual/workbench/SRFuelEditor.java | 2 +- 6 files changed, 29 insertions(+), 182 deletions(-) delete mode 100644 src/com/billkuker/rocketry/motorsim/visual/CrappyEditor.java diff --git a/src/com/billkuker/rocketry/motorsim/RocketScience.java b/src/com/billkuker/rocketry/motorsim/RocketScience.java index a76d0ab..ecb2e5b 100644 --- a/src/com/billkuker/rocketry/motorsim/RocketScience.java +++ b/src/com/billkuker/rocketry/motorsim/RocketScience.java @@ -3,6 +3,7 @@ package com.billkuker.rocketry.motorsim; import java.text.DecimalFormat; import java.util.HashSet; import java.util.Set; +import java.util.prefs.Preferences; import javax.measure.quantity.Pressure; import javax.measure.quantity.Quantity; @@ -47,7 +48,23 @@ public class RocketScience { NEWTON_SECOND }); - public static UnitPreference preference = SI; + private static UnitPreference preference = SI; + + static { + Preferences prefs = Preferences.userNodeForPackage(RocketScience.class); + String p = prefs.get("PreferedUnits", "SI"); + preference = UnitPreference.valueOf(p); + } + + public static UnitPreference getUnitPreference(){ + return preference; + } + + public static void setUnitPreference( final UnitPreference up ){ + preference = up; + Preferences prefs = Preferences.userNodeForPackage(RocketScience.class); + prefs.put("PreferedUnits", up.toString()); + } protected Set> units = new HashSet>(); diff --git a/src/com/billkuker/rocketry/motorsim/visual/Chart.java b/src/com/billkuker/rocketry/motorsim/visual/Chart.java index 6f3b657..2020bdd 100644 --- a/src/com/billkuker/rocketry/motorsim/visual/Chart.java +++ b/src/com/billkuker/rocketry/motorsim/visual/Chart.java @@ -111,9 +111,9 @@ public class Chart extends JPanel { this.source = source; - this.xUnit = RocketScience.UnitPreference.preference + this.xUnit = RocketScience.UnitPreference.getUnitPreference() .getPreferredUnit(xUnit); - this.yUnit = RocketScience.UnitPreference.preference + this.yUnit = RocketScience.UnitPreference.getUnitPreference() .getPreferredUnit(yUnit); chart = ChartFactory.createXYLineChart(method.substring(0, 1) diff --git a/src/com/billkuker/rocketry/motorsim/visual/CrappyEditor.java b/src/com/billkuker/rocketry/motorsim/visual/CrappyEditor.java deleted file mode 100644 index c83977c..0000000 --- a/src/com/billkuker/rocketry/motorsim/visual/CrappyEditor.java +++ /dev/null @@ -1,173 +0,0 @@ -package com.billkuker.rocketry.motorsim.visual; - -import java.awt.BorderLayout; -import java.awt.FlowLayout; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; -import java.beans.PropertyVetoException; -import java.io.IOException; - -import javax.measure.unit.SI; -import javax.swing.ButtonGroup; -import javax.swing.JButton; -import javax.swing.JFrame; -import javax.swing.JPanel; -import javax.swing.JRadioButton; -import javax.swing.JTabbedPane; -import javax.swing.UIManager; - -import org.fife.ui.rsyntaxtextarea.RSyntaxTextArea; -import org.fife.ui.rsyntaxtextarea.SyntaxConstants; -import org.jscience.physics.amount.Amount; - -import com.billkuker.rocketry.motorsim.Burn; -import com.billkuker.rocketry.motorsim.ConvergentDivergentNozzle; -import com.billkuker.rocketry.motorsim.CylindricalChamber; -import com.billkuker.rocketry.motorsim.Motor; -import com.billkuker.rocketry.motorsim.RocketScience.UnitPreference; -import com.billkuker.rocketry.motorsim.fuel.KNSU; -import com.billkuker.rocketry.motorsim.grain.CoredCylindricalGrain; -import com.billkuker.rocketry.motorsim.grain.MultiGrain; -import com.billkuker.rocketry.motorsim.io.MotorIO; -import com.billkuker.rocketry.motorsim.motors.example.CSlot; -import com.billkuker.rocketry.motorsim.motors.example.EndBurner; - -public class CrappyEditor extends JFrame { - private static final long serialVersionUID = 1L; - JTabbedPane tabs; - - public CrappyEditor() { - setTitle("MotorSim v0.3"); - setSize(1024, 768); - setDefaultCloseOperation(DISPOSE_ON_CLOSE); - - try { - UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); - } catch (Exception e1) { - e1.printStackTrace(); - } - tabs = new JTabbedPane(); - setContentPane(tabs); - tabs.addTab("Edit", new Editor(defaultMotor())); - - } - - private class Editor extends JPanel { - private static final long serialVersionUID = 1L; - RSyntaxTextArea text = new RSyntaxTextArea(); - - Editor(Motor m) { - setLayout(new BorderLayout()); - add(text, BorderLayout.CENTER); - JPanel buttons = new JPanel(new FlowLayout()); - - buttons.add(new JButton("Burn!") { - private static final long serialVersionUID = 1L; - { - addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent arg0) { - burn(); - } - }); - } - }); - - - JRadioButton s, n; - buttons.add(s = new JRadioButton("SI")); - buttons.add(n = new JRadioButton("NonSI")); - ButtonGroup g = new ButtonGroup(); - g.add(s); - g.add(n); - s.setSelected(true); - s.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent arg0) { - UnitPreference.preference = UnitPreference.SI; - } - }); - n.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent arg0) { - UnitPreference.preference = UnitPreference.NONSI; - } - }); - - buttons.add(new JButton("End Burner Example") { - private static final long serialVersionUID = 1L; - { - addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent arg0) { - tabs.addTab(getText(), new BurnPanel(new Burn(new EndBurner()))); - } - }); - } - }); - - buttons.add(new JButton("C-Slot Example") { - private static final long serialVersionUID = 1L; - { - addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent arg0) { - tabs.addTab(getText(), new BurnPanel(new Burn(new CSlot()))); - } - }); - } - }); - - add(buttons, BorderLayout.SOUTH); - text.setSyntaxEditingStyle(SyntaxConstants.SYNTAX_STYLE_XML); - - try { - text.setText(MotorIO.writeMotor(m)); - } catch (IOException e) { - e.printStackTrace(); - } - - } - - private void burn() { - try { - Motor m = MotorIO.readMotor(text.getText()); - Burn b = new Burn(m); - tabs.addTab(m.getName() + " Output", new BurnPanel(b)); - } catch (IOException e) { - e.printStackTrace(); - } - } - } - - private Motor defaultMotor() { - Motor m = new Motor(); - m.setName("Example Motor"); - m.setFuel(new KNSU()); - - CylindricalChamber c = new CylindricalChamber(); - c.setLength(Amount.valueOf(200, SI.MILLIMETER)); - c.setID(Amount.valueOf(25, SI.MILLIMETER)); - m.setChamber(c); - - CoredCylindricalGrain g = new CoredCylindricalGrain(); - try { - g.setLength(Amount.valueOf(70, SI.MILLIMETER)); - g.setOD(Amount.valueOf(23.5, SI.MILLIMETER)); - g.setID(Amount.valueOf(7.9375, SI.MILLIMETER)); - } catch (PropertyVetoException v) { - throw new Error(v); - } - - m.setGrain(new MultiGrain(g, 2)); - - - ConvergentDivergentNozzle n = new ConvergentDivergentNozzle(); - n.setThroatDiameter(Amount.valueOf(7.962, SI.MILLIMETER)); - n.setExitDiameter(Amount.valueOf(13.79, SI.MILLIMETER)); - n.setEfficiency(.85); - m.setNozzle(n); - - return m; - } - - - public static void main(String args[]) { - new CrappyEditor().setVisible(true); - } -} diff --git a/src/com/billkuker/rocketry/motorsim/visual/workbench/MotorWorkbench.java b/src/com/billkuker/rocketry/motorsim/visual/workbench/MotorWorkbench.java index c4e2992..b6047ee 100644 --- a/src/com/billkuker/rocketry/motorsim/visual/workbench/MotorWorkbench.java +++ b/src/com/billkuker/rocketry/motorsim/visual/workbench/MotorWorkbench.java @@ -297,15 +297,18 @@ public class MotorWorkbench extends JFrame implements TreeSelectionListener { "NonSI"); units.add(sci); units.add(nonsci); - sci.setSelected(true); + sci.setSelected(UnitPreference.getUnitPreference() == UnitPreference.SI); + nonsci.setSelected(UnitPreference.getUnitPreference() == UnitPreference.NONSI); sci.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { - UnitPreference.preference = UnitPreference.SI; + UnitPreference + .setUnitPreference(UnitPreference.SI); } }); nonsci.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { - UnitPreference.preference = UnitPreference.NONSI; + UnitPreference + .setUnitPreference(UnitPreference.NONSI); } }); add(sci); diff --git a/src/com/billkuker/rocketry/motorsim/visual/workbench/MultiBurnChart.java b/src/com/billkuker/rocketry/motorsim/visual/workbench/MultiBurnChart.java index e47e3d6..ee629d8 100644 --- a/src/com/billkuker/rocketry/motorsim/visual/workbench/MultiBurnChart.java +++ b/src/com/billkuker/rocketry/motorsim/visual/workbench/MultiBurnChart.java @@ -36,9 +36,9 @@ public class MultiBurnChart extends JPanel implements BurnWatcher { @SuppressWarnings("unchecked") public MultiBurnChart() { this.setLayout(new BorderLayout()); - time = RocketScience.UnitPreference.preference + time = RocketScience.UnitPreference.getUnitPreference() .getPreferredUnit(SI.SECOND); - force = RocketScience.UnitPreference.preference + force = RocketScience.UnitPreference.getUnitPreference() .getPreferredUnit(SI.NEWTON); JFreeChart chart = ChartFactory.createXYLineChart( "", // Title diff --git a/src/com/billkuker/rocketry/motorsim/visual/workbench/SRFuelEditor.java b/src/com/billkuker/rocketry/motorsim/visual/workbench/SRFuelEditor.java index ec743de..013216f 100644 --- a/src/com/billkuker/rocketry/motorsim/visual/workbench/SRFuelEditor.java +++ b/src/com/billkuker/rocketry/motorsim/visual/workbench/SRFuelEditor.java @@ -44,7 +44,7 @@ public class SRFuelEditor extends JSplitPane { Chart burnRate; private class Entry implements Comparable { - Amount p = Amount.valueOf(0, RocketScience.UnitPreference.preference.getPreferredUnit(RocketScience.PSI)); + Amount p = Amount.valueOf(0, RocketScience.UnitPreference.getUnitPreference().getPreferredUnit(RocketScience.PSI)); double a; double n; -- 2.47.2