Ticket #701: bettersplitway.diff

File bettersplitway.diff, 1.3 KB (added by stoecker, 18 years ago)
  • src/org/openstreetmap/josm/actions/SplitWayAction.java

     
    2828import org.openstreetmap.josm.data.osm.Node;
    2929import org.openstreetmap.josm.data.osm.OsmPrimitive;
    3030import org.openstreetmap.josm.data.osm.Relation;
     31import org.openstreetmap.josm.data.osm.RelationMember;
    3132import org.openstreetmap.josm.data.osm.Way;
    3233import org.openstreetmap.josm.data.osm.visitor.NameVisitor;
    3334import org.openstreetmap.josm.data.osm.visitor.Visitor;
     
    242243                        commandList.add(new AddCommand(wayToAdd));
    243244                        Main.debug("wayToAdd: " + wayToAdd);
    244245                        newSelection.add(wayToAdd);
     246
     247                        // now copy all relations to new way also
     248                        for (Relation r : Main.ds.relations) {
     249                                if (r.deleted || r.incomplete) continue;
     250                                for (RelationMember rm : r.members) {
     251                                        if (rm.member instanceof Way) {
     252                                                if (rm.member == selectedWay)
     253                                                {
     254                                                        Relation c = new Relation(r);
     255                                                        RelationMember em = new RelationMember();
     256                                                        em.member = wayToAdd;
     257                                                        em.role = rm.role;
     258                                                        c.members.add(em);
     259                                                        commandList.add(new ChangeCommand(r, c));
     260                                                }
     261                                        }
     262                                }
     263                        }
    245264                }
    246265
    247266                NameVisitor v = new NameVisitor();