Ignore:
Timestamp:
2009-07-21T19:52:53+02:00 (15 years ago)
Author:
Gubaer
Message:

JosmAction is now a LayerChangeListener and a SelectionChangeListener
updated all JosmActions
fixed #3018: Make sure tools menu entries (and actions) are deactivated when no layer

File:
1 edited

Legend:

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

    r1811 r1820  
    3535 *
    3636 */
    37 public class DownloadReferrersAction extends JosmAction implements SelectionChangedListener, LayerChangeListener {
     37public class DownloadReferrersAction extends JosmAction{
    3838
    3939    public DownloadReferrersAction() {
    4040        super(tr("Download referrers from OSM..."), "downloadreferrers", tr("Download primitives referring to one of the selected primitives"),
    4141                Shortcut.registerShortcut("file:downloadreferrers", tr("File: {0}", tr("Download referrers...")), KeyEvent.VK_D, Shortcut.GROUPS_ALT2+Shortcut.GROUP_HOTKEY), true);
    42 
    43         Layer.listeners.add(this);
    44         DataSet.selListeners.add(this);
    45         refreshEnabled();
    4642    }
    4743
     
    168164     *
    169165     */
    170     protected void refreshEnabled() {
    171         setEnabled(Main.map != null
    172                 && Main.map.mapView !=null
    173                 && Main.map.mapView.getEditLayer() != null
    174                 && ! Main.map.mapView.getEditLayer().data.getSelected().isEmpty()
    175         );
    176     }
    177 
    178     /* ---------------------------------------------------------------------------------- */
    179     /* Interface SelectionChangeListener                                                  */
    180     /* ---------------------------------------------------------------------------------- */
    181     public void selectionChanged(Collection<? extends OsmPrimitive> newSelection) {
    182         refreshEnabled();
    183     }
    184 
    185     /* ---------------------------------------------------------------------------------- */
    186     /* Interface LayerChangeListener                                                      */
    187     /* ---------------------------------------------------------------------------------- */
    188     public void activeLayerChange(Layer oldLayer, Layer newLayer) {
    189         refreshEnabled();
    190     }
    191 
    192     public void layerAdded(Layer newLayer) {
    193         refreshEnabled();
    194     }
    195 
    196     public void layerRemoved(Layer oldLayer) {
    197         refreshEnabled();
     166    @Override
     167    protected void updateEnabledState() {
     168        setEnabled(getCurrentDataSet() != null && ! getCurrentDataSet().getSelected().isEmpty());
    198169    }
    199170}
Note: See TracChangeset for help on using the changeset viewer.