geopf-extensions-openlayers
Version:
French Geoportal Extensions for OpenLayers libraries
73 lines (64 loc) • 2.56 kB
JavaScript
var MeasureAreaDOM = {
/**
* Add uuid to the tag ID
* @param {String} id - id selector
* @returns {String} uid - id selector with an unique id
*/
_addUID : function (id) {
var uid = (this._uid) ? id + "-" + this._uid : id;
return uid;
},
/**
* Main container (DOM)
*
* @returns {DOMElement} DOM element
*/
_createMainContainerElement : function () {
var container = document.createElement("div");
container.id = this._addUID("GPmeasureArea");
container.className = "GPwidget gpf-widget gpf-widget-button";
return container;
},
// ################################################################### //
// ################### Methods of main container ##################### //
// ################################################################### //
/**
* Show control
* see event !
*
* @returns {DOMElement} DOM element
*/
_createShowMeasureAreaPictoElement : function () {
// contexte d'execution
var context = this;
var button = document.createElement("button");
// INFO: Ajout d'une SPAN pour enlever des marges de 6px dans CHROMIUM (?!)
var span = document.createElement("span");
button.appendChild(span);
button.id = this._addUID("GPshowMeasureAreaPicto");
button.className = "GPshowOpen GPshowAdvancedToolPicto gpf-btn gpf-btn--tertiary gpf-btn-icon gpf-btn-icon-area fr-btn fr-btn--tertiary";
button.setAttribute("aria-label", "Mesurer une surface");
button.setAttribute("tabindex", "0");
button.setAttribute("aria-pressed", false);
button.setAttribute("type", "button");
// gestionnaire d'evenement :
// on ouvre le menu de saisie...
// L'ouverture/Fermeture permet de faire le menage
// (reinitialisation)
if (button.addEventListener) {
button.addEventListener("click", function (e) {
var status = (e.target.ariaPressed === "true");
e.target.setAttribute("aria-pressed", !status);
context.onShowMeasureAreaClick(e);
});
} else if (button.attachEvent) {
button.attachEvent("onclick", function (e) {
var status = (e.target.ariaPressed === "true");
e.target.setAttribute("aria-pressed", !status);
context.onShowMeasureAreaClick(e);
});
}
return button;
}
};
export default MeasureAreaDOM;