Use ol.Disposable instead of goog.Disposable
This commit is contained in:
@@ -118,14 +118,17 @@ ol.control.ZoomSlider = function(opt_options) {
|
|||||||
[className, ol.css.CLASS_UNSELECTABLE, ol.css.CLASS_CONTROL],
|
[className, ol.css.CLASS_UNSELECTABLE, ol.css.CLASS_CONTROL],
|
||||||
thumbElement);
|
thumbElement);
|
||||||
|
|
||||||
var dragger = new ol.pointer.PointerEventHandler(containerElement);
|
/**
|
||||||
this.registerDisposable(dragger);
|
* @type {ol.pointer.PointerEventHandler}
|
||||||
|
* @private
|
||||||
|
*/
|
||||||
|
this.dragger_ = new ol.pointer.PointerEventHandler(containerElement);
|
||||||
|
|
||||||
ol.events.listen(dragger, ol.pointer.EventType.POINTERDOWN,
|
ol.events.listen(this.dragger_, ol.pointer.EventType.POINTERDOWN,
|
||||||
this.handleDraggerStart_, this);
|
this.handleDraggerStart_, this);
|
||||||
ol.events.listen(dragger, ol.pointer.EventType.POINTERMOVE,
|
ol.events.listen(this.dragger_, ol.pointer.EventType.POINTERMOVE,
|
||||||
this.handleDraggerDrag_, this);
|
this.handleDraggerDrag_, this);
|
||||||
ol.events.listen(dragger, ol.pointer.EventType.POINTERUP,
|
ol.events.listen(this.dragger_, ol.pointer.EventType.POINTERUP,
|
||||||
this.handleDraggerEnd_, this);
|
this.handleDraggerEnd_, this);
|
||||||
|
|
||||||
ol.events.listen(containerElement, ol.events.EventType.CLICK,
|
ol.events.listen(containerElement, ol.events.EventType.CLICK,
|
||||||
@@ -143,6 +146,15 @@ ol.control.ZoomSlider = function(opt_options) {
|
|||||||
goog.inherits(ol.control.ZoomSlider, ol.control.Control);
|
goog.inherits(ol.control.ZoomSlider, ol.control.Control);
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @inheritDoc
|
||||||
|
*/
|
||||||
|
ol.control.ZoomSlider.prototype.disposeInternal = function() {
|
||||||
|
this.dragger_.dispose();
|
||||||
|
goog.base(this, 'disposeInternal');
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The enum for available directions.
|
* The enum for available directions.
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -0,0 +1,30 @@
|
|||||||
|
goog.provide('ol.Disposable');
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Objects that need to clean up after themselves.
|
||||||
|
* @constructor
|
||||||
|
*/
|
||||||
|
ol.Disposable = function() {};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The object has already been disposed.
|
||||||
|
* @type {boolean}
|
||||||
|
* @private
|
||||||
|
*/
|
||||||
|
ol.Disposable.prototype.disposed_ = false;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Clean up.
|
||||||
|
*/
|
||||||
|
ol.Disposable.prototype.dispose = function() {
|
||||||
|
if (!this.disposed_) {
|
||||||
|
this.disposed_ = true;
|
||||||
|
this.disposeInternal();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Extension point for disposable objects.
|
||||||
|
* @protected
|
||||||
|
*/
|
||||||
|
ol.Disposable.prototype.disposeInternal = function() {};
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
goog.provide('ol.events.EventTarget');
|
goog.provide('ol.events.EventTarget');
|
||||||
|
|
||||||
goog.require('goog.Disposable');
|
goog.require('ol.Disposable');
|
||||||
goog.require('ol.events');
|
goog.require('ol.events');
|
||||||
goog.require('ol.events.Event');
|
goog.require('ol.events.Event');
|
||||||
|
|
||||||
@@ -20,7 +20,7 @@ goog.require('ol.events.Event');
|
|||||||
* returns false.
|
* returns false.
|
||||||
*
|
*
|
||||||
* @constructor
|
* @constructor
|
||||||
* @extends {goog.Disposable}
|
* @extends {ol.Disposable}
|
||||||
*/
|
*/
|
||||||
ol.events.EventTarget = function() {
|
ol.events.EventTarget = function() {
|
||||||
|
|
||||||
@@ -33,7 +33,7 @@ ol.events.EventTarget = function() {
|
|||||||
this.listeners_ = {};
|
this.listeners_ = {};
|
||||||
|
|
||||||
};
|
};
|
||||||
goog.inherits(ol.events.EventTarget, goog.Disposable);
|
goog.inherits(ol.events.EventTarget, ol.Disposable);
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -79,7 +79,6 @@ ol.events.EventTarget.prototype.dispatchEvent = function(event) {
|
|||||||
*/
|
*/
|
||||||
ol.events.EventTarget.prototype.disposeInternal = function() {
|
ol.events.EventTarget.prototype.disposeInternal = function() {
|
||||||
ol.events.unlistenAll(this);
|
ol.events.unlistenAll(this);
|
||||||
goog.base(this, 'disposeInternal');
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
+9
-6
@@ -300,12 +300,15 @@ ol.Map = function(options) {
|
|||||||
}
|
}
|
||||||
this.viewport_.appendChild(this.overlayContainerStopEvent_);
|
this.viewport_.appendChild(this.overlayContainerStopEvent_);
|
||||||
|
|
||||||
var mapBrowserEventHandler = new ol.MapBrowserEventHandler(this);
|
/**
|
||||||
|
* @private
|
||||||
|
* @type {ol.MapBrowserEventHandler}
|
||||||
|
*/
|
||||||
|
this.mapBrowserEventHandler_ = new ol.MapBrowserEventHandler(this);
|
||||||
for (var key in ol.MapBrowserEvent.EventType) {
|
for (var key in ol.MapBrowserEvent.EventType) {
|
||||||
ol.events.listen(mapBrowserEventHandler, ol.MapBrowserEvent.EventType[key],
|
ol.events.listen(this.mapBrowserEventHandler_, ol.MapBrowserEvent.EventType[key],
|
||||||
this.handleMapBrowserEvent, this);
|
this.handleMapBrowserEvent, this);
|
||||||
}
|
}
|
||||||
this.registerDisposable(mapBrowserEventHandler);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @private
|
* @private
|
||||||
@@ -353,9 +356,7 @@ ol.Map = function(options) {
|
|||||||
* @type {ol.renderer.Map}
|
* @type {ol.renderer.Map}
|
||||||
* @private
|
* @private
|
||||||
*/
|
*/
|
||||||
this.renderer_ =
|
this.renderer_ = new optionsInternal.rendererConstructor(this.viewport_, this);
|
||||||
new optionsInternal.rendererConstructor(this.viewport_, this);
|
|
||||||
this.registerDisposable(this.renderer_);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @type {function(Event)|undefined}
|
* @type {function(Event)|undefined}
|
||||||
@@ -577,6 +578,8 @@ ol.Map.prototype.removePreRenderFunction = function(preRenderFunction) {
|
|||||||
* @inheritDoc
|
* @inheritDoc
|
||||||
*/
|
*/
|
||||||
ol.Map.prototype.disposeInternal = function() {
|
ol.Map.prototype.disposeInternal = function() {
|
||||||
|
this.mapBrowserEventHandler_.dispose();
|
||||||
|
this.renderer_.dispose();
|
||||||
ol.events.unlisten(this.viewport_, ol.events.EventType.WHEEL,
|
ol.events.unlisten(this.viewport_, ol.events.EventType.WHEEL,
|
||||||
this.handleBrowserEvent, this);
|
this.handleBrowserEvent, this);
|
||||||
ol.events.unlisten(this.viewport_, ol.events.EventType.MOUSEWHEEL,
|
ol.events.unlisten(this.viewport_, ol.events.EventType.MOUSEWHEEL,
|
||||||
|
|||||||
@@ -2,14 +2,14 @@
|
|||||||
|
|
||||||
goog.provide('ol.render.Box');
|
goog.provide('ol.render.Box');
|
||||||
|
|
||||||
goog.require('goog.Disposable');
|
|
||||||
goog.require('goog.asserts');
|
goog.require('goog.asserts');
|
||||||
|
goog.require('ol.Disposable');
|
||||||
goog.require('ol.geom.Polygon');
|
goog.require('ol.geom.Polygon');
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @constructor
|
* @constructor
|
||||||
* @extends {goog.Disposable}
|
* @extends {ol.Disposable}
|
||||||
* @param {string} className CSS class name.
|
* @param {string} className CSS class name.
|
||||||
*/
|
*/
|
||||||
ol.render.Box = function(className) {
|
ol.render.Box = function(className) {
|
||||||
@@ -47,7 +47,7 @@ ol.render.Box = function(className) {
|
|||||||
this.endPixel_ = null;
|
this.endPixel_ = null;
|
||||||
|
|
||||||
};
|
};
|
||||||
goog.inherits(ol.render.Box, goog.Disposable);
|
goog.inherits(ol.render.Box, ol.Disposable);
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -55,7 +55,6 @@ goog.inherits(ol.render.Box, goog.Disposable);
|
|||||||
*/
|
*/
|
||||||
ol.render.Box.prototype.disposeInternal = function() {
|
ol.render.Box.prototype.disposeInternal = function() {
|
||||||
this.setMap(null);
|
this.setMap(null);
|
||||||
goog.base(this, 'disposeInternal');
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
goog.provide('ol.RendererType');
|
goog.provide('ol.RendererType');
|
||||||
goog.provide('ol.renderer.Map');
|
goog.provide('ol.renderer.Map');
|
||||||
|
|
||||||
goog.require('goog.Disposable');
|
|
||||||
goog.require('goog.asserts');
|
goog.require('goog.asserts');
|
||||||
goog.require('goog.functions');
|
goog.require('goog.functions');
|
||||||
goog.require('goog.vec.Mat4');
|
goog.require('goog.vec.Mat4');
|
||||||
goog.require('ol');
|
goog.require('ol');
|
||||||
|
goog.require('ol.Disposable');
|
||||||
goog.require('ol.events');
|
goog.require('ol.events');
|
||||||
goog.require('ol.events.EventType');
|
goog.require('ol.events.EventType');
|
||||||
goog.require('ol.extent');
|
goog.require('ol.extent');
|
||||||
@@ -29,7 +29,7 @@ ol.RendererType = {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @constructor
|
* @constructor
|
||||||
* @extends {goog.Disposable}
|
* @extends {ol.Disposable}
|
||||||
* @param {Element} container Container.
|
* @param {Element} container Container.
|
||||||
* @param {ol.Map} map Map.
|
* @param {ol.Map} map Map.
|
||||||
* @struct
|
* @struct
|
||||||
@@ -58,7 +58,7 @@ ol.renderer.Map = function(container, map) {
|
|||||||
this.layerRendererListeners_ = {};
|
this.layerRendererListeners_ = {};
|
||||||
|
|
||||||
};
|
};
|
||||||
goog.inherits(ol.renderer.Map, goog.Disposable);
|
goog.inherits(ol.renderer.Map, ol.Disposable);
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -96,7 +96,6 @@ ol.renderer.Map.prototype.disposeInternal = function() {
|
|||||||
for (var id in this.layerRenderers_) {
|
for (var id in this.layerRenderers_) {
|
||||||
this.layerRenderers_[id].dispose();
|
this.layerRenderers_[id].dispose();
|
||||||
}
|
}
|
||||||
goog.base(this, 'disposeInternal');
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -102,7 +102,6 @@ describe('ol.control.ZoomSlider', function() {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it('[horizontal] handles a drag sequence', function() {
|
it('[horizontal] handles a drag sequence', function() {
|
||||||
var spy = sinon.spy(goog.Disposable.prototype, 'registerDisposable');
|
|
||||||
var control = new ol.control.ZoomSlider();
|
var control = new ol.control.ZoomSlider();
|
||||||
map.addControl(control);
|
map.addControl(control);
|
||||||
map.getView().setZoom(0);
|
map.getView().setZoom(0);
|
||||||
@@ -111,8 +110,7 @@ describe('ol.control.ZoomSlider', function() {
|
|||||||
control.element.firstChild.style.width = '100px';
|
control.element.firstChild.style.width = '100px';
|
||||||
control.element.firstChild.style.height = '10px';
|
control.element.firstChild.style.height = '10px';
|
||||||
map.renderSync();
|
map.renderSync();
|
||||||
var dragger = spy.firstCall.args[0];
|
var dragger = control.dragger_;
|
||||||
spy.restore();
|
|
||||||
var event = new ol.pointer.PointerEvent(ol.pointer.EventType.POINTERDOWN, {
|
var event = new ol.pointer.PointerEvent(ol.pointer.EventType.POINTERDOWN, {
|
||||||
target: control.element.firstElementChild
|
target: control.element.firstElementChild
|
||||||
});
|
});
|
||||||
@@ -138,7 +136,6 @@ describe('ol.control.ZoomSlider', function() {
|
|||||||
expect(control.dragging_).to.be(false);
|
expect(control.dragging_).to.be(false);
|
||||||
});
|
});
|
||||||
it('[vertical] handles a drag sequence', function() {
|
it('[vertical] handles a drag sequence', function() {
|
||||||
var spy = sinon.spy(goog.Disposable.prototype, 'registerDisposable');
|
|
||||||
var control = new ol.control.ZoomSlider();
|
var control = new ol.control.ZoomSlider();
|
||||||
control.element.style.width = '10px';
|
control.element.style.width = '10px';
|
||||||
control.element.style.height = '100px';
|
control.element.style.height = '100px';
|
||||||
@@ -147,8 +144,7 @@ describe('ol.control.ZoomSlider', function() {
|
|||||||
map.addControl(control);
|
map.addControl(control);
|
||||||
map.getView().setZoom(8);
|
map.getView().setZoom(8);
|
||||||
map.renderSync();
|
map.renderSync();
|
||||||
var dragger = spy.firstCall.args[0];
|
var dragger = control.dragger_;
|
||||||
spy.restore();
|
|
||||||
var event = new ol.pointer.PointerEvent(ol.pointer.EventType.POINTERDOWN, {
|
var event = new ol.pointer.PointerEvent(ol.pointer.EventType.POINTERDOWN, {
|
||||||
target: control.element.firstElementChild
|
target: control.element.firstElementChild
|
||||||
});
|
});
|
||||||
@@ -177,7 +173,6 @@ describe('ol.control.ZoomSlider', function() {
|
|||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
goog.require('goog.Disposable');
|
|
||||||
goog.require('goog.dom.classlist');
|
goog.require('goog.dom.classlist');
|
||||||
goog.require('ol.Map');
|
goog.require('ol.Map');
|
||||||
goog.require('ol.View');
|
goog.require('ol.View');
|
||||||
|
|||||||
Reference in New Issue
Block a user