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

File:
1 edited

Legend:

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

    r2846 r2936  
    99import java.beans.PropertyChangeListener;
    1010import java.util.ArrayList;
    11 import java.util.logging.Logger;
     11import java.util.List;
    1212
    1313import javax.swing.ImageIcon;
     
    6767    static public final String THEIR_PRIMITIVE_PROP = ConflictResolver.class.getName() + ".theirPrimitive";
    6868
    69     private static final Logger logger = Logger.getLogger(ConflictResolver.class.getName());
     69    //private static final Logger logger = Logger.getLogger(ConflictResolver.class.getName());
    7070
    7171    private JTabbedPane tabbedPane = null;
     
    7474    private RelationMemberMerger relationMemberMerger;
    7575    private PropertiesMerger propertiesMerger;
     76    private final List<IConflictResolver> conflictResolvers = new ArrayList<IConflictResolver>();
    7677    private OsmPrimitive my;
    7778    private OsmPrimitive their;
     
    119120        setLayout(new BorderLayout());
    120121        add(tabbedPane, BorderLayout.CENTER);
     122
     123        conflictResolvers.add(propertiesMerger);
     124        conflictResolvers.add(tagMerger);
     125        conflictResolvers.add(nodeListMerger);
     126        conflictResolvers.add(relationMemberMerger);
    121127    }
    122128
     
    174180        } else if (evt.getPropertyName().equals(ListMergeModel.FROZEN_PROP)) {
    175181            boolean frozen = (Boolean)evt.getNewValue();
    176             if (frozen && evt.getSource() == nodeListMerger.getModel()) {
    177                 tabbedPane.setTitleAt(2, tr("Nodes(resolved)"));
    178                 tabbedPane.setToolTipTextAt(2, tr("Merged node list frozen. No pending conflicts in the node list of this way"));
    179                 tabbedPane.setIconAt(2, mergeComplete);
    180             } else {
    181                 tabbedPane.setTitleAt(2, tr("Nodes(with conflicts)"));
    182                 tabbedPane.setToolTipTextAt(2,tr("Pending conflicts in the node list of this way"));
    183                 tabbedPane.setIconAt(2, mergeIncomplete);
    184             }
    185             if (frozen && evt.getSource() == relationMemberMerger.getModel()) {
    186                 tabbedPane.setTitleAt(3, tr("Members(resolved)"));
    187                 tabbedPane.setToolTipTextAt(3, tr("Merged member list frozen. No pending conflicts in the member list of this relation"));
    188                 tabbedPane.setIconAt(3, mergeComplete);
    189             } else {
    190                 tabbedPane.setTitleAt(3, tr("Members(with conflicts)"));
    191                 tabbedPane.setToolTipTextAt(3, tr("Pending conflicts in the member list of this relation"));
    192                 tabbedPane.setIconAt(3, mergeIncomplete);
     182            if (evt.getSource() == nodeListMerger.getModel() && my instanceof Way) {
     183                if (frozen) {
     184                    tabbedPane.setTitleAt(2, tr("Nodes(resolved)"));
     185                    tabbedPane.setToolTipTextAt(2, tr("Merged node list frozen. No pending conflicts in the node list of this way"));
     186                    tabbedPane.setIconAt(2, mergeComplete);
     187                } else {
     188                    tabbedPane.setTitleAt(2, tr("Nodes(with conflicts)"));
     189                    tabbedPane.setToolTipTextAt(2,tr("Pending conflicts in the node list of this way"));
     190                    tabbedPane.setIconAt(2, mergeIncomplete);
     191                }
     192            } else if (evt.getSource() == relationMemberMerger.getModel() && my instanceof Relation) {
     193                if (frozen) {
     194                    tabbedPane.setTitleAt(3, tr("Members(resolved)"));
     195                    tabbedPane.setToolTipTextAt(3, tr("Merged member list frozen. No pending conflicts in the member list of this relation"));
     196                    tabbedPane.setIconAt(3, mergeComplete);
     197                } else {
     198                    tabbedPane.setTitleAt(3, tr("Members(with conflicts)"));
     199                    tabbedPane.setToolTipTextAt(3, tr("Pending conflicts in the member list of this relation"));
     200                    tabbedPane.setIconAt(3, mergeIncomplete);
     201                }
    193202            }
    194203            updateResolvedCompletely();
     
    205214            }
    206215            updateResolvedCompletely();
     216        } else if (PropertiesMergeModel.DELETE_PRIMITIVE_PROP.equals(evt.getPropertyName())) {
     217            for (IConflictResolver resolver: conflictResolvers) {
     218                resolver.deletePrimitive((Boolean) evt.getNewValue());
     219            }
    207220        }
    208221    }
Note: See TracChangeset for help on using the changeset viewer.