Spaces:
Running
Running
| L.Draw = L.Draw || {}; | |
| /** | |
| * @class L.Draw.Feature | |
| * @aka Draw.Feature | |
| */ | |
| L.Draw.Feature = L.Handler.extend({ | |
| includes: L.Mixin.Events, | |
| // @method initialize(): void | |
| initialize: function (map, options) { | |
| this._map = map; | |
| this._container = map._container; | |
| this._overlayPane = map._panes.overlayPane; | |
| this._popupPane = map._panes.popupPane; | |
| // Merge default shapeOptions options with custom shapeOptions | |
| if (options && options.shapeOptions) { | |
| options.shapeOptions = L.Util.extend({}, this.options.shapeOptions, options.shapeOptions); | |
| } | |
| L.setOptions(this, options); | |
| }, | |
| // @method enable(): void | |
| // Enables this handler | |
| enable: function () { | |
| if (this._enabled) { | |
| return; | |
| } | |
| L.Handler.prototype.enable.call(this); | |
| this.fire('enabled', { handler: this.type }); | |
| this._map.fire(L.Draw.Event.DRAWSTART, { layerType: this.type }); | |
| }, | |
| // @method initialize(): void | |
| disable: function () { | |
| if (!this._enabled) { | |
| return; | |
| } | |
| L.Handler.prototype.disable.call(this); | |
| this._map.fire(L.Draw.Event.DRAWSTOP, { layerType: this.type }); | |
| this.fire('disabled', { handler: this.type }); | |
| }, | |
| // @method addHooks(): void | |
| // Add's event listeners to this handler | |
| addHooks: function () { | |
| var map = this._map; | |
| if (map) { | |
| L.DomUtil.disableTextSelection(); | |
| map.getContainer().focus(); | |
| this._tooltip = new L.Draw.Tooltip(this._map); | |
| L.DomEvent.on(this._container, 'keyup', this._cancelDrawing, this); | |
| } | |
| }, | |
| // @method removeHooks(): void | |
| // Removes event listeners from this handler | |
| removeHooks: function () { | |
| if (this._map) { | |
| L.DomUtil.enableTextSelection(); | |
| this._tooltip.dispose(); | |
| this._tooltip = null; | |
| L.DomEvent.off(this._container, 'keyup', this._cancelDrawing, this); | |
| } | |
| }, | |
| // @method setOptions(object): void | |
| // Sets new options to this handler | |
| setOptions: function (options) { | |
| L.setOptions(this, options); | |
| }, | |
| _fireCreatedEvent: function (layer) { | |
| this._map.fire(L.Draw.Event.CREATED, { layer: layer, layerType: this.type }); | |
| }, | |
| // Cancel drawing when the escape key is pressed | |
| _cancelDrawing: function (e) { | |
| this._map.fire('draw:canceled', { layerType: this.type }); | |
| if (e.keyCode === 27) { | |
| this.disable(); | |
| } | |
| } | |
| }); | |