protected void prepareGUIBeforeConflictResolutionStarts() { RelationMemberConflictResolverModel relModel = getRelationMemberConflictResolverModel(); TagConflictResolverModel tagModel = getTagConflictResolverModel(); getContentPane().removeAll(); if (relModel.getNumDecisions() > 0 && tagModel.getNumDecisions() > 0) { // display both, the dialog for resolving relation conflicts and for resolving tag conflicts spTagConflictTypes.setTopComponent(pnlTagConflictResolver); spTagConflictTypes.setBottomComponent(pnlRelationMemberConflictResolver); getContentPane().add(spTagConflictTypes, BorderLayout.CENTER); } else if (relModel.getNumDecisions() > 0) { // relation conflicts only getContentPane().add(pnlRelationMemberConflictResolver, BorderLayout.CENTER); } else if (tagModel.getNumDecisions() > 0) { // tag conflicts only getContentPane().add(pnlTagConflictResolver, BorderLayout.CENTER); } else { getContentPane().add(buildEmptyConflictsPanel(), BorderLayout.CENTER); } getContentPane().add(pnlButtons, BorderLayout.SOUTH); validate(); adjustDividerLocation(); pnlRelationMemberConflictResolver.prepareForEditing(); }
/** * Replies the list of {@link Command commands} needed to apply resolution choices. * * @return The list of {@link Command commands} needed to apply resolution choices. */ public List<Command> buildResolutionCommands() { List<Command> cmds = new LinkedList<>(); TagCollection allResolutions = getTagConflictResolverModel().getAllResolutions(); if (!allResolutions.isEmpty()) { cmds.addAll(buildTagChangeCommand(targetPrimitive, allResolutions)); } for (String p : OsmPrimitive.getDiscardableKeys()) { if (targetPrimitive.get(p) != null) { cmds.add(new ChangePropertyCommand(targetPrimitive, p, null)); } } if (getRelationMemberConflictResolverModel().getNumDecisions() > 0) { cmds.addAll( getRelationMemberConflictResolverModel().buildResolutionCommands(targetPrimitive)); } Command cmd = pnlRelationMemberConflictResolver.buildTagApplyCommands( getRelationMemberConflictResolverModel().getModifiedRelations(targetPrimitive)); if (cmd != null) { cmds.add(cmd); } return cmds; }
protected JPanel buildButtonPanel() { JPanel pnl = new JPanel(new FlowLayout(FlowLayout.CENTER)); // -- apply button ApplyAction applyAction = buildApplyAction(); pnlTagConflictResolver.getModel().addPropertyChangeListener(applyAction); pnlRelationMemberConflictResolver.getModel().addPropertyChangeListener(applyAction); btnApply = new SideButton(applyAction); btnApply.setFocusable(true); pnl.add(btnApply); // -- cancel button CancelAction cancelAction = new CancelAction(); pnl.add(new SideButton(cancelAction)); // -- help button helpAction = new ContextSensitiveHelpAction(); pnl.add(new SideButton(helpAction)); return pnl; }
/** * Replies the relation membership conflict resolver model. * * @return The relation membership conflict resolver model. */ public RelationMemberConflictResolverModel getRelationMemberConflictResolverModel() { return pnlRelationMemberConflictResolver.getModel(); }