Statistics
| Revision:

root / branches / F2 / extensions / extJCRS / src / org / gvsig / crs / gui / panels / wizard / DefinirDatum.java @ 10787

History | View | Annotate | Download (14.7 KB)

1
package org.gvsig.crs.gui.panels.wizard;
2

    
3
import java.awt.BorderLayout;
4
import java.awt.Dimension;
5
import java.awt.GridBagConstraints;
6
import java.awt.GridBagLayout;
7
import java.awt.Insets;
8
import java.awt.event.ActionEvent;
9
import java.awt.event.ActionListener;
10

    
11
import javax.swing.BorderFactory;
12
import javax.swing.ButtonGroup;
13
import javax.swing.ImageIcon;
14
import javax.swing.JButton;
15
import javax.swing.JLabel;
16
import javax.swing.JPanel;
17
import javax.swing.JRadioButton;
18
import javax.swing.JTextField;
19

    
20
import com.iver.andami.PluginServices;
21
import com.iver.utiles.swing.JComboBox;
22

    
23
/**
24
 * Panel de definici?n del Datum 
25
 * 
26
 * @author Luisa Marina Fernandez Ruiz (luisam.fernandez@uclm.es)
27
 * 
28
 *
29
 */
30
public class DefinirDatum extends JPanel implements ActionListener{
31
        
32
        private JTextField txtDatum;
33
        private JTextField txtElipsoide;
34
        private JTextField txtSemMay;
35
        private JTextField txtSemMen;
36
        private JTextField txtInvF;
37
        private JTextField txtMeridian;
38
        private JTextField txtLong;
39
        
40
        private JLabel lblDatum;
41
        private JLabel lblElipsoide;
42
        private JLabel lblMeridian;
43
        private JLabel lblLong;
44
        
45
        private JButton btnImportDatum;
46
        private JButton btnImportElipsoide;
47
        private JButton btnImportMeridian;
48
        
49
        private JComboBox cbSemMay;
50
        private JComboBox cbSemMen;
51
        private JComboBox cbInvF;
52
        private JComboBox cbLong;
53
        
54
        private JRadioButton rbSemMay;
55
        private JRadioButton rbSemMen;
56
        private JRadioButton rbInvF;
57
        private ButtonGroup groupRadioButton;
58
        
59
        private Dimension bigSize;
60
        private Dimension smallSize;
61

    
62
        private ImageIcon imodify;
63
        
64
        private static final long serialVersionUID = 1L;
65

    
66
        public DefinirDatum() {
67
                
68
                super();
69
                //TODO:Agregar un icono en gvSig
70
                //ImageIcon imodify = new ImageIcon(AddLayer.class.getClassLoader().getResource("images/search.png"));
71
                imodify = new ImageIcon("C:/gvSIGHead/extJCRS/images/search.png");
72
                this.setLayout(new BorderLayout());
73
                this.setBorder(BorderFactory.createEmptyBorder(4,4,4,4));
74
                bigSize=new Dimension();
75
                bigSize.width=200;
76
                smallSize=new Dimension();
77
                smallSize.width=130;
78
                inicializarNuevo();
79
                
80
        }
81
        private void inicializarNuevo(){
82
                JPanel pMain=new JPanel();
83
                JPanel pDatum=new JPanel();
84
                JPanel pElipsoide=new JPanel();
85
                JPanel pMeridian=new JPanel();
86
                pMain.setLayout(new BorderLayout());
87
                
88
                pMain.setBorder(BorderFactory.createTitledBorder(PluginServices.getText(this,"Dat_nDatum")));
89
                pElipsoide.setBorder(BorderFactory.createTitledBorder(PluginServices.getText(this,"Dat_nElipsoide")));
90
                pMeridian.setBorder(BorderFactory.createTitledBorder(PluginServices.getText(this,"Dat_nMeridian")));
91
                /*Panel que contiene los datos del Datum*/
92
                pDatum.setLayout(new GridBagLayout());
93
                GridBagConstraints z=new GridBagConstraints();
94
                z.fill=GridBagConstraints.BOTH;
95
                z.anchor=GridBagConstraints.WEST;
96
                z.insets=new Insets(3,3,3,3);
97
                z.gridx=0;
98
                z.gridy=0;
99
                pDatum.add(getLblDatum(),z);
100
                z.gridwidth=3;
101
                z.gridx=0;
102
                z.gridy=1;
103
                pDatum.add(getTxtDatum(),z);
104
                z.gridwidth=1;
105
                z.gridx=3;
106
                z.gridy=1;
107
                pDatum.add(getBtnImportDatum(),z);
108
                
109
                /*Panel que contiene los datos del Elipsoide*/
110
                pElipsoide.setLayout(new GridBagLayout());
111
                GridBagConstraints b=new GridBagConstraints();
112
                b.fill=GridBagConstraints.BOTH;
113
                b.anchor=GridBagConstraints.WEST;
114
                b.insets=new Insets(3,3,3,3);
115
                
116
                b.gridx=0;
117
                b.gridy=0;
118
                b.gridwidth=2;
119
                pElipsoide.add(getLblElipsoide(),b);
120
                
121
                b.gridx=0;
122
                b.gridwidth=3;
123
                b.gridy=1;
124
                pElipsoide.add(getTxtElipsoide(),b);
125
                b.gridwidth=1;
126
                b.gridx=3;
127
                b.gridy=1;
128
                pElipsoide.add(getBtnImportElipsoide(),b);
129
                b.gridx=1;
130
                b.gridy=2;
131
                pElipsoide.add(getRbSemMay(),b);
132
                b.gridx=2;
133
                b.gridy=2;
134
                pElipsoide.add(getTxtSemMay(),b);
135
                b.gridx=3;
136
                b.gridy=2;
137
                pElipsoide.add(getCbSemMay(),b);
138
                b.gridx=1;
139
                b.gridy=3;
140
                pElipsoide.add(getRbSemMen(),b);
141
                b.gridx=2;
142
                b.gridy=3;
143
                pElipsoide.add(getTxtSemMen(),b);
144
                b.gridx=3;
145
                b.gridy=3;
146
                pElipsoide.add(getCbSemMen(),b);
147
                b.gridx=1;
148
                b.gridy=4;
149
                pElipsoide.add(getRbInvF(),b);
150
                b.gridx=2;
151
                b.gridy=4;
152
                pElipsoide.add(getTxtInvF(),b);
153
                b.gridx=3;
154
                b.gridy=4;
155
                pElipsoide.add(getCbInvF(),b);
156
                /*Agrupar los Radio Buttoms*/
157
                agruparRadioButtons();
158
        
159
                
160
                /*Panel que contiene los datos del Meridiano*/
161
                pMeridian.setLayout(new GridBagLayout());
162
                GridBagConstraints c=new GridBagConstraints();
163
                c.fill=GridBagConstraints.BOTH;
164
                c.insets=new Insets(3,3,3,3);
165
                c.anchor=GridBagConstraints.WEST;
166
                c.gridx=0;
167
                c.gridy=0;
168
                pMeridian.add(getLblMeridian(),c);
169
                c.gridx=0;
170
                c.gridwidth=3;
171
                c.gridy=1;
172
                pMeridian.add(getTxtMeridian(),c);
173
                c.gridwidth=1;
174
                c.gridx=3;
175
                c.gridy=1;
176
                pMeridian.add(getBtnImportMeridian(),c);
177
                c.gridx=0;
178
                c.gridy=2;
179
                pMeridian.add(getLblLong(),c);
180
                c.gridx=1;
181
                c.gridy=2;
182
                c.gridwidth=2;
183
                pMeridian.add(getTxtLong(),c);
184
                c.gridwidth=1;
185
                c.gridx=3;
186
                c.gridy=2;
187
                pMeridian.add(getCbLong(),c);
188

    
189
                pMain.add(pDatum,BorderLayout.NORTH);
190
                pMain.add(pElipsoide,BorderLayout.CENTER);
191
                pMain.add(pMeridian,BorderLayout.SOUTH);
192
                this.add(pMain,BorderLayout.CENTER);
193
                
194
        }
195
        /**
196
         * Inicializa el bot?n Importar del datum
197
         * @return
198
         */
199
        public JButton getBtnImportDatum() {
200
                if(btnImportDatum==null){
201
                        btnImportDatum=new JButton();
202
                        btnImportDatum.setText(PluginServices.getText(this, "Dat_Importar"));
203
                        btnImportDatum.setIcon(imodify);
204
                        btnImportDatum.addActionListener(this);
205
                }
206
                return btnImportDatum;
207
        }
208
        /**
209
         * Inicializa el bot?n Importar del Elipsoide
210
         * @return
211
         */
212
        public JButton getBtnImportElipsoide() {
213
                if(btnImportElipsoide==null){
214
                        btnImportElipsoide=new JButton();
215
                        btnImportElipsoide.setText(PluginServices.getText(this, "Dat_Importar"));
216
                        btnImportElipsoide.setIcon(imodify);
217
                        btnImportElipsoide.addActionListener(this);
218
                }
219
                return btnImportElipsoide;
220
        }
221
        /**
222
         * Inicializa el bot?n Importar del Meridiano
223
         * @return
224
         */
225
        public JButton getBtnImportMeridian() {
226
                if(btnImportMeridian==null){
227
                        btnImportMeridian=new JButton();
228
                        btnImportMeridian.setText(PluginServices.getText(this, "Dat_Importar"));
229
                        btnImportMeridian.setIcon(imodify);
230
                        btnImportMeridian.addActionListener(this);
231
                }
232
                return btnImportMeridian;
233
        }
234
        /**
235
         * Inicializa el Combo box con las unidades de Inverse Flat
236
         * @return
237
         */
238
        public JComboBox getCbInvF() {
239
                if (cbInvF==null){
240
                        cbInvF=new JComboBox(obtenerItemsUnidades());
241
                        /*Seleccionar un item por defecto*/
242
                        cbInvF.setSelectedIndex(0);
243
                        cbInvF.addActionListener(this);
244
                }
245
                return cbInvF;
246
        }
247
        /**
248
         * Inicializa el Combo box con las unidades de Longitud
249
         * @return
250
         */
251
        public JComboBox getCbLong() {
252
                if (cbLong==null){
253
                        cbLong=new JComboBox(obtenerItemsUnidades());
254
                        /*Seleccionar un item por defecto*/
255
                        cbLong.setSelectedIndex(0);
256
                        cbLong.addActionListener(this);
257
                }
258
                return cbLong;
259
        }
260
        /**
261
         * Inicializa el Combo box con las unidades de Semieje Mayor
262
         * @return
263
         */
264
        public JComboBox getCbSemMay() {
265
                if (cbSemMay==null){
266
                        cbSemMay=new JComboBox(obtenerItemsUnidades());
267
                        /*Seleccionar un item por defecto*/
268
                        cbSemMay.setSelectedIndex(0);
269
                        cbSemMay.addActionListener(this);
270
                }
271
                return cbSemMay;
272
        }
273
        /**
274
         * Inicializa el Combo box con las unidades de Semieje Menor
275
         * @return
276
         */
277
        public JComboBox getCbSemMen() {
278
                if (cbSemMen==null){
279
                        cbSemMen=new JComboBox(obtenerItemsUnidades());
280
                        /*Seleccionar un item por defecto*/
281
                        cbSemMen.setSelectedIndex(0);
282
                        cbSemMen.addActionListener(this);
283
                }
284
                return cbSemMen;
285
        }
286
        /*
287
         * Accede al la base de datos y obtiene los items de
288
         * los combobox
289
         * @return
290
         */
291
        private String[] obtenerItemsUnidades(){
292
                //TODO: Obtener los items del combo de la base de datos
293
                String items[];
294
                items=new String[3];
295
                items[0]="Metros";
296
                items[1]="Grados";
297
                items[2]="degree, minute hemisphere";
298
                
299
                return items;
300
        }
301
        /**
302
         * Inicializa el JLabel Datum
303
         * @return
304
         */
305
        public JLabel getLblDatum() {
306
                if (lblDatum==null){
307
                        lblDatum=new JLabel();
308
                        lblDatum.setText(PluginServices.getText(this,"Dat_Datum"));
309
                }
310
                return lblDatum;
311
        }
312
        /**
313
         * Inicializa el JLabel Elipsoide
314
         * @return
315
         */
316
        public JLabel getLblElipsoide() {
317
                if (lblElipsoide==null){
318
                        lblElipsoide=new JLabel();
319
                        lblElipsoide.setText(PluginServices.getText(this,"Dat_Elips"));
320
                        //lblElipsoide.setText("Introduce el Elipsoide");
321
                }
322
                return lblElipsoide;
323
        }
324

    
325
        /**
326
         * Inicializa el JLabel Longitud
327
         * @return
328
         */
329
        public JLabel getLblLong() {
330
                if (lblLong==null){
331
                        lblLong=new JLabel();
332
                        lblLong.setText(PluginServices.getText(this,"Dat_Long"));
333
                }
334
                return lblLong;
335
        }
336
        /**
337
         * Inicializa el JLabel Meridiano
338
         * @return
339
         */
340
        public JLabel getLblMeridian() {
341
                if (lblMeridian==null){
342
                        lblMeridian=new JLabel();
343
                        lblMeridian.setText(PluginServices.getText(this,"Dat_Meridian"));
344
                }
345
                return lblMeridian;
346
        }
347

    
348
        
349
        /**
350
         * Inicializa el radio button  Inverse Flat del elipsoide
351
         * @return
352
         */
353
        public JRadioButton getRbInvF() {
354
                if(rbInvF==null){
355
                        rbInvF=new JRadioButton();
356
                        rbInvF.setToolTipText(PluginServices.getText(this,"Dat_InvFToolTipText"));
357
                        rbInvF.setText(PluginServices.getText(this,"Dat_InvF"));
358
                        rbInvF.addActionListener(this);
359
                }
360
                return rbInvF;
361
        }
362
        
363
        /**
364
         * Inicializa el radio button Semieje Mayor del elipsoide
365
         * @return
366
         */
367
        public JRadioButton getRbSemMay() {
368
                if(rbSemMay==null){
369
                        rbSemMay=new JRadioButton();
370
                        rbSemMay.setToolTipText(PluginServices.getText(this,"Dat_SemMayToolTipText"));
371
                        rbSemMay.setText(PluginServices.getText(this,"Dat_SemMay"));
372
                        rbSemMay.addActionListener(this);
373
                }
374
                return rbSemMay;
375
        }
376

    
377
        /**
378
         * Inicializa el radio Button del Semieje Menor del elipsoide
379
         * @return
380
         */
381
        public JRadioButton getRbSemMen() {
382
                if(rbSemMen==null){
383
                        rbSemMen=new JRadioButton();
384
                        rbSemMen.setToolTipText(PluginServices.getText(this,"Dat_SemMenToolTipText"));                        
385
                        rbSemMen.setText(PluginServices.getText(this,"Dat_SemMen"));
386
                        rbSemMen.addActionListener(this);
387
                }
388
                return rbSemMen;
389
        }
390

    
391
        /**
392
         * Agrupa los Radio Button de los par?metros del elipsoide
393
         * 
394
         */
395
        private void agruparRadioButtons() {
396
                if(groupRadioButton==null){
397
                        groupRadioButton=new ButtonGroup();
398
                        /*Agrupar los radio Buttons*/
399
                        groupRadioButton.add(getRbSemMay());
400
                        groupRadioButton.add(getRbSemMen());
401
                        groupRadioButton.add(getRbInvF());
402
                        /*Selecciona por defecto el semieje mayor*/
403
                        getRbSemMay().setSelected(true);
404
                }
405
        }
406
        /**
407
         * Inicializa el cuadro de texto que contiene el datum
408
         * @return
409
         */
410
        public JTextField getTxtDatum() {
411
                if (txtDatum==null){
412
                        txtDatum=new JTextField();
413
                        bigSize.height=txtDatum.getPreferredSize().height;
414
                        txtDatum.setPreferredSize(bigSize);
415
                        txtDatum.addActionListener(this);
416
                }
417
                return txtDatum;
418
        }
419
        /**
420
         * Inicializa el cuadro de texto que contiene el elipsoide
421
         * @return
422
         */
423
        public JTextField getTxtElipsoide() {
424
                if (txtElipsoide==null){
425
                        txtElipsoide=new JTextField();
426
                        bigSize.height=txtElipsoide.getPreferredSize().height;
427
                        txtElipsoide.setPreferredSize(bigSize);
428
                        txtElipsoide.addActionListener(this);
429
                }
430
                return txtElipsoide;
431
        }
432
        /**
433
         * Inicializa el cuadro de texto que contiene el Inverse Flat del Elipsoide
434
         * @return
435
         */
436
        public JTextField getTxtInvF() {
437
                if (txtInvF==null){
438
                        txtInvF=new JTextField();
439
                        smallSize.height=txtInvF.getPreferredSize().height;
440
                        txtInvF.setPreferredSize(smallSize);
441
                        txtInvF.addActionListener(this);
442
                }
443
                return txtInvF;
444
        }
445
        /**
446
         * Inicializa el cuadro de texto que contiene el dato de longitud del
447
         * meridiano
448
         * @return
449
         */
450
        public JTextField getTxtLong() {
451
                if (txtLong==null){
452
                        txtLong=new JTextField();
453
                        smallSize.height=txtLong.getPreferredSize().height;
454
                        txtLong.setPreferredSize(smallSize);
455
                        txtLong.addActionListener(this);
456
                }
457
                return txtLong;
458
        }
459
        /**
460
         * Inicializa el cuadro de texto que contiene el meridiano
461
         * @return
462
         */
463
        public JTextField getTxtMeridian() {
464
                if (txtMeridian==null){
465
                        txtMeridian=new JTextField();
466
                        bigSize.height=txtMeridian.getPreferredSize().height;
467
                        txtMeridian.setPreferredSize(bigSize);
468
                        txtMeridian.addActionListener(this);
469
                }
470
                return txtMeridian;
471
        }
472
        /**
473
         * Inicializa el cuadro de texto que contiene el Semieje Mayor
474
         * del elipsoide
475
         * @return
476
         */
477
        public JTextField getTxtSemMay() {
478
                if (txtSemMay==null){
479
                        txtSemMay=new JTextField();
480
                        smallSize.height=txtSemMay.getPreferredSize().height;
481
                        txtSemMay.setPreferredSize(smallSize);
482
                        txtSemMay.addActionListener(this);
483
                }
484
                return txtSemMay;
485
        }
486
        /**
487
         * Inicializa el cuadro de texto que contiene el semieje
488
         * menor del elipsoide
489
         * @return
490
         */
491
        public JTextField getTxtSemMen() {
492
                if (txtSemMen==null){
493
                        txtSemMen=new JTextField();
494
                        smallSize.height=txtSemMen.getPreferredSize().height;
495
                        txtSemMen.setPreferredSize(smallSize);
496
                        txtSemMen.addActionListener(this);
497
                }
498
                return txtSemMen;
499
        }
500
        /*
501
         * Manejador de eventos de los controles
502
         */
503
        public void actionPerformed(ActionEvent e) {
504
        
505
                if(e.getSource().equals(getTxtDatum())){
506
                        System.out.println("txt Datum");
507
                }else if(e.getSource().equals(getTxtElipsoide())){
508
                        System.out.println("txt Elipsoide");
509
                }else if(e.getSource().equals(getTxtInvF())){
510
                        System.out.println("txt Inverse Flat");
511
                }else if(e.getSource().equals(getTxtSemMay())){
512
                        System.out.println("txt Semieje Mayor");
513
                }else if(e.getSource().equals(getTxtSemMen())){
514
                        System.out.println("txt Semieje Menor");
515
                }else if(e.getSource().equals(getTxtLong())){
516
                        System.out.println("txt Longitud");
517
                }else if(e.getSource().equals(getTxtMeridian())){
518
                        System.out.println("txt Meridiano");
519
                }else if(e.getSource().equals(getCbInvF())){
520
                        System.out.println("combo box Inverse Flat");
521
                }else if(e.getSource().equals(getCbLong())){
522
                        System.out.println("combo box Longitud");
523
                }else if(e.getSource().equals(getCbSemMay())){
524
                        System.out.println("combo box Semieje Mayor");
525
                }else if(e.getSource().equals(getCbSemMen())){
526
                        System.out.println("combo box Semieje Menor");
527
                }else if(e.getSource().equals(getBtnImportDatum())){
528
                        System.out.println("Importar Datum");
529
                }else if(e.getSource().equals(getBtnImportElipsoide())){
530
                        System.out.println("Importar Elipsoide");
531
                }else if(e.getSource().equals(getBtnImportMeridian())){
532
                        System.out.println("Importar Meridiano");
533
                }else if(e.getSource().equals(getRbInvF())){
534
                        System.out.println("opcion Inverse Flat");
535
                        /*Si selecciona esta opci?n se fija este 
536
                        par?metro y no se puede modificar el txt*/
537
                        getTxtSemMay().setEditable(true);
538
                        getTxtSemMen().setEditable(true);
539
                        getTxtInvF().setEditable(false);
540
                        
541
                }else if(e.getSource().equals(getRbSemMay())){
542
                        System.out.println("opcion Semieje Mayor");
543
                        /*Si selecciona esta opci?n se fija este 
544
                        par?metro y no se puede modificar el txt*/
545
                        getTxtSemMay().setEditable(false);
546
                        getTxtSemMen().setEditable(true);
547
                        getTxtInvF().setEditable(true);
548
                }else if(e.getSource().equals(getRbSemMen())){
549
                        System.out.println("opcion Semieje Menor");
550
                        /*Si selecciona esta opci?n se fija este 
551
                        par?metro y no se puede modificar el txt*/
552
                        getTxtSemMay().setEditable(true);
553
                        getTxtSemMen().setEditable(false);
554
                        getTxtInvF().setEditable(true);
555
                }
556
                
557
        }
558

    
559

    
560
        
561
}