Statistics
| Revision:

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

History | View | Annotate | Download (6.66 KB)

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

    
3

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

    
12
import javax.swing.ButtonGroup;
13
import javax.swing.JButton;
14
import javax.swing.JLabel;
15
import javax.swing.JPanel;
16
import javax.swing.JRadioButton;
17
import javax.swing.JScrollPane;
18
import javax.swing.JTextArea;
19
import com.iver.andami.PluginServices;
20

    
21

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

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

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

    
141
        public JRadioButton getRbCadenaWkt() {
142
                if (rbCadenaWkt==null){
143
                        rbCadenaWkt=new JRadioButton(PluginServices.getText(this,"DefCrsUsr_wkt"));
144
                        rbCadenaWkt.addActionListener(this);
145
                }
146
                return rbCadenaWkt;
147
        }
148

    
149
        public JRadioButton getRbCrsExistente() {
150
                if (rbCrsExistente==null){
151
                        rbCrsExistente=new JRadioButton(PluginServices.getText(this,"DefCrsUsr_existente"));
152
                        rbCrsExistente.addActionListener(this);
153
                }
154
                return rbCrsExistente;
155
        }
156
        
157
        public JRadioButton getRbNuevoCrs() {
158
                if (rbNuevoCrs==null){
159
                        rbNuevoCrs=new JRadioButton(PluginServices.getText(this,"DefCrsUsr_nuevo"));
160
                        rbNuevoCrs.addActionListener(this);
161
                }
162
                return rbNuevoCrs;
163
        }
164

    
165

    
166
        public JLabel getLblCrs() {
167
                if (lblCrs==null){
168
                        lblCrs=new JLabel("EPSG: 23030");
169
                }
170
                return lblCrs;
171
        }
172

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

    
240
        public void actionPerformed(ActionEvent e) {
241
                 if(e.getSource().equals(getRbCrsExistente())){
242
                 System.out.println("Has seleccionado: A partir de un CRS existente");
243
                 habilitarExistente(true);
244
                 habilitarWkt(false);
245
         }else  if(e.getSource().equals(getRbNuevoCrs())){
246
                 System.out.println("Has seleccionado: A partir de un nuevo CRS");
247
                 habilitarExistente(false);
248
                 habilitarWkt(false);
249
         }else  if(e.getSource().equals(getRbCadenaWkt())){
250
                 System.out.println("Has seleccionado: Crear WKT");
251
                 habilitarExistente(false);
252
                 habilitarWkt(true);
253
         }else if(e.getSource().equals(getBtnCrsExistente())){
254
                 System.out.println("boton Crs Existente");
255
                 
256
         }else if(e.getSource().equals(getBtnImportarWkt())){
257
                 System.out.println("Boton Importar Wkt");
258
                 
259
         }
260
        }
261

    
262
}