Ignore:
Timestamp:
15.06.2009 20:22:46 (3 years ago)
Author:
Gubaer
Message:

fixed: bug in OsmApi.getOsmApi()
cleanup: exception handling in interfacing with OSM API
new: new action for updating individual elements with the their current state on the server (including new menu item in the file menu)
new: improved user feedback in case of conflicts
new: handles 410 Gone conflicts when uploading a changeset
new: undoable command for "purging" a primitive from the current dataset (necessary if the primitive is already deleted on the server and the user wants to remove it from its local dataset)
new: undoable command for "undeleting" an already deleted primitive on the server (kind of "cloning")
new: after a full upload, checks whether there are primitives in the local dataset which might be deleted on the server.
new: data structures for history data
new: history download support in io package

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/data/osm/DataSet.java

    r1647 r1670  
    1010import java.util.LinkedList; 
    1111import java.util.List; 
     12import java.util.Set; 
    1213 
    1314import org.openstreetmap.josm.data.SelectionChangedListener; 
     15import static org.openstreetmap.josm.tools.I18n.tr; 
    1416 
    1517/** 
     
    7880        Collection<OsmPrimitive> o = new LinkedList<OsmPrimitive>(); 
    7981        for (OsmPrimitive osm : allPrimitives()) 
    80             if (!osm.deleted) 
     82            if (!osm.deleted) { 
    8183                o.add(osm); 
     84            } 
    8285        return o; 
    8386    } 
     
    8689        Collection<OsmPrimitive> o = new LinkedList<OsmPrimitive>(); 
    8790        for (OsmPrimitive osm : allPrimitives()) 
    88             if (!osm.deleted && !osm.incomplete) 
     91            if (!osm.deleted && !osm.incomplete) { 
    8992                o.add(osm); 
     93            } 
    9094        return o; 
    9195    } 
     
    9498        Collection<OsmPrimitive> o = new LinkedList<OsmPrimitive>(); 
    9599        for (OsmPrimitive osm : allPrimitives()) 
    96             if (!osm.deleted && !osm.incomplete && !(osm instanceof Relation)) 
     100            if (!osm.deleted && !osm.incomplete && !(osm instanceof Relation)) { 
    97101                o.add(osm); 
     102            } 
    98103        return o; 
    99104    } 
     
    150155        clearSelection(ways); 
    151156        clearSelection(relations); 
    152         for (OsmPrimitive osm : selection) 
     157        for (OsmPrimitive osm : selection) { 
    153158            osm.selected = true; 
     159        } 
    154160        fireSelectionChanged(selection); 
    155161    } 
     
    164170        clearSelection(relations); 
    165171        for (OsmPrimitive o : osm) 
    166             if (o != null) 
     172            if (o != null) { 
    167173                o.selected = true; 
     174            } 
    168175        fireSelectionChanged(Arrays.asList(osm)); 
    169176    } 
     
    176183        if (list == null) 
    177184            return; 
    178         for (OsmPrimitive osm : list) 
     185        for (OsmPrimitive osm : list) { 
    179186            osm.selected = false; 
     187        } 
    180188    } 
    181189 
     
    189197            return sel; 
    190198        for (OsmPrimitive osm : list) 
    191             if (osm.selected && !osm.deleted) 
     199            if (osm.selected && !osm.deleted) { 
    192200                sel.add(osm); 
     201            } 
    193202        return sel; 
    194203    } 
     
    200209     */ 
    201210    public static void fireSelectionChanged(Collection<? extends OsmPrimitive> sel) { 
    202         for (SelectionChangedListener l : selListeners) 
     211        for (SelectionChangedListener l : selListeners) { 
    203212            l.selectionChanged(sel); 
     213        } 
    204214    } 
    205215 
    206216    @Override public DataSet clone() { 
    207217        DataSet ds = new DataSet(); 
    208         for (Node n : nodes) 
     218        for (Node n : nodes) { 
    209219            ds.nodes.add(new Node(n)); 
    210         for (Way w : ways) 
     220        } 
     221        for (Way w : ways) { 
    211222            ds.ways.add(new Way(w)); 
    212         for (Relation e : relations) 
     223        } 
     224        for (Relation e : relations) { 
    213225            ds.relations.add(new Relation(e)); 
    214         for (DataSource source : dataSources) 
     226        } 
     227        for (DataSource source : dataSources) { 
    215228            ds.dataSources.add(new DataSource(source.bounds, source.origin)); 
     229        } 
    216230        ds.version = version; 
    217231        return ds; 
     
    260274        return selArr; 
    261275    } 
     276 
     277    /** 
     278     * returns a  primitive with a given id from the data set. null, if no such primitive 
     279     * exists 
     280     *  
     281     * @param id  the id, > 0 required 
     282     * @return the primitive 
     283     * @exception IllegalArgumentException thrown, if id <= 0 
     284     */ 
     285    public OsmPrimitive getPrimitiveById(long id) { 
     286        if (id <= 0) 
     287            throw new IllegalArgumentException(tr("parameter {0} > 0 required. Got {1}.", "id", id)); 
     288        for (OsmPrimitive primitive : nodes) { 
     289            if (primitive.id == id) return primitive; 
     290        } 
     291        for (OsmPrimitive primitive : ways) { 
     292            if (primitive.id == id) return primitive; 
     293        } 
     294        for (OsmPrimitive primitive : relations) { 
     295            if (primitive.id == id) return primitive; 
     296        } 
     297        return null; 
     298    } 
     299 
     300    public Set<Long> getPrimitiveIds() { 
     301        HashSet<Long> ret = new HashSet<Long>(); 
     302        for (OsmPrimitive primitive : nodes) { 
     303            ret.add(primitive.id); 
     304        } 
     305        for (OsmPrimitive primitive : ways) { 
     306            ret.add(primitive.id); 
     307        } 
     308        for (OsmPrimitive primitive : relations) { 
     309            ret.add(primitive.id); 
     310        } 
     311        return ret; 
     312    } 
    262313} 
Note: See TracChangeset for help on using the changeset viewer.