Ignore:
Timestamp:
2009-12-09T21:25:40+01:00 (14 years ago)
Author:
Gubaer
Message:

fixed #4130: Chunked upload mode counter is wrong
fixed #4118: Upload dialog too complicated
fixed #4129: Hide the new "Upload data in one request/chunks/individually" behind an expanding "Upload method" box
fixed #2075: API 0.6: don't upload more than 50K edits at once
fixed #4044: Huge uploads never end [should be solved with chunked upload mode]
fixed #4110: Upload dialog spacing wrong
fixed #3386: Upload dialog has empty areas when the changeset doesn't include all of add/modify/delete operations
see #3369: bulk import helper [JOSM now supports multi changesets uploads]

See online help for more details.

Completes r2598

File:
1 edited

Legend:

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

    r2578 r2599  
    1919import org.openstreetmap.josm.data.osm.OsmPrimitive;
    2020import org.openstreetmap.josm.data.osm.OsmPrimitiveType;
     21import org.openstreetmap.josm.data.osm.PrimitiveId;
    2122import org.openstreetmap.josm.data.osm.Relation;
    2223import org.openstreetmap.josm.data.osm.RelationMember;
     
    7677
    7778    /**
    78      * remembers an {@see OsmPrimitive}'s id and its type. The id will
     79     * Remembers an {@see OsmPrimitive}'s id. The id will
    7980     * later be fetched as part of a Multi Get request.
    8081     *
    81      * Ignore the id if it id <= 0.
     82     * Ignore the id if it represents a new primitives.
    8283     *
    8384     * @param id  the id
    84      * @param type  the type
    85      */
    86     protected void remember(long id, OsmPrimitiveType type) {
    87         if (id <= 0) return;
    88         if (type.equals(OsmPrimitiveType.NODE)) {
    89             nodes.add(id);
    90         } else if (type.equals(OsmPrimitiveType.WAY)) {
    91             ways.add(id);
    92         } if (type.equals(OsmPrimitiveType.RELATION)) {
    93             relations.add(id);
     85     */
     86    protected void remember(PrimitiveId id) {
     87        if (id.isNew()) return;
     88        switch(id.getType()) {
     89        case NODE: nodes.add(id.getUniqueId()); break;
     90        case WAY: ways.add(id.getUniqueId()); break;
     91        case RELATION: relations.add(id.getUniqueId()); break;
    9492        }
    9593    }
     
    115113        if (primitive == null)
    116114            throw new NoSuchElementException(tr("No primitive with id {0} in local dataset. Can't infer primitive type.", id));
    117         remember(id, OsmPrimitiveType.from(primitive));
     115        remember(primitive.getPrimitiveId());
    118116        return;
    119117    }
     
    153151    public MultiFetchServerObjectReader append(Node node) {
    154152        if (node == null) return this;
    155         if (node.isNew()) return this;
    156         remember(node.getId(), OsmPrimitiveType.NODE);
     153        remember(node.getPrimitiveId());
    157154        return this;
    158155    }
     
    170167        for (Node node: way.getNodes()) {
    171168            if (!node.isNew()) {
    172                 remember(node.getId(), OsmPrimitiveType.NODE);
    173             }
    174         }
    175         remember(way.getId(), OsmPrimitiveType.WAY);
     169                remember(node.getPrimitiveId());
     170            }
     171        }
     172        remember(way.getPrimitiveId());
    176173        return this;
    177174    }
     
    187184        if (relation == null) return this;
    188185        if (relation.isNew()) return this;
    189         remember(relation.getId(), OsmPrimitiveType.RELATION);
     186        remember(relation.getPrimitiveId());
    190187        for (RelationMember member : relation.getMembers()) {
    191188            if (OsmPrimitiveType.from(member.getMember()).equals(OsmPrimitiveType.RELATION)) {
Note: See TracChangeset for help on using the changeset viewer.