Statistics
| Revision:

svn-gvsig-desktop / branches / F2 / extensions / extJCRS / src / org / gvsig / crs / gui / panels / wizard / DefinirDatum.java @ 10790

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

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

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

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

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

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

    
557

    
558
        
559
}