Changeset 5505 in josm


Ignore:
Timestamp:
2012-09-08T12:18:04+02:00 (12 years ago)
Author:
bastiK
Message:

add session support for geoimage layers (see #4029)

Location:
trunk/src/org/openstreetmap/josm
Files:
2 added
5 edited

Legend:

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

    r5501 r5505  
    7979
    8080        JFileChooser fc;
    81        
     81
    8282        if (zipRequired) {
    8383            fc = createAndOpenFileChooser(false, false, tr("Save session"), joz, JFileChooser.FILES_ONLY, "lastDirectory");
     
    109109        if (fn.indexOf('.') == -1) {
    110110            file = new File(file.getPath() + (zip ? ".joz" : ".jos"));
    111         }
    112         if (!SaveActionBase.confirmOverwrite(file))
    113             return;
     111            if (!SaveActionBase.confirmOverwrite(file))
     112                return;
     113        }
    114114
    115115        List<Layer> layersOut = new ArrayList<Layer>();
  • trunk/src/org/openstreetmap/josm/gui/layer/geoimage/GeoImageLayer.java

    r5430 r5505  
    238238            if (layer != null) {
    239239                Main.main.addLayer(layer);
    240                 layer.hook_up_mouse_events(); // Main.map.mapView should exist
    241                 // now. Can add mouse listener
    242                 Main.map.mapView.addPropertyChangeListener(layer);
    243                 if (Main.map.getToggleDialog(ImageViewerDialog.class) == null) {
    244                     ImageViewerDialog.newInstance();
    245                     Main.map.addToggleDialog(ImageViewerDialog.getInstance());
    246                 }
    247240
    248241                if (! canceled && layer.data.size() > 0) {
     
    270263    }
    271264
    272     private GeoImageLayer(final List<ImageEntry> data, GpxLayer gpxLayer) {
     265    public GeoImageLayer(final List<ImageEntry> data, GpxLayer gpxLayer) {
    273266
    274267        super(tr("Geotagged Images"));
     
    723716    private MapModeChangeListener mapModeListener = null;
    724717
    725     private void hook_up_mouse_events() {
     718    @Override
     719    public void hookUpMapView() {
    726720        mouseAdapter = new MouseAdapter() {
    727721            private final boolean isMapModeOk() {
     
    808802            }
    809803        });
     804
     805        Main.map.mapView.addPropertyChangeListener(this);
     806        if (Main.map.getToggleDialog(ImageViewerDialog.class) == null) {
     807            ImageViewerDialog.newInstance();
     808            Main.map.addToggleDialog(ImageViewerDialog.getInstance());
     809        }
    810810    }
    811811
     
    839839    }
    840840
     841    public GpxLayer getGpxLayer() {
     842        return gpxLayer;
     843    }
     844
    841845    public void jumpToNextMarker() {
    842846        showNextPhoto();
  • trunk/src/org/openstreetmap/josm/gui/layer/geoimage/ImageEntry.java

    r4241 r5505  
    8080        return exifTime;
    8181    }
    82     LatLon getExifCoor() {
     82    public LatLon getExifCoor() {
    8383        return exifCoor;
    8484    }
    8585    public Double getExifImgDir() {
    8686        return exifImgDir;
     87    }
     88
     89    public boolean hasThumbnail() {
     90        return thumbnail != null;
    8791    }
    8892
     
    102106        this.elevation = elevation;
    103107    }
    104     void setFile(File file) {
     108    public void setFile(File file) {
    105109        this.file = file;
    106110    }
    107     void setExifOrientation(Integer exifOrientation) {
     111    public void setExifOrientation(Integer exifOrientation) {
    108112        this.exifOrientation = exifOrientation;
    109113    }
    110     void setExifTime(Date exifTime) {
     114    public void setExifTime(Date exifTime) {
    111115        this.exifTime = exifTime;
    112116    }
    113     void setGpsTime(Date gpsTime) {
     117    public void setGpsTime(Date gpsTime) {
    114118        this.gpsTime = gpsTime;
    115119    }
    116     void setExifCoor(LatLon exifCoor) {
     120    public void setExifCoor(LatLon exifCoor) {
    117121        this.exifCoor = exifCoor;
    118122    }
    119     void setExifImgDir(double exifDir) {
     123    public void setExifImgDir(double exifDir) {
    120124        this.exifImgDir = exifDir;
    121125    }
  • trunk/src/org/openstreetmap/josm/io/session/SessionReader.java

    r5501 r5505  
    5858        registerSessionLayerImporter("imagery", ImagerySessionImporter.class);
    5959        registerSessionLayerImporter("tracks", GpxTracksSessionImporter.class);
     60        registerSessionLayerImporter("geoimage", GeoImageSessionImporter.class);
    6061    }
    6162
     
    103104        private String layerName;
    104105        private int layerIndex;
    105         private LinkedHashMap<Integer,SessionLayerImporter> layerDependencies;
    106 
    107         public ImportSupport(String layerName, int layerIndex, LinkedHashMap<Integer,SessionLayerImporter> layerDependencies) {
     106        private List<LayerDependency> layerDependencies;
     107
     108        public ImportSupport(String layerName, int layerIndex, List<LayerDependency> layerDependencies) {
    108109            this.layerName = layerName;
    109110            this.layerIndex = layerIndex;
     
    234235         * layer. All the dependent importers have loaded completely at this point.
    235236         */
    236         public LinkedHashMap<Integer,SessionLayerImporter> getLayerDependencies() {
     237        public List<LayerDependency> getLayerDependencies() {
    237238            return layerDependencies;
     239        }
     240    }
     241
     242    public static class LayerDependency {
     243        private Integer index;
     244        private Layer layer;
     245        private SessionLayerImporter importer;
     246
     247        public LayerDependency(Integer index, Layer layer, SessionLayerImporter importer) {
     248            this.index = index;
     249            this.layer = layer;
     250            this.importer = importer;
     251        }
     252
     253        public SessionLayerImporter getImporter() {
     254            return importer;
     255        }
     256
     257        public Integer getIndex() {
     258            return index;
     259        }
     260
     261        public Layer getLayer() {
     262            return layer;
    238263        }
    239264    }
     
    338363            } else {
    339364                importers.put(idx, imp);
    340                 LinkedHashMap<Integer,SessionLayerImporter> depsImp = new LinkedHashMap<Integer,SessionLayerImporter>();
     365                List<LayerDependency> depsImp = new ArrayList<LayerDependency>();
    341366                for (int d : deps.get(idx)) {
    342367                    SessionLayerImporter dImp = importers.get(d);
     
    356381                        }
    357382                    }
    358                     depsImp.put(d, dImp);
     383                    depsImp.add(new LayerDependency(d, layersMap.get(d), dImp));
    359384                }
    360385                ImportSupport support = new ImportSupport(name, idx, depsImp);
  • trunk/src/org/openstreetmap/josm/io/session/SessionWriter.java

    r5501 r5505  
    3333import org.openstreetmap.josm.gui.layer.TMSLayer;
    3434import org.openstreetmap.josm.gui.layer.WMSLayer;
     35import org.openstreetmap.josm.gui.layer.geoimage.GeoImageLayer;
    3536import org.openstreetmap.josm.tools.MultiMap;
    3637import org.openstreetmap.josm.tools.Utils;
     
    4849        registerSessionLayerExporter(WMSLayer.class , ImagerySessionExporter.class);
    4950        registerSessionLayerExporter(GpxLayer.class , GpxTracksSessionExporter.class);
     51        registerSessionLayerExporter(GeoImageLayer.class , GeoImageSessionExporter.class);
    5052    }
    5153
Note: See TracChangeset for help on using the changeset viewer.