Revision 2657

View differences:

trunk/applications/appgvSIG/src/com/iver/cit/gvsig/gui/FileOpenDialog.java
77 77
public class FileOpenDialog extends JPanel{
78 78
	// TODO LWS ?los m_Files ... ?tendr?an que ser GeoFiles (Projected y dem?s)?
79 79
	private static String lastPath = null;
80
	private static FileFilter lastFileFilter = null;
80
	private static DriverFileFilter lastFileFilter = null;
81 81
    private ArrayList m_Files;
82 82
    private javax.swing.JPanel jPanel2 = null;
83 83
    private DefaultListModel m_lstModel;
......
326 326
                    fileChooser.setAcceptAllFileFilterUsed(false);
327 327

  
328 328
                    try {
329
                        boolean last = false;
329 330
						String[] driverNames = LayerFactory.getDM().getDriverNames();
330
						FileFilter defaultFileFilter = null, auxF;
331
						DriverFileFilter defaultFileFilter = null;
332
                        DriverFileFilter auxF;
331 333
						for (int i = 0; i < driverNames.length; i++) {
332 334
							System.err.println("DRIVER "+i+" : "+driverNames[i]);
333 335
							boolean is = false;
......
339 341
							if (is){
340 342
							    auxF = new DriverFileFilter(driverNames[i]);
341 343
								filters.add(auxF);
342
								if (driverNames[i].indexOf("shp") != -1)
343
								{
344
								if (driverNames[i].indexOf("shp") != -1) {
344 345
								    defaultFileFilter = auxF;
345 346
								}
347
                                if (lastFileFilter != null) {
348
                                    if (driverNames[i].equals(lastFileFilter.driver.getName())){
349
                                        last = true;
350
                                    }
351
                                }
346 352
							}
347 353
						}
348
						if (defaultFileFilter != null){
349
                            if (lastFileFilter == null)
350
                                fileChooser.setFileFilter(defaultFileFilter);
351
						    else{
352
						        if (filters.contains(lastFileFilter))
353
						        fileChooser.setFileFilter(lastFileFilter);
354
						    }
354
                        DriverFileFilter def = (DriverFileFilter) fileChooser.getFileFilter();
355
                        if (last) {
356
                            def = lastFileFilter;
357
                        } else {
358
                            if (lastFileFilter != null){
359
                                if (filters.contains(lastFileFilter)) {
360
                                    def = defaultFileFilter;
361
                                }
362
                            }
355 363
                        }
356
                        DriverFileFilter def = (DriverFileFilter) fileChooser.getFileFilter();
357 364
                        Iterator i = filters.iterator();
358 365
                        while (i.hasNext()) {
359 366
                            DriverFileFilter element = (DriverFileFilter) i.next();
360
                            if (!element.driver.getName().equals(def.driver.getName())){
367
                            if (def != null){
368
                                if (!element.driver.getName().equals(def.driver.getName())){
369
                                    fileChooser.addChoosableFileFilter(element);
370
                                }
371
                            } else {
361 372
                                fileChooser.addChoosableFileFilter(element);
362 373
                            }
363 374
                        }
375
                        if (def != null){
376
                            fileChooser.setFileFilter(def);
377
                        }
364 378
                        
365 379
					} catch (DriverLoadException e1) {
366 380
						NotificationManager.addError("No se pudo acceder a los drivers", e1);
......
371 385
                    File[] newFiles = null;
372 386
                    MyFile[] toAdd;
373 387
                    if (result == JFileChooser.APPROVE_OPTION) {
374
                        lastFileFilter = fileChooser.getFileFilter();
388
                        lastFileFilter = (DriverFileFilter) fileChooser.getFileFilter();
375 389
                        lastPath = fileChooser.getCurrentDirectory().getAbsolutePath();
376 390
                		newFiles = fileChooser.getSelectedFiles();
377 391
                		toAdd = new MyFile[newFiles.length];

Also available in: Unified diff