Ignore:
Timestamp:
10.02.2010 15:23:17 (2 years ago)
Author:
Gubaer
Message:

fixed #4392: exception in version history dialog on re-downloading a changed element

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/data/osm/history/HistoryDataSet.java

    r2936 r2961  
    77import java.util.concurrent.CopyOnWriteArrayList; 
    88 
     9import org.openstreetmap.josm.Main; 
    910import org.openstreetmap.josm.data.osm.OsmPrimitiveType; 
    1011import org.openstreetmap.josm.data.osm.PrimitiveId; 
    1112import org.openstreetmap.josm.data.osm.SimplePrimitiveId; 
     13import org.openstreetmap.josm.gui.MapView; 
     14import org.openstreetmap.josm.gui.MapView.LayerChangeListener; 
     15import org.openstreetmap.josm.gui.layer.Layer; 
    1216import org.openstreetmap.josm.tools.CheckParameterUtil; 
    1317 
     
    1721 * 
    1822 */ 
    19 public class HistoryDataSet { 
     23public class HistoryDataSet implements LayerChangeListener{ 
    2024    //private final static Logger logger = Logger.getLogger(HistoryDataSet.class.getName()); 
    2125 
     
    3135        if (historyDataSet == null) { 
    3236            historyDataSet = new HistoryDataSet(); 
     37            MapView.addLayerChangeListener(historyDataSet); 
    3338        } 
    3439        return  historyDataSet; 
     
    5762        for (HistoryDataSetListener l : listeners) { 
    5863            l.historyUpdated(this, id); 
     64        } 
     65    } 
     66 
     67    protected void fireCacheCleared() { 
     68        for (HistoryDataSetListener l : listeners) { 
     69            l.historyDataSetCleared(this); 
    5970        } 
    6071    } 
     
    151162        fireHistoryUpdated(null); 
    152163    } 
     164 
     165    /* ------------------------------------------------------------------------------ */ 
     166    /* interface LayerChangeListener                                                  */ 
     167    /* ------------------------------------------------------------------------------ */ 
     168    public void activeLayerChange(Layer oldLayer, Layer newLayer) {/* irrelevant in this context */} 
     169    public void layerAdded(Layer newLayer) {/* irrelevant in this context */} 
     170    public void layerRemoved(Layer oldLayer) { 
     171        if (Main.map == null || Main.map.mapView == null) return; 
     172        if (Main.map.mapView.getNumLayers() == 0) { 
     173            data.clear(); 
     174            fireCacheCleared(); 
     175        } 
     176    } 
    153177} 
Note: See TracChangeset for help on using the changeset viewer.