Ignore:
Timestamp:
23.06.2009 22:03:37 (3 years ago)
Author:
Gubaer
Message:

new: MultiFetchServerObjectReader using APIs Multi Fetch method
update: now uses Multi Fetch to check for deleted primitives on the server
update: now uses Multi Fetch to update the selected primitives with the state from the server
fixed: cleaned up merging in MergeVisitor
new: conflict resolution dialog; now resolves conflicts due to different visibilities
new: replacement for realEqual() on OsmPrimitive and derived classes; realEqual now @deprecated
fixed: cleaning up OsmReader
fixed: progress indication in OsmApi

File:
1 edited

Legend:

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

    r1677 r1690  
    88import java.util.HashSet; 
    99import java.util.HashMap; 
     10import java.util.Iterator; 
    1011import java.util.LinkedList; 
    1112import java.util.List; 
     
    8081        Collection<OsmPrimitive> o = new LinkedList<OsmPrimitive>(); 
    8182        for (OsmPrimitive osm : allPrimitives()) 
    82             if (!osm.deleted) { 
     83            if (osm.visible && !osm.deleted) { 
    8384                o.add(osm); 
    8485            } 
     
    8990        Collection<OsmPrimitive> o = new LinkedList<OsmPrimitive>(); 
    9091        for (OsmPrimitive osm : allPrimitives()) 
    91             if (!osm.deleted && !osm.incomplete) { 
     92            if (osm.visible && !osm.deleted && !osm.incomplete) { 
    9293                o.add(osm); 
    9394            } 
     
    9899        Collection<OsmPrimitive> o = new LinkedList<OsmPrimitive>(); 
    99100        for (OsmPrimitive osm : allPrimitives()) 
    100             if (!osm.deleted && !osm.incomplete && !(osm instanceof Relation)) { 
     101            if (osm.visible && !osm.deleted && !osm.incomplete && !(osm instanceof Relation)) { 
    101102                o.add(osm); 
    102103            } 
     
    311312        return ret; 
    312313    } 
     314 
     315    protected void deleteWay(Way way) { 
     316        way.nodes.clear(); 
     317        way.delete(true); 
     318    } 
     319 
     320    /** 
     321     * removes all references from ways in this dataset to a particular node 
     322     *  
     323     * @param node the node 
     324     */ 
     325    public void unlinkNodeFromWays(Node node) { 
     326        for (Way way: ways) { 
     327            if (way.nodes.contains(node)) { 
     328                way.nodes.remove(node); 
     329                if (way.nodes.size() < 2) { 
     330                    deleteWay(way); 
     331                } 
     332            } 
     333        } 
     334    } 
     335 
     336    /** 
     337     * removes all references from relations in this dataset  to this primitive 
     338     *  
     339     * @param primitive the primitive 
     340     */ 
     341    public void unlinkPrimitiveFromRelations(OsmPrimitive primitive) { 
     342        for (Relation relation : relations) { 
     343            Iterator<RelationMember> it = relation.members.iterator(); 
     344            while(it.hasNext()) { 
     345                RelationMember member = it.next(); 
     346                if (member.member.equals(primitive)) { 
     347                    it.remove(); 
     348                } 
     349            } 
     350        } 
     351    } 
     352 
     353    /** 
     354     * removes all references from from other primitives  to the 
     355     * referenced primitive 
     356     *  
     357     * @param referencedPrimitive the referenced primitive 
     358     */ 
     359    public void unlinkReferencesToPrimitive(OsmPrimitive referencedPrimitive) { 
     360        if (referencedPrimitive instanceof Node) { 
     361            unlinkNodeFromWays((Node)referencedPrimitive); 
     362            unlinkPrimitiveFromRelations(referencedPrimitive); 
     363        } else { 
     364            unlinkPrimitiveFromRelations(referencedPrimitive); 
     365        } 
     366    } 
    313367} 
Note: See TracChangeset for help on using the changeset viewer.