~ubuntu-branches/ubuntu/wily/geotranz/wily

« back to all changes in this revision

Viewing changes to .pc/005-openjdk-forms.patch/GEOTRANS3/java_gui/geotrans3/gui/CoordPanel.java

  • Committer: Bazaar Package Importer
  • Author(s): Roberto Lumbreras
  • Date: 2011-03-06 21:06:09 UTC
  • mfrom: (1.1.2 upstream)
  • Revision ID: james.westby@ubuntu.com-20110306210609-tsvzx88vdmpgc7u4
Tags: 3.1-1
* New upstream version.
* Added debian/make-orig-tar-bz2 to repackage the upstream .tgz easily.
* Dropped 005-openjdk-forms.patch, it didn't work well in all systems.
* Renamed libgeotranz3 to libgeotranz3.1 because of ABI changes.
* Added symbols64 file for alpha, s390 and 64bit architectures.
  (Closes: #609504)

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
// CLASSIFICATION: UNCLASSIFIED
2
 
 
3
 
/*
4
 
 * coordPanel.java
5
 
 *
6
 
 * Created on April 18, 2001, 4:28 PM
7
 
 */
8
 
 
9
 
package geotrans3.gui;
10
 
 
11
 
 
12
 
import geotrans3.coordinates.*;
13
 
import geotrans3.enumerations.CoordinateType;
14
 
import geotrans3.exception.CoordinateConversionException;
15
 
import geotrans3.jni.*;
16
 
import geotrans3.misc.FormatOptions;
17
 
import geotrans3.misc.Source;
18
 
import geotrans3.misc.StringHandler;
19
 
import geotrans3.utility.Constants;
20
 
import geotrans3.utility.Platform;
21
 
 
22
 
 
23
 
/**
24
 
 *
25
 
 * @author  amyc
26
 
 * @version
27
 
 */
28
 
public class CoordPanel extends javax.swing.JPanel
29
 
{
30
 
  private StringHandler stringHandler;
31
 
  private FormatOptions formatOptions;
32
 
  private boolean useNSEW;
33
 
  private boolean useMinutes;
34
 
  private boolean useSeconds;
35
 
  private char hemisphere;
36
 
  private long zone;
37
 
  // Flag to test if accuracy has been selected or is from previous conversion
38
 
  private boolean usePrevAccuracies;
39
 
  private boolean _3dConversion;
40
 
  private Accuracy currentAccuracy;
41
 
 
42
 
  
43
 
    /** Creates new form coordPanel */
44
 
  public CoordPanel(FormatOptions _formatOptions, StringHandler _stringHandler)
45
 
  {
46
 
    formatOptions = _formatOptions;
47
 
    stringHandler = _stringHandler;
48
 
    usePrevAccuracies = false;
49
 
    _3dConversion = false;
50
 
    currentAccuracy = new Accuracy();
51
 
 
52
 
    setFormat();
53
 
    initComponents();
54
 
 
55
 
    tempLabel1.setVisible(false);
56
 
    tempLabel2.setVisible(false);
57
 
    tempTextField1.setVisible(false);
58
 
    tempTextField2.setVisible(false);
59
 
 
60
 
    if(Platform.isJavaV1_3)
61
 
    {
62
 
      _3CoordFieldsLabelA.setForeground(java.awt.Color.black);
63
 
      _3CoordFieldsLabelB.setForeground(java.awt.Color.black);
64
 
      _3CoordFieldsLabelC.setForeground(java.awt.Color.black);
65
 
      _2CoordFieldsLabelA.setForeground(java.awt.Color.black);
66
 
      _2CoordFieldsLabelB.setForeground(java.awt.Color.black);
67
 
      ce90Label.setForeground(java.awt.Color.black);
68
 
      le90Label.setForeground(java.awt.Color.black);
69
 
      se90Label.setForeground(java.awt.Color.black);
70
 
      sourcesLabel.setForeground(java.awt.Color.black);
71
 
    }
72
 
 
73
 
    setPanelSizes();
74
 
    fillAccuracyList();
75
 
    if(Platform.isUnix)
76
 
    {
77
 
      _3CoordFieldsLabelA.setFont(new java.awt.Font("Dialog", 1, 10));
78
 
      _3CoordFieldsLabelB.setFont(new java.awt.Font("Dialog", 1, 10));
79
 
      _3CoordFieldsLabelC.setFont(new java.awt.Font("Dialog", 1, 10));
80
 
      _2CoordFieldsLabelA.setFont(new java.awt.Font("Dialog", 1, 10));
81
 
      _2CoordFieldsLabelB.setFont(new java.awt.Font("Dialog", 1, 10));
82
 
      ce90Label.setFont(new java.awt.Font("Dialog", 1, 10));
83
 
      le90Label.setFont(new java.awt.Font("Dialog", 1, 10));
84
 
      se90Label.setFont(new java.awt.Font("Dialog", 1, 10));
85
 
      sourcesLabel.setFont(new java.awt.Font("Dialog", 1, 10));
86
 
      sourcesComboBox.setFont(new java.awt.Font("Dialog", 1, 10));
87
 
      sourcesComboBox.setMaximumSize(new java.awt.Dimension(265, 22));
88
 
      sourcesComboBox.setMinimumSize(new java.awt.Dimension(265, 22));
89
 
      sourcesComboBox.setPreferredSize(new java.awt.Dimension(265, 22));
90
 
      ce90TextField.setToolTipText("90% CE");
91
 
      le90TextField.setToolTipText("90% LE");
92
 
      se90TextField.setToolTipText("90% SE");
93
 
    }
94
 
  }
95
 
 
96
 
    /** This method is called from within the constructor to
97
 
     * initialize the form.
98
 
     * WARNING: Do NOT modify this code. The content of this method is
99
 
     * always regenerated by the FormEditor.
100
 
     */
101
 
    private void initComponents() {//GEN-BEGIN:initComponents
102
 
        java.awt.GridBagConstraints gridBagConstraints;
103
 
 
104
 
        coordLayeredPane = new javax.swing.JLayeredPane();
105
 
        _3CoordFieldsPanel = new javax.swing.JPanel();
106
 
        _3CoordFieldsLabelA = new javax.swing.JLabel();
107
 
        _3CoordFieldsLabelB = new javax.swing.JLabel();
108
 
        _3CoordFieldsLabelC = new javax.swing.JLabel();
109
 
        _3CoordFieldsTextFieldA = new javax.swing.JTextField();
110
 
        _3CoordFieldsTextFieldB = new javax.swing.JTextField();
111
 
        _3CoordFieldsTextFieldC = new javax.swing.JTextField();
112
 
        _2CoordFieldsPanel = new javax.swing.JPanel();
113
 
        _2CoordFieldsLabelA = new javax.swing.JLabel();
114
 
        _2CoordFieldsLabelB = new javax.swing.JLabel();
115
 
        _2CoordFieldsTextFieldA = new javax.swing.JTextField();
116
 
        _2CoordFieldsTextFieldB = new javax.swing.JTextField();
117
 
        tempLabel1 = new javax.swing.JLabel();
118
 
        tempLabel2 = new javax.swing.JLabel();
119
 
        tempTextField1 = new javax.swing.JTextField();
120
 
        tempTextField2 = new javax.swing.JTextField();
121
 
        errorsPanel = new javax.swing.JPanel();
122
 
        outputErrorPanel = new javax.swing.JPanel();
123
 
        ce90Label = new javax.swing.JLabel();
124
 
        le90Label = new javax.swing.JLabel();
125
 
        se90Label = new javax.swing.JLabel();
126
 
        ce90TextField = new javax.swing.JTextField();
127
 
        le90TextField = new javax.swing.JTextField();
128
 
        se90TextField = new javax.swing.JTextField();
129
 
        inputErrorPanel = new javax.swing.JPanel();
130
 
        sourcesLabel = new javax.swing.JLabel();
131
 
        sourcesComboBox = new javax.swing.JComboBox();
132
 
 
133
 
        setLayout(new java.awt.GridBagLayout());
134
 
 
135
 
        setMinimumSize(new java.awt.Dimension(439, 80));
136
 
        setPreferredSize(new java.awt.Dimension(439, 80));
137
 
        addComponentListener(new java.awt.event.ComponentAdapter() {
138
 
            public void componentResized(java.awt.event.ComponentEvent evt) {
139
 
                formComponentResized(evt);
140
 
            }
141
 
        });
142
 
 
143
 
        coordLayeredPane.setMaximumSize(new java.awt.Dimension(439, 36));
144
 
        coordLayeredPane.setMinimumSize(new java.awt.Dimension(439, 38));
145
 
        coordLayeredPane.setPreferredSize(new java.awt.Dimension(460, 38));
146
 
        coordLayeredPane.setOpaque(true);
147
 
        _3CoordFieldsPanel.setLayout(new java.awt.GridLayout(2, 3, 12, 0));
148
 
 
149
 
        _3CoordFieldsPanel.setMaximumSize(new java.awt.Dimension(339, 36));
150
 
        _3CoordFieldsPanel.setMinimumSize(new java.awt.Dimension(339, 36));
151
 
        _3CoordFieldsPanel.setPreferredSize(new java.awt.Dimension(339, 36));
152
 
        _3CoordFieldsPanel.setOpaque(false);
153
 
        _3CoordFieldsLabelA.setText("X (m):");
154
 
        _3CoordFieldsLabelA.setMaximumSize(new java.awt.Dimension(105, 16));
155
 
        _3CoordFieldsLabelA.setMinimumSize(new java.awt.Dimension(105, 16));
156
 
        _3CoordFieldsLabelA.setPreferredSize(new java.awt.Dimension(105, 16));
157
 
        _3CoordFieldsLabelA.setOpaque(true);
158
 
        _3CoordFieldsPanel.add(_3CoordFieldsLabelA);
159
 
 
160
 
        _3CoordFieldsLabelB.setText("Y (m):");
161
 
        _3CoordFieldsLabelB.setMaximumSize(new java.awt.Dimension(105, 16));
162
 
        _3CoordFieldsLabelB.setMinimumSize(new java.awt.Dimension(105, 16));
163
 
        _3CoordFieldsLabelB.setPreferredSize(new java.awt.Dimension(105, 16));
164
 
        _3CoordFieldsLabelB.setOpaque(true);
165
 
        _3CoordFieldsPanel.add(_3CoordFieldsLabelB);
166
 
 
167
 
        _3CoordFieldsLabelC.setText("Z (m):");
168
 
        _3CoordFieldsLabelC.setMaximumSize(new java.awt.Dimension(105, 16));
169
 
        _3CoordFieldsLabelC.setMinimumSize(new java.awt.Dimension(105, 16));
170
 
        _3CoordFieldsLabelC.setPreferredSize(new java.awt.Dimension(105, 16));
171
 
        _3CoordFieldsLabelC.setOpaque(true);
172
 
        _3CoordFieldsPanel.add(_3CoordFieldsLabelC);
173
 
 
174
 
        _3CoordFieldsTextFieldA.setText("0.0");
175
 
        _3CoordFieldsTextFieldA.setBorder(new javax.swing.border.BevelBorder(javax.swing.border.BevelBorder.LOWERED));
176
 
        _3CoordFieldsTextFieldA.setMinimumSize(new java.awt.Dimension(105, 20));
177
 
        _3CoordFieldsTextFieldA.setPreferredSize(new java.awt.Dimension(105, 20));
178
 
        _3CoordFieldsPanel.add(_3CoordFieldsTextFieldA);
179
 
 
180
 
        _3CoordFieldsTextFieldB.setText("0.0");
181
 
        _3CoordFieldsTextFieldB.setBorder(new javax.swing.border.BevelBorder(javax.swing.border.BevelBorder.LOWERED));
182
 
        _3CoordFieldsTextFieldB.setMinimumSize(new java.awt.Dimension(105, 20));
183
 
        _3CoordFieldsTextFieldB.setPreferredSize(new java.awt.Dimension(105, 20));
184
 
        _3CoordFieldsPanel.add(_3CoordFieldsTextFieldB);
185
 
 
186
 
        _3CoordFieldsTextFieldC.setText("0.0");
187
 
        _3CoordFieldsTextFieldC.setBorder(new javax.swing.border.BevelBorder(javax.swing.border.BevelBorder.LOWERED));
188
 
        _3CoordFieldsTextFieldC.setMinimumSize(new java.awt.Dimension(105, 20));
189
 
        _3CoordFieldsTextFieldC.setPreferredSize(new java.awt.Dimension(105, 20));
190
 
        _3CoordFieldsPanel.add(_3CoordFieldsTextFieldC);
191
 
 
192
 
        _3CoordFieldsPanel.setBounds(2, 2, 439, 37);
193
 
        coordLayeredPane.add(_3CoordFieldsPanel, javax.swing.JLayeredPane.DEFAULT_LAYER);
194
 
 
195
 
        _2CoordFieldsPanel.setLayout(new java.awt.GridBagLayout());
196
 
 
197
 
        _2CoordFieldsPanel.setMaximumSize(new java.awt.Dimension(229, 36));
198
 
        _2CoordFieldsPanel.setMinimumSize(new java.awt.Dimension(229, 36));
199
 
        _2CoordFieldsPanel.setPreferredSize(new java.awt.Dimension(229, 36));
200
 
        _2CoordFieldsPanel.setOpaque(false);
201
 
        _2CoordFieldsLabelA.setText("Easting / X (m):");
202
 
        _2CoordFieldsLabelA.setAlignmentX(1.0F);
203
 
        _2CoordFieldsLabelA.setMaximumSize(new java.awt.Dimension(106, 16));
204
 
        _2CoordFieldsLabelA.setMinimumSize(new java.awt.Dimension(106, 16));
205
 
        _2CoordFieldsLabelA.setPreferredSize(new java.awt.Dimension(106, 16));
206
 
        _2CoordFieldsLabelA.setOpaque(true);
207
 
        gridBagConstraints = new java.awt.GridBagConstraints();
208
 
        gridBagConstraints.gridx = 1;
209
 
        gridBagConstraints.gridy = 0;
210
 
        gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
211
 
        gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
212
 
        gridBagConstraints.insets = new java.awt.Insets(0, 6, 0, 6);
213
 
        _2CoordFieldsPanel.add(_2CoordFieldsLabelA, gridBagConstraints);
214
 
 
215
 
        _2CoordFieldsLabelB.setText("Northing / Y (m):");
216
 
        _2CoordFieldsLabelB.setMaximumSize(new java.awt.Dimension(106, 16));
217
 
        _2CoordFieldsLabelB.setMinimumSize(new java.awt.Dimension(106, 16));
218
 
        _2CoordFieldsLabelB.setPreferredSize(new java.awt.Dimension(106, 16));
219
 
        _2CoordFieldsLabelB.setOpaque(true);
220
 
        gridBagConstraints = new java.awt.GridBagConstraints();
221
 
        gridBagConstraints.gridx = 2;
222
 
        gridBagConstraints.gridy = 0;
223
 
        gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
224
 
        gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST;
225
 
        gridBagConstraints.insets = new java.awt.Insets(0, 6, 0, 6);
226
 
        _2CoordFieldsPanel.add(_2CoordFieldsLabelB, gridBagConstraints);
227
 
 
228
 
        _2CoordFieldsTextFieldA.setText("0.0");
229
 
        _2CoordFieldsTextFieldA.setAlignmentX(1.0F);
230
 
        _2CoordFieldsTextFieldA.setBorder(new javax.swing.border.BevelBorder(javax.swing.border.BevelBorder.LOWERED));
231
 
        _2CoordFieldsTextFieldA.setMargin(new java.awt.Insets(0, 0, 5, 0));
232
 
        _2CoordFieldsTextFieldA.setMinimumSize(new java.awt.Dimension(106, 20));
233
 
        _2CoordFieldsTextFieldA.setPreferredSize(new java.awt.Dimension(106, 20));
234
 
        gridBagConstraints = new java.awt.GridBagConstraints();
235
 
        gridBagConstraints.gridx = 1;
236
 
        gridBagConstraints.gridy = 1;
237
 
        gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
238
 
        gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
239
 
        gridBagConstraints.insets = new java.awt.Insets(0, 6, 1, 6);
240
 
        _2CoordFieldsPanel.add(_2CoordFieldsTextFieldA, gridBagConstraints);
241
 
 
242
 
        _2CoordFieldsTextFieldB.setText("0.0");
243
 
        _2CoordFieldsTextFieldB.setBorder(new javax.swing.border.BevelBorder(javax.swing.border.BevelBorder.LOWERED));
244
 
        _2CoordFieldsTextFieldB.setMargin(new java.awt.Insets(0, 0, 5, 0));
245
 
        _2CoordFieldsTextFieldB.setMinimumSize(new java.awt.Dimension(106, 20));
246
 
        _2CoordFieldsTextFieldB.setPreferredSize(new java.awt.Dimension(106, 20));
247
 
        gridBagConstraints = new java.awt.GridBagConstraints();
248
 
        gridBagConstraints.gridx = 2;
249
 
        gridBagConstraints.gridy = 1;
250
 
        gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
251
 
        gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST;
252
 
        gridBagConstraints.insets = new java.awt.Insets(0, 6, 1, 6);
253
 
        _2CoordFieldsPanel.add(_2CoordFieldsTextFieldB, gridBagConstraints);
254
 
 
255
 
        tempLabel1.setText("Easting / X (m):");
256
 
        tempLabel1.setAlignmentX(1.0F);
257
 
        tempLabel1.setMaximumSize(new java.awt.Dimension(106, 16));
258
 
        tempLabel1.setMinimumSize(new java.awt.Dimension(106, 16));
259
 
        tempLabel1.setPreferredSize(new java.awt.Dimension(106, 16));
260
 
        tempLabel1.setOpaque(true);
261
 
        gridBagConstraints = new java.awt.GridBagConstraints();
262
 
        gridBagConstraints.gridx = 0;
263
 
        gridBagConstraints.gridy = 0;
264
 
        gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
265
 
        gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
266
 
        gridBagConstraints.insets = new java.awt.Insets(0, 4, 0, 6);
267
 
        _2CoordFieldsPanel.add(tempLabel1, gridBagConstraints);
268
 
 
269
 
        tempLabel2.setText("Northing / Y (m):");
270
 
        tempLabel2.setMaximumSize(new java.awt.Dimension(106, 16));
271
 
        tempLabel2.setMinimumSize(new java.awt.Dimension(106, 16));
272
 
        tempLabel2.setPreferredSize(new java.awt.Dimension(106, 16));
273
 
        tempLabel2.setOpaque(true);
274
 
        gridBagConstraints = new java.awt.GridBagConstraints();
275
 
        gridBagConstraints.gridx = 3;
276
 
        gridBagConstraints.gridy = 0;
277
 
        gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
278
 
        gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST;
279
 
        gridBagConstraints.insets = new java.awt.Insets(0, 6, 0, 0);
280
 
        _2CoordFieldsPanel.add(tempLabel2, gridBagConstraints);
281
 
 
282
 
        tempTextField1.setText("0.0");
283
 
        tempTextField1.setAlignmentX(1.0F);
284
 
        tempTextField1.setBorder(new javax.swing.border.BevelBorder(javax.swing.border.BevelBorder.LOWERED));
285
 
        tempTextField1.setMargin(new java.awt.Insets(0, 0, 5, 0));
286
 
        tempTextField1.setMinimumSize(new java.awt.Dimension(106, 20));
287
 
        tempTextField1.setPreferredSize(new java.awt.Dimension(106, 20));
288
 
        gridBagConstraints = new java.awt.GridBagConstraints();
289
 
        gridBagConstraints.gridx = 0;
290
 
        gridBagConstraints.gridy = 1;
291
 
        gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
292
 
        gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
293
 
        gridBagConstraints.insets = new java.awt.Insets(0, 4, 1, 6);
294
 
        _2CoordFieldsPanel.add(tempTextField1, gridBagConstraints);
295
 
 
296
 
        tempTextField2.setText("0.0");
297
 
        tempTextField2.setBorder(new javax.swing.border.BevelBorder(javax.swing.border.BevelBorder.LOWERED));
298
 
        tempTextField2.setMargin(new java.awt.Insets(0, 0, 5, 0));
299
 
        tempTextField2.setMinimumSize(new java.awt.Dimension(106, 20));
300
 
        tempTextField2.setPreferredSize(new java.awt.Dimension(106, 20));
301
 
        gridBagConstraints = new java.awt.GridBagConstraints();
302
 
        gridBagConstraints.gridx = 3;
303
 
        gridBagConstraints.gridy = 1;
304
 
        gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
305
 
        gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST;
306
 
        gridBagConstraints.insets = new java.awt.Insets(0, 6, 1, 0);
307
 
        _2CoordFieldsPanel.add(tempTextField2, gridBagConstraints);
308
 
 
309
 
        _2CoordFieldsPanel.setBounds(4, 2, 460, 45);
310
 
        coordLayeredPane.add(_2CoordFieldsPanel, javax.swing.JLayeredPane.DEFAULT_LAYER);
311
 
 
312
 
        gridBagConstraints = new java.awt.GridBagConstraints();
313
 
        gridBagConstraints.insets = new java.awt.Insets(1, 2, 1, 2);
314
 
        add(coordLayeredPane, gridBagConstraints);
315
 
 
316
 
        errorsPanel.setLayout(new java.awt.GridBagLayout());
317
 
 
318
 
        errorsPanel.setMinimumSize(new java.awt.Dimension(460, 40));
319
 
        errorsPanel.setPreferredSize(new java.awt.Dimension(460, 40));
320
 
        errorsPanel.setOpaque(false);
321
 
        outputErrorPanel.setLayout(new java.awt.GridBagLayout());
322
 
 
323
 
        outputErrorPanel.setMinimumSize(new java.awt.Dimension(170, 40));
324
 
        outputErrorPanel.setPreferredSize(new java.awt.Dimension(170, 40));
325
 
        outputErrorPanel.setOpaque(false);
326
 
        ce90Label.setText("90% CE:");
327
 
        ce90Label.setMaximumSize(new java.awt.Dimension(48, 16));
328
 
        ce90Label.setMinimumSize(new java.awt.Dimension(48, 16));
329
 
        ce90Label.setPreferredSize(new java.awt.Dimension(48, 16));
330
 
        ce90Label.setOpaque(true);
331
 
        gridBagConstraints = new java.awt.GridBagConstraints();
332
 
        gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
333
 
        gridBagConstraints.insets = new java.awt.Insets(0, 0, 0, 6);
334
 
        outputErrorPanel.add(ce90Label, gridBagConstraints);
335
 
 
336
 
        le90Label.setText("90% LE:");
337
 
        le90Label.setMaximumSize(new java.awt.Dimension(48, 16));
338
 
        le90Label.setMinimumSize(new java.awt.Dimension(48, 16));
339
 
        le90Label.setPreferredSize(new java.awt.Dimension(48, 16));
340
 
        le90Label.setOpaque(true);
341
 
        gridBagConstraints = new java.awt.GridBagConstraints();
342
 
        gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
343
 
        gridBagConstraints.insets = new java.awt.Insets(0, 6, 0, 6);
344
 
        outputErrorPanel.add(le90Label, gridBagConstraints);
345
 
 
346
 
        se90Label.setText("90% SE:");
347
 
        se90Label.setMaximumSize(new java.awt.Dimension(48, 16));
348
 
        se90Label.setMinimumSize(new java.awt.Dimension(48, 16));
349
 
        se90Label.setPreferredSize(new java.awt.Dimension(48, 16));
350
 
        se90Label.setOpaque(true);
351
 
        gridBagConstraints = new java.awt.GridBagConstraints();
352
 
        gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
353
 
        gridBagConstraints.insets = new java.awt.Insets(0, 6, 0, 0);
354
 
        outputErrorPanel.add(se90Label, gridBagConstraints);
355
 
 
356
 
        ce90TextField.setToolTipText("");
357
 
        ce90TextField.setBorder(new javax.swing.border.BevelBorder(javax.swing.border.BevelBorder.LOWERED));
358
 
        ce90TextField.setMinimumSize(new java.awt.Dimension(48, 20));
359
 
        ce90TextField.setPreferredSize(new java.awt.Dimension(48, 20));
360
 
        ce90TextField.addKeyListener(new java.awt.event.KeyAdapter() {
361
 
            public void keyTyped(java.awt.event.KeyEvent evt) {
362
 
                accuracyTextFieldKeyTyped(evt);
363
 
            }
364
 
        });
365
 
 
366
 
        gridBagConstraints = new java.awt.GridBagConstraints();
367
 
        gridBagConstraints.gridx = 0;
368
 
        gridBagConstraints.gridy = 1;
369
 
        gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
370
 
        gridBagConstraints.insets = new java.awt.Insets(0, 0, 0, 6);
371
 
        outputErrorPanel.add(ce90TextField, gridBagConstraints);
372
 
 
373
 
        le90TextField.setToolTipText("");
374
 
        le90TextField.setBorder(new javax.swing.border.BevelBorder(javax.swing.border.BevelBorder.LOWERED));
375
 
        le90TextField.setMinimumSize(new java.awt.Dimension(48, 20));
376
 
        le90TextField.setPreferredSize(new java.awt.Dimension(48, 20));
377
 
        le90TextField.addKeyListener(new java.awt.event.KeyAdapter() {
378
 
            public void keyTyped(java.awt.event.KeyEvent evt) {
379
 
                accuracyTextFieldKeyTyped(evt);
380
 
            }
381
 
        });
382
 
 
383
 
        gridBagConstraints = new java.awt.GridBagConstraints();
384
 
        gridBagConstraints.gridx = 1;
385
 
        gridBagConstraints.gridy = 1;
386
 
        gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
387
 
        gridBagConstraints.insets = new java.awt.Insets(0, 6, 0, 6);
388
 
        outputErrorPanel.add(le90TextField, gridBagConstraints);
389
 
 
390
 
        se90TextField.setToolTipText("");
391
 
        se90TextField.setBorder(new javax.swing.border.BevelBorder(javax.swing.border.BevelBorder.LOWERED));
392
 
        se90TextField.setMinimumSize(new java.awt.Dimension(48, 20));
393
 
        se90TextField.setPreferredSize(new java.awt.Dimension(48, 20));
394
 
        se90TextField.addKeyListener(new java.awt.event.KeyAdapter() {
395
 
            public void keyTyped(java.awt.event.KeyEvent evt) {
396
 
                accuracyTextFieldKeyTyped(evt);
397
 
            }
398
 
        });
399
 
 
400
 
        gridBagConstraints = new java.awt.GridBagConstraints();
401
 
        gridBagConstraints.gridx = 2;
402
 
        gridBagConstraints.gridy = 1;
403
 
        gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
404
 
        gridBagConstraints.insets = new java.awt.Insets(0, 6, 0, 0);
405
 
        outputErrorPanel.add(se90TextField, gridBagConstraints);
406
 
 
407
 
        gridBagConstraints = new java.awt.GridBagConstraints();
408
 
        gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
409
 
        gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
410
 
        gridBagConstraints.insets = new java.awt.Insets(0, 3, 0, 5);
411
 
        errorsPanel.add(outputErrorPanel, gridBagConstraints);
412
 
 
413
 
        inputErrorPanel.setLayout(new java.awt.GridBagLayout());
414
 
 
415
 
        inputErrorPanel.setMinimumSize(new java.awt.Dimension(265, 40));
416
 
        inputErrorPanel.setPreferredSize(new java.awt.Dimension(265, 40));
417
 
        sourcesLabel.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
418
 
        sourcesLabel.setText("Sources:");
419
 
        gridBagConstraints = new java.awt.GridBagConstraints();
420
 
        gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
421
 
        inputErrorPanel.add(sourcesLabel, gridBagConstraints);
422
 
 
423
 
        sourcesComboBox.setMinimumSize(new java.awt.Dimension(265, 23));
424
 
        sourcesComboBox.setPreferredSize(new java.awt.Dimension(265, 23));
425
 
        sourcesComboBox.addActionListener(new java.awt.event.ActionListener() {
426
 
            public void actionPerformed(java.awt.event.ActionEvent evt) {
427
 
                sourcesComboBoxActionPerformed(evt);
428
 
            }
429
 
        });
430
 
 
431
 
        gridBagConstraints = new java.awt.GridBagConstraints();
432
 
        gridBagConstraints.gridx = 0;
433
 
        gridBagConstraints.gridy = 1;
434
 
        gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
435
 
        inputErrorPanel.add(sourcesComboBox, gridBagConstraints);
436
 
 
437
 
        gridBagConstraints = new java.awt.GridBagConstraints();
438
 
        gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
439
 
        gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST;
440
 
        gridBagConstraints.insets = new java.awt.Insets(0, 5, 0, 3);
441
 
        errorsPanel.add(inputErrorPanel, gridBagConstraints);
442
 
 
443
 
        gridBagConstraints = new java.awt.GridBagConstraints();
444
 
        gridBagConstraints.gridx = 0;
445
 
        gridBagConstraints.gridy = 1;
446
 
        gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
447
 
        gridBagConstraints.insets = new java.awt.Insets(1, 2, 1, 2);
448
 
        add(errorsPanel, gridBagConstraints);
449
 
 
450
 
    }//GEN-END:initComponents
451
 
 
452
 
  private void accuracyTextFieldKeyTyped(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_accuracyTextFieldKeyTyped
453
 
      int keyChar = evt.getKeyChar();
454
 
      if (keyChar != java.awt.event.KeyEvent.VK_ENTER)
455
 
          usePrevAccuracies = false;
456
 
  }//GEN-LAST:event_accuracyTextFieldKeyTyped
457
 
 
458
 
  private void sourcesComboBoxActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_sourcesComboBoxActionPerformed
459
 
    updateAccuracy();
460
 
  }//GEN-LAST:event_sourcesComboBoxActionPerformed
461
 
 
462
 
  private void formComponentResized(java.awt.event.ComponentEvent evt) {//GEN-FIRST:event_formComponentResized
463
 
    setPanelSizes();
464
 
  }//GEN-LAST:event_formComponentResized
465
 
 
466
 
    private void fillAccuracyList()
467
 
    {
468
 
        try
469
 
        {
470
 
            long sourceCount = Source.count();
471
 
 
472
 
            for(int i = 0; i < sourceCount; i++)
473
 
            {
474
 
              sourcesComboBox.addItem(Source.name(i));
475
 
            }
476
 
        }
477
 
        catch(CoordinateConversionException e)
478
 
        {
479
 
            stringHandler.displayErrorMsg(new javax.swing.JFrame(), e.getMessage());
480
 
        }
481
 
    }
482
 
 
483
 
 
484
 
    private void setOneCoord()
485
 
    {
486
 
        _2CoordFieldsPanel.setVisible(false);
487
 
        _3CoordFieldsPanel.setVisible(true);
488
 
        coordLayeredPane.moveToFront(_3CoordFieldsPanel);
489
 
 
490
 
        // Hide optional fields.
491
 
        _3CoordFieldsLabelA.setVisible(false);
492
 
        _3CoordFieldsLabelC.setVisible(false);
493
 
        _3CoordFieldsTextFieldA.setVisible(false);
494
 
        _3CoordFieldsTextFieldC.setVisible(false);
495
 
 
496
 
        _3CoordFieldsLabelB.setText("Coordinate String:");
497
 
    }
498
 
 
499
 
    private void setTwoCoords()
500
 
    {
501
 
        _3CoordFieldsPanel.setVisible(false);
502
 
        _2CoordFieldsPanel.setVisible(true);
503
 
        coordLayeredPane.moveToFront(_2CoordFieldsPanel);
504
 
        _2CoordFieldsLabelA.setText("Easting / X (m):");
505
 
        _2CoordFieldsLabelB.setText("Northing / Y (m):");
506
 
        _2CoordFieldsTextFieldA.setText( "0" );
507
 
        _2CoordFieldsTextFieldB.setText( "0" );
508
 
    }
509
 
 
510
 
    private void setThreeCoords()
511
 
    {
512
 
        _2CoordFieldsPanel.setVisible(false);
513
 
        _3CoordFieldsPanel.setVisible(true);
514
 
        coordLayeredPane.moveToFront(_3CoordFieldsPanel);
515
 
 
516
 
        // Show optional fields.
517
 
        _3CoordFieldsLabelA.setVisible(true);
518
 
        _3CoordFieldsLabelC.setVisible(true);
519
 
        _3CoordFieldsTextFieldA.setVisible(true);
520
 
        _3CoordFieldsTextFieldC.setVisible(true);
521
 
 
522
 
        /* may be turned off by height type buttons. */
523
 
        setHeightFieldEditable();
524
 
 
525
 
        _3CoordFieldsLabelA.setText("X (m):");
526
 
        _3CoordFieldsLabelB.setText("Y (m):");
527
 
        _3CoordFieldsLabelC.setText("Z (m):");
528
 
        _3CoordFieldsTextFieldA.setText( "0" );
529
 
        _3CoordFieldsTextFieldB.setText( "0" );
530
 
        _3CoordFieldsTextFieldC.setText( "0" );
531
 
    }
532
 
 
533
 
 
534
 
    private void setFormat()
535
 
    {
536
 
        useNSEW = formatOptions.getUseNSEW();
537
 
        useMinutes = formatOptions.getUseMinutes();
538
 
        useSeconds = formatOptions.getUseSeconds();
539
 
        stringHandler.setPrecision(formatOptions.getPrecision());
540
 
    }
541
 
 
542
 
    // This function is needed to make the fields visible when the gui is displayed
543
 
    private void setPanelSizes()
544
 
    {
545
 
        java.awt.Dimension dsize = new java.awt.Dimension();
546
 
        dsize = coordLayeredPane.getSize();
547
 
 
548
 
        _2CoordFieldsPanel.setBounds (0, 0, dsize.width, dsize.height);
549
 
        _3CoordFieldsPanel.setBounds (0, 0, dsize.width, dsize.height);
550
 
 
551
 
        _2CoordFieldsPanel.updateUI();
552
 
        _3CoordFieldsPanel.updateUI();
553
 
    }
554
 
 
555
 
  /*
556
 
   *  The function initTargetCoordinates creates a new instance of the
557
 
   *  target coordinates.
558
 
   *
559
 
   *  @param    projType    : Type of target coordinates to create
560
 
   */
561
 
  public CoordinateTuple initTargetCoordinates(int projType) throws CoordinateConversionException
562
 
  {
563
 
    switch(projType)
564
 
    {
565
 
      case CoordinateType.ALBERS:
566
 
        return new MapProjectionCoordinates(CoordinateType.ALBERS);
567
 
      case CoordinateType.AZIMUTHAL:
568
 
        return new MapProjectionCoordinates(CoordinateType.AZIMUTHAL);
569
 
      case CoordinateType.BONNE:
570
 
        return new MapProjectionCoordinates(CoordinateType.BONNE);
571
 
      case CoordinateType.CASSINI:
572
 
        return new MapProjectionCoordinates(CoordinateType.CASSINI);
573
 
      case CoordinateType.CYLEQA:
574
 
        return new MapProjectionCoordinates(CoordinateType.CYLEQA);
575
 
      case CoordinateType.ECKERT4:
576
 
        return new MapProjectionCoordinates(CoordinateType.ECKERT4);
577
 
      case CoordinateType.ECKERT6:
578
 
        return new MapProjectionCoordinates(CoordinateType.ECKERT6);
579
 
      case CoordinateType.EQDCYL:
580
 
        return new MapProjectionCoordinates(CoordinateType.EQDCYL);
581
 
      case CoordinateType.GNOMONIC:
582
 
        return new MapProjectionCoordinates(CoordinateType.GNOMONIC);
583
 
      case CoordinateType.LAMBERT_1:
584
 
        return new MapProjectionCoordinates(CoordinateType.LAMBERT_1);
585
 
      case CoordinateType.LAMBERT_2:
586
 
        return new MapProjectionCoordinates(CoordinateType.LAMBERT_2);
587
 
      case CoordinateType.MERCATOR_SP:
588
 
        return new MapProjectionCoordinates(CoordinateType.MERCATOR_SP);
589
 
      case CoordinateType.MERCATOR_SF:
590
 
        return new MapProjectionCoordinates(CoordinateType.MERCATOR_SF);
591
 
      case CoordinateType.MILLER:
592
 
        return new MapProjectionCoordinates(CoordinateType.MILLER);
593
 
      case CoordinateType.MOLLWEIDE:
594
 
        return new MapProjectionCoordinates(CoordinateType.MOLLWEIDE);
595
 
      case CoordinateType.NEYS:
596
 
        return new MapProjectionCoordinates(CoordinateType.NEYS);
597
 
      case CoordinateType.NZMG:
598
 
        return new MapProjectionCoordinates(CoordinateType.NZMG);
599
 
      case CoordinateType.OMERC:
600
 
        return new MapProjectionCoordinates(CoordinateType.OMERC);
601
 
      case CoordinateType.ORTHOGRAPHIC:
602
 
        return new MapProjectionCoordinates(CoordinateType.ORTHOGRAPHIC);
603
 
      case CoordinateType.POLARSTEREO_SP:
604
 
        return new MapProjectionCoordinates(CoordinateType.POLARSTEREO_SP);
605
 
      case CoordinateType.POLARSTEREO_SF:
606
 
        return new MapProjectionCoordinates(CoordinateType.POLARSTEREO_SF);
607
 
      case CoordinateType.POLYCONIC:
608
 
        return new MapProjectionCoordinates(CoordinateType.POLYCONIC);
609
 
      case CoordinateType.SINUSOIDAL:
610
 
        return new MapProjectionCoordinates(CoordinateType.SINUSOIDAL);
611
 
      case CoordinateType.STEREOGRAPHIC:
612
 
        return new MapProjectionCoordinates(CoordinateType.STEREOGRAPHIC);
613
 
      case CoordinateType.TRCYLEQA:
614
 
        return new MapProjectionCoordinates(CoordinateType.TRCYLEQA);
615
 
      case CoordinateType.TRANMERC:
616
 
        return new MapProjectionCoordinates(CoordinateType.TRANMERC);
617
 
      case CoordinateType.GRINTEN:
618
 
        return new MapProjectionCoordinates(CoordinateType.GRINTEN);
619
 
      case CoordinateType.GEODETIC:
620
 
        return new GeodeticCoordinates(CoordinateType.GEODETIC);
621
 
      case CoordinateType.GEOCENTRIC:
622
 
        return new CartesianCoordinates(CoordinateType.GEOCENTRIC);
623
 
      case CoordinateType.LOCCART:
624
 
        return new CartesianCoordinates(CoordinateType.LOCCART);
625
 
      case CoordinateType.BNG:
626
 
        return new BNGCoordinates(CoordinateType.BNG, formatOptions.getPrecision());
627
 
      case CoordinateType.GARS:
628
 
        return new GARSCoordinates(CoordinateType.GARS, formatOptions.getPrecision());
629
 
      case CoordinateType.GEOREF:
630
 
        return new GEOREFCoordinates(CoordinateType.GEOREF, formatOptions.getPrecision());
631
 
      case CoordinateType.F16GRS:
632
 
      case CoordinateType.MGRS:
633
 
        return new MGRSorUSNGCoordinates(CoordinateType.MGRS, formatOptions.getPrecision());
634
 
      case CoordinateType.USNG:
635
 
        return new MGRSorUSNGCoordinates(CoordinateType.USNG, formatOptions.getPrecision());
636
 
      case CoordinateType.UPS:
637
 
        return new UPSCoordinates(CoordinateType.UPS);
638
 
      case CoordinateType.UTM:
639
 
        return new UTMCoordinates(CoordinateType.UTM);
640
 
      default:
641
 
        throw new CoordinateConversionException("Invalid coordinate type");
642
 
    }
643
 
  }
644
 
  
645
 
  
646
 
  public boolean setCoordinates(int state, int direction, int projType, CoordinateTuple _coordinates)
647
 
  {
648
 
    boolean noErrors = true;
649
 
 
650
 
    setFormat();
651
 
 
652
 
    try
653
 
    {
654
 
      switch(projType)
655
 
      {
656
 
        case CoordinateType.ALBERS:
657
 
        case CoordinateType.AZIMUTHAL:
658
 
        case CoordinateType.BONNE:
659
 
        case CoordinateType.CASSINI:
660
 
        case CoordinateType.CYLEQA:
661
 
        case CoordinateType.ECKERT4:
662
 
        case CoordinateType.ECKERT6:
663
 
        case CoordinateType.EQDCYL:
664
 
        case CoordinateType.GNOMONIC:
665
 
        case CoordinateType.LAMBERT_1:
666
 
        case CoordinateType.LAMBERT_2:
667
 
        case CoordinateType.MERCATOR_SP:
668
 
        case CoordinateType.MERCATOR_SF:
669
 
        case CoordinateType.MILLER:
670
 
        case CoordinateType.MOLLWEIDE:
671
 
        case CoordinateType.NEYS:
672
 
        case CoordinateType.NZMG:
673
 
        case CoordinateType.OMERC:
674
 
        case CoordinateType.ORTHOGRAPHIC:
675
 
        case CoordinateType.POLARSTEREO_SP:
676
 
        case CoordinateType.POLARSTEREO_SF:
677
 
        case CoordinateType.POLYCONIC:
678
 
        case CoordinateType.SINUSOIDAL:
679
 
        case CoordinateType.STEREOGRAPHIC:
680
 
        case CoordinateType.TRCYLEQA:
681
 
        case CoordinateType.TRANMERC:
682
 
        case CoordinateType.GRINTEN:
683
 
        {
684
 
          MapProjectionCoordinates coordinates = (MapProjectionCoordinates) _coordinates;
685
 
 
686
 
          _2CoordFieldsTextFieldA.setText(stringHandler.meterToString(coordinates.getEasting()));
687
 
          _2CoordFieldsTextFieldB.setText(stringHandler.meterToString(coordinates.getNorthing()));
688
 
 
689
 
          break;
690
 
        }
691
 
        case CoordinateType.BNG:
692
 
        case CoordinateType.GARS:
693
 
        case CoordinateType.GEOREF:
694
 
        case CoordinateType.MGRS:
695
 
        case CoordinateType.USNG:
696
 
        {
697
 
          StringCoordinates coordinates = (StringCoordinates) _coordinates;
698
 
 
699
 
          _3CoordFieldsTextFieldB.setText(coordinates.getCoordinateString());
700
 
 
701
 
          break;
702
 
        }
703
 
        case CoordinateType.F16GRS:
704
 
        {
705
 
          StringCoordinates coordinates = (StringCoordinates) _coordinates;
706
 
 
707
 
          java.lang.String temp = coordinates.getCoordinateString();
708
 
          if(formatOptions.getPrecision() == formatOptions.MET100000)
709
 
            _3CoordFieldsTextFieldB.setText(temp + "00");
710
 
          else
711
 
            _3CoordFieldsTextFieldB.setText(temp);
712
 
 
713
 
          break;
714
 
        }
715
 
        case CoordinateType.GEOCENTRIC:
716
 
        case CoordinateType.LOCCART:
717
 
        {
718
 
          CartesianCoordinates coordinates = (CartesianCoordinates) _coordinates;
719
 
 
720
 
          _3CoordFieldsTextFieldA.setText(stringHandler.meterToString(coordinates.getX()));
721
 
          _3CoordFieldsTextFieldB.setText(stringHandler.meterToString(coordinates.getY()));
722
 
          _3CoordFieldsTextFieldC.setText(stringHandler.meterToString(coordinates.getZ()));
723
 
 
724
 
          break;
725
 
        }
726
 
        case CoordinateType.GEODETIC:
727
 
        {
728
 
          GeodeticCoordinates coordinates = (GeodeticCoordinates) _coordinates;
729
 
 
730
 
          _3CoordFieldsTextFieldA.setText(stringHandler.longitudeToString(coordinates.getLongitude() * Constants._180_OVER_PI, useNSEW, useMinutes, useSeconds));
731
 
          _3CoordFieldsTextFieldB.setText(stringHandler.latitudeToString(coordinates.getLatitude() * Constants._180_OVER_PI, useNSEW, useMinutes, useSeconds));
732
 
          _3CoordFieldsTextFieldC.setText(stringHandler.meterToString(coordinates.getHeight()));
733
 
 
734
 
          break;
735
 
        }
736
 
        case CoordinateType.UPS:
737
 
        {
738
 
          UPSCoordinates coordinates = (UPSCoordinates) _coordinates;
739
 
 
740
 
          hemisphere = coordinates.getHemisphere();
741
 
          _2CoordFieldsTextFieldA.setText(stringHandler.meterToString(coordinates.getEasting()));
742
 
          _2CoordFieldsTextFieldB.setText(stringHandler.meterToString(coordinates.getNorthing()));
743
 
 
744
 
          break;
745
 
        }
746
 
        case CoordinateType.UTM:
747
 
        {
748
 
          UTMCoordinates coordinates = (UTMCoordinates) _coordinates;
749
 
 
750
 
          hemisphere = coordinates.getHemisphere();
751
 
          zone = coordinates.getZone();
752
 
          _2CoordFieldsTextFieldA.setText(stringHandler.meterToString(coordinates.getEasting()));
753
 
          _2CoordFieldsTextFieldB.setText(stringHandler.meterToString(coordinates.getNorthing()));
754
 
 
755
 
          break;
756
 
        }
757
 
        default:
758
 
          throw new CoordinateConversionException("Invalid coordinate type");
759
 
      }
760
 
    }
761
 
    catch(CoordinateConversionException e)
762
 
    {
763
 
      stringHandler.setErrorMessage(true, e.getMessage());
764
 
      noErrors = false;
765
 
    }
766
 
 
767
 
    return noErrors;
768
 
  }
769
 
 
770
 
    
771
 
  // Set the input coordinates in the ccs
772
 
  public CoordinateTuple getCoordinates(int state, int direction, int projType) throws CoordinateConversionException
773
 
  {
774
 
    switch(projType)
775
 
    {
776
 
        case CoordinateType.ALBERS:
777
 
        case CoordinateType.AZIMUTHAL:
778
 
        case CoordinateType.BONNE:
779
 
        case CoordinateType.CASSINI:
780
 
        case CoordinateType.CYLEQA:
781
 
        case CoordinateType.ECKERT4:
782
 
        case CoordinateType.ECKERT6:
783
 
        case CoordinateType.EQDCYL:
784
 
        case CoordinateType.GNOMONIC:
785
 
        case CoordinateType.LAMBERT_1:
786
 
        case CoordinateType.LAMBERT_2:
787
 
        case CoordinateType.MERCATOR_SP:
788
 
        case CoordinateType.MERCATOR_SF:
789
 
        case CoordinateType.MILLER:
790
 
        case CoordinateType.MOLLWEIDE:
791
 
        case CoordinateType.NEYS:
792
 
        case CoordinateType.NZMG:
793
 
        case CoordinateType.OMERC:
794
 
        case CoordinateType.ORTHOGRAPHIC:
795
 
        case CoordinateType.POLARSTEREO_SP:
796
 
        case CoordinateType.POLARSTEREO_SF:
797
 
        case CoordinateType.POLYCONIC:
798
 
        case CoordinateType.SINUSOIDAL:
799
 
        case CoordinateType.STEREOGRAPHIC:
800
 
        case CoordinateType.TRCYLEQA:
801
 
        case CoordinateType.TRANMERC:
802
 
        case CoordinateType.GRINTEN:
803
 
        {
804
 
            MapProjectionCoordinates coordinates = new MapProjectionCoordinates(projType,
805
 
                                                   stringHandler.stringToDouble(_2CoordFieldsTextFieldA.getText().trim(), "Invalid Easting: "),
806
 
                                                   stringHandler.stringToDouble(_2CoordFieldsTextFieldB.getText().trim(), "Invalid Northing: "));
807
 
 
808
 
            return coordinates;
809
 
        }
810
 
        case CoordinateType.MGRS:
811
 
        {
812
 
          MGRSorUSNGCoordinates coordinates = new MGRSorUSNGCoordinates(projType, _3CoordFieldsTextFieldB.getText().trim(), formatOptions.getPrecision());
813
 
 
814
 
          return coordinates;
815
 
        }
816
 
        case CoordinateType.BNG:
817
 
        {
818
 
          BNGCoordinates coordinates = new BNGCoordinates(projType, _3CoordFieldsTextFieldB.getText().trim(), formatOptions.getPrecision());
819
 
 
820
 
          return coordinates;
821
 
        }
822
 
        case CoordinateType.GARS:
823
 
        {
824
 
          GARSCoordinates coordinates = new GARSCoordinates(projType, _3CoordFieldsTextFieldB.getText().trim(), formatOptions.getPrecision());
825
 
 
826
 
          return coordinates;
827
 
        }
828
 
        case CoordinateType.GEOREF:
829
 
        {
830
 
          GEOREFCoordinates coordinates = new GEOREFCoordinates(projType, _3CoordFieldsTextFieldB.getText().trim(), formatOptions.getPrecision());
831
 
 
832
 
          return coordinates;
833
 
        }
834
 
        case CoordinateType.USNG:
835
 
        {
836
 
            MGRSorUSNGCoordinates coordinates = new MGRSorUSNGCoordinates(projType, _3CoordFieldsTextFieldB.getText().trim(), formatOptions.getPrecision());
837
 
 
838
 
            return coordinates;
839
 
        }
840
 
        case CoordinateType.F16GRS:
841
 
        {
842
 
            java.lang.String coordString = _3CoordFieldsTextFieldB.getText().trim();
843
 
            int length = coordString.length();
844
 
            MGRSorUSNGCoordinates coordinates;
845
 
            if ((coordString.charAt(length - 1) == ('0')) && (coordString.charAt(length - 2) == ('0')))
846
 
                coordinates = new MGRSorUSNGCoordinates(CoordinateType.MGRS, coordString.substring(0, length - 2), formatOptions.getPrecision());
847
 
            else
848
 
                coordinates = new MGRSorUSNGCoordinates(CoordinateType.MGRS, coordString, formatOptions.getPrecision());
849
 
 
850
 
            return coordinates;
851
 
        }
852
 
        case CoordinateType.GEOCENTRIC:
853
 
        case CoordinateType.LOCCART:
854
 
        {
855
 
            CartesianCoordinates coordinates = new CartesianCoordinates(projType, 
856
 
                                               stringHandler.stringToDouble(_3CoordFieldsTextFieldA.getText().trim(), "Invalid X: "),
857
 
                                               stringHandler.stringToDouble(_3CoordFieldsTextFieldB.getText().trim(), "Invalid Y: "),
858
 
                                               stringHandler.stringToDouble(_3CoordFieldsTextFieldC.getText().trim(), "Invalid Z: "));
859
 
 
860
 
            return coordinates;
861
 
        }
862
 
        case CoordinateType.GEODETIC:
863
 
        {
864
 
            GeodeticCoordinates coordinates = new GeodeticCoordinates(projType, 
865
 
                                              stringHandler.stringToLongitude(_3CoordFieldsTextFieldA.getText().trim(), "Invalid Longitude: "),
866
 
                                              stringHandler.stringToLatitude(_3CoordFieldsTextFieldB.getText().trim(), "Invalid Latitude: "),
867
 
                                              stringHandler.stringToDouble(_3CoordFieldsTextFieldC.getText().trim(), "Invalid Height: "));
868
 
 
869
 
            return coordinates;
870
 
        }
871
 
        case CoordinateType.UPS:
872
 
        {
873
 
            UPSCoordinates coordinates = new UPSCoordinates(projType,
874
 
                                         hemisphere,
875
 
                                         stringHandler.stringToDouble(_2CoordFieldsTextFieldA.getText().trim(), "Invalid Easting: "),
876
 
                                         stringHandler.stringToDouble(_2CoordFieldsTextFieldB.getText().trim(), "Invalid Northing: "));
877
 
 
878
 
            return coordinates;
879
 
        }
880
 
        case CoordinateType.UTM:
881
 
        {
882
 
            UTMCoordinates coordinates = new UTMCoordinates(projType,
883
 
                                         zone, hemisphere,
884
 
                                         stringHandler.stringToDouble(_2CoordFieldsTextFieldA.getText().trim(), "Invalid Easting: "),
885
 
                                         stringHandler.stringToDouble(_2CoordFieldsTextFieldB.getText().trim(), "Invalid Northing: "));
886
 
 
887
 
            return coordinates;
888
 
        }
889
 
        default:
890
 
          throw new CoordinateConversionException("Invalid coordinate type");
891
 
    }
892
 
  }
893
 
 
894
 
  
895
 
    public void createCoordPanel(int projType)
896
 
    {
897
 
        setFormat();
898
 
 
899
 
        switch (projType)
900
 
        {
901
 
            case CoordinateType.GEOCENTRIC:
902
 
            {
903
 
                setThreeCoords();
904
 
                break;
905
 
            }
906
 
            case CoordinateType.GEODETIC:
907
 
            { // height type
908
 
                _2CoordFieldsPanel.setVisible(false);
909
 
                _3CoordFieldsPanel.setVisible(true);
910
 
                coordLayeredPane.moveToFront(_3CoordFieldsPanel);
911
 
                // Show optional fields.
912
 
                _3CoordFieldsLabelA.setVisible(true);
913
 
                _3CoordFieldsLabelC.setVisible(true);
914
 
                _3CoordFieldsTextFieldA.setVisible(true);
915
 
                _3CoordFieldsTextFieldC.setVisible(true);
916
 
                /* may be turned off by height type buttons. */
917
 
                setHeightFieldEditable();
918
 
 
919
 
                _3CoordFieldsLabelA.setText("Longitude:");
920
 
                _3CoordFieldsLabelB.setText("Latitude:");
921
 
                _3CoordFieldsLabelC.setText("Height (m):");
922
 
                try
923
 
                {
924
 
                    _3CoordFieldsTextFieldA.setText(stringHandler.longitudeToString(0, useNSEW, useMinutes, useSeconds));
925
 
                    _3CoordFieldsTextFieldB.setText(stringHandler.latitudeToString(0, useNSEW, useMinutes, useSeconds));
926
 
                }
927
 
                catch(CoordinateConversionException e)
928
 
                {
929
 
                    stringHandler.displayErrorMsg(this, e.getMessage());
930
 
                }
931
 
 
932
 
                _3CoordFieldsTextFieldC.setText( "0" );
933
 
                break;
934
 
            }
935
 
            case CoordinateType.GEOREF:
936
 
            {
937
 
                setOneCoord();
938
 
                _3CoordFieldsTextFieldB.setText( "NGAA0000000000" );
939
 
                break;
940
 
            }
941
 
            case CoordinateType.GARS:
942
 
            {
943
 
                setOneCoord();
944
 
                _3CoordFieldsTextFieldB.setText( "361HN37" );
945
 
                break;
946
 
            }
947
 
            case CoordinateType.F16GRS:
948
 
            {
949
 
                setOneCoord();
950
 
                _3CoordFieldsTextFieldB.setText( "31NEA00" );
951
 
                break;
952
 
            }
953
 
            case CoordinateType.MGRS:
954
 
            {
955
 
                setOneCoord();
956
 
                _3CoordFieldsTextFieldB.setText( "31NEA0000000000" );
957
 
                break;
958
 
            }
959
 
            case CoordinateType.BNG:
960
 
            {
961
 
                setOneCoord();
962
 
                _3CoordFieldsTextFieldB.setText( "SV 0000000000" );
963
 
                break;
964
 
            }
965
 
            case CoordinateType.NZMG:
966
 
            {
967
 
                setTwoCoords();
968
 
                _2CoordFieldsTextFieldA.setText("2510000");
969
 
                _2CoordFieldsTextFieldB.setText("6023150");
970
 
                break;
971
 
            }
972
 
            case CoordinateType.UPS:
973
 
            { // Hemisphere
974
 
                setTwoCoords();
975
 
                _2CoordFieldsTextFieldA.setText("2000000");
976
 
                _2CoordFieldsTextFieldB.setText("2000000");
977
 
                break;
978
 
            }
979
 
            case CoordinateType.USNG:
980
 
            {
981
 
                setOneCoord();
982
 
                _3CoordFieldsTextFieldB.setText( "31NEA0000000000" );
983
 
                break;
984
 
            }
985
 
            case CoordinateType.UTM:
986
 
            {
987
 
                // Hemisphere  // Zone
988
 
                setTwoCoords();
989
 
                _2CoordFieldsTextFieldA.setText("500000");
990
 
                break;
991
 
            }
992
 
            case CoordinateType.LOCCART:
993
 
            {
994
 
                setThreeCoords();
995
 
                break;
996
 
            }
997
 
            case CoordinateType.ALBERS:
998
 
            case CoordinateType.AZIMUTHAL:
999
 
            case CoordinateType.BONNE:
1000
 
            case CoordinateType.CASSINI:
1001
 
            case CoordinateType.CYLEQA:
1002
 
            case CoordinateType.ECKERT4:
1003
 
            case CoordinateType.ECKERT6:
1004
 
            case CoordinateType.EQDCYL:
1005
 
            case CoordinateType.GNOMONIC:
1006
 
            case CoordinateType.LAMBERT_1:
1007
 
            case CoordinateType.LAMBERT_2:
1008
 
            case CoordinateType.MERCATOR_SP:
1009
 
            case CoordinateType.MERCATOR_SF:
1010
 
            case CoordinateType.MILLER:
1011
 
            case CoordinateType.MOLLWEIDE:
1012
 
            case CoordinateType.NEYS:
1013
 
            case CoordinateType.OMERC:
1014
 
            case CoordinateType.ORTHOGRAPHIC:
1015
 
            case CoordinateType.POLARSTEREO_SP:
1016
 
            case CoordinateType.POLARSTEREO_SF:
1017
 
            case CoordinateType.POLYCONIC:
1018
 
            case CoordinateType.SINUSOIDAL:
1019
 
            case CoordinateType.STEREOGRAPHIC:
1020
 
            case CoordinateType.TRCYLEQA:
1021
 
            case CoordinateType.TRANMERC:
1022
 
            case CoordinateType.GRINTEN:
1023
 
            {
1024
 
                setTwoCoords();
1025
 
                break;
1026
 
            }
1027
 
            default:
1028
 
            {
1029
 
                break;
1030
 
            }
1031
 
        } /*    end of switch(projType)  */
1032
 
    } /*   end of createCoordPanel()     */
1033
 
 
1034
 
    
1035
 
    public void resetOutputErrors()
1036
 
    {
1037
 
        ce90TextField.setText("N/A");
1038
 
        le90TextField.setText("N/A");
1039
 
        se90TextField.setText("N/A");
1040
 
    }
1041
 
 
1042
 
 
1043
 
  public void setAccuracy(Accuracy accuracy)
1044
 
  {
1045
 
    currentAccuracy = accuracy;
1046
 
 
1047
 
    double ce90 = accuracy.getCE90();
1048
 
    double le90 = accuracy.getLE90();
1049
 
    double se90 = accuracy.getSE90();
1050
 
 
1051
 
    usePrevAccuracies = true;
1052
 
 
1053
 
    if(ce90 == -1.0)
1054
 
      ce90TextField.setText("Unk");
1055
 
    else
1056
 
      stringHandler.setNumberFormat(ce90TextField, ce90, 0);
1057
 
 
1058
 
    if(!_3dConversion)
1059
 
    {
1060
 
      le90TextField.setText("N/A");
1061
 
      se90TextField.setText("N/A");
1062
 
    }
1063
 
    else
1064
 
    {
1065
 
      if(le90 == -1.0)
1066
 
        le90TextField.setText("Unk");
1067
 
      else
1068
 
        stringHandler.setNumberFormat(le90TextField, le90, 0);
1069
 
 
1070
 
      if(se90 == -1.0)
1071
 
        se90TextField.setText("Unk");
1072
 
      else
1073
 
        stringHandler.setNumberFormat(se90TextField, se90, 0);
1074
 
    }
1075
 
  }
1076
 
 
1077
 
  // Set the input accuracy values
1078
 
  public Accuracy getAccuracy()
1079
 
  {
1080
 
    if(!usePrevAccuracies)
1081
 
    {
1082
 
      java.lang.String ce90String = ce90TextField.getText().trim();
1083
 
      java.lang.String le90String = le90TextField.getText().trim();
1084
 
      java.lang.String se90String = se90TextField.getText().trim();
1085
 
 
1086
 
      double ce90, le90, se90;
1087
 
      if((ce90String.equals("Unk")) || (ce90String.equals("N/A")))
1088
 
        ce90 = -1.0;
1089
 
      else
1090
 
        ce90 = stringHandler.stringToDouble(ce90String, "Invalid CE 90");
1091
 
      if((le90String.equals("Unk")) || (le90String.equals("N/A")))
1092
 
        le90 = -1.0;
1093
 
      else
1094
 
        le90 = stringHandler.stringToDouble(le90String, "Invalid LE 90");
1095
 
      if((se90String.equals("Unk")) || (se90String.equals("N/A")))
1096
 
        se90 = -1.0;
1097
 
      else
1098
 
        se90 = stringHandler.stringToDouble(se90String, "Invalid SE 90");
1099
 
 
1100
 
      currentAccuracy = new Accuracy(ce90, le90, se90);
1101
 
    }
1102
 
 
1103
 
    return currentAccuracy;
1104
 
  }
1105
 
 
1106
 
  // Set the source text fields editable/uneditable if it's a 3D/2D conversion
1107
 
  public void updateSrcErrors(boolean _3dConv)
1108
 
  {
1109
 
    le90TextField.setEditable(_3dConv);
1110
 
    se90TextField.setEditable(_3dConv);
1111
 
    _3dConversion = _3dConv;
1112
 
    updateAccuracy();
1113
 
  }
1114
 
 
1115
 
  // Set the source text fields with the values corresponding
1116
 
  // to the current combo box selection
1117
 
  public void updateAccuracy()
1118
 
  {
1119
 
    try
1120
 
    {
1121
 
      int index = sourcesComboBox.getSelectedIndex();/// + 1;
1122
 
 
1123
 
      Accuracy accuracy = Source.accuracy(index);
1124
 
 
1125
 
      usePrevAccuracies = false;
1126
 
 
1127
 
      double ce90 = accuracy.getCE90();
1128
 
      double le90 = accuracy.getLE90();
1129
 
      double se90 = accuracy.getSE90();
1130
 
 
1131
 
      if(ce90 == -1.0)
1132
 
        ce90TextField.setText("Unk");
1133
 
      else
1134
 
        stringHandler.setNumberFormat(ce90TextField, accuracy.getCE90(), 0);
1135
 
      if(!_3dConversion)
1136
 
      {
1137
 
        le90TextField.setText("N/A");
1138
 
        se90TextField.setText("N/A");
1139
 
      }
1140
 
      else
1141
 
      {
1142
 
        if(le90 == -1.0)
1143
 
          le90TextField.setText("Unk");
1144
 
        else
1145
 
          stringHandler.setNumberFormat(le90TextField, accuracy.getLE90(), 0);
1146
 
        if(se90 == -1.0)
1147
 
          se90TextField.setText("Unk");
1148
 
        else
1149
 
          stringHandler.setNumberFormat(se90TextField, accuracy.getSE90(), 0);
1150
 
      }
1151
 
    }
1152
 
    catch(CoordinateConversionException e)
1153
 
    {
1154
 
      stringHandler.displayErrorMsg(this, e.getMessage());
1155
 
    }
1156
 
  }
1157
 
 
1158
 
  public void setHeightText(String height)
1159
 
  {
1160
 
    _3CoordFieldsTextFieldC.setText(height);
1161
 
  }
1162
 
 
1163
 
  public void setHeightFieldUneditable()
1164
 
  {
1165
 
    _3CoordFieldsTextFieldC.setEditable(false);
1166
 
  }
1167
 
 
1168
 
  public void setHeightFieldEditable()
1169
 
  {
1170
 
    _3CoordFieldsTextFieldC.setEditable(true);
1171
 
  }
1172
 
 
1173
 
  public void setHeightFieldEditable(boolean editable)
1174
 
  {
1175
 
    _3CoordFieldsTextFieldC.setEditable(editable);
1176
 
  }
1177
 
 
1178
 
  public void setHemisphere(char hemi)
1179
 
  {
1180
 
    hemisphere = hemi;
1181
 
  }
1182
 
 
1183
 
  public void setZone(int z)
1184
 
  {
1185
 
    zone = z;
1186
 
  }
1187
 
 
1188
 
  public char getHemisphere()
1189
 
  {
1190
 
    return hemisphere;
1191
 
  }
1192
 
 
1193
 
  public long getZone()
1194
 
  {
1195
 
    return zone;
1196
 
  }
1197
 
 
1198
 
  public void setDefaults(FormatOptions _formatOptions, StringHandler _stringHandler)
1199
 
  {
1200
 
    formatOptions = _formatOptions;
1201
 
    stringHandler = _stringHandler;
1202
 
  }
1203
 
 
1204
 
 
1205
 
    // Variables declaration - do not modify//GEN-BEGIN:variables
1206
 
    private javax.swing.JLabel _2CoordFieldsLabelA;
1207
 
    private javax.swing.JLabel _2CoordFieldsLabelB;
1208
 
    private javax.swing.JPanel _2CoordFieldsPanel;
1209
 
    private javax.swing.JTextField _2CoordFieldsTextFieldA;
1210
 
    private javax.swing.JTextField _2CoordFieldsTextFieldB;
1211
 
    private javax.swing.JLabel _3CoordFieldsLabelA;
1212
 
    private javax.swing.JLabel _3CoordFieldsLabelB;
1213
 
    private javax.swing.JLabel _3CoordFieldsLabelC;
1214
 
    private javax.swing.JPanel _3CoordFieldsPanel;
1215
 
    private javax.swing.JTextField _3CoordFieldsTextFieldA;
1216
 
    private javax.swing.JTextField _3CoordFieldsTextFieldB;
1217
 
    private javax.swing.JTextField _3CoordFieldsTextFieldC;
1218
 
    private javax.swing.JLabel ce90Label;
1219
 
    private javax.swing.JTextField ce90TextField;
1220
 
    private javax.swing.JLayeredPane coordLayeredPane;
1221
 
    private javax.swing.JPanel errorsPanel;
1222
 
    private javax.swing.JPanel inputErrorPanel;
1223
 
    private javax.swing.JLabel le90Label;
1224
 
    private javax.swing.JTextField le90TextField;
1225
 
    private javax.swing.JPanel outputErrorPanel;
1226
 
    private javax.swing.JLabel se90Label;
1227
 
    private javax.swing.JTextField se90TextField;
1228
 
    private javax.swing.JComboBox sourcesComboBox;
1229
 
    private javax.swing.JLabel sourcesLabel;
1230
 
    private javax.swing.JLabel tempLabel1;
1231
 
    private javax.swing.JLabel tempLabel2;
1232
 
    private javax.swing.JTextField tempTextField1;
1233
 
    private javax.swing.JTextField tempTextField2;
1234
 
    // End of variables declaration//GEN-END:variables
1235
 
 
1236
 
 
1237
 
}// CLASSIFICATION: UNCLASSIFIED