1
// CLASSIFICATION: UNCLASSIFIED
6
* Created on April 18, 2001, 4:28 PM
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;
28
public class CoordPanel extends javax.swing.JPanel
30
private StringHandler stringHandler;
31
private FormatOptions formatOptions;
32
private boolean useNSEW;
33
private boolean useMinutes;
34
private boolean useSeconds;
35
private char hemisphere;
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;
43
/** Creates new form coordPanel */
44
public CoordPanel(FormatOptions _formatOptions, StringHandler _stringHandler)
46
formatOptions = _formatOptions;
47
stringHandler = _stringHandler;
48
usePrevAccuracies = false;
49
_3dConversion = false;
50
currentAccuracy = new Accuracy();
55
tempLabel1.setVisible(false);
56
tempLabel2.setVisible(false);
57
tempTextField1.setVisible(false);
58
tempTextField2.setVisible(false);
60
if(Platform.isJavaV1_3)
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);
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");
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.
101
private void initComponents() {//GEN-BEGIN:initComponents
102
java.awt.GridBagConstraints gridBagConstraints;
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();
133
setLayout(new java.awt.GridBagLayout());
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);
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));
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);
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);
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);
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);
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);
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);
192
_3CoordFieldsPanel.setBounds(2, 2, 439, 37);
193
coordLayeredPane.add(_3CoordFieldsPanel, javax.swing.JLayeredPane.DEFAULT_LAYER);
195
_2CoordFieldsPanel.setLayout(new java.awt.GridBagLayout());
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);
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);
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);
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);
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);
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);
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);
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);
309
_2CoordFieldsPanel.setBounds(4, 2, 460, 45);
310
coordLayeredPane.add(_2CoordFieldsPanel, javax.swing.JLayeredPane.DEFAULT_LAYER);
312
gridBagConstraints = new java.awt.GridBagConstraints();
313
gridBagConstraints.insets = new java.awt.Insets(1, 2, 1, 2);
314
add(coordLayeredPane, gridBagConstraints);
316
errorsPanel.setLayout(new java.awt.GridBagLayout());
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());
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
413
inputErrorPanel.setLayout(new java.awt.GridBagLayout());
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);
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);
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);
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);
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);
450
}//GEN-END:initComponents
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
458
private void sourcesComboBoxActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_sourcesComboBoxActionPerformed
460
}//GEN-LAST:event_sourcesComboBoxActionPerformed
462
private void formComponentResized(java.awt.event.ComponentEvent evt) {//GEN-FIRST:event_formComponentResized
464
}//GEN-LAST:event_formComponentResized
466
private void fillAccuracyList()
470
long sourceCount = Source.count();
472
for(int i = 0; i < sourceCount; i++)
474
sourcesComboBox.addItem(Source.name(i));
477
catch(CoordinateConversionException e)
479
stringHandler.displayErrorMsg(new javax.swing.JFrame(), e.getMessage());
484
private void setOneCoord()
486
_2CoordFieldsPanel.setVisible(false);
487
_3CoordFieldsPanel.setVisible(true);
488
coordLayeredPane.moveToFront(_3CoordFieldsPanel);
490
// Hide optional fields.
491
_3CoordFieldsLabelA.setVisible(false);
492
_3CoordFieldsLabelC.setVisible(false);
493
_3CoordFieldsTextFieldA.setVisible(false);
494
_3CoordFieldsTextFieldC.setVisible(false);
496
_3CoordFieldsLabelB.setText("Coordinate String:");
499
private void setTwoCoords()
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" );
510
private void setThreeCoords()
512
_2CoordFieldsPanel.setVisible(false);
513
_3CoordFieldsPanel.setVisible(true);
514
coordLayeredPane.moveToFront(_3CoordFieldsPanel);
516
// Show optional fields.
517
_3CoordFieldsLabelA.setVisible(true);
518
_3CoordFieldsLabelC.setVisible(true);
519
_3CoordFieldsTextFieldA.setVisible(true);
520
_3CoordFieldsTextFieldC.setVisible(true);
522
/* may be turned off by height type buttons. */
523
setHeightFieldEditable();
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" );
534
private void setFormat()
536
useNSEW = formatOptions.getUseNSEW();
537
useMinutes = formatOptions.getUseMinutes();
538
useSeconds = formatOptions.getUseSeconds();
539
stringHandler.setPrecision(formatOptions.getPrecision());
542
// This function is needed to make the fields visible when the gui is displayed
543
private void setPanelSizes()
545
java.awt.Dimension dsize = new java.awt.Dimension();
546
dsize = coordLayeredPane.getSize();
548
_2CoordFieldsPanel.setBounds (0, 0, dsize.width, dsize.height);
549
_3CoordFieldsPanel.setBounds (0, 0, dsize.width, dsize.height);
551
_2CoordFieldsPanel.updateUI();
552
_3CoordFieldsPanel.updateUI();
556
* The function initTargetCoordinates creates a new instance of the
557
* target coordinates.
559
* @param projType : Type of target coordinates to create
561
public CoordinateTuple initTargetCoordinates(int projType) throws CoordinateConversionException
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);
641
throw new CoordinateConversionException("Invalid coordinate type");
646
public boolean setCoordinates(int state, int direction, int projType, CoordinateTuple _coordinates)
648
boolean noErrors = true;
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:
684
MapProjectionCoordinates coordinates = (MapProjectionCoordinates) _coordinates;
686
_2CoordFieldsTextFieldA.setText(stringHandler.meterToString(coordinates.getEasting()));
687
_2CoordFieldsTextFieldB.setText(stringHandler.meterToString(coordinates.getNorthing()));
691
case CoordinateType.BNG:
692
case CoordinateType.GARS:
693
case CoordinateType.GEOREF:
694
case CoordinateType.MGRS:
695
case CoordinateType.USNG:
697
StringCoordinates coordinates = (StringCoordinates) _coordinates;
699
_3CoordFieldsTextFieldB.setText(coordinates.getCoordinateString());
703
case CoordinateType.F16GRS:
705
StringCoordinates coordinates = (StringCoordinates) _coordinates;
707
java.lang.String temp = coordinates.getCoordinateString();
708
if(formatOptions.getPrecision() == formatOptions.MET100000)
709
_3CoordFieldsTextFieldB.setText(temp + "00");
711
_3CoordFieldsTextFieldB.setText(temp);
715
case CoordinateType.GEOCENTRIC:
716
case CoordinateType.LOCCART:
718
CartesianCoordinates coordinates = (CartesianCoordinates) _coordinates;
720
_3CoordFieldsTextFieldA.setText(stringHandler.meterToString(coordinates.getX()));
721
_3CoordFieldsTextFieldB.setText(stringHandler.meterToString(coordinates.getY()));
722
_3CoordFieldsTextFieldC.setText(stringHandler.meterToString(coordinates.getZ()));
726
case CoordinateType.GEODETIC:
728
GeodeticCoordinates coordinates = (GeodeticCoordinates) _coordinates;
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()));
736
case CoordinateType.UPS:
738
UPSCoordinates coordinates = (UPSCoordinates) _coordinates;
740
hemisphere = coordinates.getHemisphere();
741
_2CoordFieldsTextFieldA.setText(stringHandler.meterToString(coordinates.getEasting()));
742
_2CoordFieldsTextFieldB.setText(stringHandler.meterToString(coordinates.getNorthing()));
746
case CoordinateType.UTM:
748
UTMCoordinates coordinates = (UTMCoordinates) _coordinates;
750
hemisphere = coordinates.getHemisphere();
751
zone = coordinates.getZone();
752
_2CoordFieldsTextFieldA.setText(stringHandler.meterToString(coordinates.getEasting()));
753
_2CoordFieldsTextFieldB.setText(stringHandler.meterToString(coordinates.getNorthing()));
758
throw new CoordinateConversionException("Invalid coordinate type");
761
catch(CoordinateConversionException e)
763
stringHandler.setErrorMessage(true, e.getMessage());
771
// Set the input coordinates in the ccs
772
public CoordinateTuple getCoordinates(int state, int direction, int projType) throws CoordinateConversionException
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:
804
MapProjectionCoordinates coordinates = new MapProjectionCoordinates(projType,
805
stringHandler.stringToDouble(_2CoordFieldsTextFieldA.getText().trim(), "Invalid Easting: "),
806
stringHandler.stringToDouble(_2CoordFieldsTextFieldB.getText().trim(), "Invalid Northing: "));
810
case CoordinateType.MGRS:
812
MGRSorUSNGCoordinates coordinates = new MGRSorUSNGCoordinates(projType, _3CoordFieldsTextFieldB.getText().trim(), formatOptions.getPrecision());
816
case CoordinateType.BNG:
818
BNGCoordinates coordinates = new BNGCoordinates(projType, _3CoordFieldsTextFieldB.getText().trim(), formatOptions.getPrecision());
822
case CoordinateType.GARS:
824
GARSCoordinates coordinates = new GARSCoordinates(projType, _3CoordFieldsTextFieldB.getText().trim(), formatOptions.getPrecision());
828
case CoordinateType.GEOREF:
830
GEOREFCoordinates coordinates = new GEOREFCoordinates(projType, _3CoordFieldsTextFieldB.getText().trim(), formatOptions.getPrecision());
834
case CoordinateType.USNG:
836
MGRSorUSNGCoordinates coordinates = new MGRSorUSNGCoordinates(projType, _3CoordFieldsTextFieldB.getText().trim(), formatOptions.getPrecision());
840
case CoordinateType.F16GRS:
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());
848
coordinates = new MGRSorUSNGCoordinates(CoordinateType.MGRS, coordString, formatOptions.getPrecision());
852
case CoordinateType.GEOCENTRIC:
853
case CoordinateType.LOCCART:
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: "));
862
case CoordinateType.GEODETIC:
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: "));
871
case CoordinateType.UPS:
873
UPSCoordinates coordinates = new UPSCoordinates(projType,
875
stringHandler.stringToDouble(_2CoordFieldsTextFieldA.getText().trim(), "Invalid Easting: "),
876
stringHandler.stringToDouble(_2CoordFieldsTextFieldB.getText().trim(), "Invalid Northing: "));
880
case CoordinateType.UTM:
882
UTMCoordinates coordinates = new UTMCoordinates(projType,
884
stringHandler.stringToDouble(_2CoordFieldsTextFieldA.getText().trim(), "Invalid Easting: "),
885
stringHandler.stringToDouble(_2CoordFieldsTextFieldB.getText().trim(), "Invalid Northing: "));
890
throw new CoordinateConversionException("Invalid coordinate type");
895
public void createCoordPanel(int projType)
901
case CoordinateType.GEOCENTRIC:
906
case CoordinateType.GEODETIC:
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();
919
_3CoordFieldsLabelA.setText("Longitude:");
920
_3CoordFieldsLabelB.setText("Latitude:");
921
_3CoordFieldsLabelC.setText("Height (m):");
924
_3CoordFieldsTextFieldA.setText(stringHandler.longitudeToString(0, useNSEW, useMinutes, useSeconds));
925
_3CoordFieldsTextFieldB.setText(stringHandler.latitudeToString(0, useNSEW, useMinutes, useSeconds));
927
catch(CoordinateConversionException e)
929
stringHandler.displayErrorMsg(this, e.getMessage());
932
_3CoordFieldsTextFieldC.setText( "0" );
935
case CoordinateType.GEOREF:
938
_3CoordFieldsTextFieldB.setText( "NGAA0000000000" );
941
case CoordinateType.GARS:
944
_3CoordFieldsTextFieldB.setText( "361HN37" );
947
case CoordinateType.F16GRS:
950
_3CoordFieldsTextFieldB.setText( "31NEA00" );
953
case CoordinateType.MGRS:
956
_3CoordFieldsTextFieldB.setText( "31NEA0000000000" );
959
case CoordinateType.BNG:
962
_3CoordFieldsTextFieldB.setText( "SV 0000000000" );
965
case CoordinateType.NZMG:
968
_2CoordFieldsTextFieldA.setText("2510000");
969
_2CoordFieldsTextFieldB.setText("6023150");
972
case CoordinateType.UPS:
975
_2CoordFieldsTextFieldA.setText("2000000");
976
_2CoordFieldsTextFieldB.setText("2000000");
979
case CoordinateType.USNG:
982
_3CoordFieldsTextFieldB.setText( "31NEA0000000000" );
985
case CoordinateType.UTM:
987
// Hemisphere // Zone
989
_2CoordFieldsTextFieldA.setText("500000");
992
case CoordinateType.LOCCART:
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:
1031
} /* end of switch(projType) */
1032
} /* end of createCoordPanel() */
1035
public void resetOutputErrors()
1037
ce90TextField.setText("N/A");
1038
le90TextField.setText("N/A");
1039
se90TextField.setText("N/A");
1043
public void setAccuracy(Accuracy accuracy)
1045
currentAccuracy = accuracy;
1047
double ce90 = accuracy.getCE90();
1048
double le90 = accuracy.getLE90();
1049
double se90 = accuracy.getSE90();
1051
usePrevAccuracies = true;
1054
ce90TextField.setText("Unk");
1056
stringHandler.setNumberFormat(ce90TextField, ce90, 0);
1060
le90TextField.setText("N/A");
1061
se90TextField.setText("N/A");
1066
le90TextField.setText("Unk");
1068
stringHandler.setNumberFormat(le90TextField, le90, 0);
1071
se90TextField.setText("Unk");
1073
stringHandler.setNumberFormat(se90TextField, se90, 0);
1077
// Set the input accuracy values
1078
public Accuracy getAccuracy()
1080
if(!usePrevAccuracies)
1082
java.lang.String ce90String = ce90TextField.getText().trim();
1083
java.lang.String le90String = le90TextField.getText().trim();
1084
java.lang.String se90String = se90TextField.getText().trim();
1086
double ce90, le90, se90;
1087
if((ce90String.equals("Unk")) || (ce90String.equals("N/A")))
1090
ce90 = stringHandler.stringToDouble(ce90String, "Invalid CE 90");
1091
if((le90String.equals("Unk")) || (le90String.equals("N/A")))
1094
le90 = stringHandler.stringToDouble(le90String, "Invalid LE 90");
1095
if((se90String.equals("Unk")) || (se90String.equals("N/A")))
1098
se90 = stringHandler.stringToDouble(se90String, "Invalid SE 90");
1100
currentAccuracy = new Accuracy(ce90, le90, se90);
1103
return currentAccuracy;
1106
// Set the source text fields editable/uneditable if it's a 3D/2D conversion
1107
public void updateSrcErrors(boolean _3dConv)
1109
le90TextField.setEditable(_3dConv);
1110
se90TextField.setEditable(_3dConv);
1111
_3dConversion = _3dConv;
1115
// Set the source text fields with the values corresponding
1116
// to the current combo box selection
1117
public void updateAccuracy()
1121
int index = sourcesComboBox.getSelectedIndex();/// + 1;
1123
Accuracy accuracy = Source.accuracy(index);
1125
usePrevAccuracies = false;
1127
double ce90 = accuracy.getCE90();
1128
double le90 = accuracy.getLE90();
1129
double se90 = accuracy.getSE90();
1132
ce90TextField.setText("Unk");
1134
stringHandler.setNumberFormat(ce90TextField, accuracy.getCE90(), 0);
1137
le90TextField.setText("N/A");
1138
se90TextField.setText("N/A");
1143
le90TextField.setText("Unk");
1145
stringHandler.setNumberFormat(le90TextField, accuracy.getLE90(), 0);
1147
se90TextField.setText("Unk");
1149
stringHandler.setNumberFormat(se90TextField, accuracy.getSE90(), 0);
1152
catch(CoordinateConversionException e)
1154
stringHandler.displayErrorMsg(this, e.getMessage());
1158
public void setHeightText(String height)
1160
_3CoordFieldsTextFieldC.setText(height);
1163
public void setHeightFieldUneditable()
1165
_3CoordFieldsTextFieldC.setEditable(false);
1168
public void setHeightFieldEditable()
1170
_3CoordFieldsTextFieldC.setEditable(true);
1173
public void setHeightFieldEditable(boolean editable)
1175
_3CoordFieldsTextFieldC.setEditable(editable);
1178
public void setHemisphere(char hemi)
1183
public void setZone(int z)
1188
public char getHemisphere()
1193
public long getZone()
1198
public void setDefaults(FormatOptions _formatOptions, StringHandler _stringHandler)
1200
formatOptions = _formatOptions;
1201
stringHandler = _stringHandler;
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
1237
}// CLASSIFICATION: UNCLASSIFIED