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/Relation.java

    r1598 r1670  
    7878    } 
    7979 
     80    @Override 
    8081    public String getName() { 
    8182        String name; 
     
    8485        } else { 
    8586            name = get("type"); 
    86             if (name == null) 
     87            if (name == null) { 
    8788                name = tr("relation"); 
     89            } 
    8890 
    8991            name += " ("; 
    90             if(names == null) 
    91               names = Main.pref.getCollection("relation.nameOrder", Arrays.asList(defnames)); 
     92            if(names == null) { 
     93                names = Main.pref.getCollection("relation.nameOrder", Arrays.asList(defnames)); 
     94            } 
    9295            String nameTag = null; 
    9396            for (String n : names) { 
    9497                nameTag = get(n); 
    95                 if (nameTag != null) break; 
     98                if (nameTag != null) { 
     99                    break; 
     100                } 
    96101            } 
    97             if (nameTag != null) 
     102            if (nameTag != null) { 
    98103                name += "\"" + nameTag + "\", "; 
     104            } 
    99105 
    100106            int mbno = members.size(); 
    101107            name += trn("{0} member", "{0} members", mbno, mbno) + ")"; 
    102             if(errors != null) 
     108            if(errors != null) { 
    103109                name = "*"+name; 
     110            } 
    104111        } 
    105112        return name; 
     
    113120        return false; 
    114121    } 
    115      
     122 
    116123    public RelationMember firstMember() { 
    117124        if (incomplete) return null; 
     
    122129        return (members.size() == 0) ? null : members.get(members.size() -1); 
    123130    } 
     131 
     132    /** 
     133     * removes all members with member.member == primitive 
     134     *  
     135     * @param primitive the primitive to check for 
     136     */ 
     137    public void removeMembersFor(OsmPrimitive primitive) { 
     138        if (primitive == null) 
     139            return; 
     140 
     141        ArrayList<RelationMember> todelete = new ArrayList<RelationMember>(); 
     142        for (RelationMember member: members) { 
     143            if (member.member == primitive) { 
     144                todelete.add(member); 
     145            } 
     146        } 
     147        members.removeAll(todelete); 
     148    } 
    124149} 
Note: See TracChangeset for help on using the changeset viewer.