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   * <small>
11   * <p/>
12   * Copyright (c)  2006  wbogaardt.
13   * This library is free software; you can redistribute it and/or
14   * modify it under the terms of the GNU Lesser General Public
15   * License as published by the Free Software Foundation; either
16   * version 2.1 of the License, or (at your option) any later version.
17   *
18   * This library is distributed in the hope that it will be useful,
19   * but WITHOUT ANY WARRANTY; without even the implied warranty of
20   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
21   * Lesser General Public License for more details.
22   *
23   * You should have received a copy of the GNU Lesser General Public
24   * License along with this library; if not, write to the Free Software
25   * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
26   * <p/>
27   * $File:  $ <br>
28   * $Change:  $ submitted by $Author: wbogaardt $ at $DateTime: Sep 18, 2006 10:29:36 AM $ <br>
29   * </small>
30   *
31   * @author wbogaardt
32   *         Display Panel for density Altitude
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          //standard calculate and reset buttons
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 }