Statistics
| Revision:

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

History | View | Annotate | Download (6.98 KB)

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

    
3

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

    
13
import javax.swing.ButtonGroup;
14
import javax.swing.JButton;
15
import javax.swing.JLabel;
16
import javax.swing.JPanel;
17
import javax.swing.JRadioButton;
18
import javax.swing.JScrollPane;
19
import javax.swing.JTextArea;
20
import javax.swing.border.TitledBorder;
21

    
22

    
23
/**
24
 * Panel de definici?n del Crs por el usuario
25
 * 
26
 *  @author Luisa Marina Fernandez Ruiz (luisam.fernandez@uclm.es)
27
 *
28
 */
29
public class DefCrsUsr extends JPanel implements ActionListener{
30
        private JPanel panel;
31
        //jbuton definido por gvsig
32
        private JButton btnCrsExistente;
33
        private JLabel lblCrs;
34
        private JRadioButton rbCrsExistente;
35
        private JRadioButton rbNuevoCrs;
36
        private JRadioButton rbCadenaWkt;
37
        private ButtonGroup crsGroup;
38
        private JTextArea txtAreaWkt;
39
        private JButton btnImportarWkt;
40
        private JScrollPane scrollWkt;
41
        
42
        private int width=380;
43
        //290
44
        
45
        private static final long serialVersionUID = 1L;
46

    
47
        public DefCrsUsr() {
48
                super();
49
                initialize();
50
                
51
        }
52

    
53
/*
54
 * Inicializa el panel de Definici?n del Crs por el usuario
55
 */
56
        private void initialize() {
57
                this.setLayout(new BorderLayout());
58
                this.add(getPanel(),BorderLayout.CENTER);
59
                habilitarWkt(false);
60
                        
61
        }
62
        
63
        /*
64
         * Agrega todos los elementos
65
         */
66
        public JPanel getPanel() {
67
                if(panel==null){
68
                        panel=new JPanel();
69
                        panel.setBorder(new TitledBorder("Definici?n del Crs por el usuario"));
70
                        panel.setLayout(new GridBagLayout());
71
                        GridBagConstraints c = new GridBagConstraints();
72
                        c.fill = GridBagConstraints.BOTH;
73
                        c.weighty=0.1;
74
                        //c.ipady=100;
75
                        //establece el espacio superior, inferior, izquierdo y derecho
76
                        //entre cada componente
77
                        c.insets=new Insets(8,8,8,8);
78
                        //c.ipady =60;      //make this component tall
79
                        c.weightx = 0.75;
80
                        c.gridx = 0;
81
                        c.gridy = 0;
82
                        panel.add(getRbCrsExistente(),c);
83
                        c.weightx = 0.25;
84
                        c.gridx = 1;
85
                        c.gridy = 0;
86
                        panel.add(getLblCrs(),c);
87
                        
88
                        c.fill = GridBagConstraints.EAST;
89
                        c.weightx=0.0;
90
                        c.gridx = 2;
91
                        c.gridy = 0;
92
                        panel.add(getBtnCrsExistente(),c);
93
                        
94
                        c.fill = GridBagConstraints.BOTH;
95
                        c.weightx = 0.75;
96
                        c.gridx = 0;
97
                        c.gridy = 1;
98
                        panel.add(getRbNuevoCrs(),c);
99
        
100
                        c.gridx = 0;
101
                        c.gridy = 2;
102
                        panel.add(getRbCadenaWkt(),c);
103
//                        Agrupa los botones de opcion
104
                        agruparRadioButtons();
105
                        //Selecci?n por defecto
106
                        getRbCrsExistente().setSelected(true);
107
                        
108
                        c.gridx=2;
109
                    c.gridy=2;
110
                    c.weightx=0.0;
111
                    c.weighty=0.0;
112
                    c.fill = GridBagConstraints.NONE;
113
                    panel.add(getBtnImportarWkt(),c);
114
                                    
115
                        //vertical
116
                        c.fill=GridBagConstraints.VERTICAL;
117
                        c.anchor=GridBagConstraints.EAST;
118
                        c.gridx = 0;
119
                        c.gridy = 4;
120
                        c.gridwidth=3;
121
                        c.weighty=0.75;
122
                        panel.add(getScrollWkt(),c);
123
                        
124
                        
125
                }
126
                return panel;
127
        }
128
        
129
        /*
130
         * Agrupa los botones de opci?n
131
         */
132
        private void agruparRadioButtons() {
133
                if (crsGroup==null){
134
                                crsGroup=new ButtonGroup();
135
                                //Agrupar los botones de opcion
136
                                crsGroup.add(getRbCrsExistente());
137
                                crsGroup.add(getRbNuevoCrs());
138
                                crsGroup.add(getRbCadenaWkt());
139
                        }
140
                        
141
        }
142

    
143
        public JRadioButton getRbCadenaWkt() {
144
                if (rbCadenaWkt==null){
145
                        //TODO:Comprobar las traducciones
146
                        //rbCadenaWkt=new JRadioButton(PluginServices.getText(this,"jpDefCrsUsr_wkt"));
147
                        rbCadenaWkt=new JRadioButton("Crear de una cadena wkt: ");
148
                        rbCadenaWkt.addActionListener(this);
149
                }
150
                return rbCadenaWkt;
151
        }
152

    
153
        public JRadioButton getRbCrsExistente() {
154
                if (rbCrsExistente==null){
155
//                        TODO:Comprobar las traducciones
156
                        //rbCrsExistente=new JRadioButton(PluginServices.getText(this,"jpDefCrsUsr_existente"));
157
                        rbCrsExistente=new JRadioButton("CRS Existente");
158
                        rbCrsExistente.addActionListener(this);
159
                }
160
                return rbCrsExistente;
161
        }
162
        
163
        public JRadioButton getRbNuevoCrs() {
164
                if (rbNuevoCrs==null){
165
//                        TODO:Comprobar las traducciones
166
                        //rbNuevoCrs=new JRadioButton(PluginServices.getText(this,"jpDefCrsUsr_nuevo"));
167
                        rbNuevoCrs=new JRadioButton("Crear un nuevo Crs");
168
                        rbNuevoCrs.addActionListener(this);
169
                }
170
                return rbNuevoCrs;
171
        }
172

    
173

    
174
        public JLabel getLblCrs() {
175
                if (lblCrs==null){
176
                        lblCrs=new JLabel("EPSG: 23030");
177
                }
178
                return lblCrs;
179
        }
180

    
181
    /**
182
     * Activa o desactiva el bot?n y el cuadro de texto
183
     * @param b Si es False--> deshabilita
184
     */
185
        private void habilitarExistente(boolean b) {
186
                        getBtnCrsExistente().setEnabled(b);
187
                        getLblCrs().setEnabled(b);
188
        }
189
        private void habilitarWkt(boolean b){
190
                        getBtnImportarWkt().setEnabled(b);
191
                        getTxtAreaWkt().setEnabled(b);
192
        }
193
        /**
194
         * Inicilizar el boton importar la cadena WKT
195
         * @return
196
         */
197
        public JButton getBtnImportarWkt() {
198
                if(btnImportarWkt==null){
199
                        btnImportarWkt=new JButton();
200
                        btnImportarWkt.setText("...");
201
                        btnImportarWkt.addActionListener(this);
202
                        btnImportarWkt.setToolTipText("Importar cadena Wkt");
203
                }
204
                return btnImportarWkt;
205
        }
206
        public JButton getBtnCrsExistente() {
207
                if (btnCrsExistente==null){
208
                        btnCrsExistente=new JButton("...");
209
                        Dimension d=new Dimension(btnCrsExistente.getPreferredSize());
210
                        d.width=100;
211
                        btnCrsExistente.setSize(d);
212
                        btnCrsExistente.addActionListener(this);
213
                        btnCrsExistente.setToolTipText("Seleccionar Crs Existente");
214
                }
215
                return btnCrsExistente;
216
        }
217
        /**
218
         * Inicializar el area de texto donde se introduce la cadena WKT
219
         * @return
220
         */
221
        public JTextArea getTxtAreaWkt() {
222
                if(txtAreaWkt==null){
223
                        txtAreaWkt=new JTextArea();
224
                        txtAreaWkt.setLineWrap(true);
225
                        txtAreaWkt.setWrapStyleWord(true);
226
                        Dimension d=new Dimension(txtAreaWkt.getPreferredSize());
227
                        d.width=width;
228
                        txtAreaWkt.setSize(d);
229
                }
230
                return txtAreaWkt;
231
        }
232
        /*
233
         *Crea un panel de desplazamineto en el que se 
234
         *agrega el area de texto para que ?ste tenga barras de desplazamiento 
235
         */
236
        public JScrollPane getScrollWkt() {
237
                if (scrollWkt==null){
238
                        scrollWkt=new JScrollPane();
239
                        scrollWkt.setViewportView(getTxtAreaWkt());
240
                        scrollWkt.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
241
                        Dimension d=new Dimension(txtAreaWkt.getPreferredSize());
242
                        d.width=width;
243
                        scrollWkt.setSize(d);
244
                }
245
                return scrollWkt;
246
        }
247

    
248
        public void actionPerformed(ActionEvent e) {
249
                 if(e.getSource().equals(getRbCrsExistente())){
250
                 System.out.println("Has seleccionado: A partir de un CRS existente");
251
                 habilitarExistente(true);
252
                 habilitarWkt(false);
253
         }else  if(e.getSource().equals(getRbNuevoCrs())){
254
                 System.out.println("Has seleccionado: A partir de un nuevo CRS");
255
                 habilitarExistente(false);
256
                 habilitarWkt(false);
257
         }else  if(e.getSource().equals(getRbCadenaWkt())){
258
                 System.out.println("Has seleccionado: Crear WKT");
259
                 habilitarExistente(false);
260
                 habilitarWkt(true);
261
         }else if(e.getSource().equals(getBtnCrsExistente())){
262
                 System.out.println("boton Crs Existente");
263
                 
264
         }else if(e.getSource().equals(getBtnImportarWkt())){
265
                 System.out.println("Boton Importar Wkt");
266
                 
267
         }
268
        }
269

    
270
}