1 package org.wcb.gui.forms.e6b;
2
3 import org.wcb.e6b.SphericalDistanceCalculator;
4 import org.wcb.gui.forms.e6b.event.CalculateFormActionListener;
5 import org.wcb.gui.renderer.AirportLocationListCellRender;
6 import org.wcb.model.vo.hibernate.AirportBO;
7 import org.wcb.model.bd.AirportDelegate;
8 import org.wcb.model.util.SpringUtil;
9 import org.wcb.model.service.IServicesConstants;
10 import org.apache.commons.lang.StringUtils;
11
12 import javax.swing.*;
13 import java.awt.*;
14 import java.awt.event.ItemListener;
15 import java.awt.event.ItemEvent;
16 import java.text.DecimalFormat;
17 import java.util.StringTokenizer;
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46 public class DistanceCalculationPanel extends JPanel implements ICalculateForm, ItemListener {
47
48 private JComboBox jCBStartLocation;
49 private JTextField jTextFieldStartLatitudeDegree;
50 private JTextField jTextFieldStartLatitudeMinute;
51 private JTextField jTextFieldStartLatitudeSecond;
52 private JComboBox jCBStartSphereNS;
53 private JTextField jTextFieldStartLongitudeDegree;
54 private JTextField jTextFieldStartLongitudeMinute;
55 private JTextField jTextFieldStartLongitudeSecond;
56 private JComboBox jCBStartSphereEW;
57
58 private JComboBox jCBEndLocation;
59 private JTextField jTextFieldEndLatitudeDegree;
60 private JTextField jTextFieldEndLatitudeMinute;
61 private JTextField jTextFieldEndLatitudeSecond;
62 private JComboBox jCBEndSphereNS;
63 private JTextField jTextFieldEndLongitudeDegree;
64 private JTextField jTextFieldEndLongitudeMinute;
65 private JTextField jTextFieldEndLongitudeSecond;
66 private JComboBox jCBEndSphereEW;
67
68 private JButton calculateButton;
69 private JButton clearButton;
70 private JTextField resultsDistance;
71 private JTextField resultsHdgTo;
72 private JTextField resultsHdgFrom;
73 private final DecimalFormat formatter = new DecimalFormat("###,##0.0");
74
75 public DistanceCalculationPanel() {
76 setBorder(BorderFactory.createTitledBorder("Calculate Distances"));
77 initComponents();
78 }
79
80 private void initComponents() {
81
82 jCBStartLocation = new JComboBox(this.getLocations().toArray());
83 jCBStartLocation.setRenderer(new AirportLocationListCellRender());
84 jCBStartLocation.addItemListener(this);
85 jTextFieldStartLatitudeDegree = new JTextField(3);
86 jTextFieldStartLatitudeMinute= new JTextField(2);
87 jTextFieldStartLatitudeSecond = new JTextField(6);
88 jCBStartSphereNS = new JComboBox(new String[]{"N","S"});
89 jTextFieldStartLongitudeDegree = new JTextField(3);
90 jTextFieldStartLongitudeMinute= new JTextField(2);
91 jTextFieldStartLongitudeSecond = new JTextField(6);
92 jCBStartSphereEW = new JComboBox(new String[]{"W","E"});
93
94
95 jCBEndLocation = new JComboBox(this.getLocations().toArray());
96 jCBEndLocation.setRenderer(new AirportLocationListCellRender());
97 jCBEndLocation.addItemListener(this);
98 jTextFieldEndLatitudeDegree = new JTextField(3);
99 jTextFieldEndLatitudeMinute= new JTextField(2);
100 jTextFieldEndLatitudeSecond = new JTextField(6);
101 jCBEndSphereNS = new JComboBox(new String[]{"N","S"});
102 jTextFieldEndLongitudeDegree = new JTextField(3);
103 jTextFieldEndLongitudeMinute= new JTextField(2);
104 jTextFieldEndLongitudeSecond = new JTextField(6);
105 jCBEndSphereEW = new JComboBox(new String[]{"W","E"});
106
107 calculateButton = new JButton("Calculate Distance");
108 clearButton = new JButton("Clear Distance Values");
109 calculateButton.addActionListener(new CalculateFormActionListener(this));
110 clearButton.addActionListener(new CalculateFormActionListener(this));
111 resultsDistance = new JTextField(4);
112 resultsHdgTo = new JTextField(4);
113 resultsHdgFrom = new JTextField(4);
114
115 setLayout(new GridBagLayout());
116 GridBagConstraints gridBagConstraints;
117
118 gridBagConstraints = new GridBagConstraints();
119 gridBagConstraints.gridx = 0;
120 gridBagConstraints.gridy = 1;
121 gridBagConstraints.gridwidth = 3;
122 gridBagConstraints.fill = GridBagConstraints.HORIZONTAL;
123 gridBagConstraints.anchor = GridBagConstraints.WEST;
124 add(createStartLocationPanel(), gridBagConstraints);
125
126 gridBagConstraints = new GridBagConstraints();
127 gridBagConstraints.gridx = 0;
128 gridBagConstraints.gridy = 2;
129 gridBagConstraints.gridwidth = 3;
130 gridBagConstraints.fill = GridBagConstraints.HORIZONTAL;
131 gridBagConstraints.anchor = GridBagConstraints.WEST;
132 add(createEndLocationPanel(), gridBagConstraints);
133
134
135 gridBagConstraints = new GridBagConstraints();
136 gridBagConstraints.gridx = 0;
137 gridBagConstraints.gridy = 3;
138 gridBagConstraints.anchor = GridBagConstraints.WEST;
139 add(calculateButton, gridBagConstraints);
140
141 gridBagConstraints = new GridBagConstraints();
142 gridBagConstraints.gridx = 1;
143 gridBagConstraints.gridy = 3;
144 gridBagConstraints.gridwidth = 2;
145 gridBagConstraints.anchor = GridBagConstraints.WEST;
146 add(clearButton, gridBagConstraints);
147
148 gridBagConstraints = new GridBagConstraints();
149 gridBagConstraints.gridx = 0;
150 gridBagConstraints.gridy = 4;
151 gridBagConstraints.anchor = GridBagConstraints.EAST;
152 add(new JLabel("Distance "), gridBagConstraints);
153
154 gridBagConstraints = new GridBagConstraints();
155 gridBagConstraints.gridx = 1;
156 gridBagConstraints.gridy = 4;
157 gridBagConstraints.anchor = GridBagConstraints.WEST;
158 add(resultsDistance, gridBagConstraints);
159
160 gridBagConstraints = new GridBagConstraints();
161 gridBagConstraints.gridx = 2;
162 gridBagConstraints.gridy = 4;
163 gridBagConstraints.anchor = GridBagConstraints.WEST;
164 add(new JLabel("Nautical Miles"), gridBagConstraints);
165
166 gridBagConstraints = new GridBagConstraints();
167 gridBagConstraints.gridx = 0;
168 gridBagConstraints.gridy = 5;
169 gridBagConstraints.anchor = GridBagConstraints.EAST;
170 add(new JLabel("Heading To Destination"), gridBagConstraints);
171
172 gridBagConstraints = new GridBagConstraints();
173 gridBagConstraints.gridx = 1;
174 gridBagConstraints.gridy = 5;
175 gridBagConstraints.anchor = GridBagConstraints.WEST;
176 add(resultsHdgTo, gridBagConstraints);
177
178 gridBagConstraints = new GridBagConstraints();
179 gridBagConstraints.gridx = 0;
180 gridBagConstraints.gridy = 6;
181 gridBagConstraints.anchor = GridBagConstraints.EAST;
182 add(new JLabel("Heading From Destination"), gridBagConstraints);
183
184 gridBagConstraints = new GridBagConstraints();
185 gridBagConstraints.gridx = 1;
186 gridBagConstraints.gridy = 6;
187 gridBagConstraints.anchor = GridBagConstraints.WEST;
188 add(resultsHdgFrom, gridBagConstraints);
189
190 }
191
192 private JPanel createStartLocationPanel() {
193 JPanel returnPanel = new JPanel();
194 returnPanel.setBorder(BorderFactory.createTitledBorder("Start Location"));
195 returnPanel.setLayout(new GridBagLayout());
196 GridBagConstraints gridBagConstraints = new GridBagConstraints();
197
198 gridBagConstraints.gridwidth = 7;
199 returnPanel.add(jCBStartLocation, gridBagConstraints);
200
201 gridBagConstraints = new GridBagConstraints();
202 gridBagConstraints.gridx = 0;
203 gridBagConstraints.gridy = 1;
204 gridBagConstraints.anchor = GridBagConstraints.EAST;
205 returnPanel.add(new JLabel("Latitude"), gridBagConstraints);
206
207 gridBagConstraints = new GridBagConstraints();
208 gridBagConstraints.gridx = 1;
209 gridBagConstraints.gridy = 1;
210 gridBagConstraints.anchor = GridBagConstraints.WEST;
211 returnPanel.add(jTextFieldStartLatitudeDegree, gridBagConstraints);
212
213 gridBagConstraints = new GridBagConstraints();
214 gridBagConstraints.gridx = 2;
215 gridBagConstraints.gridy = 1;
216 gridBagConstraints.anchor = GridBagConstraints.WEST;
217 returnPanel.add(new JLabel("-"), gridBagConstraints);
218
219 gridBagConstraints = new GridBagConstraints();
220 gridBagConstraints.gridx = 3;
221 gridBagConstraints.gridy = 1;
222 gridBagConstraints.anchor = GridBagConstraints.WEST;
223 returnPanel.add(jTextFieldStartLatitudeMinute, gridBagConstraints);
224
225 gridBagConstraints = new GridBagConstraints();
226 gridBagConstraints.gridx = 4;
227 gridBagConstraints.gridy = 1;
228 gridBagConstraints.anchor = GridBagConstraints.WEST;
229 returnPanel.add(new JLabel("-"), gridBagConstraints);
230
231 gridBagConstraints = new GridBagConstraints();
232 gridBagConstraints.gridx = 5;
233 gridBagConstraints.gridy = 1;
234 gridBagConstraints.anchor = GridBagConstraints.WEST;
235 returnPanel.add(jTextFieldStartLatitudeSecond, gridBagConstraints);
236
237 gridBagConstraints = new GridBagConstraints();
238 gridBagConstraints.gridx = 6;
239 gridBagConstraints.gridy = 1;
240 gridBagConstraints.anchor = GridBagConstraints.WEST;
241
242 returnPanel.add(jCBStartSphereNS, gridBagConstraints);
243
244 gridBagConstraints = new GridBagConstraints();
245 gridBagConstraints.gridx = 0;
246 gridBagConstraints.gridy = 2;
247 gridBagConstraints.anchor = GridBagConstraints.EAST;
248 returnPanel.add(new JLabel("Longitude"), gridBagConstraints);
249
250 gridBagConstraints = new GridBagConstraints();
251 gridBagConstraints.gridx = 1;
252 gridBagConstraints.gridy = 2;
253 gridBagConstraints.anchor = GridBagConstraints.WEST;
254 returnPanel.add(jTextFieldStartLongitudeDegree, gridBagConstraints);
255
256 gridBagConstraints = new GridBagConstraints();
257 gridBagConstraints.gridx = 2;
258 gridBagConstraints.gridy = 2;
259 gridBagConstraints.anchor = GridBagConstraints.WEST;
260 returnPanel.add(new JLabel("-"), gridBagConstraints);
261
262 gridBagConstraints = new GridBagConstraints();
263 gridBagConstraints.gridx = 3;
264 gridBagConstraints.gridy = 2;
265 gridBagConstraints.anchor = GridBagConstraints.WEST;
266 returnPanel.add(jTextFieldStartLongitudeMinute, gridBagConstraints);
267
268 gridBagConstraints = new GridBagConstraints();
269 gridBagConstraints.gridx = 4;
270 gridBagConstraints.gridy = 2;
271 gridBagConstraints.anchor = GridBagConstraints.WEST;
272 returnPanel.add(new JLabel("-"), gridBagConstraints);
273
274 gridBagConstraints = new GridBagConstraints();
275 gridBagConstraints.gridx = 5;
276 gridBagConstraints.gridy = 2;
277 gridBagConstraints.anchor = GridBagConstraints.WEST;
278 returnPanel.add(jTextFieldStartLongitudeSecond, gridBagConstraints);
279
280 gridBagConstraints = new GridBagConstraints();
281 gridBagConstraints.gridx = 6;
282 gridBagConstraints.gridy = 2;
283 gridBagConstraints.anchor = GridBagConstraints.WEST;
284 returnPanel.add(jCBStartSphereEW, gridBagConstraints);
285 return returnPanel;
286 }
287
288 private JPanel createEndLocationPanel() {
289 JPanel returnPanel = new JPanel();
290 returnPanel.setBorder(BorderFactory.createTitledBorder("Destination location"));
291 returnPanel.setLayout(new GridBagLayout());
292 GridBagConstraints gridBagConstraints = new GridBagConstraints();
293
294 gridBagConstraints.gridwidth = 7;
295 returnPanel.add(jCBEndLocation, gridBagConstraints);
296
297 gridBagConstraints = new GridBagConstraints();
298 gridBagConstraints.gridx = 0;
299 gridBagConstraints.gridy = 1;
300 gridBagConstraints.anchor = GridBagConstraints.EAST;
301 returnPanel.add(new JLabel("Latitude"), gridBagConstraints);
302
303 gridBagConstraints = new GridBagConstraints();
304 gridBagConstraints.gridx = 1;
305 gridBagConstraints.gridy = 1;
306 gridBagConstraints.anchor = GridBagConstraints.WEST;
307 returnPanel.add(jTextFieldEndLatitudeDegree, gridBagConstraints);
308
309 gridBagConstraints = new GridBagConstraints();
310 gridBagConstraints.gridx = 2;
311 gridBagConstraints.gridy = 1;
312 gridBagConstraints.anchor = GridBagConstraints.WEST;
313 returnPanel.add(new JLabel("-"), gridBagConstraints);
314
315 gridBagConstraints = new GridBagConstraints();
316 gridBagConstraints.gridx = 3;
317 gridBagConstraints.gridy = 1;
318 gridBagConstraints.anchor = GridBagConstraints.WEST;
319 returnPanel.add(jTextFieldEndLatitudeMinute, gridBagConstraints);
320
321 gridBagConstraints = new GridBagConstraints();
322 gridBagConstraints.gridx = 4;
323 gridBagConstraints.gridy = 1;
324 gridBagConstraints.anchor = GridBagConstraints.WEST;
325 returnPanel.add(new JLabel("-"), gridBagConstraints);
326
327 gridBagConstraints = new GridBagConstraints();
328 gridBagConstraints.gridx = 5;
329 gridBagConstraints.gridy = 1;
330 gridBagConstraints.anchor = GridBagConstraints.WEST;
331 returnPanel.add(jTextFieldEndLatitudeSecond, gridBagConstraints);
332
333 gridBagConstraints = new GridBagConstraints();
334 gridBagConstraints.gridx = 6;
335 gridBagConstraints.gridy = 1;
336 gridBagConstraints.anchor = GridBagConstraints.WEST;
337
338 returnPanel.add(jCBEndSphereNS, gridBagConstraints);
339
340 gridBagConstraints = new GridBagConstraints();
341 gridBagConstraints.gridx = 0;
342 gridBagConstraints.gridy = 2;
343 gridBagConstraints.anchor = GridBagConstraints.EAST;
344 returnPanel.add(new JLabel("Longitude"), gridBagConstraints);
345
346 gridBagConstraints = new GridBagConstraints();
347 gridBagConstraints.gridx = 1;
348 gridBagConstraints.gridy = 2;
349 gridBagConstraints.anchor = GridBagConstraints.WEST;
350 returnPanel.add(jTextFieldEndLongitudeDegree, gridBagConstraints);
351
352 gridBagConstraints = new GridBagConstraints();
353 gridBagConstraints.gridx = 2;
354 gridBagConstraints.gridy = 2;
355 gridBagConstraints.anchor = GridBagConstraints.WEST;
356 returnPanel.add(new JLabel("-"), gridBagConstraints);
357
358 gridBagConstraints = new GridBagConstraints();
359 gridBagConstraints.gridx = 3;
360 gridBagConstraints.gridy = 2;
361 gridBagConstraints.anchor = GridBagConstraints.WEST;
362 returnPanel.add(jTextFieldEndLongitudeMinute, gridBagConstraints);
363
364 gridBagConstraints = new GridBagConstraints();
365 gridBagConstraints.gridx = 4;
366 gridBagConstraints.gridy = 2;
367 gridBagConstraints.anchor = GridBagConstraints.WEST;
368 returnPanel.add(new JLabel("-"), gridBagConstraints);
369
370 gridBagConstraints = new GridBagConstraints();
371 gridBagConstraints.gridx = 5;
372 gridBagConstraints.gridy = 2;
373 gridBagConstraints.anchor = GridBagConstraints.WEST;
374 returnPanel.add(jTextFieldEndLongitudeSecond, gridBagConstraints);
375
376 gridBagConstraints = new GridBagConstraints();
377 gridBagConstraints.gridx = 6;
378 gridBagConstraints.gridy = 2;
379 gridBagConstraints.anchor = GridBagConstraints.WEST;
380 returnPanel.add(jCBEndSphereEW, gridBagConstraints);
381 return returnPanel;
382 }
383
384
385
386
387
388 private java.util.List<AirportBO> getLocations() {
389 AirportDelegate delegate = (AirportDelegate) SpringUtil.getApplicationContext().getBean(IServicesConstants.AIRPORT_DELEGATE);
390 java.util.List<AirportBO> airportsList = delegate.getAllAirports();
391 airportsList.add(0, new AirportBO("",null, null,"Select Airport", null, null, null, null, null, null));
392 return airportsList;
393 }
394
395 public void clearForm() {
396
397 jTextFieldStartLatitudeDegree.setText(null);
398 jTextFieldStartLatitudeMinute.setText(null);
399 jTextFieldStartLatitudeSecond.setText(null);
400 jCBStartSphereNS.setSelectedIndex(0);
401 jTextFieldStartLongitudeDegree.setText(null);
402 jTextFieldStartLongitudeMinute.setText(null);
403 jTextFieldStartLongitudeSecond.setText(null);
404 jCBStartSphereEW.setSelectedIndex(0);
405
406
407 jTextFieldEndLatitudeDegree.setText(null);
408 jTextFieldEndLatitudeMinute.setText(null);
409 jTextFieldEndLatitudeSecond.setText(null);
410 jCBEndSphereNS.setSelectedIndex(0);
411 jTextFieldEndLongitudeDegree.setText(null);
412 jTextFieldEndLongitudeMinute.setText(null);
413 jTextFieldEndLongitudeSecond.setText(null);
414 jCBEndSphereEW.setSelectedIndex(0);
415 }
416
417 public void calculateResult() {
418 if (this.validateEntry()) {
419 SphericalDistanceCalculator calculator = new SphericalDistanceCalculator();
420 int startLatDeg = Integer.parseInt(jTextFieldStartLatitudeDegree.getText());
421 double startLatMin = Double.parseDouble(jTextFieldStartLatitudeMinute.getText());
422 double startLatSec = Double.parseDouble(jTextFieldStartLatitudeSecond.getText());
423 int startLonDeg = Integer.parseInt(jTextFieldStartLongitudeDegree.getText());
424 double startLonMin = Double.parseDouble(jTextFieldStartLongitudeMinute.getText());
425 double startLonSec = Double.parseDouble(jTextFieldStartLongitudeSecond.getText());
426 int endLatDeg = Integer.parseInt(jTextFieldEndLatitudeDegree.getText());
427 double endLatMin = Double.parseDouble(jTextFieldEndLatitudeMinute.getText());
428 double endLatSec = Double.parseDouble(jTextFieldEndLatitudeSecond.getText());
429 int endLonDeg = Integer.parseInt(jTextFieldEndLongitudeDegree.getText());
430 double endLonMin = Double.parseDouble(jTextFieldEndLongitudeMinute.getText());
431 double endLonSec = Double.parseDouble(jTextFieldEndLongitudeSecond.getText());
432 calculator.setLatitudeFrom(startLatDeg, startLatMin, startLatSec, getSphericalLocation((String) jCBStartSphereNS.getSelectedItem()));
433 calculator.setLongitudeFrom(startLonDeg, startLonMin, startLonSec, getSphericalLocation((String) jCBStartSphereEW.getSelectedItem()));
434 calculator.setLatitudeTo(endLatDeg, endLatMin, endLatSec, getSphericalLocation((String) jCBEndSphereNS.getSelectedItem()));
435 calculator.setLongitudeTo(endLonDeg, endLonMin, endLonSec, getSphericalLocation((String) jCBEndSphereEW.getSelectedItem()));
436 calculator.calculate();
437 resultsDistance.setText(formatter.format(calculator.getCalculatedDistance()));
438 resultsHdgTo.setText(formatter.format(calculator.getCalculatedCourseTo()));
439 resultsHdgFrom.setText(formatter.format(calculator.getCalculatedCourseFrom()));
440 }
441 }
442
443 public void itemStateChanged(ItemEvent evt) {
444 Object src = evt.getSource();
445 if (src.equals(jCBStartLocation)) {
446 AirportBO airportItem = (AirportBO) jCBStartLocation.getSelectedItem();
447 this.setStartLatitude(airportItem.getLatitude());
448 this.setStartLongitude(airportItem.getLongitude());
449 } else if (src.equals(jCBEndLocation)) {
450 AirportBO airportItem = (AirportBO) jCBEndLocation.getSelectedItem();
451 this.setEndLatitude(airportItem.getLatitude());
452 this.setEndLongitude(airportItem.getLongitude());
453 }
454 }
455
456
457
458
459
460
461 public void setStartLatitude(String latitude) {
462 if (StringUtils.trimToNull(latitude) != null) {
463 StringTokenizer tokens = new StringTokenizer(latitude, "-");
464 this.jTextFieldStartLatitudeDegree.setText(tokens.nextToken());
465 this.jTextFieldStartLatitudeMinute.setText(tokens.nextToken());
466 String secondsPartial = tokens.nextToken();
467 String secondsToken = secondsPartial.substring(0,secondsPartial.length()-1);
468 this.jTextFieldStartLatitudeSecond.setText(secondsToken);
469 String ns = secondsPartial.substring(secondsPartial.length()-1);
470 this.jCBStartSphereNS.setSelectedItem(ns);
471 } else {
472 jTextFieldStartLatitudeDegree.setText(null);
473 jTextFieldStartLatitudeMinute.setText(null);
474 jTextFieldStartLatitudeSecond.setText(null);
475 jCBStartSphereNS.setSelectedIndex(0);
476 }
477 }
478
479
480
481
482
483
484 public void setStartLongitude(String longitude) {
485 if (StringUtils.trimToNull(longitude) != null) {
486 StringTokenizer tokens = new StringTokenizer(longitude, "-");
487 this.jTextFieldStartLongitudeDegree.setText(tokens.nextToken());
488 this.jTextFieldStartLongitudeMinute.setText(tokens.nextToken());
489 String secondsPartial = tokens.nextToken();
490 String secondsToken = secondsPartial.substring(0,secondsPartial.length()-1);
491 this.jTextFieldStartLongitudeSecond.setText(secondsToken);
492 String ew = secondsPartial.substring(secondsPartial.length()-1);
493 this.jCBStartSphereEW.setSelectedItem(ew);
494 } else {
495 jTextFieldStartLongitudeDegree.setText(null);
496 jTextFieldStartLongitudeMinute.setText(null);
497 jTextFieldStartLongitudeSecond.setText(null);
498 jCBStartSphereEW.setSelectedIndex(0);
499 }
500 }
501
502
503
504
505
506
507 public void setEndLatitude(String latitude) {
508 if (StringUtils.trimToNull(latitude) != null) {
509 StringTokenizer tokens = new StringTokenizer(latitude, "-");
510 this.jTextFieldEndLatitudeDegree.setText(tokens.nextToken());
511 this.jTextFieldEndLatitudeMinute.setText(tokens.nextToken());
512 String secondsPartial = tokens.nextToken();
513 String secondsToken = secondsPartial.substring(0,secondsPartial.length()-1);
514 this.jTextFieldEndLatitudeSecond.setText(secondsToken);
515 String ns = secondsPartial.substring(secondsPartial.length()-1);
516 this.jCBEndSphereNS.setSelectedItem(ns);
517 } else {
518 jTextFieldEndLatitudeDegree.setText(null);
519 jTextFieldEndLatitudeMinute.setText(null);
520 jTextFieldEndLatitudeSecond.setText(null);
521 jCBEndSphereNS.setSelectedIndex(0);
522 }
523 }
524
525
526
527
528
529
530 public void setEndLongitude(String longitude) {
531 if (StringUtils.trimToNull(longitude) != null) {
532 StringTokenizer tokens = new StringTokenizer(longitude, "-");
533 this.jTextFieldEndLongitudeDegree.setText(tokens.nextToken());
534 this.jTextFieldEndLongitudeMinute.setText(tokens.nextToken());
535 String secondsPartial = tokens.nextToken();
536 String secondsToken = secondsPartial.substring(0,secondsPartial.length()-1);
537 this.jTextFieldEndLongitudeSecond.setText(secondsToken);
538 String ew = secondsPartial.substring(secondsPartial.length()-1);
539 this.jCBEndSphereEW.setSelectedItem(ew);
540 } else {
541 jTextFieldEndLongitudeDegree.setText(null);
542 jTextFieldEndLongitudeMinute.setText(null);
543 jTextFieldEndLongitudeSecond.setText(null);
544 jCBEndSphereEW.setSelectedIndex(0);
545 }
546 }
547
548
549
550
551
552
553
554 private String getSphericalLocation(String selectValue) {
555 if (selectValue.equalsIgnoreCase("N")) {
556 return SphericalDistanceCalculator.NORTH_HEMISPHERE;
557 }
558 if (selectValue.equalsIgnoreCase("S")) {
559 return SphericalDistanceCalculator.SOUTH_HEMISPHERE;
560 }
561 if (selectValue.equalsIgnoreCase("E")) {
562 return SphericalDistanceCalculator.EAST_HEMISPHERE;
563 }
564 if (selectValue.equalsIgnoreCase("W")) {
565 return SphericalDistanceCalculator.WEST_HEMISPHERE;
566 }
567 return "";
568 }
569
570
571
572
573 private boolean validateEntry() {
574 if (StringUtils.trimToNull(jTextFieldStartLatitudeDegree.getText()) == null
575 || StringUtils.trimToNull(jTextFieldStartLatitudeMinute.getText()) == null
576 || StringUtils.trimToNull(jTextFieldStartLatitudeSecond.getText()) == null)
577 {
578 return false;
579 }
580 if (StringUtils.trimToNull(jTextFieldStartLongitudeDegree.getText()) == null
581 || StringUtils.trimToNull(jTextFieldStartLongitudeMinute.getText()) == null
582 || StringUtils.trimToNull(jTextFieldStartLongitudeSecond.getText()) == null)
583 {
584 return false;
585 }
586 if (StringUtils.trimToNull(jTextFieldEndLatitudeDegree.getText()) == null
587 || StringUtils.trimToNull(jTextFieldEndLatitudeMinute.getText()) == null
588 || StringUtils.trimToNull(jTextFieldEndLatitudeSecond.getText()) == null)
589 {
590 return false;
591 }
592 if (StringUtils.trimToNull(jTextFieldEndLongitudeDegree.getText()) == null
593 || StringUtils.trimToNull(jTextFieldEndLongitudeMinute.getText()) == null
594 || StringUtils.trimToNull(jTextFieldEndLongitudeSecond.getText()) == null)
595 {
596 return false;
597 }
598 return true;
599 }
600 }