Ignore:
Timestamp:
2010-11-29T08:24:10+01:00 (13 years ago)
Author:
bastiK
Message:

see #5559 - ExtendedDialog.showDialog() blocks when called in main thread, so move gui stuff to edt. This problem is highly system dependent (i could never reproduce it myself, but seems to be quite common)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/actions/OpenFileAction.java

    r3530 r3679  
    7676    static public class OpenFileTask extends PleaseWaitRunnable {
    7777        private List<File> files;
     78        private List<File> successfullyOpenedFiles = new ArrayList<File>();
    7879        private FileFilter fileFilter;
    7980        private boolean cancelled;
    8081
    81         public OpenFileTask(List<File> files, FileFilter fileFilter) {
    82             super(tr("Opening files"), false /* don't ignore exception */);
     82        public OpenFileTask(List<File> files, FileFilter fileFilter, String title) {
     83            super(title, false /* don't ignore exception */);
    8384            this.files = new ArrayList<File>(files);
    8485            this.fileFilter = fileFilter;
    8586        }
     87
     88        public OpenFileTask(List<File> files, FileFilter fileFilter) {
     89            this(files, fileFilter, tr("Opening files"));
     90        }
     91
    8692        @Override
    8793        protected void cancel() {
     
    240246                getProgressMonitor().setCustomText(msg);
    241247                getProgressMonitor().indeterminateSubTask(msg);
    242                 importer.importDataHandleExceptions(files, getProgressMonitor().createSubTaskMonitor(files.size(), false));
     248                if (importer.importDataHandleExceptions(files, getProgressMonitor().createSubTaskMonitor(files.size(), false))) {
     249                    successfullyOpenedFiles.addAll(files);
     250                }
    243251            } else {
    244252                for (File f : files) {
    245253                    if (cancelled) return;
    246254                    getProgressMonitor().indeterminateSubTask(tr("Opening file ''{0}'' ...", f.getAbsolutePath()));
    247                     importer.importDataHandleExceptions(f, getProgressMonitor().createSubTaskMonitor(1, false));
    248                 }
    249             }
     255                    if (importer.importDataHandleExceptions(f, getProgressMonitor().createSubTaskMonitor(1, false))) {
     256                        successfullyOpenedFiles.add(f);
     257                    }
     258                }
     259            }
     260        }
     261
     262        public List<File> getSuccessfullyOpenedFiles() {
     263            return successfullyOpenedFiles;
    250264        }
    251265    }
Note: See TracChangeset for help on using the changeset viewer.