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/PurgePrimitivesCommand.java

    r1670 r1690  
    66import java.util.ArrayList; 
    77import java.util.Collection; 
     8import java.util.HashMap; 
    89import java.util.List; 
     10import java.util.Map; 
    911 
    1012import javax.swing.JLabel; 
     
    3335 */ 
    3436public class PurgePrimitivesCommand extends Command{ 
     37 
    3538 
    3639    /** 
     
    141144    private ArrayList<OsmParentChildPair> pairs; 
    142145 
     146    private Map<OsmPrimitive, OsmPrimitive> resolvedConflicts; 
     147 
    143148    /** 
    144149     * constructor 
     
    149154        purgedPrimitives = new ArrayList<OsmPrimitive>(); 
    150155        pairs = new ArrayList<OsmParentChildPair>(); 
     156        resolvedConflicts = new HashMap<OsmPrimitive, OsmPrimitive>(); 
    151157    } 
    152158 
     
    180186            if (pair.getParent() instanceof Way) { 
    181187                Way w = (Way)pair.getParent(); 
    182                 System.out.println("removing reference from way " + w.id); 
     188                System.out.println(tr("removing reference from way {0}",w.id)); 
    183189                w.nodes.remove(primitive); 
    184190                // if a way ends up with less than two node we 
     
    194200            } else if (pair.getParent() instanceof Relation) { 
    195201                Relation r = (Relation)pair.getParent(); 
    196                 System.out.println("removing reference from relation " + r.id); 
     202                System.out.println(tr("removing reference from relation {0}",r.id)); 
    197203                r.removeMembersFor(primitive); 
    198204            } 
     
    220226            } 
    221227            purgedPrimitives.add(toPurge); 
     228            if (Main.map.conflictDialog.conflicts.containsKey(toPurge)) { 
     229                resolvedConflicts.put(toPurge, Main.map.conflictDialog.conflicts.get(toPurge)); 
     230                Main.map.conflictDialog.removeConflictForPrimitive(toPurge); 
     231            } 
    222232        } 
    223233        return super.executeCommand(); 
     
    236246    @Override 
    237247    public void undoCommand() { 
     248 
     249        // restore purged primitives 
     250        // 
    238251        for (OsmPrimitive purged : purgedPrimitives) { 
    239252            Main.ds.addPrimitive(purged); 
     253        } 
     254 
     255        // restore conflicts 
     256        // 
     257        for (OsmPrimitive primitive : resolvedConflicts.keySet()) { 
     258            Main.map.conflictDialog.addConflict(primitive, resolvedConflicts.get(primitive)); 
    240259        } 
    241260 
Note: See TracChangeset for help on using the changeset viewer.