Ignore:
Timestamp:
2016-06-08T23:17:19+02:00 (9 years ago)
Author:
Don-vip
Message:

fix #12937 - Use the new LayerChangeListener (patch by michael2402) - gsoc-core

File:
1 edited

Legend:

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

    r10271 r10345  
    3838import javax.swing.JToolBar;
    3939import javax.swing.KeyStroke;
    40 import javax.swing.SwingUtilities;
    4140import javax.swing.border.Border;
    4241import javax.swing.event.PopupMenuEvent;
     
    5958import org.openstreetmap.josm.data.Preferences.PreferenceChangedListener;
    6059import org.openstreetmap.josm.data.ViewportData;
    61 import org.openstreetmap.josm.gui.MapView.LayerChangeListener;
    6260import org.openstreetmap.josm.gui.dialogs.ChangesetDialog;
    6361import org.openstreetmap.josm.gui.dialogs.CommandStackDialog;
     
    7775import org.openstreetmap.josm.gui.layer.Layer;
    7876import org.openstreetmap.josm.gui.layer.LayerManager;
     77import org.openstreetmap.josm.gui.layer.LayerManager.LayerAddEvent;
     78import org.openstreetmap.josm.gui.layer.LayerManager.LayerChangeListener;
     79import org.openstreetmap.josm.gui.layer.LayerManager.LayerOrderChangeEvent;
     80import org.openstreetmap.josm.gui.layer.LayerManager.LayerRemoveEvent;
     81import org.openstreetmap.josm.gui.layer.MainLayerManager.ActiveLayerChangeEvent;
     82import org.openstreetmap.josm.gui.layer.MainLayerManager.ActiveLayerChangeListener;
    7983import org.openstreetmap.josm.gui.util.AdvancedKeyPressDetector;
    8084import org.openstreetmap.josm.tools.Destroyable;
     
    9094 * @author imi
    9195 */
    92 public class MapFrame extends JPanel implements Destroyable, LayerChangeListener {
     96public class MapFrame extends JPanel implements Destroyable, ActiveLayerChangeListener, LayerChangeListener {
    9397
    9498    /**
     
    285289        // status line below the map
    286290        statusLine = new MapStatus(this);
    287         MapView.addLayerChangeListener(this);
     291        Main.getLayerManager().addLayerChangeListener(this);
     292        Main.getLayerManager().addActiveLayerChangeListener(this);
    288293
    289294        boolean unregisterTab = Shortcut.findShortcut(KeyEvent.VK_TAB, 0) != null;
     
    329334    @Override
    330335    public void destroy() {
    331         MapView.removeLayerChangeListener(this);
     336        Main.getLayerManager().removeLayerChangeListener(this);
     337        Main.getLayerManager().removeActiveLayerChangeListener(this);
    332338        dialogsPanel.destroy();
    333339        Main.pref.removePreferenceChangeListener(sidetoolbarPreferencesChangedListener);
     
    757763
    758764    @Override
    759     public void activeLayerChange(Layer oldLayer, Layer newLayer) {
     765    public void activeOrEditLayerChanged(ActiveLayerChangeEvent e) {
    760766        boolean modeChanged = false;
     767        Layer newLayer = e.getSource().getActiveLayer();
    761768        if (mapMode == null || !mapMode.layerIsSupported(newLayer)) {
    762769            MapMode newMapMode = getLastMapMode(newLayer);
     
    771778        }
    772779        // if this is really a change (and not the first active layer)
    773         if (oldLayer != null) {
     780        if (e.getPreviousActiveLayer() != null) {
    774781            if (!modeChanged && mapMode != null) {
    775782                // Let mapmodes know about new active layer
     
    783790        // After all listeners notice new layer, some buttons will be disabled/enabled
    784791        // and possibly need to be hidden/shown.
    785         SwingUtilities.invokeLater(new Runnable() {
    786             @Override public void run() {
    787                 validateToolBarsVisibility();
    788             }
    789         });
     792        validateToolBarsVisibility();
    790793    }
    791794
     
    803806
    804807    @Override
    805     public void layerAdded(Layer newLayer) {
    806         // Do nothing
     808    public void layerAdded(LayerAddEvent e) {
     809        // ignored
    807810    }
    808811
    809812    @Override
    810     public void layerRemoved(Layer oldLayer) {
    811         lastMapMode.remove(oldLayer);
    812     }
     813    public void layerRemoving(LayerRemoveEvent e) {
     814        lastMapMode.remove(e.getRemovedLayer());
     815    }
     816
     817    @Override
     818    public void layerOrderChanged(LayerOrderChangeEvent e) {
     819        // ignored
     820    }
     821
    813822}
Note: See TracChangeset for help on using the changeset viewer.