Ignore:
Timestamp:
2009-09-05T11:08:38+02:00 (15 years ago)
Author:
Gubaer
Message:

fixed #3404: Regression: JOSM does not automatically zoom and center gpx track upon load

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/io/GpxImporter.java

    r1814 r2062  
    1010import java.io.InputStream;
    1111import java.util.zip.GZIPInputStream;
     12
     13import javax.swing.SwingUtilities;
    1214
    1315import org.openstreetmap.josm.Main;
     
    2325    }
    2426
    25     @Override public void importData(File file) throws IOException {
    26         String fn = file.getName();
     27    @Override public void importData(final File file) throws IOException {
     28        final String fn = file.getName();
    2729
    2830        try {
    29             GpxReader r = null;
    3031            InputStream is;
    3132            if (file.getName().endsWith(".gpx.gz")) {
     
    4445                }
    4546            }
    46             r = new GpxReader(is, file.getAbsoluteFile().getParentFile());
     47            final GpxReader r = new GpxReader(is, file.getAbsoluteFile().getParentFile());
    4748            r.data.storageFile = file;
    48             GpxLayer gpxLayer = new GpxLayer(r.data, fn, true);
    49             Main.main.addLayer(gpxLayer);
    50             if (Main.pref.getBoolean("marker.makeautomarkers", true)) {
    51                 MarkerLayer ml = new MarkerLayer(r.data, tr("Markers from {0}", fn), file, gpxLayer);
    52                 if (ml.data.size() > 0) {
    53                     Main.main.addLayer(ml);
     49            final GpxLayer gpxLayer = new GpxLayer(r.data, fn, true);
     50
     51            // FIXME: remove UI stuff from the IO subsystem
     52            //
     53            Runnable task = new Runnable() {
     54                public void run() {
     55                    Main.main.addLayer(gpxLayer);
     56                    if (Main.pref.getBoolean("marker.makeautomarkers", true)) {
     57                        MarkerLayer ml = new MarkerLayer(r.data, tr("Markers from {0}", fn), file, gpxLayer);
     58                        if (ml.data.size() > 0) {
     59                            Main.main.addLayer(ml);
     60                        }
     61                    }
    5462                }
     63            };
     64            if (SwingUtilities.isEventDispatchThread()) {
     65                task.run();
     66            } else {
     67                SwingUtilities.invokeLater(task);
    5568            }
    5669        } catch (FileNotFoundException e) {
Note: See TracChangeset for help on using the changeset viewer.