Ignore:
Timestamp:
2009-06-15T20:22:46+02:00 (15 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.