+package com.billkuker.rocketry.motorsim.visual;\r
+\r
+import java.awt.Color;\r
+import java.awt.GridLayout;\r
+import java.text.DecimalFormat;\r
+\r
+import javax.swing.JLabel;\r
+import javax.swing.JPanel;\r
+\r
+import com.billkuker.rocketry.motorsim.Burn;\r
+import com.billkuker.rocketry.motorsim.BurnSummary;\r
+import com.billkuker.rocketry.motorsim.RocketScience;\r
+\r
+public class SummaryPanel extends JPanel {\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
+\r
+ public SummaryPanel(Burn b) {\r
+ super(new GridLayout(2, 5));\r
+ }\r
+\r
+ public void setBurnSummary(BurnSummary bi) {\r
+ {\r
+ this.add(new JLabel("Rating"));\r
+ this.add(new JLabel("Total Impulse"));\r
+ this.add(new JLabel("ISP"));\r
+ this.add(new JLabel("Max Thrust"));\r
+ this.add(new JLabel("Average Thust"));\r
+ this.add(new JLabel("Max Pressure"));\r
+\r
+ this.add(new JLabel("Safty Factor"));\r
+\r
+ this.add(new JLabel(bi.getRating()));\r
+ this.add(new JLabel(RocketScience.ammountToRoundedString(bi\r
+ .totalImpulse())));\r
+ this.add(new JLabel(RocketScience.ammountToRoundedString(bi\r
+ .specificImpulse())));\r
+ this.add(new JLabel(RocketScience.ammountToRoundedString(bi\r
+ .maxThrust())));\r
+ this.add(new JLabel(RocketScience.ammountToRoundedString(bi\r
+ .averageThrust())));\r
+ this.add(new JLabel(RocketScience.ammountToRoundedString(bi\r
+ .maxPressure())));\r
+\r
+ Color saftyColor;\r
+ if (bi.getSaftyFactor() == null) {\r
+\r
+ saftyColor = Color.BLACK;\r
+ this.add(new JLabel("NA"));\r
+ } else {\r
+ double d = bi.getSaftyFactor();\r
+ if (d >= 1.5) {\r
+ saftyColor = GREEN;\r
+ } else if (d > 1) {\r
+ saftyColor = ORANGE;\r
+ } else {\r
+ saftyColor = RED;\r
+ }\r
+ JLabel l = new JLabel(\r
+ new DecimalFormat("##########.#").format(bi\r
+ .getSaftyFactor()));\r
+ l.setOpaque(true);\r
+ l.setBackground(saftyColor);\r
+ l.setForeground(Color.WHITE);\r
+ this.add(l);\r
+ }\r
+\r
+ }\r
+ }\r
+}\r