Changeset 19050 in josm for trunk/src/org/openstreetmap/josm/gui/conflict/tags/RelationMemberConflictResolverModel.java
- Timestamp:
- 2024-04-22T20:59:26+02:00 (4 weeks ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/org/openstreetmap/josm/gui/conflict/tags/RelationMemberConflictResolverModel.java
r17220 r19050 106 106 107 107 RelationMemberConflictDecision d = decisions.get(row); 108 switch (column) {108 switch (column) { 109 109 case 0: /* relation */ return d.getRelation(); 110 110 case 1: /* pos */ return Integer.toString(d.getPos() + 1); // position in "user space" starting at 1 111 111 case 2: /* role */ return d.getRole(); 112 112 case 3: /* original */ return d.getOriginalPrimitive(); 113 case 4: /* decision keep */ return RelationMemberConflictDecisionType.KEEP .equals(d.getDecision());114 case 5: /* decision remove */ return RelationMemberConflictDecisionType.REMOVE .equals(d.getDecision());113 case 4: /* decision keep */ return RelationMemberConflictDecisionType.KEEP == d.getDecision(); 114 case 5: /* decision remove */ return RelationMemberConflictDecisionType.REMOVE == d.getDecision(); 115 115 } 116 116 return null; … … 120 120 public void setValueAt(Object value, int row, int column) { 121 121 RelationMemberConflictDecision d = decisions.get(row); 122 switch (column) {122 switch (column) { 123 123 case 2: /* role */ 124 124 d.setRole((String) value); … … 200 200 decisions.clear(); 201 201 this.relations = new HashSet<>(references.size()); 202 final Collection<OsmPrimitive> primitives = new HashSet<>();202 final Collection<OsmPrimitive> newPrimitives = new HashSet<>(); 203 203 for (RelationToChildReference reference: references) { 204 204 decisions.add(new RelationMemberConflictDecision(reference.getParent(), reference.getPosition())); 205 205 relations.add(reference.getParent()); 206 primitives.add(reference.getChild());207 } 208 this.primitives = primitives;206 newPrimitives.add(reference.getChild()); 207 } 208 this.primitives = newPrimitives; 209 209 refresh(); 210 210 } … … 249 249 final OsmPrimitive primitive = decision.getOriginalPrimitive(); 250 250 if (!decisionsByPrimitive.containsKey(primitive)) { 251 decisionsByPrimitive.put(primitive, new ArrayList< RelationMemberConflictDecision>());251 decisionsByPrimitive.put(primitive, new ArrayList<>()); 252 252 } 253 253 decisionsByPrimitive.get(primitive).add(decision); … … 263 263 .collect(Collectors.toList()); 264 264 while (iterators.stream().allMatch(Iterator::hasNext)) { 265 final List<RelationMemberConflictDecision> decisions = new ArrayList<>();265 final List<RelationMemberConflictDecision> conflictDecisions = new ArrayList<>(); 266 266 final Collection<String> roles = new HashSet<>(); 267 267 final Collection<Integer> indices = new TreeSet<>(); 268 268 for (Iterator<RelationMemberConflictDecision> it : iterators) { 269 269 final RelationMemberConflictDecision decision = it.next(); 270 decisions.add(decision);270 conflictDecisions.add(decision); 271 271 roles.add(decision.getRole()); 272 272 indices.add(decision.getPos()); … … 276 276 continue; 277 277 } 278 decisions.get(0).decide(RelationMemberConflictDecisionType.KEEP);279 for (RelationMemberConflictDecision decision : decisions.subList(1, decisions.size())) {278 conflictDecisions.get(0).decide(RelationMemberConflictDecisionType.KEEP); 279 for (RelationMemberConflictDecision decision : conflictDecisions.subList(1, conflictDecisions.size())) { 280 280 decision.decide(RelationMemberConflictDecisionType.REMOVE); 281 281 } … … 372 372 modifiedMemberList.add(member); 373 373 } else { 374 switch (decision.getDecision()) {374 switch (decision.getDecision()) { 375 375 case KEEP: 376 376 final RelationMember newMember = new RelationMember(decision.getRole(), newPrimitive); … … 410 410 continue; 411 411 } 412 switch (decision.getDecision()) {412 switch (decision.getDecision()) { 413 413 case REMOVE: return true; 414 414 case KEEP:
Note:
See TracChangeset
for help on using the changeset viewer.