Ignore:
Timestamp:
2010-01-07T19:29:53+01:00 (14 years ago)
Author:
mjulius
Message:

Make the new zoom previous and next actions listen to zoom changes and set enabled state.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/actions/AutoScaleAction.java

    r2758 r2759  
    1818import org.openstreetmap.josm.data.osm.OsmPrimitive;
    1919import org.openstreetmap.josm.data.osm.visitor.BoundingXYVisitor;
     20import org.openstreetmap.josm.gui.MapView;
    2021import org.openstreetmap.josm.gui.dialogs.LayerListDialog;
    2122import org.openstreetmap.josm.gui.layer.Layer;
     
    226227                setEnabled(true);
    227228            }
     229        } else if ("previous".equals(mode)) {
     230            setEnabled(Main.map != null && Main.map.mapView != null && Main.map.mapView.hasZoomUndoEntries());
     231        } else if ("next".equals(mode)) {
     232            setEnabled(Main.map != null && Main.map.mapView != null && Main.map.mapView.hasZoomRedoEntries());
    228233        } else {
    229234            setEnabled(
     
    240245        }
    241246    }
     247
     248    @Override
     249    protected void installAdapters() {
     250        super.installAdapters();
     251        // make this action listen to zoom change events
     252        //
     253        zoomChangeAdapter = new ZoomChangeAdapter();
     254        MapView.addZoomChangeListener(zoomChangeAdapter);
     255        initEnabledState();
     256    }
     257
     258    /**
     259     * Adapter for selection change events
     260     *
     261     */
     262    private class ZoomChangeAdapter implements MapView.ZoomChangeListener {
     263        public void zoomChanged() {
     264            updateEnabledState();
     265        }
     266    }
     267
     268    private ZoomChangeAdapter zoomChangeAdapter;
    242269}
Note: See TracChangeset for help on using the changeset viewer.