Changeset 11627 in josm for trunk/src/org/openstreetmap/josm/gui/conflict/tags/CombinePrimitiveResolverDialog.java
- Timestamp:
- 2017-02-26T00:59:32+01:00 (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/org/openstreetmap/josm/gui/conflict/tags/CombinePrimitiveResolverDialog.java
r11606 r11627 132 132 */ 133 133 public void setTargetPrimitive(final OsmPrimitive primitive) { 134 setTargetPrimitive(primitive, true); 135 } 136 137 /** 138 * Sets the primitive the collection of primitives is merged or combined to. 139 * 140 * @param primitive the target primitive 141 * @param updateTitle {@code true} to call {@link #updateTitle} in EDT (can be a slow operation) 142 * @since 11626 143 */ 144 private void setTargetPrimitive(final OsmPrimitive primitive, boolean updateTitle) { 134 145 this.targetPrimitive = primitive; 135 GuiHelper.runInEDTAndWait(() -> { 136 updateTitle(); 137 if (primitive instanceof Way) { 138 pnlRelationMemberConflictResolver.initForWayCombining(); 139 } else if (primitive instanceof Node) { 140 pnlRelationMemberConflictResolver.initForNodeMerging(); 141 } 142 }); 146 if (updateTitle) { 147 GuiHelper.runInEDTAndWait(this::updateTitle); 148 } 143 149 } 144 150 … … 153 159 helpAction.setHelpTopic(ht("/Action/CombineWay#ResolvingConflicts")); 154 160 getRootPane().putClientProperty("help", ht("/Action/CombineWay#ResolvingConflicts")); 161 pnlRelationMemberConflictResolver.initForWayCombining(); 155 162 } else if (targetPrimitive instanceof Node) { 156 163 setTitle(tr("Conflicts when merging nodes - target node is ''{0}''", targetPrimitive … … 158 165 helpAction.setHelpTopic(ht("/Action/MergeNodes#ResolvingConflicts")); 159 166 getRootPane().putClientProperty("help", ht("/Action/MergeNodes#ResolvingConflicts")); 167 pnlRelationMemberConflictResolver.initForNodeMerging(); 160 168 } 161 169 } … … 295 303 */ 296 304 public void prepareDefaultDecisions() { 297 getTagConflictResolverModel().prepareDefaultTagDecisions(); 298 getRelationMemberConflictResolverModel().prepareDefaultRelationDecisions(); 305 prepareDefaultDecisions(true); 306 } 307 308 /** 309 * Prepares the default decisions for populated tag and relation membership conflicts. 310 * @param fireEvent {@code true} to call {@code fireTableDataChanged} (can be a slow operation) 311 * @since 11626 312 */ 313 private void prepareDefaultDecisions(boolean fireEvent) { 314 getTagConflictResolverModel().prepareDefaultTagDecisions(fireEvent); 315 getRelationMemberConflictResolverModel().prepareDefaultRelationDecisions(fireEvent); 299 316 } 300 317 … … 501 518 final CombinePrimitiveResolverDialog dialog = CombinePrimitiveResolverDialog.getInstance(); 502 519 503 dialog.getTagConflictResolverModel().populate(tagsToEdit, completeWayTags.getKeysWithMultipleValues() );504 dialog.getRelationMemberConflictResolverModel().populate(parentRelations, primitives );505 dialog.prepareDefaultDecisions( );520 dialog.getTagConflictResolverModel().populate(tagsToEdit, completeWayTags.getKeysWithMultipleValues(), false); 521 dialog.getRelationMemberConflictResolverModel().populate(parentRelations, primitives, false); 522 dialog.prepareDefaultDecisions(false); 506 523 507 524 // Ensure a proper title is displayed instead of a previous target (fix #7925) 508 525 if (targetPrimitives.size() == 1) { 509 dialog.setTargetPrimitive(targetPrimitives.iterator().next() );526 dialog.setTargetPrimitive(targetPrimitives.iterator().next(), false); 510 527 } else { 511 dialog.setTargetPrimitive(null );528 dialog.setTargetPrimitive(null, false); 512 529 } 513 530 514 531 // Resolve tag conflicts if necessary 515 532 if (!dialog.isResolvedCompletely()) { 533 GuiHelper.runInEDTAndWait(() -> { 534 dialog.getTagConflictResolverModel().fireTableDataChanged(); 535 dialog.getRelationMemberConflictResolverModel().fireTableDataChanged(); 536 dialog.updateTitle(); 537 }); 516 538 dialog.setVisible(true); 517 539 if (!dialog.isApplied()) { … … 520 542 } 521 543 for (OsmPrimitive i : targetPrimitives) { 522 dialog.setTargetPrimitive(i );544 dialog.setTargetPrimitive(i, false); 523 545 cmds.addAll(dialog.buildResolutionCommands()); 524 546 }
Note:
See TracChangeset
for help on using the changeset viewer.