Ignore:
Timestamp:
2007-10-07T19:36:54+02:00 (19 years ago)
Author:
framm
Message:
  • bugfix refresh relation list
  • bugfix NPE on clicking "select" in relation editors with no members selected
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/gui/dialogs/RelationListDialog.java

    r347 r348  
    3131import org.openstreetmap.josm.data.osm.OsmPrimitive;
    3232import org.openstreetmap.josm.gui.OsmPrimitivRenderer;
     33import org.openstreetmap.josm.gui.layer.DataChangeListener;
     34import org.openstreetmap.josm.gui.layer.Layer;
     35import org.openstreetmap.josm.gui.layer.OsmDataLayer;
     36import org.openstreetmap.josm.gui.layer.Layer.LayerChangeListener;
    3337import org.openstreetmap.josm.tools.ImageProvider;
    3438
     
    4246 * @author Frederik Ramm <frederik@remote.org>
    4347 */
    44 public class RelationListDialog extends ToggleDialog {
     48public class RelationListDialog extends ToggleDialog implements LayerChangeListener, DataChangeListener {
    4549
    4650        /**
     
    9599                        }
    96100                }));
    97                
     101                Layer.listeners.add(this);
    98102                add(buttonPanel, BorderLayout.SOUTH);
    99                
    100                 /*
    101                 DataSet.dataListeners.add(new DataChangedListener() {
    102                         public void dataChanged() {
    103                                 updateList();
    104                                 repaint();
    105                         }
    106                 });
    107                 */
    108103        }
    109104
     
    133128        }
    134129       
     130        public void activeLayerChange(Layer a, Layer b) {
     131                if (a instanceof OsmDataLayer && b instanceof OsmDataLayer) {
     132                        ((OsmDataLayer)a).listenerDataChanged.remove(this);
     133                        ((OsmDataLayer)b).listenerDataChanged.add(this);
     134                        updateList();
     135                        repaint();
     136                }
     137        }
     138       
     139        public void layerRemoved(Layer a) {
     140                if (a instanceof OsmDataLayer) {
     141                        ((OsmDataLayer)a).listenerDataChanged.remove(this);
     142                }
     143        }
     144        public void layerAdded(Layer a) {
     145                if (a instanceof OsmDataLayer) {
     146                        ((OsmDataLayer)a).listenerDataChanged.add(this);
     147                }
     148        }       
     149        public void dataChanged(OsmDataLayer l) {
     150                updateList();
     151                repaint();
     152        }
     153       
    135154}
Note: See TracChangeset for help on using the changeset viewer.