Ignore:
Timestamp:
2008-09-04T13:37:45+02:00 (16 years ago)
Author:
stoecker
Message:

fixed relation handling for multiple times splitted ways

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/actions/SplitWayAction.java

    r846 r926  
    240240                newSelection.add(selectedWay);
    241241
     242                Collection<Way> newWays = new ArrayList<Way>();
    242243                // Second, create new ways
    243244                while (chunkIt.hasNext()) {
     
    248249                                wayToAdd.checkDirectionTagged();
    249250                        }
     251                        newWays.add(wayToAdd);
    250252                        wayToAdd.nodes.addAll(chunkIt.next());
    251253                        commandList.add(new AddCommand(wayToAdd));
     
    253255                        newSelection.add(wayToAdd);
    254256
    255                         Boolean warnme=false;
    256                         // now copy all relations to new way also
    257                         for (Relation r : Main.ds.relations) {
    258                                 if (r.deleted || r.incomplete) continue;
    259                                 for (RelationMember rm : r.members) {
    260                                         if (rm.member instanceof Way) {
    261                                                 if (rm.member == selectedWay)
     257                }
     258                Boolean warnme=false;
     259                // now copy all relations to new way also
     260                for (Relation r : Main.ds.relations) {
     261                        if (r.deleted || r.incomplete) continue;
     262                        for (RelationMember rm : r.members) {
     263                                if (rm.member instanceof Way) {
     264                                        if (rm.member == selectedWay)
     265                                        {
     266                                                Relation c = new Relation(r);
     267                                                for(Way wayToAdd : newWays)
    262268                                                {
    263                                                         Relation c = new Relation(r);
    264269                                                        RelationMember em = new RelationMember();
    265270                                                        em.member = wayToAdd;
     
    268273                                                                warnme = true;
    269274                                                        c.members.add(em);
    270                                                         commandList.add(new ChangeCommand(r, c));
    271                                                         break;
    272275                                                }
     276                                                commandList.add(new ChangeCommand(r, c));
     277                                                break;
    273278                                        }
    274279                                }
    275280                        }
    276                         if(warnme)
    277                                 JOptionPane.showMessageDialog(Main.parent, tr("A role based relation membership was copied to both new ways.\nYou should verify this and correct it when necessary."));
    278                 }
     281                }
     282                if(warnme)
     283                        JOptionPane.showMessageDialog(Main.parent, tr("A role based relation membership was copied to all new ways.\nYou should verify this and correct it when necessary."));
    279284
    280285                NameVisitor v = new NameVisitor();
Note: See TracChangeset for help on using the changeset viewer.