1 package org.wcb.gui.forms.e6b;
2
3 import org.wcb.e6b.DensityAltitude;
4 import org.wcb.gui.forms.e6b.event.CalculateFormActionListener;
5
6 import javax.swing.*;
7 import java.awt.*;
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35 public class DensityAltitudePanel extends JPanel implements ICalculateForm{
36
37 private JTextField altitude;
38 private JTextField centigrade;
39 private JButton calculateButton;
40 private JButton clearButton;
41 private JTextField results;
42
43 public DensityAltitudePanel() {
44 setBorder(BorderFactory.createTitledBorder("Density Altitude"));
45 initComponents();
46 }
47
48 public void clearForm() {
49 altitude.setText(null);
50 centigrade.setText(null);
51 }
52
53 private void initComponents() {
54 altitude = new JTextField(5);
55 centigrade = new JTextField(5);
56 calculateButton = new JButton("Calculate Density Altitude");
57 clearButton = new JButton("Clear Density Altitude Values");
58 results = new JTextField(5);
59 calculateButton.addActionListener(new CalculateFormActionListener(this));
60 clearButton.addActionListener(new CalculateFormActionListener(this));
61
62 setLayout(new GridBagLayout());
63 GridBagConstraints gridBagConstraints;
64
65 gridBagConstraints = new GridBagConstraints();
66 gridBagConstraints.gridx = 0;
67 gridBagConstraints.gridy = 1;
68 gridBagConstraints.anchor = GridBagConstraints.WEST;
69 add(new JLabel("Pressure Altitude (Ft)"), gridBagConstraints);
70
71 gridBagConstraints = new GridBagConstraints();
72 gridBagConstraints.gridx = 1;
73 gridBagConstraints.gridy = 1;
74 gridBagConstraints.anchor = GridBagConstraints.WEST;
75 add(altitude, gridBagConstraints);
76
77 gridBagConstraints = new GridBagConstraints();
78 gridBagConstraints.gridx = 0;
79 gridBagConstraints.gridy = 2;
80 gridBagConstraints.anchor = GridBagConstraints.WEST;
81 add(new JLabel("Actual Tempurature (celsius)"), gridBagConstraints);
82
83 gridBagConstraints = new GridBagConstraints();
84 gridBagConstraints.gridx = 1;
85 gridBagConstraints.gridy = 2;
86 gridBagConstraints.anchor = GridBagConstraints.WEST;
87 add(centigrade, gridBagConstraints);
88
89
90 gridBagConstraints = new GridBagConstraints();
91 gridBagConstraints.gridx = 0;
92 gridBagConstraints.gridy = 3;
93 gridBagConstraints.anchor = GridBagConstraints.WEST;
94 add(calculateButton, gridBagConstraints);
95
96 gridBagConstraints = new GridBagConstraints();
97 gridBagConstraints.gridx = 1;
98 gridBagConstraints.gridy = 3;
99 gridBagConstraints.gridwidth = 2;
100 gridBagConstraints.anchor = GridBagConstraints.WEST;
101 add(clearButton, gridBagConstraints);
102
103 gridBagConstraints = new GridBagConstraints();
104 gridBagConstraints.gridx = 0;
105 gridBagConstraints.gridy = 4;
106 gridBagConstraints.anchor = GridBagConstraints.WEST;
107 add(new JLabel("Calculated Density Altitude ="), gridBagConstraints);
108
109 gridBagConstraints = new GridBagConstraints();
110 gridBagConstraints.gridx = 1;
111 gridBagConstraints.gridy = 4;
112 gridBagConstraints.anchor = GridBagConstraints.WEST;
113 add(results, gridBagConstraints);
114
115 gridBagConstraints = new GridBagConstraints();
116 gridBagConstraints.gridx = 2;
117 gridBagConstraints.gridy = 4;
118 gridBagConstraints.anchor = GridBagConstraints.WEST;
119 add(new JLabel(" Feet"), gridBagConstraints);
120 }
121
122 public Integer getCentigrade() {
123 int returnValue;
124 try {
125 returnValue = Integer.parseInt(centigrade.getText());
126 } catch (NumberFormatException nfe) {
127 returnValue = 0;
128 }
129 return returnValue;
130 }
131
132 public void setCentigrade(int centigrade) {
133 this.centigrade.setText(centigrade + "");
134 }
135
136 public Integer getAltitude() {
137 int returnValue;
138 try {
139 returnValue = Integer.parseInt(altitude.getText());
140 } catch (NumberFormatException nfe) {
141 returnValue = 0;
142 }
143 return returnValue;
144 }
145
146 public void setAltitude(double altitude) {
147 this.altitude.setText(altitude + "");
148 }
149
150
151 public void calculateResult() {
152 DensityAltitude pressure = new DensityAltitude();
153 pressure.setPressureAltitude(this.getAltitude());
154 pressure.setCentigradeTemp(this.getCentigrade());
155 pressure.calculate();
156 results.setText(pressure.densityAltitude() + "");
157 }
158 }