4
* Created on April 18, 2001, 4:28 PM
10
import geotrans.enumerations.ConversionState;
11
import geotrans.enumerations.CoordinateTypes;
12
import geotrans.jni.*;
13
import geotrans.projections.*;
14
import geotrans.utility.Platform;
22
public class CoordPanel extends javax.swing.JPanel{
24
private JNIStrtoval jniStrtoval;
25
private JNIEngine jniEngine = new JNIEngine();
26
private jOptions formatOptions;
27
private boolean useNSEW;
28
private boolean useMinutes;
29
private boolean useSeconds;
30
private char hemisphere;
32
// Flag to test if accuracy has been selected or is from previous conversion
33
private boolean usePrevAccuracies = false;
34
private boolean _3dConversion = false;
36
/** Creates new form coordPanel */
37
public CoordPanel(jOptions options, JNIStrtoval jniStr) {
38
formatOptions = options;
44
tempLabel1.setVisible(false);
45
tempLabel2.setVisible(false);
46
tempTextField1.setVisible(false);
47
tempTextField2.setVisible(false);
49
if (Platform.isJavaV1_3)
51
_3CoordFieldsLabelA.setForeground(java.awt.Color.black);
52
_3CoordFieldsLabelB.setForeground(java.awt.Color.black);
53
_3CoordFieldsLabelC.setForeground(java.awt.Color.black);
54
_2CoordFieldsLabelA.setForeground(java.awt.Color.black);
55
_2CoordFieldsLabelB.setForeground(java.awt.Color.black);
56
ce90Label.setForeground(java.awt.Color.black);
57
le90Label.setForeground(java.awt.Color.black);
58
se90Label.setForeground(java.awt.Color.black);
59
sourcesLabel.setForeground(java.awt.Color.black);
66
_3CoordFieldsLabelA.setFont(new java.awt.Font("Dialog", 1, 10));
67
_3CoordFieldsLabelB.setFont(new java.awt.Font("Dialog", 1, 10));
68
_3CoordFieldsLabelC.setFont(new java.awt.Font("Dialog", 1, 10));
69
_2CoordFieldsLabelA.setFont(new java.awt.Font("Dialog", 1, 10));
70
_2CoordFieldsLabelB.setFont(new java.awt.Font("Dialog", 1, 10));
71
ce90Label.setFont(new java.awt.Font("Dialog", 1, 10));
72
le90Label.setFont(new java.awt.Font("Dialog", 1, 10));
73
se90Label.setFont(new java.awt.Font("Dialog", 1, 10));
74
sourcesLabel.setFont(new java.awt.Font("Dialog", 1, 10));
75
sourcesComboBox.setFont(new java.awt.Font("Dialog", 1, 10));
76
sourcesComboBox.setMaximumSize(new java.awt.Dimension(265, 22));
77
sourcesComboBox.setMinimumSize(new java.awt.Dimension(265, 22));
78
sourcesComboBox.setPreferredSize(new java.awt.Dimension(265, 22));
79
ce90TextField.setToolTipText("90% CE");
80
le90TextField.setToolTipText("90% LE");
81
se90TextField.setToolTipText("90% SE");
85
/** This method is called from within the constructor to
86
* initialize the form.
87
* WARNING: Do NOT modify this code. The content of this method is
88
* always regenerated by the FormEditor.
90
private void initComponents() {//GEN-BEGIN:initComponents
91
java.awt.GridBagConstraints gridBagConstraints;
93
coordLayeredPane = new javax.swing.JLayeredPane();
94
_3CoordFieldsPanel = new javax.swing.JPanel();
95
_3CoordFieldsLabelA = new javax.swing.JLabel();
96
_3CoordFieldsLabelB = new javax.swing.JLabel();
97
_3CoordFieldsLabelC = new javax.swing.JLabel();
98
_3CoordFieldsTextFieldA = new javax.swing.JTextField();
99
_3CoordFieldsTextFieldB = new javax.swing.JTextField();
100
_3CoordFieldsTextFieldC = new javax.swing.JTextField();
101
_2CoordFieldsPanel = new javax.swing.JPanel();
102
_2CoordFieldsLabelA = new javax.swing.JLabel();
103
_2CoordFieldsLabelB = new javax.swing.JLabel();
104
_2CoordFieldsTextFieldA = new javax.swing.JTextField();
105
_2CoordFieldsTextFieldB = new javax.swing.JTextField();
106
tempLabel1 = new javax.swing.JLabel();
107
tempLabel2 = new javax.swing.JLabel();
108
tempTextField1 = new javax.swing.JTextField();
109
tempTextField2 = new javax.swing.JTextField();
110
errorsPanel = new javax.swing.JPanel();
111
outputErrorPanel = new javax.swing.JPanel();
112
ce90Label = new javax.swing.JLabel();
113
le90Label = new javax.swing.JLabel();
114
se90Label = new javax.swing.JLabel();
115
ce90TextField = new javax.swing.JTextField();
116
le90TextField = new javax.swing.JTextField();
117
se90TextField = new javax.swing.JTextField();
118
inputErrorPanel = new javax.swing.JPanel();
119
sourcesLabel = new javax.swing.JLabel();
120
sourcesComboBox = new javax.swing.JComboBox();
122
setLayout(new java.awt.GridBagLayout());
124
setMinimumSize(new java.awt.Dimension(439, 80));
125
setPreferredSize(new java.awt.Dimension(439, 80));
126
addComponentListener(new java.awt.event.ComponentAdapter() {
127
public void componentResized(java.awt.event.ComponentEvent evt) {
128
formComponentResized(evt);
132
coordLayeredPane.setMaximumSize(new java.awt.Dimension(439, 36));
133
coordLayeredPane.setMinimumSize(new java.awt.Dimension(439, 38));
134
coordLayeredPane.setPreferredSize(new java.awt.Dimension(460, 38));
135
coordLayeredPane.setOpaque(true);
136
_3CoordFieldsPanel.setLayout(new java.awt.GridLayout(2, 3, 12, 0));
138
_3CoordFieldsPanel.setMaximumSize(new java.awt.Dimension(339, 36));
139
_3CoordFieldsPanel.setMinimumSize(new java.awt.Dimension(339, 36));
140
_3CoordFieldsPanel.setPreferredSize(new java.awt.Dimension(339, 36));
141
_3CoordFieldsPanel.setOpaque(false);
142
_3CoordFieldsLabelA.setText("X (m):");
143
_3CoordFieldsLabelA.setMaximumSize(new java.awt.Dimension(105, 16));
144
_3CoordFieldsLabelA.setMinimumSize(new java.awt.Dimension(105, 16));
145
_3CoordFieldsLabelA.setPreferredSize(new java.awt.Dimension(105, 16));
146
_3CoordFieldsLabelA.setOpaque(true);
147
_3CoordFieldsPanel.add(_3CoordFieldsLabelA);
149
_3CoordFieldsLabelB.setText("Y (m):");
150
_3CoordFieldsLabelB.setMaximumSize(new java.awt.Dimension(105, 16));
151
_3CoordFieldsLabelB.setMinimumSize(new java.awt.Dimension(105, 16));
152
_3CoordFieldsLabelB.setPreferredSize(new java.awt.Dimension(105, 16));
153
_3CoordFieldsLabelB.setOpaque(true);
154
_3CoordFieldsPanel.add(_3CoordFieldsLabelB);
156
_3CoordFieldsLabelC.setText("Z (m):");
157
_3CoordFieldsLabelC.setMaximumSize(new java.awt.Dimension(105, 16));
158
_3CoordFieldsLabelC.setMinimumSize(new java.awt.Dimension(105, 16));
159
_3CoordFieldsLabelC.setPreferredSize(new java.awt.Dimension(105, 16));
160
_3CoordFieldsLabelC.setOpaque(true);
161
_3CoordFieldsPanel.add(_3CoordFieldsLabelC);
163
_3CoordFieldsTextFieldA.setText("0.0");
164
_3CoordFieldsTextFieldA.setBorder(new javax.swing.border.BevelBorder(javax.swing.border.BevelBorder.LOWERED));
165
_3CoordFieldsTextFieldA.setMinimumSize(new java.awt.Dimension(105, 20));
166
_3CoordFieldsTextFieldA.setPreferredSize(new java.awt.Dimension(105, 20));
167
_3CoordFieldsPanel.add(_3CoordFieldsTextFieldA);
169
_3CoordFieldsTextFieldB.setText("0.0");
170
_3CoordFieldsTextFieldB.setBorder(new javax.swing.border.BevelBorder(javax.swing.border.BevelBorder.LOWERED));
171
_3CoordFieldsTextFieldB.setMinimumSize(new java.awt.Dimension(105, 20));
172
_3CoordFieldsTextFieldB.setPreferredSize(new java.awt.Dimension(105, 20));
173
_3CoordFieldsPanel.add(_3CoordFieldsTextFieldB);
175
_3CoordFieldsTextFieldC.setText("0.0");
176
_3CoordFieldsTextFieldC.setBorder(new javax.swing.border.BevelBorder(javax.swing.border.BevelBorder.LOWERED));
177
_3CoordFieldsTextFieldC.setMinimumSize(new java.awt.Dimension(105, 20));
178
_3CoordFieldsTextFieldC.setPreferredSize(new java.awt.Dimension(105, 20));
179
_3CoordFieldsPanel.add(_3CoordFieldsTextFieldC);
181
_3CoordFieldsPanel.setBounds(2, 2, 439, 37);
182
coordLayeredPane.add(_3CoordFieldsPanel, javax.swing.JLayeredPane.DEFAULT_LAYER);
184
_2CoordFieldsPanel.setLayout(new java.awt.GridBagLayout());
186
_2CoordFieldsPanel.setMaximumSize(new java.awt.Dimension(229, 36));
187
_2CoordFieldsPanel.setMinimumSize(new java.awt.Dimension(229, 36));
188
_2CoordFieldsPanel.setPreferredSize(new java.awt.Dimension(229, 36));
189
_2CoordFieldsPanel.setOpaque(false);
190
_2CoordFieldsLabelA.setText("Easting / X (m):");
191
_2CoordFieldsLabelA.setAlignmentX(1.0F);
192
_2CoordFieldsLabelA.setMaximumSize(new java.awt.Dimension(106, 16));
193
_2CoordFieldsLabelA.setMinimumSize(new java.awt.Dimension(106, 16));
194
_2CoordFieldsLabelA.setPreferredSize(new java.awt.Dimension(106, 16));
195
_2CoordFieldsLabelA.setOpaque(true);
196
gridBagConstraints = new java.awt.GridBagConstraints();
197
gridBagConstraints.gridx = 1;
198
gridBagConstraints.gridy = 0;
199
gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
200
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
201
gridBagConstraints.insets = new java.awt.Insets(0, 6, 0, 6);
202
_2CoordFieldsPanel.add(_2CoordFieldsLabelA, gridBagConstraints);
204
_2CoordFieldsLabelB.setText("Northing / Y (m):");
205
_2CoordFieldsLabelB.setMaximumSize(new java.awt.Dimension(106, 16));
206
_2CoordFieldsLabelB.setMinimumSize(new java.awt.Dimension(106, 16));
207
_2CoordFieldsLabelB.setPreferredSize(new java.awt.Dimension(106, 16));
208
_2CoordFieldsLabelB.setOpaque(true);
209
gridBagConstraints = new java.awt.GridBagConstraints();
210
gridBagConstraints.gridx = 2;
211
gridBagConstraints.gridy = 0;
212
gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
213
gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST;
214
gridBagConstraints.insets = new java.awt.Insets(0, 6, 0, 6);
215
_2CoordFieldsPanel.add(_2CoordFieldsLabelB, gridBagConstraints);
217
_2CoordFieldsTextFieldA.setText("0.0");
218
_2CoordFieldsTextFieldA.setAlignmentX(1.0F);
219
_2CoordFieldsTextFieldA.setBorder(new javax.swing.border.BevelBorder(javax.swing.border.BevelBorder.LOWERED));
220
_2CoordFieldsTextFieldA.setMargin(new java.awt.Insets(0, 0, 5, 0));
221
_2CoordFieldsTextFieldA.setMinimumSize(new java.awt.Dimension(106, 20));
222
_2CoordFieldsTextFieldA.setPreferredSize(new java.awt.Dimension(106, 20));
223
gridBagConstraints = new java.awt.GridBagConstraints();
224
gridBagConstraints.gridx = 1;
225
gridBagConstraints.gridy = 1;
226
gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
227
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
228
gridBagConstraints.insets = new java.awt.Insets(0, 6, 1, 6);
229
_2CoordFieldsPanel.add(_2CoordFieldsTextFieldA, gridBagConstraints);
231
_2CoordFieldsTextFieldB.setText("0.0");
232
_2CoordFieldsTextFieldB.setBorder(new javax.swing.border.BevelBorder(javax.swing.border.BevelBorder.LOWERED));
233
_2CoordFieldsTextFieldB.setMargin(new java.awt.Insets(0, 0, 5, 0));
234
_2CoordFieldsTextFieldB.setMinimumSize(new java.awt.Dimension(106, 20));
235
_2CoordFieldsTextFieldB.setPreferredSize(new java.awt.Dimension(106, 20));
236
gridBagConstraints = new java.awt.GridBagConstraints();
237
gridBagConstraints.gridx = 2;
238
gridBagConstraints.gridy = 1;
239
gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
240
gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST;
241
gridBagConstraints.insets = new java.awt.Insets(0, 6, 1, 6);
242
_2CoordFieldsPanel.add(_2CoordFieldsTextFieldB, gridBagConstraints);
244
tempLabel1.setText("Easting / X (m):");
245
tempLabel1.setAlignmentX(1.0F);
246
tempLabel1.setMaximumSize(new java.awt.Dimension(106, 16));
247
tempLabel1.setMinimumSize(new java.awt.Dimension(106, 16));
248
tempLabel1.setPreferredSize(new java.awt.Dimension(106, 16));
249
tempLabel1.setOpaque(true);
250
gridBagConstraints = new java.awt.GridBagConstraints();
251
gridBagConstraints.gridx = 0;
252
gridBagConstraints.gridy = 0;
253
gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
254
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
255
gridBagConstraints.insets = new java.awt.Insets(0, 4, 0, 6);
256
_2CoordFieldsPanel.add(tempLabel1, gridBagConstraints);
258
tempLabel2.setText("Northing / Y (m):");
259
tempLabel2.setMaximumSize(new java.awt.Dimension(106, 16));
260
tempLabel2.setMinimumSize(new java.awt.Dimension(106, 16));
261
tempLabel2.setPreferredSize(new java.awt.Dimension(106, 16));
262
tempLabel2.setOpaque(true);
263
gridBagConstraints = new java.awt.GridBagConstraints();
264
gridBagConstraints.gridx = 3;
265
gridBagConstraints.gridy = 0;
266
gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
267
gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST;
268
gridBagConstraints.insets = new java.awt.Insets(0, 6, 0, 0);
269
_2CoordFieldsPanel.add(tempLabel2, gridBagConstraints);
271
tempTextField1.setText("0.0");
272
tempTextField1.setAlignmentX(1.0F);
273
tempTextField1.setBorder(new javax.swing.border.BevelBorder(javax.swing.border.BevelBorder.LOWERED));
274
tempTextField1.setMargin(new java.awt.Insets(0, 0, 5, 0));
275
tempTextField1.setMinimumSize(new java.awt.Dimension(106, 20));
276
tempTextField1.setPreferredSize(new java.awt.Dimension(106, 20));
277
gridBagConstraints = new java.awt.GridBagConstraints();
278
gridBagConstraints.gridx = 0;
279
gridBagConstraints.gridy = 1;
280
gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
281
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
282
gridBagConstraints.insets = new java.awt.Insets(0, 4, 1, 6);
283
_2CoordFieldsPanel.add(tempTextField1, gridBagConstraints);
285
tempTextField2.setText("0.0");
286
tempTextField2.setBorder(new javax.swing.border.BevelBorder(javax.swing.border.BevelBorder.LOWERED));
287
tempTextField2.setMargin(new java.awt.Insets(0, 0, 5, 0));
288
tempTextField2.setMinimumSize(new java.awt.Dimension(106, 20));
289
tempTextField2.setPreferredSize(new java.awt.Dimension(106, 20));
290
gridBagConstraints = new java.awt.GridBagConstraints();
291
gridBagConstraints.gridx = 3;
292
gridBagConstraints.gridy = 1;
293
gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
294
gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST;
295
gridBagConstraints.insets = new java.awt.Insets(0, 6, 1, 0);
296
_2CoordFieldsPanel.add(tempTextField2, gridBagConstraints);
298
_2CoordFieldsPanel.setBounds(4, 2, 460, 45);
299
coordLayeredPane.add(_2CoordFieldsPanel, javax.swing.JLayeredPane.DEFAULT_LAYER);
301
gridBagConstraints = new java.awt.GridBagConstraints();
302
gridBagConstraints.insets = new java.awt.Insets(1, 2, 1, 2);
303
add(coordLayeredPane, gridBagConstraints);
305
errorsPanel.setLayout(new java.awt.GridBagLayout());
307
errorsPanel.setMinimumSize(new java.awt.Dimension(460, 40));
308
errorsPanel.setPreferredSize(new java.awt.Dimension(460, 40));
309
errorsPanel.setOpaque(false);
310
outputErrorPanel.setLayout(new java.awt.GridBagLayout());
312
outputErrorPanel.setMinimumSize(new java.awt.Dimension(170, 40));
313
outputErrorPanel.setPreferredSize(new java.awt.Dimension(170, 40));
314
outputErrorPanel.setOpaque(false);
315
ce90Label.setText("90% CE:");
316
ce90Label.setMaximumSize(new java.awt.Dimension(48, 16));
317
ce90Label.setMinimumSize(new java.awt.Dimension(48, 16));
318
ce90Label.setPreferredSize(new java.awt.Dimension(48, 16));
319
ce90Label.setOpaque(true);
320
gridBagConstraints = new java.awt.GridBagConstraints();
321
gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
322
gridBagConstraints.insets = new java.awt.Insets(0, 0, 0, 6);
323
outputErrorPanel.add(ce90Label, gridBagConstraints);
325
le90Label.setText("90% LE:");
326
le90Label.setMaximumSize(new java.awt.Dimension(48, 16));
327
le90Label.setMinimumSize(new java.awt.Dimension(48, 16));
328
le90Label.setPreferredSize(new java.awt.Dimension(48, 16));
329
le90Label.setOpaque(true);
330
gridBagConstraints = new java.awt.GridBagConstraints();
331
gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
332
gridBagConstraints.insets = new java.awt.Insets(0, 6, 0, 6);
333
outputErrorPanel.add(le90Label, gridBagConstraints);
335
se90Label.setText("90% SE:");
336
se90Label.setMaximumSize(new java.awt.Dimension(48, 16));
337
se90Label.setMinimumSize(new java.awt.Dimension(48, 16));
338
se90Label.setPreferredSize(new java.awt.Dimension(48, 16));
339
se90Label.setOpaque(true);
340
gridBagConstraints = new java.awt.GridBagConstraints();
341
gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
342
gridBagConstraints.insets = new java.awt.Insets(0, 6, 0, 0);
343
outputErrorPanel.add(se90Label, gridBagConstraints);
345
ce90TextField.setToolTipText("");
346
ce90TextField.setBorder(new javax.swing.border.BevelBorder(javax.swing.border.BevelBorder.LOWERED));
347
ce90TextField.setMinimumSize(new java.awt.Dimension(48, 20));
348
ce90TextField.setPreferredSize(new java.awt.Dimension(48, 20));
349
ce90TextField.addKeyListener(new java.awt.event.KeyAdapter() {
350
public void keyTyped(java.awt.event.KeyEvent evt) {
351
accuracyTextFieldKeyTyped(evt);
355
gridBagConstraints = new java.awt.GridBagConstraints();
356
gridBagConstraints.gridx = 0;
357
gridBagConstraints.gridy = 1;
358
gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
359
gridBagConstraints.insets = new java.awt.Insets(0, 0, 0, 6);
360
outputErrorPanel.add(ce90TextField, gridBagConstraints);
362
le90TextField.setToolTipText("");
363
le90TextField.setBorder(new javax.swing.border.BevelBorder(javax.swing.border.BevelBorder.LOWERED));
364
le90TextField.setMinimumSize(new java.awt.Dimension(48, 20));
365
le90TextField.setPreferredSize(new java.awt.Dimension(48, 20));
366
le90TextField.addKeyListener(new java.awt.event.KeyAdapter() {
367
public void keyTyped(java.awt.event.KeyEvent evt) {
368
accuracyTextFieldKeyTyped(evt);
372
gridBagConstraints = new java.awt.GridBagConstraints();
373
gridBagConstraints.gridx = 1;
374
gridBagConstraints.gridy = 1;
375
gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
376
gridBagConstraints.insets = new java.awt.Insets(0, 6, 0, 6);
377
outputErrorPanel.add(le90TextField, gridBagConstraints);
379
se90TextField.setToolTipText("");
380
se90TextField.setBorder(new javax.swing.border.BevelBorder(javax.swing.border.BevelBorder.LOWERED));
381
se90TextField.setMinimumSize(new java.awt.Dimension(48, 20));
382
se90TextField.setPreferredSize(new java.awt.Dimension(48, 20));
383
se90TextField.addKeyListener(new java.awt.event.KeyAdapter() {
384
public void keyTyped(java.awt.event.KeyEvent evt) {
385
accuracyTextFieldKeyTyped(evt);
389
gridBagConstraints = new java.awt.GridBagConstraints();
390
gridBagConstraints.gridx = 2;
391
gridBagConstraints.gridy = 1;
392
gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
393
gridBagConstraints.insets = new java.awt.Insets(0, 6, 0, 0);
394
outputErrorPanel.add(se90TextField, gridBagConstraints);
396
gridBagConstraints = new java.awt.GridBagConstraints();
397
gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
398
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
399
gridBagConstraints.insets = new java.awt.Insets(0, 3, 0, 5);
400
errorsPanel.add(outputErrorPanel, gridBagConstraints);
402
inputErrorPanel.setLayout(new java.awt.GridBagLayout());
404
inputErrorPanel.setMinimumSize(new java.awt.Dimension(265, 40));
405
inputErrorPanel.setPreferredSize(new java.awt.Dimension(265, 40));
406
sourcesLabel.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
407
sourcesLabel.setText("Sources:");
408
gridBagConstraints = new java.awt.GridBagConstraints();
409
gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
410
inputErrorPanel.add(sourcesLabel, gridBagConstraints);
412
sourcesComboBox.setMinimumSize(new java.awt.Dimension(265, 23));
413
sourcesComboBox.setPreferredSize(new java.awt.Dimension(265, 23));
414
sourcesComboBox.addActionListener(new java.awt.event.ActionListener() {
415
public void actionPerformed(java.awt.event.ActionEvent evt) {
416
sourcesComboBoxActionPerformed(evt);
420
gridBagConstraints = new java.awt.GridBagConstraints();
421
gridBagConstraints.gridx = 0;
422
gridBagConstraints.gridy = 1;
423
gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
424
inputErrorPanel.add(sourcesComboBox, gridBagConstraints);
426
gridBagConstraints = new java.awt.GridBagConstraints();
427
gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
428
gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST;
429
gridBagConstraints.insets = new java.awt.Insets(0, 5, 0, 3);
430
errorsPanel.add(inputErrorPanel, gridBagConstraints);
432
gridBagConstraints = new java.awt.GridBagConstraints();
433
gridBagConstraints.gridx = 0;
434
gridBagConstraints.gridy = 1;
435
gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
436
gridBagConstraints.insets = new java.awt.Insets(1, 2, 1, 2);
437
add(errorsPanel, gridBagConstraints);
439
}//GEN-END:initComponents
441
private void accuracyTextFieldKeyTyped(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_accuracyTextFieldKeyTyped
442
int keyChar = evt.getKeyChar();
443
if (keyChar != java.awt.event.KeyEvent.VK_ENTER)
444
usePrevAccuracies = false;
445
}//GEN-LAST:event_accuracyTextFieldKeyTyped
447
private void sourcesComboBoxActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_sourcesComboBoxActionPerformed
449
}//GEN-LAST:event_sourcesComboBoxActionPerformed
451
private void formComponentResized(java.awt.event.ComponentEvent evt) {//GEN-FIRST:event_formComponentResized
453
}//GEN-LAST:event_formComponentResized
455
private void fillAccuracyList()
459
JNISource jniSource = new JNISource();
460
java.lang.String sourceName = "";
461
long sourceCount = jniSource.JNISourceCount();
463
for (int i = 1; i <= sourceCount; i++)
465
sourceName = jniSource.JNISourceName(i);
466
sourcesComboBox.addItem(sourceName);
469
catch(GeotransError e)
471
jniStrtoval.displayErrorMsg(new javax.swing.JFrame(), e.getMessage());
473
catch(JNIException e)
475
jniStrtoval.displayErrorMsg(new javax.swing.JFrame(), e.getMessage());
480
private void setOneCoord()
482
_2CoordFieldsPanel.setVisible(false);
483
_3CoordFieldsPanel.setVisible(true);
484
coordLayeredPane.moveToFront(_3CoordFieldsPanel);
486
// Hide optional fields.
487
_3CoordFieldsLabelA.setVisible(false);
488
_3CoordFieldsLabelC.setVisible(false);
489
_3CoordFieldsTextFieldA.setVisible(false);
490
_3CoordFieldsTextFieldC.setVisible(false);
492
_3CoordFieldsLabelB.setText("Coordinate String:");
495
private void setTwoCoords()
497
_3CoordFieldsPanel.setVisible(false);
498
_2CoordFieldsPanel.setVisible(true);
499
coordLayeredPane.moveToFront(_2CoordFieldsPanel);
500
_2CoordFieldsLabelA.setText("Easting / X (m):");
501
_2CoordFieldsLabelB.setText("Northing / Y (m):");
502
_2CoordFieldsTextFieldA.setText( "0" );
503
_2CoordFieldsTextFieldB.setText( "0" );
506
private void setThreeCoords()
508
_2CoordFieldsPanel.setVisible(false);
509
_3CoordFieldsPanel.setVisible(true);
510
coordLayeredPane.moveToFront(_3CoordFieldsPanel);
512
// Show optional fields.
513
_3CoordFieldsLabelA.setVisible(true);
514
_3CoordFieldsLabelC.setVisible(true);
515
_3CoordFieldsTextFieldA.setVisible(true);
516
_3CoordFieldsTextFieldC.setVisible(true);
518
/* may be turned off by height type buttons. */
519
setHeightFieldEditable();
521
_3CoordFieldsLabelA.setText("X (m):");
522
_3CoordFieldsLabelB.setText("Y (m):");
523
_3CoordFieldsLabelC.setText("Z (m):");
524
_3CoordFieldsTextFieldA.setText( "0" );
525
_3CoordFieldsTextFieldB.setText( "0" );
526
_3CoordFieldsTextFieldC.setText( "0" );
530
private void setFormat()
532
useNSEW = formatOptions.getUseNSEW();
533
useMinutes = formatOptions.getUseMinutes();
534
useSeconds = formatOptions.getUseSeconds();
537
// This function is needed to make the fields visible when the gui is displayed
538
private void setPanelSizes()
540
java.awt.Dimension dsize = new java.awt.Dimension();
541
dsize = coordLayeredPane.getSize();
543
_2CoordFieldsPanel.setBounds (0, 0, dsize.width, dsize.height);
544
_3CoordFieldsPanel.setBounds (0, 0, dsize.width, dsize.height);
546
_2CoordFieldsPanel.updateUI();
547
_3CoordFieldsPanel.updateUI();
550
// Set the input coordinates in the engine
551
public void setCoords(int state, int direction, int projType)
557
case CoordinateTypes.ALBERS:
559
AlbersEqualAreaConic albersCoords = new AlbersEqualAreaConic(jniStrtoval.stringToDouble(_2CoordFieldsTextFieldA.getText().trim(), "Invalid Easting"),
560
jniStrtoval.stringToDouble(_2CoordFieldsTextFieldB.getText().trim(), "Invalid Northing"));
561
jniEngine.JNISetAlbersEqualAreaConicCoordinates(state, direction, albersCoords);
565
case CoordinateTypes.AZIMUTHAL:
567
AzimuthalEquidistant azeqCoords = new AzimuthalEquidistant(jniStrtoval.stringToDouble(_2CoordFieldsTextFieldA.getText().trim(), "Invalid Easting"),
568
jniStrtoval.stringToDouble(_2CoordFieldsTextFieldB.getText().trim(), "Invalid Northing"));
569
jniEngine.JNISetAzimuthalEquidistantCoordinates(state, direction, azeqCoords);
573
case CoordinateTypes.BNG:
575
BNG BNGCoords = new BNG(_3CoordFieldsTextFieldB.getText().trim());
576
jniEngine.JNISetBNGCoordinates(state, direction, BNGCoords);
580
case CoordinateTypes.BONNE:
582
Bonne bonneCoords = new Bonne(jniStrtoval.stringToDouble(_2CoordFieldsTextFieldA.getText().trim(), "Invalid Easting"),
583
jniStrtoval.stringToDouble(_2CoordFieldsTextFieldB.getText().trim(), "Invalid Northing"));
584
jniEngine.JNISetBonneCoordinates(state, direction, bonneCoords);
588
case CoordinateTypes.CASSINI:
590
Cassini cassiniCoords = new Cassini(jniStrtoval.stringToDouble(_2CoordFieldsTextFieldA.getText().trim(), "Invalid Easting"),
591
jniStrtoval.stringToDouble(_2CoordFieldsTextFieldB.getText().trim(), "Invalid Northing"));
592
jniEngine.JNISetCassiniCoordinates(state, direction, cassiniCoords);
596
case CoordinateTypes.CYLEQA:
598
CylindricalEqualArea cyleqaCoords = new CylindricalEqualArea(jniStrtoval.stringToDouble(_2CoordFieldsTextFieldA.getText().trim(), "Invalid Easting"),
599
jniStrtoval.stringToDouble(_2CoordFieldsTextFieldB.getText().trim(), "Invalid Northing"));
600
jniEngine.JNISetCylindricalEqualAreaCoordinates(state, direction, cyleqaCoords);
604
case CoordinateTypes.ECKERT4:
606
Eckert4 eckert4Coords = new Eckert4(jniStrtoval.stringToDouble(_2CoordFieldsTextFieldA.getText().trim(), "Invalid Easting"),
607
jniStrtoval.stringToDouble(_2CoordFieldsTextFieldB.getText().trim(), "Invalid Northing"));
608
jniEngine.JNISetEckert4Coordinates(state, direction, eckert4Coords);
612
case CoordinateTypes.ECKERT6:
614
Eckert6 eckert6Coords = new Eckert6(jniStrtoval.stringToDouble(_2CoordFieldsTextFieldA.getText().trim(), "Invalid Easting"),
615
jniStrtoval.stringToDouble(_2CoordFieldsTextFieldB.getText().trim(), "Invalid Northing"));
616
jniEngine.JNISetEckert6Coordinates(state, direction, eckert6Coords);
620
case CoordinateTypes.EQDCYL:
622
EquidistantCylindrical eqdcylCoords = new EquidistantCylindrical(jniStrtoval.stringToDouble(_2CoordFieldsTextFieldA.getText().trim(), "Invalid Easting"),
623
jniStrtoval.stringToDouble(_2CoordFieldsTextFieldB.getText().trim(), "Invalid Northing"));
624
jniEngine.JNISetEquidistantCylindricalCoordinates(state, direction, eqdcylCoords);
628
case CoordinateTypes.F16GRS:
630
java.lang.String coordString = _3CoordFieldsTextFieldB.getText().trim();
631
int length = coordString.length();
633
if ((coordString.charAt(length - 1) == ('0')) && (coordString.charAt(length - 2) == ('0')))
634
MGRSCoords = new MGRS(coordString.substring(0, length - 2));
636
MGRSCoords = new MGRS(coordString);
637
jniEngine.JNISetMGRSCoordinates(state, direction, MGRSCoords);
641
case CoordinateTypes.GARS:
643
GARS GARSCoords = new GARS(_3CoordFieldsTextFieldB.getText().trim());
644
jniEngine.JNISetGARSCoordinates(state, direction, GARSCoords);
648
case CoordinateTypes.GEOCENTRIC:
650
Geocentric geocentricCoords = new Geocentric(jniStrtoval.stringToDouble(_3CoordFieldsTextFieldA.getText().trim(), "Invalid coord X"),
651
jniStrtoval.stringToDouble(_3CoordFieldsTextFieldB.getText().trim(), "Invalid coord Y"),
652
jniStrtoval.stringToDouble(_3CoordFieldsTextFieldC.getText().trim(), "Invalid coord Z"));
653
jniEngine.JNISetGeocentricCoordinates(state, direction, geocentricCoords);
657
case CoordinateTypes.GEODETIC:
659
Geodetic geodeticCoords = new Geodetic(jniStrtoval.stringToLongitude(_3CoordFieldsTextFieldA.getText().trim(), "Invalid Longitude"),
660
jniStrtoval.stringToLatitude(_3CoordFieldsTextFieldB.getText().trim(), "Invalid Latitude"),
661
jniStrtoval.stringToDouble(_3CoordFieldsTextFieldC.getText().trim(), "Invalid Height"));
662
jniEngine.JNISetGeodeticCoordinates(state, direction, geodeticCoords);
666
case CoordinateTypes.GEOREF:
668
GEOREF GEOREFCoords = new GEOREF(_3CoordFieldsTextFieldB.getText().trim());
669
jniEngine.JNISetGEOREFCoordinates(state, direction, GEOREFCoords);
673
case CoordinateTypes.GNOMONIC:
675
Gnomonic gnomonicCoords = new Gnomonic(jniStrtoval.stringToDouble(_2CoordFieldsTextFieldA.getText().trim(), "Invalid Easting"),
676
jniStrtoval.stringToDouble(_2CoordFieldsTextFieldB.getText().trim(), "Invalid Northing"));
677
jniEngine.JNISetGnomonicCoordinates(state, direction, gnomonicCoords);
681
case CoordinateTypes.LAMBERT_1:
683
LambertConformalConic1 lambert1Coords = new LambertConformalConic1(jniStrtoval.stringToDouble(_2CoordFieldsTextFieldA.getText().trim(), "Invalid Easting"),
684
jniStrtoval.stringToDouble(_2CoordFieldsTextFieldB.getText().trim(), "Invalid Northing"));
685
jniEngine.JNISetLambertConformalConic1Coordinates(state, direction, lambert1Coords);
689
case CoordinateTypes.LAMBERT_2:
691
LambertConformalConic2 lambert2Coords = new LambertConformalConic2(jniStrtoval.stringToDouble(_2CoordFieldsTextFieldA.getText().trim(), "Invalid Easting"),
692
jniStrtoval.stringToDouble(_2CoordFieldsTextFieldB.getText().trim(), "Invalid Northing"));
693
jniEngine.JNISetLambertConformalConic2Coordinates(state, direction, lambert2Coords);
697
case CoordinateTypes.LOCCART:
699
LocalCartesian loccartCoords = new LocalCartesian(jniStrtoval.stringToDouble(_3CoordFieldsTextFieldA.getText().trim(), "Invalid coord X"),
700
jniStrtoval.stringToDouble(_3CoordFieldsTextFieldB.getText().trim(), "Invalid coord Y"),
701
jniStrtoval.stringToDouble(_3CoordFieldsTextFieldC.getText().trim(), "Invalid coord Z"));
702
jniEngine.JNISetLocalCartesianCoordinates(state, direction, loccartCoords);
706
case CoordinateTypes.MERCATOR:
708
Mercator mercatorCoords = new Mercator(jniStrtoval.stringToDouble(_2CoordFieldsTextFieldA.getText().trim(), "Invalid Easting"),
709
jniStrtoval.stringToDouble(_2CoordFieldsTextFieldB.getText().trim(), "Invalid Northing"));
710
jniEngine.JNISetMercatorCoordinates(state, direction, mercatorCoords);
714
case CoordinateTypes.MGRS:
716
MGRS MGRSCoords = new MGRS(_3CoordFieldsTextFieldB.getText().trim());
717
jniEngine.JNISetMGRSCoordinates(state, direction, MGRSCoords);
721
case CoordinateTypes.MILLER:
723
MillerCylindrical millerCoords = new MillerCylindrical(jniStrtoval.stringToDouble(_2CoordFieldsTextFieldA.getText().trim(), "Invalid Easting"),
724
jniStrtoval.stringToDouble(_2CoordFieldsTextFieldB.getText().trim(), "Invalid Northing"));
725
jniEngine.JNISetMillerCylindricalCoordinates(state, direction, millerCoords);
729
case CoordinateTypes.MOLLWEIDE:
731
Mollweide mollweidCoords = new Mollweide(jniStrtoval.stringToDouble(_2CoordFieldsTextFieldA.getText().trim(), "Invalid Easting"),
732
jniStrtoval.stringToDouble(_2CoordFieldsTextFieldB.getText().trim(), "Invalid Northing"));
733
jniEngine.JNISetMollweideCoordinates(state, direction, mollweidCoords);
737
case CoordinateTypes.NEYS:
739
Neys neysCoords = new Neys(jniStrtoval.stringToDouble(_2CoordFieldsTextFieldA.getText().trim(), "Invalid Easting"),
740
jniStrtoval.stringToDouble(_2CoordFieldsTextFieldB.getText().trim(), "Invalid Northing"));
741
jniEngine.JNISetNeysCoordinates(state, direction, neysCoords);
745
case CoordinateTypes.NZMG:
747
NZMG NZMGCoords = new NZMG(jniStrtoval.stringToDouble(_2CoordFieldsTextFieldA.getText().trim(), "Invalid Easting"),
748
jniStrtoval.stringToDouble(_2CoordFieldsTextFieldB.getText().trim(), "Invalid Northing"));
749
jniEngine.JNISetNZMGCoordinates(state, direction, NZMGCoords);
753
case CoordinateTypes.OMERC:
755
ObliqueMercator omercCoords = new ObliqueMercator(jniStrtoval.stringToDouble(_2CoordFieldsTextFieldA.getText().trim(), "Invalid Easting"),
756
jniStrtoval.stringToDouble(_2CoordFieldsTextFieldB.getText().trim(), "Invalid Northing"));
757
jniEngine.JNISetObliqueMercatorCoordinates(state, direction, omercCoords);
761
case CoordinateTypes.ORTHOGRAPHIC:
763
Orthographic orthogrCoords = new Orthographic(jniStrtoval.stringToDouble(_2CoordFieldsTextFieldA.getText().trim(), "Invalid Easting"),
764
jniStrtoval.stringToDouble(_2CoordFieldsTextFieldB.getText().trim(), "Invalid Northing"));
765
jniEngine.JNISetOrthographicCoordinates(state, direction, orthogrCoords);
769
case CoordinateTypes.POLARSTEREO:
771
PolarStereographic polarstCoords = new PolarStereographic(jniStrtoval.stringToDouble(_2CoordFieldsTextFieldA.getText().trim(), "Invalid Easting"),
772
jniStrtoval.stringToDouble(_2CoordFieldsTextFieldB.getText().trim(), "Invalid Northing"));
773
jniEngine.JNISetPolarStereographicCoordinates(state, direction, polarstCoords);
777
case CoordinateTypes.POLYCONIC:
779
Polyconic polyconCoords = new Polyconic(jniStrtoval.stringToDouble(_2CoordFieldsTextFieldA.getText().trim(), "Invalid Easting"),
780
jniStrtoval.stringToDouble(_2CoordFieldsTextFieldB.getText().trim(), "Invalid Northing"));
781
jniEngine.JNISetPolyconicCoordinates(state, direction, polyconCoords);
785
case CoordinateTypes.SINUSOIDAL:
787
Sinusoidal sinusoidCoords = new Sinusoidal(jniStrtoval.stringToDouble(_2CoordFieldsTextFieldA.getText().trim(), "Invalid Easting"),
788
jniStrtoval.stringToDouble(_2CoordFieldsTextFieldB.getText().trim(), "Invalid Northing"));
789
jniEngine.JNISetSinusoidalCoordinates(state, direction, sinusoidCoords);
793
case CoordinateTypes.STEREOGRAPHIC:
795
Stereographic stereogrCoords = new Stereographic(jniStrtoval.stringToDouble(_2CoordFieldsTextFieldA.getText().trim(), "Invalid Easting"),
796
jniStrtoval.stringToDouble(_2CoordFieldsTextFieldB.getText().trim(), "Invalid Northing"));
797
jniEngine.JNISetStereographicCoordinates(state, direction, stereogrCoords);
801
case CoordinateTypes.TRCYLEQA:
803
TransverseCylindricalEqualArea trcyleqaCoords = new TransverseCylindricalEqualArea(jniStrtoval.stringToDouble(_2CoordFieldsTextFieldA.getText().trim(), "Invalid Easting"),
804
jniStrtoval.stringToDouble(_2CoordFieldsTextFieldB.getText().trim(), "Invalid Northing"));
805
jniEngine.JNISetTransverseCylindricalEqualAreaCoordinates(state, direction, trcyleqaCoords);
809
case CoordinateTypes.TRANMERC:
811
TransverseMercator tranmercCoords = new TransverseMercator(jniStrtoval.stringToDouble(_2CoordFieldsTextFieldA.getText().trim(), "Invalid Easting"),
812
jniStrtoval.stringToDouble(_2CoordFieldsTextFieldB.getText().trim(), "Invalid Northing"));
813
jniEngine.JNISetTransverseMercatorCoordinates(state, direction, tranmercCoords);
817
case CoordinateTypes.GRINTEN:
819
VanDerGrinten grintenCoords = new VanDerGrinten(jniStrtoval.stringToDouble(_2CoordFieldsTextFieldA.getText().trim(), "Invalid Easting"),
820
jniStrtoval.stringToDouble(_2CoordFieldsTextFieldB.getText().trim(), "Invalid Northing")/*, hemisphere*/);
821
jniEngine.JNISetVanDerGrintenCoordinates(state, direction, grintenCoords);
825
case CoordinateTypes.UPS:
827
UPS UPSCoords = new UPS(jniStrtoval.stringToDouble(_2CoordFieldsTextFieldA.getText().trim(), "Invalid Easting"),
828
jniStrtoval.stringToDouble(_2CoordFieldsTextFieldB.getText().trim(), "Invalid Northing"), hemisphere);
829
jniEngine.JNISetUPSCoordinates(state, direction, UPSCoords);
833
case CoordinateTypes.USNG:
835
USNG USNGCoords = new USNG(_3CoordFieldsTextFieldB.getText().trim());
836
jniEngine.JNISetUSNGCoordinates(state, direction, USNGCoords);
840
case CoordinateTypes.UTM:
842
UTM UTMCoords = new UTM(jniStrtoval.stringToDouble(_2CoordFieldsTextFieldA.getText().trim(), "Invalid Easting"),
843
jniStrtoval.stringToDouble(_2CoordFieldsTextFieldB.getText().trim(), "Invalid Northing"), zone, hemisphere);
844
jniEngine.JNISetUTMCoordinates(state, direction, UTMCoords);
852
catch(GeotransError e)
854
jniStrtoval.setEngineError(true, e.getMessage());
856
catch(JNIException e)
858
jniStrtoval.setJNIError(true, e.getMessage());
862
public boolean getCoords(int state, int direction, int projType)
864
boolean noErrors = true;
872
case CoordinateTypes.ALBERS:
874
AlbersEqualAreaConic albersCoords = jniEngine.JNIGetAlbersEqualAreaConicCoordinates(state, direction);
875
_2CoordFieldsTextFieldA.setText(jniStrtoval.JNIMeterToString(albersCoords.getEasting()));
876
_2CoordFieldsTextFieldB.setText(jniStrtoval.JNIMeterToString(albersCoords.getNorthing()));
879
case CoordinateTypes.AZIMUTHAL:
881
AzimuthalEquidistant azeqCoords = jniEngine.JNIGetAzimuthalEquidistantCoordinates(state, direction);
882
_2CoordFieldsTextFieldA.setText(jniStrtoval.JNIMeterToString(azeqCoords.getEasting()));
883
_2CoordFieldsTextFieldB.setText(jniStrtoval.JNIMeterToString(azeqCoords.getNorthing()));
886
case CoordinateTypes.BNG:
888
BNG BNGCoords = jniEngine.JNIGetBNGCoordinates(state, direction);
889
_3CoordFieldsTextFieldB.setText(BNGCoords.getCoordinateString());
892
case CoordinateTypes.BONNE:
894
Bonne bonneCoords = jniEngine.JNIGetBonneCoordinates(state, direction);
895
_2CoordFieldsTextFieldA.setText(jniStrtoval.JNIMeterToString(bonneCoords.getEasting()));
896
_2CoordFieldsTextFieldB.setText(jniStrtoval.JNIMeterToString(bonneCoords.getNorthing()));
899
case CoordinateTypes.CASSINI:
901
Cassini cassiniCoords = jniEngine.JNIGetCassiniCoordinates(state, direction);
902
_2CoordFieldsTextFieldA.setText(jniStrtoval.JNIMeterToString(cassiniCoords.getEasting()));
903
_2CoordFieldsTextFieldB.setText(jniStrtoval.JNIMeterToString(cassiniCoords.getNorthing()));
906
case CoordinateTypes.CYLEQA:
908
CylindricalEqualArea cyleqaCoords = jniEngine.JNIGetCylindricalEqualAreaCoordinates(state, direction);
909
_2CoordFieldsTextFieldA.setText(jniStrtoval.JNIMeterToString(cyleqaCoords.getEasting()));
910
_2CoordFieldsTextFieldB.setText(jniStrtoval.JNIMeterToString(cyleqaCoords.getNorthing()));
913
case CoordinateTypes.ECKERT4:
915
Eckert4 eckert4Coords = jniEngine.JNIGetEckert4Coordinates(state, direction);
916
_2CoordFieldsTextFieldA.setText(jniStrtoval.JNIMeterToString(eckert4Coords.getEasting()));
917
_2CoordFieldsTextFieldB.setText(jniStrtoval.JNIMeterToString(eckert4Coords.getNorthing()));
920
case CoordinateTypes.ECKERT6:
922
Eckert6 eckert6Coords = jniEngine.JNIGetEckert6Coordinates(state, direction);
923
_2CoordFieldsTextFieldA.setText(jniStrtoval.JNIMeterToString(eckert6Coords.getEasting()));
924
_2CoordFieldsTextFieldB.setText(jniStrtoval.JNIMeterToString(eckert6Coords.getNorthing()));
927
case CoordinateTypes.EQDCYL:
929
EquidistantCylindrical eqdcylCoords = jniEngine.JNIGetEquidistantCylindricalCoordinates(state, direction);
930
_2CoordFieldsTextFieldA.setText(jniStrtoval.JNIMeterToString(eqdcylCoords.getEasting()));
931
_2CoordFieldsTextFieldB.setText(jniStrtoval.JNIMeterToString(eqdcylCoords.getNorthing()));
934
case CoordinateTypes.F16GRS:
936
MGRS MGRSCoords = jniEngine.JNIGetMGRSCoordinates(state, direction);
937
java.lang.String temp = MGRSCoords.getCoordinateString();
938
if( jniEngine.JNIGetPrecision() == formatOptions.MET100000)
939
_3CoordFieldsTextFieldB.setText(temp + "00");
941
_3CoordFieldsTextFieldB.setText(temp);
944
case CoordinateTypes.GARS:
946
GARS GARSCoords = jniEngine.JNIGetGARSCoordinates(state, direction);
947
_3CoordFieldsTextFieldB.setText(GARSCoords.getCoordinateString());
950
case CoordinateTypes.GEOCENTRIC:
952
Geocentric geocentricCoords = jniEngine.JNIGetGeocentricCoordinates(state, direction);
953
_3CoordFieldsTextFieldA.setText(jniStrtoval.JNIMeterToString(geocentricCoords.getX()));
954
_3CoordFieldsTextFieldB.setText(jniStrtoval.JNIMeterToString(geocentricCoords.getY()));
955
_3CoordFieldsTextFieldC.setText(jniStrtoval.JNIMeterToString(geocentricCoords.getZ()));
958
case CoordinateTypes.GEODETIC:
960
Geodetic geodeticCoords = jniEngine.JNIGetGeodeticCoordinates(state, direction);
961
_3CoordFieldsTextFieldA.setText(jniStrtoval.JNILongitudeToString(geodeticCoords.getLongitude()*180/jniStrtoval.PI, useNSEW, useMinutes, useSeconds));
962
_3CoordFieldsTextFieldB.setText(jniStrtoval.JNILatitudeToString(geodeticCoords.getLatitude()*180/jniStrtoval.PI, useNSEW, useMinutes, useSeconds));
963
_3CoordFieldsTextFieldC.setText(jniStrtoval.JNIMeterToString(geodeticCoords.getHeight()));
966
case CoordinateTypes.GEOREF:
968
GEOREF GEOREFCoords = jniEngine.JNIGetGEOREFCoordinates(state, direction);
969
_3CoordFieldsTextFieldB.setText(GEOREFCoords.getCoordinateString());
972
case CoordinateTypes.GNOMONIC:
974
Gnomonic gnomonicCoords = jniEngine.JNIGetGnomonicCoordinates(state, direction);
975
_2CoordFieldsTextFieldA.setText(jniStrtoval.JNIMeterToString(gnomonicCoords.getEasting()));
976
_2CoordFieldsTextFieldB.setText(jniStrtoval.JNIMeterToString(gnomonicCoords.getNorthing()));
979
case CoordinateTypes.LAMBERT_1:
981
LambertConformalConic1 lambert1Coords = jniEngine.JNIGetLambertConformalConic1Coordinates(state, direction);
982
_2CoordFieldsTextFieldA.setText(jniStrtoval.JNIMeterToString(lambert1Coords.getEasting()));
983
_2CoordFieldsTextFieldB.setText(jniStrtoval.JNIMeterToString(lambert1Coords.getNorthing()));
986
case CoordinateTypes.LAMBERT_2:
988
LambertConformalConic2 lambert2Coords = jniEngine.JNIGetLambertConformalConic2Coordinates(state, direction);
989
_2CoordFieldsTextFieldA.setText(jniStrtoval.JNIMeterToString(lambert2Coords.getEasting()));
990
_2CoordFieldsTextFieldB.setText(jniStrtoval.JNIMeterToString(lambert2Coords.getNorthing()));
993
case CoordinateTypes.LOCCART:
995
LocalCartesian loccartCoords = jniEngine.JNIGetLocalCartesianCoordinates(state, direction);
996
_3CoordFieldsTextFieldA.setText(jniStrtoval.JNIMeterToString(loccartCoords.getX()));
997
_3CoordFieldsTextFieldB.setText(jniStrtoval.JNIMeterToString(loccartCoords.getY()));
998
_3CoordFieldsTextFieldC.setText(jniStrtoval.JNIMeterToString(loccartCoords.getZ()));
1001
case CoordinateTypes.MERCATOR:
1003
Mercator mercatorCoords = jniEngine.JNIGetMercatorCoordinates(state, direction);
1004
_2CoordFieldsTextFieldA.setText(jniStrtoval.JNIMeterToString(mercatorCoords.getEasting()));
1005
_2CoordFieldsTextFieldB.setText(jniStrtoval.JNIMeterToString(mercatorCoords.getNorthing()));
1008
case CoordinateTypes.MGRS:
1010
MGRS MGRSCoords = jniEngine.JNIGetMGRSCoordinates(state, direction);
1011
_3CoordFieldsTextFieldB.setText(MGRSCoords.getCoordinateString());
1014
case CoordinateTypes.MILLER:
1016
MillerCylindrical millerCoords = jniEngine.JNIGetMillerCylindricalCoordinates(state, direction);
1017
_2CoordFieldsTextFieldA.setText(jniStrtoval.JNIMeterToString(millerCoords.getEasting()));
1018
_2CoordFieldsTextFieldB.setText(jniStrtoval.JNIMeterToString(millerCoords.getNorthing()));
1021
case CoordinateTypes.MOLLWEIDE:
1023
Mollweide mollweidCoords = jniEngine.JNIGetMollweideCoordinates(state, direction);
1024
_2CoordFieldsTextFieldA.setText(jniStrtoval.JNIMeterToString(mollweidCoords.getEasting()));
1025
_2CoordFieldsTextFieldB.setText(jniStrtoval.JNIMeterToString(mollweidCoords.getNorthing()));
1028
case CoordinateTypes.NEYS:
1030
Neys neysCoords = jniEngine.JNIGetNeysCoordinates(state, direction);
1031
_2CoordFieldsTextFieldA.setText(jniStrtoval.JNIMeterToString(neysCoords.getEasting()));
1032
_2CoordFieldsTextFieldB.setText(jniStrtoval.JNIMeterToString(neysCoords.getNorthing()));
1035
case CoordinateTypes.NZMG:
1037
NZMG NZMGCoords = jniEngine.JNIGetNZMGCoordinates(state, direction);
1038
_2CoordFieldsTextFieldA.setText(jniStrtoval.JNIMeterToString(NZMGCoords.getEasting()));
1039
_2CoordFieldsTextFieldB.setText(jniStrtoval.JNIMeterToString(NZMGCoords.getNorthing()));
1042
case CoordinateTypes.OMERC:
1044
ObliqueMercator omercCoords = jniEngine.JNIGetObliqueMercatorCoordinates(state, direction);
1045
_2CoordFieldsTextFieldA.setText(jniStrtoval.JNIMeterToString(omercCoords.getEasting()));
1046
_2CoordFieldsTextFieldB.setText(jniStrtoval.JNIMeterToString(omercCoords.getNorthing()));
1049
case CoordinateTypes.ORTHOGRAPHIC:
1051
Orthographic orthogrCoords = jniEngine.JNIGetOrthographicCoordinates(state, direction);
1052
_2CoordFieldsTextFieldA.setText(jniStrtoval.JNIMeterToString(orthogrCoords.getEasting()));
1053
_2CoordFieldsTextFieldB.setText(jniStrtoval.JNIMeterToString(orthogrCoords.getNorthing()));
1056
case CoordinateTypes.POLARSTEREO:
1058
PolarStereographic polarstCoords = jniEngine.JNIGetPolarStereographicCoordinates(state, direction);
1059
_2CoordFieldsTextFieldA.setText(jniStrtoval.JNIMeterToString(polarstCoords.getEasting()));
1060
_2CoordFieldsTextFieldB.setText(jniStrtoval.JNIMeterToString(polarstCoords.getNorthing()));
1063
case CoordinateTypes.POLYCONIC:
1065
Polyconic polyconCoords = jniEngine.JNIGetPolyconicCoordinates(state, direction);
1066
_2CoordFieldsTextFieldA.setText(jniStrtoval.JNIMeterToString(polyconCoords.getEasting()));
1067
_2CoordFieldsTextFieldB.setText(jniStrtoval.JNIMeterToString(polyconCoords.getNorthing()));
1070
case CoordinateTypes.SINUSOIDAL:
1072
Sinusoidal sinusoidCoords = jniEngine.JNIGetSinusoidalCoordinates(state, direction);
1073
_2CoordFieldsTextFieldA.setText(jniStrtoval.JNIMeterToString(sinusoidCoords.getEasting()));
1074
_2CoordFieldsTextFieldB.setText(jniStrtoval.JNIMeterToString(sinusoidCoords.getNorthing()));
1077
case CoordinateTypes.STEREOGRAPHIC:
1079
Stereographic stereogrCoords = jniEngine.JNIGetStereographicCoordinates(state, direction);
1080
_2CoordFieldsTextFieldA.setText(jniStrtoval.JNIMeterToString(stereogrCoords.getEasting()));
1081
_2CoordFieldsTextFieldB.setText(jniStrtoval.JNIMeterToString(stereogrCoords.getNorthing()));
1084
case CoordinateTypes.TRCYLEQA:
1086
TransverseCylindricalEqualArea trcyleqaCoords = jniEngine.JNIGetTransverseCylindricalEqualAreaCoordinates(state, direction);
1087
_2CoordFieldsTextFieldA.setText(jniStrtoval.JNIMeterToString(trcyleqaCoords.getEasting()));
1088
_2CoordFieldsTextFieldB.setText(jniStrtoval.JNIMeterToString(trcyleqaCoords.getNorthing()));
1091
case CoordinateTypes.TRANMERC:
1093
TransverseMercator tranmercCoords = jniEngine.JNIGetTransverseMercatorCoordinates(state, direction);
1094
_2CoordFieldsTextFieldA.setText(jniStrtoval.JNIMeterToString(tranmercCoords.getEasting()));
1095
_2CoordFieldsTextFieldB.setText(jniStrtoval.JNIMeterToString(tranmercCoords.getNorthing()));
1098
case CoordinateTypes.GRINTEN:
1100
VanDerGrinten grintenCoords = jniEngine.JNIGetVanDerGrintenCoordinates(state, direction);
1101
_2CoordFieldsTextFieldA.setText(jniStrtoval.JNIMeterToString(grintenCoords.getEasting()));
1102
_2CoordFieldsTextFieldB.setText(jniStrtoval.JNIMeterToString(grintenCoords.getNorthing()));
1105
case CoordinateTypes.UPS:
1108
UPS UPSCoords = jniEngine.JNIGetUPSCoordinates(state, direction);
1109
hemisphere = UPSCoords.getHemisphere();
1110
_2CoordFieldsTextFieldA.setText(jniStrtoval.JNIMeterToString(UPSCoords.getEasting()));
1111
_2CoordFieldsTextFieldB.setText(jniStrtoval.JNIMeterToString(UPSCoords.getNorthing()));
1114
case CoordinateTypes.USNG:
1116
USNG USNGCoords = jniEngine.JNIGetUSNGCoordinates(state, direction);
1117
_3CoordFieldsTextFieldB.setText(USNGCoords.getCoordinateString());
1120
case CoordinateTypes.UTM:
1122
// set zone, hemisphere
1123
UTM UTMCoords = jniEngine.JNIGetUTMCoordinates(state, direction);
1124
hemisphere = UTMCoords.getHemisphere();
1125
zone = UTMCoords.getZoneCoord();
1126
_2CoordFieldsTextFieldA.setText(jniStrtoval.JNIMeterToString(UTMCoords.getEasting()));
1127
_2CoordFieldsTextFieldB.setText(jniStrtoval.JNIMeterToString(UTMCoords.getNorthing()));
1134
catch(GeotransError e)
1136
jniStrtoval.setEngineError(true, e.getMessage());
1139
catch(JNIException e)
1141
jniStrtoval.setJNIError(true, e.getMessage());
1147
public void createCoordPanel(int projType)
1153
case CoordinateTypes.GEOCENTRIC:
1158
case CoordinateTypes.GEODETIC:
1160
_2CoordFieldsPanel.setVisible(false);
1161
_3CoordFieldsPanel.setVisible(true);
1162
coordLayeredPane.moveToFront(_3CoordFieldsPanel);
1163
// Show optional fields.
1164
_3CoordFieldsLabelA.setVisible(true);
1165
_3CoordFieldsLabelC.setVisible(true);
1166
_3CoordFieldsTextFieldA.setVisible(true);
1167
_3CoordFieldsTextFieldC.setVisible(true);
1168
/* may be turned off by height type buttons. */
1169
setHeightFieldEditable();
1171
_3CoordFieldsLabelA.setText("Longitude:");
1172
_3CoordFieldsLabelB.setText("Latitude:");
1173
_3CoordFieldsLabelC.setText("Height (m):");
1176
_3CoordFieldsTextFieldA.setText(jniStrtoval.JNILongitudeToString(0, useNSEW, useMinutes, useSeconds));
1177
_3CoordFieldsTextFieldB.setText(jniStrtoval.JNILatitudeToString(0, useNSEW, useMinutes, useSeconds));
1179
catch(GeotransError e)
1181
jniStrtoval.displayErrorMsg(this, e.getMessage());
1183
catch(JNIException e)
1185
jniStrtoval.displayErrorMsg(this, e.getMessage());
1188
_3CoordFieldsTextFieldC.setText( "0" );
1191
case CoordinateTypes.GEOREF:
1194
_3CoordFieldsTextFieldB.setText( "NGAA0000000000" );
1197
case CoordinateTypes.GARS:
1200
_3CoordFieldsTextFieldB.setText( "361HN37" );
1203
case CoordinateTypes.F16GRS:
1206
_3CoordFieldsTextFieldB.setText( "31NEA00" );
1209
case CoordinateTypes.MGRS:
1212
_3CoordFieldsTextFieldB.setText( "31NEA0000000000" );
1215
case CoordinateTypes.BNG:
1218
_3CoordFieldsTextFieldB.setText( "SV 0000000000" );
1221
case CoordinateTypes.NZMG:
1224
_2CoordFieldsTextFieldA.setText("2510000");
1225
_2CoordFieldsTextFieldB.setText("6023150");
1228
case CoordinateTypes.UPS:
1231
_2CoordFieldsTextFieldA.setText("2000000");
1232
_2CoordFieldsTextFieldB.setText("2000000");
1235
case CoordinateTypes.USNG:
1238
_3CoordFieldsTextFieldB.setText( "31NEA0000000000" );
1241
case CoordinateTypes.UTM:
1243
// Hemisphere // Zone
1245
_2CoordFieldsTextFieldA.setText("500000");
1248
case CoordinateTypes.LOCCART:
1253
case CoordinateTypes.ALBERS:
1254
case CoordinateTypes.AZIMUTHAL:
1255
case CoordinateTypes.BONNE:
1256
case CoordinateTypes.CASSINI:
1257
case CoordinateTypes.CYLEQA:
1258
case CoordinateTypes.ECKERT4:
1259
case CoordinateTypes.ECKERT6:
1260
case CoordinateTypes.EQDCYL:
1261
case CoordinateTypes.GNOMONIC:
1262
case CoordinateTypes.LAMBERT_1:
1263
case CoordinateTypes.LAMBERT_2:
1264
case CoordinateTypes.MERCATOR:
1265
case CoordinateTypes.MILLER:
1266
case CoordinateTypes.MOLLWEIDE:
1267
case CoordinateTypes.NEYS:
1268
case CoordinateTypes.OMERC:
1269
case CoordinateTypes.ORTHOGRAPHIC:
1270
case CoordinateTypes.POLARSTEREO:
1271
case CoordinateTypes.POLYCONIC:
1272
case CoordinateTypes.SINUSOIDAL:
1273
case CoordinateTypes.STEREOGRAPHIC:
1274
case CoordinateTypes.TRCYLEQA:
1275
case CoordinateTypes.TRANMERC:
1276
case CoordinateTypes.GRINTEN:
1285
} /* end of switch(projType) */
1286
} /* end of createCoordPanel() */
1288
public void resetOutputErrors()
1290
ce90TextField.setText("N/A");
1291
le90TextField.setText("N/A");
1292
se90TextField.setText("N/A");
1296
public void reportOutputErrors(int state)
1298
Accuracy outputErrors = jniEngine.JNIGetConversionErrors(state);
1299
double ce90 = outputErrors.getCE90();
1300
double le90 = outputErrors.getLE90();
1301
double se90 = outputErrors.getSE90();
1303
usePrevAccuracies = true;
1306
ce90TextField.setText("Unk");
1308
jniStrtoval.setNumberFormat(ce90TextField, ce90, 0);
1312
le90TextField.setText("N/A");
1313
se90TextField.setText("N/A");
1318
le90TextField.setText("Unk");
1320
jniStrtoval.setNumberFormat(le90TextField, le90, 0);
1323
se90TextField.setText("Unk");
1325
jniStrtoval.setNumberFormat(se90TextField, se90, 0);
1329
// Set the engine with the input accuracy values
1330
public void setAccuracy()
1332
if (!usePrevAccuracies)
1336
java.lang.String ce90String = ce90TextField.getText().trim();
1337
java.lang.String le90String = le90TextField.getText().trim();
1338
java.lang.String se90String = se90TextField.getText().trim();
1340
double ce90, le90, se90;
1341
if ((ce90String.equals("Unk")) || (ce90String.equals("N/A")))
1344
ce90 = jniStrtoval.stringToDouble(ce90String, "Invalid CE 90");
1345
if ((le90String.equals("Unk")) || (le90String.equals("N/A")))
1348
le90 = jniStrtoval.stringToDouble(le90String, "Invalid LE 90");
1349
if ((se90String.equals("Unk")) || (se90String.equals("N/A")))
1352
se90 = jniStrtoval.stringToDouble(se90String, "Invalid SE 90");
1354
jniEngine.JNISetConversionErrors(ConversionState.INTERACTIVE, ce90, le90, se90);
1357
catch(GeotransError e)
1359
jniStrtoval.displayErrorMsg(this, e.getMessage());
1364
// Set the source text fields editable/uneditable if it's a 3D/2D conversion
1365
public void updateSrcErrors(boolean _3dConv)
1367
le90TextField.setEditable(_3dConv);
1368
se90TextField.setEditable(_3dConv);
1369
_3dConversion = _3dConv;
1373
// Set the source text fields with the values corresponding
1374
// to the current combo box selection
1375
public void updateAccuracy()
1379
long index = sourcesComboBox.getSelectedIndex() + 1;
1380
Accuracy accuracy = new JNISource().JNISourceAccuracy(index);
1382
usePrevAccuracies = false;
1384
double ce90 = accuracy.getCE90();
1385
double le90 = accuracy.getLE90();
1386
double se90 = accuracy.getSE90();
1389
ce90TextField.setText("Unk");
1391
jniStrtoval.setNumberFormat(ce90TextField, accuracy.getCE90(), 0);
1394
le90TextField.setText("N/A");
1395
se90TextField.setText("N/A");
1400
le90TextField.setText("Unk");
1402
jniStrtoval.setNumberFormat(le90TextField, accuracy.getLE90(), 0);
1404
se90TextField.setText("Unk");
1406
jniStrtoval.setNumberFormat(se90TextField, accuracy.getSE90(), 0);
1409
catch(GeotransError e)
1411
jniStrtoval.displayErrorMsg(this, e.getMessage());
1413
catch(JNIException e)
1415
jniStrtoval.displayErrorMsg(this, e.getMessage());
1419
public void setHeightText(String height)
1421
_3CoordFieldsTextFieldC.setText(height);
1425
public void setHeightFieldUneditable()
1427
_3CoordFieldsTextFieldC.setEditable(false);
1430
public void setHeightFieldEditable()
1432
_3CoordFieldsTextFieldC.setEditable(true);
1435
public void setHeightFieldEditable(boolean editable)
1437
_3CoordFieldsTextFieldC.setEditable(editable);
1440
public void setHemisphere(char hemi)
1445
public void setZone(int z)
1450
public char getHemisphere()
1455
public long getZone()
1460
// Variables declaration - do not modify//GEN-BEGIN:variables
1461
private javax.swing.JLabel _2CoordFieldsLabelA;
1462
private javax.swing.JLabel _2CoordFieldsLabelB;
1463
private javax.swing.JPanel _2CoordFieldsPanel;
1464
private javax.swing.JTextField _2CoordFieldsTextFieldA;
1465
private javax.swing.JTextField _2CoordFieldsTextFieldB;
1466
private javax.swing.JLabel _3CoordFieldsLabelA;
1467
private javax.swing.JLabel _3CoordFieldsLabelB;
1468
private javax.swing.JLabel _3CoordFieldsLabelC;
1469
private javax.swing.JPanel _3CoordFieldsPanel;
1470
private javax.swing.JTextField _3CoordFieldsTextFieldA;
1471
private javax.swing.JTextField _3CoordFieldsTextFieldB;
1472
private javax.swing.JTextField _3CoordFieldsTextFieldC;
1473
private javax.swing.JLabel ce90Label;
1474
private javax.swing.JTextField ce90TextField;
1475
private javax.swing.JLayeredPane coordLayeredPane;
1476
private javax.swing.JPanel errorsPanel;
1477
private javax.swing.JPanel inputErrorPanel;
1478
private javax.swing.JLabel le90Label;
1479
private javax.swing.JTextField le90TextField;
1480
private javax.swing.JPanel outputErrorPanel;
1481
private javax.swing.JLabel se90Label;
1482
private javax.swing.JTextField se90TextField;
1483
private javax.swing.JComboBox sourcesComboBox;
1484
private javax.swing.JLabel sourcesLabel;
1485
private javax.swing.JLabel tempLabel1;
1486
private javax.swing.JLabel tempLabel2;
1487
private javax.swing.JTextField tempTextField1;
1488
private javax.swing.JTextField tempTextField2;
1489
// End of variables declaration//GEN-END:variables
b'\\ No newline at end of file'