Ignore:
Timestamp:
23.06.2009 22:03:37 (3 years ago)
Author:
Gubaer
Message:

new: MultiFetchServerObjectReader using APIs Multi Fetch method
update: now uses Multi Fetch to check for deleted primitives on the server
update: now uses Multi Fetch to update the selected primitives with the state from the server
fixed: cleaned up merging in MergeVisitor
new: conflict resolution dialog; now resolves conflicts due to different visibilities
new: replacement for realEqual() on OsmPrimitive and derived classes; realEqual now @deprecated
fixed: cleaning up OsmReader
fixed: progress indication in OsmApi

File:
1 edited

Legend:

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

    r1654 r1690  
    2323import org.openstreetmap.josm.gui.conflict.nodes.NodeListMergeModel; 
    2424import org.openstreetmap.josm.gui.conflict.nodes.NodeListMerger; 
     25import org.openstreetmap.josm.gui.conflict.properties.OperationCancelledException; 
    2526import org.openstreetmap.josm.gui.conflict.properties.PropertiesMergeModel; 
    2627import org.openstreetmap.josm.gui.conflict.properties.PropertiesMerger; 
     
    145146        this.their =  their; 
    146147        propertiesMerger.getModel().populate(my, their); 
     148        if (propertiesMerger.getModel().hasVisibleStateConflict()) { 
     149            tabbedPane.setEnabledAt(1, false); 
     150            tabbedPane.setEnabledAt(2, false); 
     151            tabbedPane.setEnabledAt(3, false); 
     152            return; 
     153        } 
    147154        tabbedPane.setEnabledAt(0, true); 
    148155        tagMerger.getModel().populate(my, their); 
     
    165172            tabbedPane.setEnabledAt(3, true); 
    166173        } 
     174 
    167175    } 
    168176 
     
    173181     * @return the resolution command 
    174182     */ 
    175     public Command buildResolveCommand() { 
     183    public Command buildResolveCommand() throws OperationCancelledException { 
    176184        ArrayList<Command> commands = new ArrayList<Command>(); 
    177         if (tagMerger.getModel().getNumResolvedConflicts() > 0) { 
    178             commands.add(tagMerger.getModel().buildResolveCommand(my, their)); 
    179         } 
    180         commands.addAll(propertiesMerger.getModel().buildResolveCommand(my, their)); 
    181         if (my instanceof Way && nodeListMerger.getModel().isFrozen()) { 
    182             NodeListMergeModel model  =(NodeListMergeModel)nodeListMerger.getModel(); 
    183             commands.add(model.buildResolveCommand((Way)my, (Way)their)); 
    184         } else if (my instanceof Relation && relationMemberMerger.getModel().isFrozen()) { 
    185             RelationMemberListMergeModel model  =(RelationMemberListMergeModel)relationMemberMerger.getModel(); 
    186             commands.add(model.buildResolveCommand((Relation)my, (Relation)their)); 
    187         } 
    188         if (isResolvedCompletely()) { 
    189             commands.add( 
    190                     new VersionConflictResolveCommand(my, their) 
    191             ); 
     185        if (propertiesMerger.getModel().hasVisibleStateConflict()) { 
     186            if (propertiesMerger.getModel().isDecidedVisibleState()) { 
     187                commands.addAll(propertiesMerger.getModel().buildResolveCommand(my, their)); 
     188            } 
     189        } else { 
     190            if (tagMerger.getModel().getNumResolvedConflicts() > 0) { 
     191                commands.add(tagMerger.getModel().buildResolveCommand(my, their)); 
     192            } 
     193            commands.addAll(propertiesMerger.getModel().buildResolveCommand(my, their)); 
     194            if (my instanceof Way && nodeListMerger.getModel().isFrozen()) { 
     195                NodeListMergeModel model  =(NodeListMergeModel)nodeListMerger.getModel(); 
     196                commands.add(model.buildResolveCommand((Way)my, (Way)their)); 
     197            } else if (my instanceof Relation && relationMemberMerger.getModel().isFrozen()) { 
     198                RelationMemberListMergeModel model  =(RelationMemberListMergeModel)relationMemberMerger.getModel(); 
     199                commands.add(model.buildResolveCommand((Relation)my, (Relation)their)); 
     200            } 
     201            if (isResolvedCompletely()) { 
     202                commands.add( 
     203                        new VersionConflictResolveCommand(my, their) 
     204                ); 
     205            } 
    192206        } 
    193207        return new SequenceCommand(tr("Conflict Resolution"), commands); 
Note: See TracChangeset for help on using the changeset viewer.