Ignore:
Timestamp:
2010-01-13T20:20:07+01:00 (14 years ago)
Author:
jttt
Message:

Added progress monitor to JpgImporter, allow to cancel importing

File:
1 edited

Legend:

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

    r2842 r2851  
    2323import org.openstreetmap.josm.io.AllFormatsImporter;
    2424import org.openstreetmap.josm.io.FileImporter;
    25 import org.openstreetmap.josm.io.IllegalDataException;
    2625import org.openstreetmap.josm.io.OsmTransferException;
    2726import org.openstreetmap.josm.tools.MultiMap;
     
    110109                chosenImporter = null;
    111110            }
    112             getProgressMonitor().setTicks(files.size());
     111            getProgressMonitor().setTicksCount(files.size());
    113112
    114113            if (chosenImporter != null) { // The importer was expicitely chosen, so use it.
     
    132131            else {    // find apropriate importer
    133132                MultiMap<FileImporter, File> map = new MultiMap<FileImporter, File>();
    134                 while (! files.isEmpty()) {
    135                     File f = files.get(0);
    136                     for (FileImporter importer : ExtensionFileFilter.importers) {
    137                         if (importer.acceptFile(f)) {
    138                             map.add(importer, f);
    139                             files.remove(f);
     133                FILES:
     134                    for (File f: files) {
     135                        for (FileImporter importer : ExtensionFileFilter.importers) {
     136                            if (importer.acceptFile(f)) {
     137                                map.add(importer, f);
     138                                continue FILES;
     139                            }
    140140                        }
     141                        throw new RuntimeException(); // no importer found
    141142                    }
    142                     if (files.contains(f))
    143                         throw new RuntimeException(); // no importer found
    144                 }
    145143                List<FileImporter> ims = new ArrayList<FileImporter>(map.keySet());
    146144                Collections.sort(ims);
     
    165163                }
    166164                getProgressMonitor().indeterminateSubTask(msg);
    167                 importer.importDataHandleExceptions(files);
    168                 getProgressMonitor().worked(files.size());
     165                importer.importDataHandleExceptions(files, getProgressMonitor().createSubTaskMonitor(files.size(), false));
    169166            } else {
    170167                for (File f : files) {
    171168                    if (cancelled) return;
    172169                    getProgressMonitor().indeterminateSubTask(tr("Opening file ''{0}'' ...", f.getAbsolutePath()));
    173                     importer.importDataHandleExceptions(f);
    174                     getProgressMonitor().worked(1);
     170                    importer.importDataHandleExceptions(f, getProgressMonitor().createSubTaskMonitor(1, false));
    175171                }
    176172            }
Note: See TracChangeset for help on using the changeset viewer.