Statistics
| Revision:

svn-gvsig-desktop / trunk / extensions / extRasterTools-SE / src / org / gvsig / rastertools / clipping / panels / ClippingOptionsPanel.java @ 16167

History | View | Annotate | Download (9.32 KB)

1
/* gvSIG. Sistema de Informaci?n Geogr?fica de la Generalitat Valenciana
2
 *
3
 * Copyright (C) 2005 IVER T.I. and Generalitat Valenciana.
4
 *
5
 * This program is free software; you can redistribute it and/or
6
 * modify it under the terms of the GNU General Public License
7
 * as published by the Free Software Foundation; either version 2
8
 * of the License, or (at your option) any later version.
9
 *
10
 * This program is distributed in the hope that it will be useful,
11
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13
 * GNU General Public License for more details.
14
 *
15
 * You should have received a copy of the GNU General Public License
16
 * along with this program; if not, write to the Free Software
17
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
18
 */
19
package org.gvsig.rastertools.clipping.panels;
20

    
21
import java.awt.Dimension;
22
import java.awt.GridBagConstraints;
23
import java.awt.GridBagLayout;
24
import java.awt.Insets;
25
import java.awt.event.ActionEvent;
26
import java.awt.event.ActionListener;
27
import java.awt.event.ItemEvent;
28
import java.awt.event.ItemListener;
29

    
30
import javax.swing.JButton;
31
import javax.swing.JCheckBox;
32
import javax.swing.JFileChooser;
33
import javax.swing.JLabel;
34
import javax.swing.JPanel;
35
import javax.swing.JTextField;
36

    
37
import org.gvsig.rastertools.RasterModule;
38

    
39
import com.iver.andami.PluginServices;
40
import com.iver.cit.gvsig.addlayer.fileopen.FileOpenWizard;
41
/**
42
 * 
43
 * @version 25/09/2007
44
 * @author BorSanZa - Borja S?nchez Zamorano (borja.sanchez@iver.es)
45
 */
