Ignore:
Timestamp:
2009-04-06T20:18:48+02:00 (15 years ago)
Author:
framm
Message:
  • Major redesign of how JOSM talks to the OSM server. Connections now all go through a new OsmApi class that finds out which version the server uses. JOSM should now be able to handle 0.5 and 0.6 without configuration change. Config options osm-server.version and osm-server.additional-versions now obsolete. Handling of error and cancel situations might still need some improvement.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/gui/layer/OsmDataLayer.java

    r1508 r1523  
    2121import java.awt.image.BufferedImage;
    2222import java.io.File;
     23import java.util.ArrayList;
    2324import java.util.Collection;
    2425import java.util.HashSet;
     
    2627import java.util.LinkedList;
    2728import java.util.Set;
    28 import java.util.ArrayList;
    2929
    3030import javax.swing.AbstractAction;
     
    4343import org.openstreetmap.josm.data.coor.EastNorth;
    4444import org.openstreetmap.josm.data.coor.LatLon;
     45import org.openstreetmap.josm.data.gpx.GpxData;
     46import org.openstreetmap.josm.data.gpx.GpxTrack;
     47import org.openstreetmap.josm.data.gpx.WayPoint;
    4548import org.openstreetmap.josm.data.osm.DataSet;
    4649import org.openstreetmap.josm.data.osm.DataSource;
    47 import org.openstreetmap.josm.data.osm.Relation;
    4850import org.openstreetmap.josm.data.osm.Node;
    4951import org.openstreetmap.josm.data.osm.OsmPrimitive;
     52import org.openstreetmap.josm.data.osm.Relation;
    5053import org.openstreetmap.josm.data.osm.Way;
     54import org.openstreetmap.josm.data.osm.visitor.AbstractVisitor;
    5155import org.openstreetmap.josm.data.osm.visitor.BoundingXYVisitor;
    5256import org.openstreetmap.josm.data.osm.visitor.MapPaintVisitor;
    5357import org.openstreetmap.josm.data.osm.visitor.MergeVisitor;
    5458import org.openstreetmap.josm.data.osm.visitor.SimplePaintVisitor;
    55 import org.openstreetmap.josm.data.osm.visitor.Visitor;
    56 import org.openstreetmap.josm.data.gpx.GpxData;
    57 import org.openstreetmap.josm.data.gpx.GpxTrack;
    58 import org.openstreetmap.josm.data.gpx.WayPoint;
    5959import org.openstreetmap.josm.gui.MapView;
    6060import org.openstreetmap.josm.gui.dialogs.ConflictDialog;
     
    7373public class OsmDataLayer extends Layer {
    7474
    75     public final static class DataCountVisitor implements Visitor {
     75    public final static class DataCountVisitor extends AbstractVisitor {
    7676        public final int[] normal = new int[3];
    7777        public final int[] deleted = new int[3];
     
    215215        tool += undeletedSize(data.nodes)+" "+trn("node", "nodes", undeletedSize(data.nodes))+", ";
    216216        tool += undeletedSize(data.ways)+" "+trn("way", "ways", undeletedSize(data.ways));
     217        if (data.version != null) tool += ", " + tr("version {0}", data.version);
    217218        if (associatedFile != null)
    218219            tool = "<html>"+tool+"<br>"+associatedFile.getPath()+"</html>";
     
    236237        for (DataSource src : ((OsmDataLayer)from).data.dataSources)
    237238            data.dataSources.add(src);
     239       
     240        // copy the merged layer's API version, downgrade if required
     241        if (data.version == null) {
     242            data.version = ((OsmDataLayer)from).data.version;
     243        } else {
     244            if ("0.5".equals(data.version) ^ "0.5".equals(((OsmDataLayer)from).data.version)) {
     245                System.err.println("Warning: mixing 0.6 and 0.5 data results in version 0.5");
     246                data.version = "0.5";
     247            }
     248        }
    238249        fireDataChange();
    239250        // repaint to make sure new data is displayed properly.
     
    349360            p.add(new JLabel(s, ImageProvider.get("data", counter.names[i]), JLabel.HORIZONTAL), GBC.eop().insets(15,0,0,0));
    350361        }
     362        p.add(new JLabel(tr("API version: {0}", (data.version != null) ? data.version : tr("unset"))));
     363
    351364        return p;
    352365    }
     
    447460    }
    448461
    449     public boolean containsPoint(LatLon coor)
    450     {
     462    public boolean containsPoint(LatLon coor) {
    451463        // we'll assume that if this has no data sources
    452464        // that it also has no borders
Note: See TracChangeset for help on using the changeset viewer.