Split out summary panel
[sw/motorsim] / gui / com / billkuker / rocketry / motorsim / visual / SummaryPanel.java
1 package com.billkuker.rocketry.motorsim.visual;\r
2 \r
3 import java.awt.Color;\r
4 import java.awt.GridLayout;\r
5 import java.text.DecimalFormat;\r
6 \r
7 import javax.swing.JLabel;\r
8 import javax.swing.JPanel;\r
9 \r
10 import com.billkuker.rocketry.motorsim.Burn;\r
11 import com.billkuker.rocketry.motorsim.BurnSummary;\r
12 import com.billkuker.rocketry.motorsim.RocketScience;\r
13 \r
14 public class SummaryPanel extends JPanel {\r
15         private static final long serialVersionUID = 1L;\r
16         private static final Color RED = new Color(196, 0, 0);\r
17         private static final Color GREEN = new Color(0, 196, 0);\r
18         private static final Color ORANGE = new Color(160, 96, 0);\r
19 \r
20         public SummaryPanel(Burn b) {\r
21                 super(new GridLayout(2, 5));\r
22         }\r
23 \r
24         public void setBurnSummary(BurnSummary bi) {\r
25                 {\r
26                         this.add(new JLabel("Rating"));\r
27                         this.add(new JLabel("Total Impulse"));\r
28                         this.add(new JLabel("ISP"));\r
29                         this.add(new JLabel("Max Thrust"));\r
30                         this.add(new JLabel("Average Thust"));\r
31                         this.add(new JLabel("Max Pressure"));\r
32 \r
33                         this.add(new JLabel("Safty Factor"));\r
34 \r
35                         this.add(new JLabel(bi.getRating()));\r
36                         this.add(new JLabel(RocketScience.ammountToRoundedString(bi\r
37                                         .totalImpulse())));\r
38                         this.add(new JLabel(RocketScience.ammountToRoundedString(bi\r
39                                         .specificImpulse())));\r
40                         this.add(new JLabel(RocketScience.ammountToRoundedString(bi\r
41                                         .maxThrust())));\r
42                         this.add(new JLabel(RocketScience.ammountToRoundedString(bi\r
43                                         .averageThrust())));\r
44                         this.add(new JLabel(RocketScience.ammountToRoundedString(bi\r
45                                         .maxPressure())));\r
46 \r
47                         Color saftyColor;\r
48                         if (bi.getSaftyFactor() == null) {\r
49 \r
50                                 saftyColor = Color.BLACK;\r
51                                 this.add(new JLabel("NA"));\r
52                         } else {\r
53                                 double d = bi.getSaftyFactor();\r
54                                 if (d >= 1.5) {\r
55                                         saftyColor = GREEN;\r
56                                 } else if (d > 1) {\r
57                                         saftyColor = ORANGE;\r
58                                 } else {\r
59                                         saftyColor = RED;\r
60                                 }\r
61                                 JLabel l = new JLabel(\r
62                                                 new DecimalFormat("##########.#").format(bi\r
63                                                                 .getSaftyFactor()));\r
64                                 l.setOpaque(true);\r
65                                 l.setBackground(saftyColor);\r
66                                 l.setForeground(Color.WHITE);\r
67                                 this.add(l);\r
68                         }\r
69 \r
70                 }\r
71         }\r
72 }\r