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/command/UndeletePrimitivesCommand.java

    r1670 r1690  
    66import java.util.ArrayList; 
    77import java.util.Collection; 
     8import java.util.HashMap; 
     9import java.util.Map; 
    810 
    911import javax.swing.JLabel; 
     
    1113import javax.swing.tree.MutableTreeNode; 
    1214 
     15import org.openstreetmap.josm.Main; 
    1316import org.openstreetmap.josm.data.osm.OsmPrimitive; 
    1417import org.openstreetmap.josm.tools.ImageProvider; 
     
    2427    /** the node to undelete */ 
    2528    private ArrayList<OsmPrimitive> toUndelete; 
     29    private Map<OsmPrimitive,OsmPrimitive> resolvedConflicts; 
    2630 
     31    protected UndeletePrimitivesCommand() { 
     32        toUndelete = new ArrayList<OsmPrimitive>(); 
     33        resolvedConflicts = new HashMap<OsmPrimitive, OsmPrimitive>(); 
     34    } 
    2735    /** 
    2836     * constructor 
     
    3038     */ 
    3139    public UndeletePrimitivesCommand(OsmPrimitive node) { 
    32         toUndelete = new ArrayList<OsmPrimitive>(); 
     40        this(); 
    3341        toUndelete.add(node); 
    3442    } 
     
    3947     */ 
    4048    public UndeletePrimitivesCommand(OsmPrimitive ... toUndelete) { 
    41         this.toUndelete = new ArrayList<OsmPrimitive>(); 
     49        this(); 
    4250        for (int i=0; i < toUndelete.length; i++) { 
    4351            this.toUndelete.add(toUndelete[i]); 
     
    5058     */ 
    5159    public UndeletePrimitivesCommand(Collection<OsmPrimitive> toUndelete) { 
    52         this.toUndelete = new ArrayList<OsmPrimitive>(); 
     60        this(); 
    5361        this.toUndelete.addAll(toUndelete); 
    5462    } 
     
    7078        super.executeCommand(); 
    7179        for(OsmPrimitive primitive: toUndelete) { 
     80            if (Main.map.conflictDialog.conflicts.containsKey(primitive)) { 
     81                resolvedConflicts.put(primitive, Main.map.conflictDialog.conflicts.get(primitive)); 
     82                Main.map.conflictDialog.removeConflictForPrimitive(primitive); 
     83            } 
    7284            primitive.id = 0; 
    7385        } 
     
    8092        modified.addAll(toUndelete); 
    8193    } 
     94    @Override 
     95    public void undoCommand() { 
     96        super.undoCommand(); 
     97 
     98        for (OsmPrimitive my: resolvedConflicts.keySet()) { 
     99            if (!Main.map.conflictDialog.conflicts.containsKey(my)) { 
     100                Main.map.conflictDialog.addConflict(my, resolvedConflicts.get(my)); 
     101            } 
     102        } 
     103    } 
    82104} 
Note: See TracChangeset for help on using the changeset viewer.