mirror of
https://github.com/mickael-kerjean/filestash
synced 2025-12-09 18:03:15 +01:00
110 lines
2.7 KiB
JavaScript
110 lines
2.7 KiB
JavaScript
/**
|
|
* @class L.DrawToolbar
|
|
* @aka Toolbar
|
|
*/
|
|
L.DrawToolbar = L.Toolbar.extend({
|
|
|
|
statics: {
|
|
TYPE: 'draw'
|
|
},
|
|
|
|
options: {
|
|
polyline: {},
|
|
polygon: {},
|
|
rectangle: {},
|
|
circle: {},
|
|
marker: {},
|
|
circlemarker: {}
|
|
},
|
|
|
|
// @method initialize(): void
|
|
initialize: function (options) {
|
|
// Ensure that the options are merged correctly since L.extend is only shallow
|
|
for (var type in this.options) {
|
|
if (this.options.hasOwnProperty(type)) {
|
|
if (options[type]) {
|
|
options[type] = L.extend({}, this.options[type], options[type]);
|
|
}
|
|
}
|
|
}
|
|
|
|
this._toolbarClass = 'leaflet-draw-draw';
|
|
L.Toolbar.prototype.initialize.call(this, options);
|
|
},
|
|
|
|
// @method getModeHandlers(): object
|
|
// Get mode handlers information
|
|
getModeHandlers: function (map) {
|
|
return [
|
|
{
|
|
enabled: this.options.polyline,
|
|
handler: new L.Draw.Polyline(map, this.options.polyline),
|
|
title: L.drawLocal.draw.toolbar.buttons.polyline
|
|
},
|
|
{
|
|
enabled: this.options.polygon,
|
|
handler: new L.Draw.Polygon(map, this.options.polygon),
|
|
title: L.drawLocal.draw.toolbar.buttons.polygon
|
|
},
|
|
{
|
|
enabled: this.options.rectangle,
|
|
handler: new L.Draw.Rectangle(map, this.options.rectangle),
|
|
title: L.drawLocal.draw.toolbar.buttons.rectangle
|
|
},
|
|
{
|
|
enabled: this.options.circle,
|
|
handler: new L.Draw.Circle(map, this.options.circle),
|
|
title: L.drawLocal.draw.toolbar.buttons.circle
|
|
},
|
|
{
|
|
enabled: this.options.marker,
|
|
handler: new L.Draw.Marker(map, this.options.marker),
|
|
title: L.drawLocal.draw.toolbar.buttons.marker
|
|
},
|
|
{
|
|
enabled: this.options.circlemarker,
|
|
handler: new L.Draw.CircleMarker(map, this.options.circlemarker),
|
|
title: L.drawLocal.draw.toolbar.buttons.circlemarker
|
|
}
|
|
];
|
|
},
|
|
|
|
// @method getActions(): object
|
|
// Get action information
|
|
getActions: function (handler) {
|
|
return [
|
|
{
|
|
enabled: handler.completeShape,
|
|
title: L.drawLocal.draw.toolbar.finish.title,
|
|
text: L.drawLocal.draw.toolbar.finish.text,
|
|
callback: handler.completeShape,
|
|
context: handler
|
|
},
|
|
{
|
|
enabled: handler.deleteLastVertex,
|
|
title: L.drawLocal.draw.toolbar.undo.title,
|
|
text: L.drawLocal.draw.toolbar.undo.text,
|
|
callback: handler.deleteLastVertex,
|
|
context: handler
|
|
},
|
|
{
|
|
title: L.drawLocal.draw.toolbar.actions.title,
|
|
text: L.drawLocal.draw.toolbar.actions.text,
|
|
callback: this.disable,
|
|
context: this
|
|
}
|
|
];
|
|
},
|
|
|
|
// @method setOptions(): void
|
|
// Sets the options to the toolbar
|
|
setOptions: function (options) {
|
|
L.setOptions(this, options);
|
|
|
|
for (var type in this._modes) {
|
|
if (this._modes.hasOwnProperty(type) && options.hasOwnProperty(type)) {
|
|
this._modes[type].handler.setOptions(options[type]);
|
|
}
|
|
}
|
|
}
|
|
});
|