Add volume loading
[sw/motorsim] / gui / com / billkuker / rocketry / motorsim / visual / SummaryPanel.java
index fd5165cba5c4c0df48e16718f5c0ed4168d0d0fd..b78d2172eb91c43b0ffa72c7fd40bafd05cc41f4 100644 (file)
@@ -1,6 +1,5 @@
 package com.billkuker.rocketry.motorsim.visual;\r
 \r
-import java.awt.BorderLayout;\r
 import java.awt.Color;\r
 import java.awt.Dimension;\r
 import java.awt.GridLayout;\r
@@ -19,13 +18,14 @@ import com.billkuker.rocketry.motorsim.Burn;
 import com.billkuker.rocketry.motorsim.BurnSummary;\r
 import com.billkuker.rocketry.motorsim.RocketScience;\r
 \r
-public class SummaryPanel extends JPanel implements Burn.BurnProgressListener {\r
+public class SummaryPanel extends JPanel implements Burn.BurnProgressListener, RocketScience.UnitPreferenceListener {\r
        private static final long serialVersionUID = 1L;\r
        private static final Color RED = new Color(196, 0, 0);\r
        private static final Color GREEN = new Color(0, 196, 0);\r
        private static final Color ORANGE = new Color(160, 96, 0);\r
        private final Burn burn;\r
        private final JProgressBar bar = new JProgressBar();\r
+       private BurnSummary bs;\r
 \r
        \r
        public SummaryPanel(Burn b) {\r
@@ -51,22 +51,30 @@ public class SummaryPanel extends JPanel implements Burn.BurnProgressListener {
 \r
        @Override\r
        public void burnComplete() {\r
-               setBurnSummary(new BurnSummary(burn));\r
+               setBurnSummary(bs = new BurnSummary(burn));\r
+               RocketScience.addUnitPreferenceListener(this);\r
        }\r
+       \r
 \r
-       private void setBurnSummary(final BurnSummary bi) {\r
+       @Override\r
+       public void preferredUnitsChanged() {\r
+               if ( bs != null )\r
+                       setBurnSummary(bs);\r
+       }\r
 \r
-               removeAll();\r
-               setLayout(new GridLayout(2, 5));\r
+       private void setBurnSummary(final BurnSummary bi) {\r
                SwingUtilities.invokeLater(new Thread() {\r
                        public void run() {\r
+                               removeAll();\r
+                               setLayout(new GridLayout(2, 5));\r
                                SummaryPanel.this.add(new JLabel("Rating"));\r
                                SummaryPanel.this.add(new JLabel("Total Impulse"));\r
                                SummaryPanel.this.add(new JLabel("ISP"));\r
                                SummaryPanel.this.add(new JLabel("Max Thrust"));\r
                                SummaryPanel.this.add(new JLabel("Average Thust"));\r
                                SummaryPanel.this.add(new JLabel("Max Pressure"));\r
-\r
+                               SummaryPanel.this.add(new JLabel("Fuel Mass"));\r
+                               SummaryPanel.this.add(new JLabel("Volume Loading"));\r
                                SummaryPanel.this.add(new JLabel("Safty Factor"));\r
 \r
                                SummaryPanel.this.add(new JLabel(bi.getRating()));\r
@@ -80,7 +88,10 @@ public class SummaryPanel extends JPanel implements Burn.BurnProgressListener {
                                                .ammountToRoundedString(bi.averageThrust())));\r
                                SummaryPanel.this.add(new JLabel(RocketScience\r
                                                .ammountToRoundedString(bi.maxPressure())));\r
-\r
+                               SummaryPanel.this.add(new JLabel(RocketScience\r
+                                               .ammountToRoundedString(bi.getPropellantMass())));\r
+                               SummaryPanel.this.add(new JLabel(Integer.toString((int)(bi.getVolumeLoading()*100.0)) + "%"));\r
+                               \r
                                Color saftyColor;\r
                                if (bi.getSaftyFactor() == null) {\r
 \r
@@ -107,4 +118,5 @@ public class SummaryPanel extends JPanel implements Burn.BurnProgressListener {
                });\r
        }\r
 \r
+\r
 }\r