46
public class ClippingOptionsPanel extends JPanel implements ItemListener, ActionListener {
47
        private static final long serialVersionUID = 7299254074235648334L;
48
        private JPanel     jPNameFile           = null;
49
        private JPanel     jPNameDirectory      = null;
50
        private JCheckBox  jCheckBox            = null;
51
        private JCheckBox  jCheckLoadLayerInToc = null;
52
        private JButton    jBChooseDirectory    = null;
53
        private JLabel     jLabelDirectory      = null;
54
        private JCheckBox  jCheckSaveFile       = null;
55
        private JTextField filenameTextField    = null;
56
        private JTextField directoryTextField   = null;
57

    
58
  public ClippingOptionsPanel() {
59
          initialize();
60
  }
61
  
62
  private void initialize() {
63
          GridBagConstraints gridBagConstraints = null;
64

    
65
          setLayout(new GridBagLayout());
66

    
67
          gridBagConstraints = new java.awt.GridBagConstraints();
68
          gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
69
          gridBagConstraints.weightx = 1.0;
70
          gridBagConstraints.insets = new java.awt.Insets(5, 5, 2, 5);
71
          add(getJPNameFile(), gridBagConstraints);
72

    
73
          gridBagConstraints = new java.awt.GridBagConstraints();
74
          gridBagConstraints.gridx = 0;
75
          gridBagConstraints.gridy = 1;
76
          gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
77
          gridBagConstraints.insets = new java.awt.Insets(2, 5, 2, 5);
78
          add(getCbOneLyrPerBand(), gridBagConstraints);
79

    
80
          gridBagConstraints = new java.awt.GridBagConstraints();
81
          gridBagConstraints.gridx = 0;
82
          gridBagConstraints.gridy = 2;
83
          gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
84
          gridBagConstraints.insets = new java.awt.Insets(2, 5, 2, 5);
85
          //Preguntamos al acabar para que no nos peten la aplicaci?n 
86
          //add(getCbLoadLayerInToc(), gridBagConstraints);
87

    
88
          gridBagConstraints = new java.awt.GridBagConstraints();
89
          gridBagConstraints.gridx = 0;
90
          gridBagConstraints.gridy = 3;
91
          gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
92
          gridBagConstraints.insets = new java.awt.Insets(2, 5, 2, 5);
93
          add(getCbSaveFile(), gridBagConstraints);
94

    
95
          gridBagConstraints = new java.awt.GridBagConstraints();
96
          gridBagConstraints.gridx = 0;
97
          gridBagConstraints.gridy = 4;
98
          gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
99
          gridBagConstraints.insets = new java.awt.Insets(2, 5, 5, 5);
100
          add(getJPNameDirectory(), gridBagConstraints);
101

    
102
          setNewLayerText();
103
  }
104

    
105
        /**
106
         * This method initializes jPNameFile
107
         * @return javax.swing.JPanel
108
         */
109
        private JPanel getJPNameFile() {
110
                if (jPNameFile == null) {
111
                        jPNameFile = new JPanel();
112
                        jPNameFile.add(new JLabel(PluginServices.getText(this, "nombre_capas") + ":"));
113
                        jPNameFile.add(getFilenameTextField());
114
                }
115
                return jPNameFile;
116
        }
117
        
118
        /**
119
         * This method initializes jPNameFile
120
         * @return javax.swing.JPanel
121
         */
122
        private JPanel getJPNameDirectory() {
123
                if (jPNameDirectory == null) {
124
                        GridBagConstraints gridBagConstraints = null;
125
                        jPNameDirectory = new JPanel();
126

    
127
                        jPNameDirectory.setLayout(new GridBagLayout());
128

    
129
                        gridBagConstraints = new GridBagConstraints();
130
                        gridBagConstraints.insets = new Insets(2, 5, 5, 2);
131
                        jPNameDirectory.add(getJLabelDirectory(), gridBagConstraints);
132

    
133
                        gridBagConstraints = new java.awt.GridBagConstraints();
134
                        gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
135
                        gridBagConstraints.weightx = 1.0;
136
                        gridBagConstraints.insets = new java.awt.Insets(2, 2, 5, 2);
137
                        jPNameDirectory.add(getDirectoryTextField(), gridBagConstraints);
138

    
139
                        gridBagConstraints = new java.awt.GridBagConstraints();
140
                        gridBagConstraints.insets = new java.awt.Insets(2, 2, 5, 5);
141
                        jPNameDirectory.add(getJBChooseDirectory(), gridBagConstraints);
142

    
143
                        getJBChooseDirectory().addActionListener(this);
144
                }
145
                return jPNameDirectory;
146
        }
147
        
148
        /**
149
         * This method initializes jCheckLoadLayerInToc
150
         * @return javax.swing.JCheckBox
151
         */
152
        public JCheckBox getCbLoadLayerInToc() {
153
                if (jCheckLoadLayerInToc == null) {
154
                        jCheckLoadLayerInToc = new JCheckBox();
155
                        jCheckLoadLayerInToc.setText(PluginServices.getText(this, "cargar_en_toc"));
156
                        jCheckLoadLayerInToc.setSelected(true);
157
                        jCheckLoadLayerInToc.setEnabled(false);
158
                        jCheckLoadLayerInToc.addItemListener(this);
159
                }
160
                return jCheckLoadLayerInToc;
161
        }
162
        
163
        /**
164
         * This method initializes jCheckBox
165
         * @return javax.swing.JCheckBox
166
         */
167
        public JCheckBox getCbOneLyrPerBand() {
168
                if (jCheckBox == null) {
169
                        jCheckBox = new JCheckBox();
170
                        jCheckBox.setText(PluginServices.getText(this, "crear_1_capa_por_banda"));
171
                }
172
                return jCheckBox;
173
        }
174
        
175
        /**
176
         * Cada vez que cambia un checkbox de cargar en toc o guardar en fichero, nos
177
         * aseguramos de que no pueden estar las dos opciones desmarcadas
178
         */
179
        public void itemStateChanged(ItemEvent e) {
180
                getCbLoadLayerInToc().setEnabled(true);
181
                getCbSaveFile().setEnabled(true);
182
                if (getCbLoadLayerInToc().isSelected() && !getCbSaveFile().isSelected())
183
                        getCbLoadLayerInToc().setEnabled(false);
184
                if (!getCbLoadLayerInToc().isSelected() && getCbSaveFile().isSelected())
185
                        getCbSaveFile().setEnabled(false);
186

    
187
                getJBChooseDirectory().setEnabled(getCbSaveFile().isSelected());
188
                getDirectoryTextField().setEnabled(getCbSaveFile().isSelected());
189
                getJLabelDirectory().setEnabled(getCbSaveFile().isSelected());
190
        }
191
        
192
        private JButton getJBChooseDirectory() {
193
                if (jBChooseDirectory == null) {
194
                        jBChooseDirectory = new JButton(PluginServices.getText(this, "cambiar_ruta"));
195
                        jBChooseDirectory.setEnabled(false);
196
                }
197
                return jBChooseDirectory;
198
        }
199

    
200
        private JLabel getJLabelDirectory() {
201
                if (jLabelDirectory == null) {
202
                        jLabelDirectory = new JLabel(PluginServices.getText(this, "ruta") + ":");
203
                        jLabelDirectory.setEnabled(false);
204
                }
205
                return jLabelDirectory;
206
        }
207
        
208
        /**
209
         * This method initializes jCheckSaveFile
210
         *
211
         * @return javax.swing.JCheckBox
212
         */
213
        public JCheckBox getCbSaveFile() {
214
                if (jCheckSaveFile == null) {
215
                        jCheckSaveFile = new JCheckBox();
216
                        jCheckSaveFile.setText(PluginServices.getText(this, "guardar_en_disco"));
217
                        jCheckSaveFile.addItemListener(this);
218
                }
219
                return jCheckSaveFile;
220
        }
221
        
222
        /**
223
         * This method initializes filenameTextField
224
         *
225
         * @return javax.swing.JTextField
226
         */
227
        public JTextField getFilenameTextField() {
228
                if (filenameTextField == null) {
229
                        filenameTextField = new JTextField();
230
                        filenameTextField.setPreferredSize(new Dimension(150, filenameTextField.getPreferredSize().height));
231
                }
232
                return filenameTextField;
233
        }
234
        
235
        /**
236
         * This method initializes filenameTextField
237
         *
238
         * @return javax.swing.JTextField
239
         */
240
        public JTextField getDirectoryTextField() {
241
                if (directoryTextField == null) {
242
                        directoryTextField = new JTextField();
243
                        directoryTextField.setText(FileOpenWizard.getLastPath());
244
                        directoryTextField.setEditable(false);
245
                        directoryTextField.setEnabled(false);
246
                        directoryTextField.setPreferredSize(new Dimension(200, directoryTextField.getPreferredSize().height));
247
                }
248
                return directoryTextField;
249
        }
250
        
251
        /**
252
         * Accion que sucede cuando se pulsa el boton de cambiar directorio
253
         */
254
        public void actionPerformed(ActionEvent e) {
255
                JFileChooser chooser = new JFileChooser(FileOpenWizard.getLastPath());
256
                chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
257
                chooser.setDialogTitle(PluginServices.getText(this, "seleccionar_directorio"));
258

    
259
                if (chooser.showOpenDialog(this) != JFileChooser.APPROVE_OPTION)
260
                        return;
261
                String path = chooser.getSelectedFile().toString();
262
                FileOpenWizard.setLastPath(path);
263
                getDirectoryTextField().setText(path);
264
        }
265
        
266
        /**
267
         * Especificar el nombre de la nueva capa para el recuadro de texto asign?ndo
268
         * en cada llamada un nombre consecutivo.
269
         */
270
        public void setNewLayerText() {
271
                filenameTextField.setText("NewLayer_" + RasterModule.layerCount);
272
        }
273
}