L.DrawTooltip = L.Class.extend({
initialize: function (map) {
this._map = map;
this._popupPane = map._panes.popupPane;
this._container = L.DomUtil.create('div', 'leaflet-draw-tooltip', this._popupPane);
this._singleLineLabel = false;
},
dispose: function () {
this._popupPane.removeChild(this._container);
this._container = null;
},
updateContent: function (labelText) {
labelText.subtext = labelText.subtext || '';
// update the vertical position (only if changed)
if (labelText.subtext.length === 0 && !this._singleLineLabel) {
L.DomUtil.addClass(this._container, 'leaflet-draw-tooltip-single');
this._singleLineLabel = true;
}
else if (labelText.subtext.length > 0 && this._singleLineLabel) {
L.DomUtil.removeClass(this._container, 'leaflet-draw-tooltip-single');
this._singleLineLabel = false;
}
this._container.innerHTML =
(labelText.subtext.length > 0 ? '' + labelText.subtext + '' + '
' : '') +
'' + labelText.text + '';
return this;
},
updatePosition: function (latlng) {
var pos = this._map.latLngToLayerPoint(latlng);
L.DomUtil.setPosition(this._container, pos);
return this;
},
showAsError: function () {
L.DomUtil.addClass(this._container, 'leaflet-error-draw-tooltip');
return this;
},
removeError: function () {
L.DomUtil.removeClass(this._container, 'leaflet-error-draw-tooltip');
return this;
}
});