|
@@ -1,39 +1,40 @@
|
|
|
|
|
|
'use strict';
|
|
|
-function GeometryTypeControl(opt_options) {
|
|
|
+class GeometryTypeControl extends ol.control.Control {
|
|
|
|
|
|
- const options = opt_options || {};
|
|
|
+ constructor(opt_options) {
|
|
|
+ const options = opt_options || {};
|
|
|
|
|
|
- const element = document.createElement('div');
|
|
|
- element.className = 'switch-type type-' + options.type + ' ol-control ol-unselectable';
|
|
|
- if (options.active) {
|
|
|
- element.classList.add("type-active");
|
|
|
- }
|
|
|
-
|
|
|
- const self = this;
|
|
|
- const switchType = function(e) {
|
|
|
- e.preventDefault();
|
|
|
- if (options.widget.currentGeometryType !== self) {
|
|
|
- options.widget.map.removeInteraction(options.widget.interactions.draw);
|
|
|
- options.widget.interactions.draw = new ol.interaction.Draw({
|
|
|
- features: options.widget.featureCollection,
|
|
|
- type: options.type
|
|
|
- });
|
|
|
- options.widget.map.addInteraction(options.widget.interactions.draw);
|
|
|
- options.widget.currentGeometryType.element.classList.remove('type-active');
|
|
|
- options.widget.currentGeometryType = self;
|
|
|
+ const element = document.createElement('div');
|
|
|
+ element.className = 'switch-type type-' + options.type + ' ol-control ol-unselectable';
|
|
|
+ if (options.active) {
|
|
|
element.classList.add("type-active");
|
|
|
}
|
|
|
- };
|
|
|
|
|
|
- element.addEventListener('click', switchType, false);
|
|
|
- element.addEventListener('touchstart', switchType, false);
|
|
|
+ super({
|
|
|
+ element: element,
|
|
|
+ target: options.target
|
|
|
+ });
|
|
|
+ const self = this;
|
|
|
+ const switchType = function(e) {
|
|
|
+ e.preventDefault();
|
|
|
+ if (options.widget.currentGeometryType !== self) {
|
|
|
+ options.widget.map.removeInteraction(options.widget.interactions.draw);
|
|
|
+ options.widget.interactions.draw = new ol.interaction.Draw({
|
|
|
+ features: options.widget.featureCollection,
|
|
|
+ type: options.type
|
|
|
+ });
|
|
|
+ options.widget.map.addInteraction(options.widget.interactions.draw);
|
|
|
+ options.widget.currentGeometryType.element.classList.remove('type-active');
|
|
|
+ options.widget.currentGeometryType = self;
|
|
|
+ element.classList.add("type-active");
|
|
|
+ }
|
|
|
+ };
|
|
|
|
|
|
- ol.control.Control.call(this, {
|
|
|
- element: element
|
|
|
- });
|
|
|
-};
|
|
|
-ol.inherits(GeometryTypeControl, ol.control.Control);
|
|
|
+ element.addEventListener('click', switchType, false);
|
|
|
+ element.addEventListener('touchstart', switchType, false);
|
|
|
+ }
|
|
|
+}
|
|
|
|
|
|
|
|
|
class MapWidget {
|