Ignore:
Timestamp:
2009-09-17T22:38:08+02:00 (15 years ago)
Author:
Gubaer
Message:

fixed #3534: Merge dialog "remembers" old relations

Location:
trunk/src/org/openstreetmap/josm/gui/conflict/tags
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/gui/conflict/tags/CombinePrimitiveResolverDialog.java

    r2104 r2157  
    2828import org.openstreetmap.josm.data.osm.Node;
    2929import org.openstreetmap.josm.data.osm.OsmPrimitive;
    30 import org.openstreetmap.josm.data.osm.Tag;
    3130import org.openstreetmap.josm.data.osm.TagCollection;
    3231import org.openstreetmap.josm.data.osm.Way;
  • trunk/src/org/openstreetmap/josm/gui/conflict/tags/RelationMemberConflictResolverModel.java

    r2103 r2157  
    9393        RelationMemberConflictDecision d = decisions.get(row);
    9494        switch(column) {
    95         case 0: /* relation */ return d.getRelation();
    96         case 1: /* pos */ return Integer.toString(d.getPos() + 1); // position in "user space" starting at 1
    97         case 2: /* role */ return d.getRole();
    98         case 3: /* original */ return d.getOriginalPrimitive();
    99         case 4: /* decision */ return d.getDecision();
     95            case 0: /* relation */ return d.getRelation();
     96            case 1: /* pos */ return Integer.toString(d.getPos() + 1); // position in "user space" starting at 1
     97            case 2: /* role */ return d.getRole();
     98            case 3: /* original */ return d.getOriginalPrimitive();
     99            case 4: /* decision */ return d.getDecision();
    100100        }
    101101        return null;
     
    106106        RelationMemberConflictDecision d = decisions.get(row);
    107107        switch(column) {
    108         case 2: /* role */
    109             d.setRole((String)value);
    110             break;
    111         case 4: /* decision */
    112             d.decide((RelationMemberConflictDecisionType)value);
    113             refresh();
    114             break;
     108            case 2: /* role */
     109                d.setRole((String)value);
     110                break;
     111            case 4: /* decision */
     112                d.decide((RelationMemberConflictDecisionType)value);
     113                refresh();
     114                break;
    115115        }
    116116        fireTableDataChanged();
     
    160160    public void populate(Collection<RelationToChildReference> references) {
    161161        references = references == null ? new LinkedList<RelationToChildReference>() : references;
     162        decisions.clear();
    162163        if (references.isEmpty()) {
    163164            this.relations = new HashSet<Relation>(references.size());
    164             return;
    165         }
    166         decisions.clear();
    167         this.relations = new HashSet<Relation>(references.size());
     165        } else {
     166            this.relations = new HashSet<Relation>(references.size());
     167        }
    168168        for (RelationToChildReference reference: references) {
    169169            decisions.add(new RelationMemberConflictDecision(reference.getParent(), reference.getPosition()));
     
    234234            } else {
    235235                switch(decision.getDecision()) {
    236                 case REPLACE:
    237                     rmNew = new RelationMember(decision.getRole(),newPrimitive);
    238                     modifiedRelation.addMember(rmNew);
    239                     isChanged |= ! rm.equals(rmNew);
    240                     break;
    241                 case REMOVE:
    242                     isChanged = true;
    243                     // do nothing
    244                     break;
    245                 case UNDECIDED:
    246                     // FIXME: this is an error
    247                     break;
     236                    case REPLACE:
     237                        rmNew = new RelationMember(decision.getRole(),newPrimitive);
     238                        modifiedRelation.addMember(rmNew);
     239                        isChanged |= ! rm.equals(rmNew);
     240                        break;
     241                    case REMOVE:
     242                        isChanged = true;
     243                        // do nothing
     244                        break;
     245                    case UNDECIDED:
     246                        // FIXME: this is an error
     247                        break;
    248248                }
    249249            }
     
    279279            }
    280280            switch(decision.getDecision()) {
    281             case REMOVE: return true;
    282             case REPLACE:
    283                 if (!relation.getMember(i).getRole().equals(decision.getRole()))
    284                     return true;
    285                 if (relation.getMember(i).getMember() != newPrimitive)
    286                     return true;
    287             case UNDECIDED:
    288                 // FIXME: handle error
     281                case REMOVE: return true;
     282                case REPLACE:
     283                    if (!relation.getMember(i).getRole().equals(decision.getRole()))
     284                        return true;
     285                    if (relation.getMember(i).getMember() != newPrimitive)
     286                        return true;
     287                case UNDECIDED:
     288                    // FIXME: handle error
    289289            }
    290290        }
Note: See TracChangeset for help on using the changeset viewer.