Statistics
| Revision:

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

History | View | Annotate | Download (16 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.utiles.swing.JComboBox;
21

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

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

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

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

    
340
        /**
341
         * Inicializa el JLabel Longitud
342
         * @return
343
         */
344
        public JLabel getLblLong() {
345
                if (lblLong==null){
346
                        lblLong=new JLabel();
347
                        //TODO: Comprobar que funcionan las traducciones
348
                        //lblLong.setText(PluginServices.getText(this,"jpDat_Long"));
349
                        lblLong.setText("Longitud ");
350
                }
351
                return lblLong;
352
        }
353
        /**
354
         * Inicializa el JLabel Meridiano
355
         * @return
356
         */
357
        public JLabel getLblMeridian() {
358
                if (lblMeridian==null){
359
                        lblMeridian=new JLabel();
360
                        //TODO: Comprobar que funcionan las traducciones
361
                        //lblMeridian.setText(PluginServices.getText(this,"jpDat_Meridian"));
362
                        lblMeridian.setText("Introduce el Meridiano");
363
                }
364
                return lblMeridian;
365
        }
366

    
367
        
368
        /**
369
         * Inicializa el radio button  Inverse Flat del elipsoide
370
         * @return
371
         */
372
        public JRadioButton getRbInvF() {
373
                if(rbInvF==null){
374
                        rbInvF=new JRadioButton();
375
                        //TODO: Comprobar que funcionan las traducciones
376
                        //rbInvF.setToolTipText(PluginServices.getText(this,"jpDat_InvFToolTipText"));
377
                        rbInvF.setToolTipText("Fijar el par?metro Inverse Flat");
378
                        //rbInvF.setText(PluginServices.getText(this,"jpDat_InvF"));
379
                        rbInvF.setText("Inverse Flat");
380
                        rbInvF.addActionListener(this);
381
                }
382
                return rbInvF;
383
        }
384
        
385
        /**
386
         * Inicializa el radio button Semieje Mayor del elipsoide
387
         * @return
388
         */
389
        public JRadioButton getRbSemMay() {
390
                if(rbSemMay==null){
391
                        rbSemMay=new JRadioButton();
392
//                        TODO: Comprobar que funcionan las traducciones
393
                        //rbSemMay.setToolTipText(PluginServices.getText(this,"jpDat_SemMayToolTipText"));
394
                        rbSemMay.setToolTipText("Fijar el par?metro Semieje Mayor");
395
                        //rbSemMay.setText(PluginServices.getText(this,"jpDat_SemMay"));
396
                        rbSemMay.setText("Semieje Mayor");
397
                        rbSemMay.addActionListener(this);
398
                }
399
                return rbSemMay;
400
        }
401

    
402
        /**
403
         * Inicializa el radio Button del Semieje Menor del elipsoide
404
         * @return
405
         */
406
        public JRadioButton getRbSemMen() {
407
                if(rbSemMen==null){
408
                        rbSemMen=new JRadioButton();
409
//                        TODO: Comprobar que funcionan las traducciones
410
                        //rbSemMen.setToolTipText(PluginServices.getText(this,"jpDat_SemMenToolTipText"));
411
                        rbSemMen.setToolTipText("Fijar el par?metro Semieje Menor");                        
412
                        //rbSemMen.setText(PluginServices.getText(this,"jpDat_SemMen"));
413
                        rbSemMen.setText("Semieje Menor");
414
                        rbSemMen.addActionListener(this);
415
                }
416
                return rbSemMen;
417
        }
418

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

    
587

    
588
        
589
}