001// License: GPL. For details, see LICENSE file.
002package org.openstreetmap.josm.actions;
003
004import static org.openstreetmap.josm.tools.I18n.tr;
005
006import org.openstreetmap.josm.Main;
007import org.openstreetmap.josm.actions.mapmode.MapMode;
008import org.openstreetmap.josm.gui.layer.Layer;
009import org.openstreetmap.josm.tools.ImageProvider;
010
011public class LassoModeAction extends MapMode {
012
013    public LassoModeAction() {
014        super(tr("Lasso Mode"),
015                "rope",
016                tr("Lasso selection mode: select objects within a hand-drawn region"),
017                null,
018                ImageProvider.getCursor("normal", "rope"));
019    }
020
021    @Override
022    public void enterMode() {
023        if (Main.isDisplayingMapView()) {
024            Main.map.mapModeSelect.setLassoMode(true);
025            Main.map.mapModeSelect.enterMode();
026        }
027        super.enterMode();
028    }
029
030    @Override
031    public void exitMode() {
032        if (Main.isDisplayingMapView()) {
033            Main.map.mapModeSelect.setLassoMode(false);
034            Main.map.mapModeSelect.exitMode();
035        }
036        super.exitMode();
037    }
038
039    @Override
040    public boolean layerIsSupported(Layer l) {
041        return Main.map.mapModeSelect.layerIsSupported(l);
042    }
043}