Ignore:
Timestamp:
2010-02-04T21:04:02+01:00 (14 years ago)
Author:
jttt
Message:

Fixed #4408 confict manager: do not have to solve tag- and element-conficts when deleting

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

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/gui/conflict/pair/properties/PropertiesMergeModel.java

    r2846 r2936  
    5353
    5454    static public final String RESOLVED_COMPLETELY_PROP = PropertiesMergeModel.class.getName() + ".resolvedCompletely";
     55    static public final String DELETE_PRIMITIVE_PROP = PropertiesMergeModel.class.getName() + ".deletePrimitive";
    5556
    5657    private OsmPrimitive my;
     
    287288    }
    288289
     290    private boolean getMergedDeletedState(MergeDecisionType decision) {
     291        switch (decision) {
     292        case KEEP_MINE:
     293            return myDeletedState;
     294        case KEEP_THEIR:
     295            return theirDeletedState;
     296        default:
     297            return false;
     298        }
     299    }
     300
    289301    /**
    290302     * decides the conflict between two deleted states
     
    295307    public void decideDeletedStateConflict(MergeDecisionType decision) throws IllegalArgumentException{
    296308        CheckParameterUtil.ensureParameterNotNull(decision, "decision");
     309
     310        boolean oldMergedDeletedState = getMergedDeletedState(this.deletedMergeDecision);
     311        boolean newMergedDeletedState = getMergedDeletedState(decision);
     312
    297313        this.deletedMergeDecision = decision;
    298314        setChanged();
    299315        notifyObservers();
    300316        fireCompletelyResolved();
     317
     318        if (oldMergedDeletedState != newMergedDeletedState) {
     319            support.firePropertyChange(DELETE_PRIMITIVE_PROP, oldMergedDeletedState, newMergedDeletedState);
     320        }
    301321    }
    302322
     
    478498                        dependent.size(), dependent.size(), way.getId())
    479499                        + "</html>",
    480                 tr("Undelete additional nodes?"),
    481                 JOptionPane.YES_NO_OPTION,
    482                 JOptionPane.QUESTION_MESSAGE,
    483                 null,
    484                 options,
    485                 options[0]
     500                        tr("Undelete additional nodes?"),
     501                        JOptionPane.YES_NO_OPTION,
     502                        JOptionPane.QUESTION_MESSAGE,
     503                        null,
     504                        options,
     505                        options[0]
    486506        );
    487507
     
    512532                        dependent.size(), dependent.size(), r.getId())
    513533                        + "</html>",
    514                 tr("Undelete dependent primitives?"),
    515                 JOptionPane.YES_NO_OPTION,
    516                 JOptionPane.QUESTION_MESSAGE,
    517                 null,
    518                 options,
    519                 options[0]
     534                        tr("Undelete dependent primitives?"),
     535                        JOptionPane.YES_NO_OPTION,
     536                        JOptionPane.QUESTION_MESSAGE,
     537                        null,
     538                        options,
     539                        options[0]
    520540        );
    521541
  • trunk/src/org/openstreetmap/josm/gui/conflict/pair/properties/PropertiesMerger.java

    r2612 r2936  
    2222
    2323import org.openstreetmap.josm.data.coor.LatLon;
     24import org.openstreetmap.josm.gui.conflict.pair.IConflictResolver;
    2425import org.openstreetmap.josm.gui.conflict.pair.MergeDecisionType;
    2526import org.openstreetmap.josm.tools.ImageProvider;
     
    3031 *
    3132 */
    32 public class PropertiesMerger extends JPanel implements Observer {
     33public class PropertiesMerger extends JPanel implements Observer, IConflictResolver {
    3334    private static DecimalFormat COORD_FORMATTER = new DecimalFormat("###0.0000000");
    3435
     
    650651        }
    651652    }
     653
     654    public void deletePrimitive(boolean deleted) {
     655        // Do nothing
     656    }
    652657}
Note: See TracChangeset for help on using the changeset viewer.