Ignore:
Timestamp:
2009-07-19T10:31:27+02:00 (15 years ago)
Author:
Gubaer
Message:

improved enabling/disabling of menu entries and action buttons depending on current state of JOSM (number of open layers, type of active layer, etc.)

File:
1 edited

Legend:

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

    r1760 r1808  
    2929import org.openstreetmap.josm.gui.PleaseWaitRunnable;
    3030import org.openstreetmap.josm.gui.historycombobox.SuggestingJHistoryComboBox;
     31import org.openstreetmap.josm.gui.layer.Layer;
     32import org.openstreetmap.josm.gui.layer.Layer.LayerChangeListener;
    3133import org.openstreetmap.josm.io.OsmApi;
    3234import org.openstreetmap.josm.io.OsmApiException;
     
    4850 * @author imi
    4951 */
    50 public class UploadAction extends JosmAction {
     52public class UploadAction extends JosmAction implements LayerChangeListener{
    5153    static private Logger logger = Logger.getLogger(UploadAction.class.getName());
    5254
     
    152154            }
    153155        });
     156
     157        Layer.listeners.add(this);
     158        refreshEnabled();
     159    }
     160
     161    /**
     162     * Refreshes the enabled state
     163     *
     164     */
     165    protected void refreshEnabled() {
     166        setEnabled(Main.main != null
     167                && Main.map != null
     168                && Main.map.mapView !=null
     169                && Main.map.mapView.getEditLayer() != null
     170        );
    154171    }
    155172
     
    582599        e.printStackTrace();
    583600    }
     601
     602    /* ---------------------------------------------------------------------------------- */
     603    /* Interface LayerChangeListener                                                      */
     604    /* ---------------------------------------------------------------------------------- */
     605    public void activeLayerChange(Layer oldLayer, Layer newLayer) {
     606        refreshEnabled();
     607    }
     608
     609    public void layerAdded(Layer newLayer) {
     610        refreshEnabled();
     611    }
     612
     613    public void layerRemoved(Layer oldLayer) {
     614        refreshEnabled();
     615    }
    584616}
Note: See TracChangeset for help on using the changeset viewer.