Changeset 2157 in josm


Ignore:
Timestamp:
Sep 17, 2009 10:38:08 PM (4 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.