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 011/** 012 * Lasso selection mode: select objects within a hand-drawn region. 013 * @since 5152 014 */ 015public class LassoModeAction extends MapMode { 016 017 /** 018 * Constructs a new {@code LassoModeAction}. 019 */ 020 public LassoModeAction() { 021 super(tr("Lasso Mode"), 022 /* ICON(mapmode/) */ "rope", 023 tr("Lasso selection mode: select objects within a hand-drawn region"), 024 null, 025 ImageProvider.getCursor("normal", "rope")); 026 } 027 028 @Override 029 public void enterMode() { 030 if (Main.isDisplayingMapView()) { 031 Main.map.mapModeSelect.setLassoMode(true); 032 Main.map.mapModeSelect.enterMode(); 033 } 034 super.enterMode(); 035 } 036 037 @Override 038 public void exitMode() { 039 if (Main.isDisplayingMapView()) { 040 Main.map.mapModeSelect.setLassoMode(false); 041 Main.map.mapModeSelect.exitMode(); 042 } 043 super.exitMode(); 044 } 045 046 @Override 047 public boolean layerIsSupported(Layer l) { 048 return Main.map.mapModeSelect.layerIsSupported(l); 049 } 050}