Revision 29

View differences:

org.gvsig.derivedgeometries/trunk/org.gvsig.derivedgeometries/org.gvsig.derivedgeometries.swing/org.gvsig.derivedgeometries.swing.impl/src/main/java/org/gvsig/derivedgeometries/swing/impl/panels/DefaultLayerAndProcessSelectionPanel.java
11 11
import java.io.File;
12 12
import java.util.Vector;
13 13

  
14
import javax.swing.AbstractAction;
15 14
import javax.swing.JComponent;
16 15
import javax.swing.JFileChooser;
17 16
import javax.swing.JOptionPane;
18
import javax.swing.filechooser.FileFilter;
19 17

  
18
import org.apache.commons.io.FilenameUtils;
20 19
import org.slf4j.Logger;
21 20
import org.slf4j.LoggerFactory;
22 21

  
......
141 140

  
142 141
            public void layerAdded(LayerCollectionEvent e) {
143 142
                FLayer layer = e.getAffectedLayer();
144
                if(layer instanceof FLyrVect){
143
                if (layer instanceof FLyrVect) {
145 144
                    getLayersComboBox().addItem(layer);
146 145
                }
147 146
            }
......
159 158

  
160 159
            public void layerRemoved(LayerCollectionEvent e) {
161 160
                FLayer layer = e.getAffectedLayer();
162
                if(layer instanceof FLyrVect){
161
                if (layer instanceof FLyrVect) {
163 162
                    getLayersComboBox().removeItem(layer);
164 163
                }
165 164
            }
......
203 202
        getJButtonSelectPath().addActionListener(
204 203
            new java.awt.event.ActionListener() {
205 204

  
206
                @SuppressWarnings("serial")
207 205
                public void actionPerformed(java.awt.event.ActionEvent e) {
208
                    JFileChooser jfc = new JFileChooser();
206
                    ThreadSafeDialogsManager dlgManager =
207
                        ToolsSwingLocator.getThreadSafeDialogsManager();
209 208

  
210
                    // Removes the default choosable file filter
211
                    FileFilter[] filters = jfc.getChoosableFileFilters();
212

  
213
                    for (int i = 0; i < filters.length; i++)
214
                        jfc.removeChoosableFileFilter(filters[i]);
215

  
216
                    // Only SHP
217 209
                    I18nManager i18nManager = ToolsLocator.getI18nManager();
218
                    SimpleFileFilter filterSHP =
219
                        new SimpleFileFilter(SHAPE_EXTENSION, i18nManager
220
                            .getTranslation("shape_file") + " (*.shp)");
221
                    jfc.addChoosableFileFilter(filterSHP);
222
                    jfc.setFileFilter(filterSHP);
223 210

  
224
                    jfc.addActionListener(new AbstractAction() {
211
                    File[] files =
212
                        dlgManager.showChooserDialog(
213
                            "test",
214
                            JFileChooser.OPEN_DIALOG,
215
                            JFileChooser.FILES_ONLY,
216
                            false,
217
                            new File(System.getProperty("user.home")),
218
                            new SimpleFileFilter(SHAPE_EXTENSION, i18nManager
219
                                .getTranslation("shape_file") + " (*.shp)"),
220
                            true);
225 221

  
226
                        public void actionPerformed(ActionEvent evt) {
227
                            JFileChooser jfc = (JFileChooser) evt.getSource();
222
                    if (files == null) {
223
                        return;
224
                    }
228 225

  
229
                            if (JFileChooser.APPROVE_SELECTION.equals(evt
230
                                .getActionCommand())) {
231
                                File destFile = null;
226
                    if (files.length == 1) {
227
                        File file = files[0];
232 228

  
233
                                if (jfc.getSelectedFile() == null) {
234
                                    return;
235
                                }
229
                        if (file.exists()) {
236 230

  
237
                                if (jfc.getSelectedFile().getAbsoluteFile()
238
                                    .getAbsolutePath()
239
                                    .endsWith("." + SHAPE_EXTENSION)) {
231
                            String title =
232
                                i18nManager
233
                                    .getTranslation("_file_already_exist");
234
                            String message =
235
                                i18nManager
236
                                    .getTranslation("_file_already_exist_override_it");
240 237

  
241
                                    ThreadSafeDialogsManager dlgManager =
242
                                        ToolsSwingLocator
243
                                            .getThreadSafeDialogsManager();
238
                            int answer =
239
                                dlgManager.confirmDialog(message, title,
240
                                    JOptionPane.YES_NO_OPTION,
241
                                    JOptionPane.INFORMATION_MESSAGE);
244 242

  
245
                                    I18nManager i18nManager =
246
                                        ToolsLocator.getI18nManager();
243
                            if (answer == JOptionPane.YES_OPTION) {
244
                                getOutputLayerPath().setText(
245
                                    file.getAbsolutePath());
246
                            } else {
247
                                return;
248
                            }
247 249

  
248
                                    String title =
249
                                        i18nManager
250
                                            .getTranslation("_file_already_exist");
251
                                    String message =
252
                                        i18nManager
253
                                            .getTranslation("_file_already_exist_override_it");
250
                        } else {
254 251

  
255
                                    int answer =
256
                                        dlgManager.confirmDialog(message,
257
                                            title, JOptionPane.YES_NO_OPTION,
258
                                            JOptionPane.INFORMATION_MESSAGE);
259

  
260
                                    if (answer == JOptionPane.YES_OPTION) {
261
                                        destFile =
262
                                            jfc.getSelectedFile()
263
                                                .getAbsoluteFile();
264
                                    } else {
265
                                        return;
266
                                    }
267
                                } else {
268
                                    destFile =
269
                                        new File(jfc.getSelectedFile()
270
                                            .getAbsoluteFile()
271
                                            .getAbsolutePath()
272
                                            + "." + SHAPE_EXTENSION);
273
                                }
274

  
252
                            if (FilenameUtils.getExtension(
253
                                file.getAbsolutePath()).equals(SHAPE_EXTENSION)) {
275 254
                                getOutputLayerPath().setText(
276
                                    destFile.toString());
255
                                    file.getAbsolutePath());
256
                            } else {
277 257

  
278
                            } else if (JFileChooser.CANCEL_SELECTION.equals(evt
279
                                .getActionCommand())) {
280
                                getOutputLayerPath().setText("");
258
                                StringBuilder stb = new StringBuilder();
259
                                stb.append(file.getAbsolutePath());
260
                                stb.append(".");
261
                                stb.append(SHAPE_EXTENSION);
262

  
263
                                getOutputLayerPath().setText(stb.toString());
281 264
                            }
282 265
                        }
283
                    });
284

  
285
                    jfc.showOpenDialog(null);
266
                    }
286 267
                }
287 268
            });
288 269
    }

Also available in: Unified diff