Ticket #4104: TagCorrectionRelationMember.patch

File TagCorrectionRelationMember.patch, 2.2 KB (added by mjulius, 14 years ago)
  • src/org/openstreetmap/josm/command/ChangeRelationMemberRoleCommand.java

     
    1313import org.openstreetmap.josm.data.osm.OsmPrimitive;
    1414import org.openstreetmap.josm.data.osm.OsmPrimitiveType;
    1515import org.openstreetmap.josm.data.osm.Relation;
     16import org.openstreetmap.josm.data.osm.RelationMember;
    1617import org.openstreetmap.josm.gui.DefaultNameFormatter;
    1718import org.openstreetmap.josm.tools.ImageProvider;
    1819
     
    4849        }
    4950
    5051        oldRole = relation.getMember(position).getRole();
    51         relation.getMember(position).getRole().equals(newRole);
     52        relation.setMember(position, new RelationMember(newRole, relation.getMember(position).getMember()));
    5253
    5354        oldModified = relation.isModified();
    5455        relation.setModified(true);
  • src/org/openstreetmap/josm/corrector/ReverseWayTagCorrector.java

     
    1111import java.util.regex.Matcher;
    1212import java.util.regex.Pattern;
    1313
    14 import org.openstreetmap.josm.Main;
    1514import org.openstreetmap.josm.command.Command;
    1615import org.openstreetmap.josm.data.osm.OsmPrimitive;
    1716import org.openstreetmap.josm.data.osm.OsmUtils;
     
    141140            new HashMap<OsmPrimitive, List<RoleCorrection>>();
    142141        roleCorrectionMap.put(way, new ArrayList<RoleCorrection>());
    143142
    144         for (Relation relation : Main.main.getCurrentDataSet().getRelations()) {
     143        Collection<OsmPrimitive> referrers = oldway.getReferrers();
     144        for (OsmPrimitive referrer: referrers) {
     145            if (! (referrer instanceof Relation)) {
     146                continue;
     147            }
     148            Relation relation = (Relation)referrer;
    145149            int position = 0;
    146150            for (RelationMember member : relation.getMembers()) {
    147151                if (!member.getMember().hasEqualSemanticAttributes(oldway)