Ticket #9584: 9584_v2.patch

File 9584_v2.patch, 8.7 KB (added by simon04, 12 years ago)
  • src/org/openstreetmap/josm/corrector/ReverseWayTagCorrector.java

    diff --git a/src/org/openstreetmap/josm/corrector/ReverseWayTagCorrector.java b/src/org/openstreetmap/josm/corrector/ReverseWayTagCorrector.java
    index a31e397..4387b86 100644
    a b public class ReverseWayTagCorrector extends TagCorrector<Way> {  
    149149
    150150    private static final StringSwitcher[] stringSwitchers = new StringSwitcher[] {
    151151        new StringSwitcher("left", "right"),
    152         new StringSwitcher("forwards", "backwards"),
     152        new StringSwitcher("forward", "backward"),
    153153        new StringSwitcher("east", "west"),
    154154        new StringSwitcher("north", "south"),
    155155        FORWARD_BACKWARD, UP_DOWN
  • src/org/openstreetmap/josm/data/validation/tests/ConditionalKeys.java

    diff --git a/src/org/openstreetmap/josm/data/validation/tests/ConditionalKeys.java b/src/org/openstreetmap/josm/data/validation/tests/ConditionalKeys.java
    index 89f6338..882a84e 100644
    a b public class ConditionalKeys extends Test.TagTest {  
    5555    }
    5656
    5757    public static boolean isDirection(String part) {
    58         return "forward".equals(part) || "backward".equals(part);
     58        return "forward".equals(part) || "backward".equals(part) ||
     59                (part != null && (part.startsWith("north") || part.startsWith("south") ||
     60                        part.startsWith("east") || part.startsWith("west")));
    5961    }
    6062
    6163    public boolean isKeyValid(String key) {
  • src/org/openstreetmap/josm/gui/dialogs/relation/MemberTable.java

    diff --git a/src/org/openstreetmap/josm/gui/dialogs/relation/MemberTable.java b/src/org/openstreetmap/josm/gui/dialogs/relation/MemberTable.java
    index 43ce6a5..5ef5b2a 100644
    a b public class MemberTable extends OsmPrimitivesTable implements IMemberModelListe  
    283283
    284284        private boolean hasGap() {
    285285            WayConnectionType connectionType = getConnectionType();
    286             return connectionTypesOfInterest.contains(connectionType.direction)
     286            return connectionTypesOfInterest.contains(connectionType.direction.interpretation())
    287287                    && !(connectionType.linkNext && connectionType.linkPrev);
    288288        }
    289289
    public class MemberTable extends OsmPrimitivesTable implements IMemberModelListe  
    292292            WayConnectionType connectionType = getConnectionType();
    293293            Way way = (Way) getMemberTableModel().getReferredPrimitive(getSelectedRows()[0]);
    294294            if (!connectionType.linkPrev) {
    295                 getLayer().data.setSelected(WayConnectionType.Direction.FORWARD.equals(connectionType.direction)
     295                getLayer().data.setSelected(WayConnectionType.Direction.FORWARD.equals(connectionType.direction.interpretation())
    296296                        ? way.firstNode() : way.lastNode());
    297297                AutoScaleAction.autoScale("selection");
    298298            } else if (!connectionType.linkNext) {
    299                 getLayer().data.setSelected(WayConnectionType.Direction.FORWARD.equals(connectionType.direction)
     299                getLayer().data.setSelected(WayConnectionType.Direction.FORWARD.equals(connectionType.direction.interpretation())
    300300                        ? way.lastNode() : way.firstNode());
    301301                AutoScaleAction.autoScale("selection");
    302302            }
  • src/org/openstreetmap/josm/gui/dialogs/relation/MemberTableLinkedCellRenderer.java

    diff --git a/src/org/openstreetmap/josm/gui/dialogs/relation/MemberTableLinkedCellRenderer.java b/src/org/openstreetmap/josm/gui/dialogs/relation/MemberTableLinkedCellRenderer.java
    index 11ff6f4..03c0e23 100644
    a b public class MemberTableLinkedCellRenderer extends MemberTableCellRenderer {  
    161161        /* special icons */
    162162        Image arrow = null;
    163163        switch (value.direction) {
     164        case NORTH:
     165        case EAST:
    164166        case FORWARD:
    165167            arrow = arrowDown;
    166168            break;
     169        case SOUTH:
     170        case WEST:
    167171        case BACKWARD:
    168172            arrow = arrowUp;
    169173            break;
  • src/org/openstreetmap/josm/gui/dialogs/relation/sort/RelationSortUtils.java

    diff --git a/src/org/openstreetmap/josm/gui/dialogs/relation/sort/RelationSortUtils.java b/src/org/openstreetmap/josm/gui/dialogs/relation/sort/RelationSortUtils.java
    index 6747a0b..b756dcd 100644
    a b final class RelationSortUtils {  
    4949    }
    5050
    5151    static boolean isBackward(final RelationMember member){
    52         return member.getRole().equals("backward");
     52        return member.getRole().equals("backward") || member.getRole().startsWith("south") || member.getRole().startsWith("west");
    5353    }
    5454
    5555    static boolean isForward(final RelationMember member){
    56         return member.getRole().equals("forward");
     56        return member.getRole().equals("forward") || member.getRole().startsWith("north") || member.getRole().startsWith("east");
    5757    }
    5858
    5959    static boolean isOneway(final RelationMember member){
  • src/org/openstreetmap/josm/gui/dialogs/relation/sort/WayConnectionType.java

    diff --git a/src/org/openstreetmap/josm/gui/dialogs/relation/sort/WayConnectionType.java b/src/org/openstreetmap/josm/gui/dialogs/relation/sort/WayConnectionType.java
    index e7e4619..a06aae1 100644
    a b public class WayConnectionType {  
    2525    public Direction direction;
    2626
    2727    public enum Direction {
    28         FORWARD, BACKWARD, ROUNDABOUT_LEFT, ROUNDABOUT_RIGHT, NONE;
     28        FORWARD {
     29            @Override
     30            public Direction interpretation() {
     31                return FORWARD;
     32            }
     33        },
     34        BACKWARD {
     35            @Override
     36            public Direction interpretation() {
     37                return BACKWARD;
     38            }
     39        },
     40        ROUNDABOUT_LEFT {
     41            @Override
     42            public Direction interpretation() {
     43                return FORWARD;
     44            }
     45        },
     46        ROUNDABOUT_RIGHT {
     47            @Override
     48            public Direction interpretation() {
     49                return BACKWARD;
     50            }
     51        },
     52        NONE {
     53            @Override
     54            public Direction interpretation() {
     55                return FORWARD;
     56            }
     57        },
     58        NORTH {
     59            @Override
     60            public Direction interpretation() {
     61                return FORWARD;
     62            }
     63        },
     64        SOUTH {
     65            @Override
     66            public Direction interpretation() {
     67                return BACKWARD;
     68            }
     69        },
     70        EAST {
     71            @Override
     72            public Direction interpretation() {
     73                return FORWARD;
     74            }
     75        },
     76        WEST {
     77            @Override
     78            public Direction interpretation() {
     79                return BACKWARD;
     80            }
     81        };
     82
     83        public abstract Direction interpretation();
    2984
    3085        public boolean isRoundabout() {
    3186            return this == ROUNDABOUT_RIGHT || this == ROUNDABOUT_LEFT;
  • src/org/openstreetmap/josm/gui/dialogs/relation/sort/WayConnectionTypeCalculator.java

    diff --git a/src/org/openstreetmap/josm/gui/dialogs/relation/sort/WayConnectionTypeCalculator.java b/src/org/openstreetmap/josm/gui/dialogs/relation/sort/WayConnectionTypeCalculator.java
    index b5cbd2e..69d94ca 100644
    a b public class WayConnectionTypeCalculator {  
    248248        List<Node> refNodes= new ArrayList<Node>();
    249249
    250250        switch (ref_direction) {
     251        case NORTH:
     252        case EAST:
    251253        case FORWARD:
    252254            refNodes.add(way_ref.lastNode());
    253255            break;
     256        case SOUTH:
     257        case WEST:
    254258        case BACKWARD:
    255259            refNodes.add(way_ref.firstNode());
    256260            break;
  • src/org/openstreetmap/josm/gui/tagging/TaggingPresetItems.java

    diff --git a/src/org/openstreetmap/josm/gui/tagging/TaggingPresetItems.java b/src/org/openstreetmap/josm/gui/tagging/TaggingPresetItems.java
    index da1b136..4ee0dc4 100644
    a b public final class TaggingPresetItems {  
    172172        public boolean required = false;
    173173        public long count = 0;
    174174       
     175        @Override
     176        public String toString() {
     177            return "[Role key = " + key + ", text = " + text + "]";
     178        }
     179
    175180        public void setType(String types) throws SAXException {
    176181            this.types = getType(types);
    177182        }