diff --git a/src/all.js b/src/all.js index 54f9026c22..0567eacfc7 100644 --- a/src/all.js +++ b/src/all.js @@ -6,7 +6,7 @@ goog.require('ol.Extent'); goog.require('ol.Layer'); goog.require('ol.LayerView'); goog.require('ol.MVCArray'); -goog.require('ol.MVCObject'); +goog.require('ol.Object'); goog.require('ol.Projection'); goog.require('ol.TileBounds'); goog.require('ol.TileCoord'); diff --git a/src/ol/camera.js b/src/ol/camera.js index 8c524f42f7..4844de2312 100644 --- a/src/ol/camera.js +++ b/src/ol/camera.js @@ -1,7 +1,7 @@ goog.provide('ol.Camera'); goog.require('goog.math.Coordinate'); -goog.require('ol.MVCObject'); +goog.require('ol.Object'); /** @@ -18,14 +18,14 @@ ol.CameraProperty_ = { /** * @constructor - * @extends {ol.MVCObject} + * @extends {ol.Object} */ ol.Camera = function() { goog.base(this); }; -goog.inherits(ol.Camera, ol.MVCObject); +goog.inherits(ol.Camera, ol.Object); /** diff --git a/src/ol/layer.js b/src/ol/layer.js index a7164de7f0..d6234990a0 100644 --- a/src/ol/layer.js +++ b/src/ol/layer.js @@ -1,7 +1,7 @@ goog.provide('ol.Layer'); goog.require('ol.Extent'); -goog.require('ol.MVCObject'); +goog.require('ol.Object'); goog.require('ol.Projection'); @@ -19,14 +19,14 @@ ol.LayerProperty_ = { /** * @constructor - * @extends {ol.MVCObject} + * @extends {ol.Object} */ ol.Layer = function() { goog.base(this); }; -goog.inherits(ol.Layer, ol.MVCObject); +goog.inherits(ol.Layer, ol.Object); /** diff --git a/src/ol/layerview.js b/src/ol/layerview.js index 452e15c410..b5a3e6cf25 100644 --- a/src/ol/layerview.js +++ b/src/ol/layerview.js @@ -1,6 +1,6 @@ goog.provide('ol.LayerView'); -goog.require('ol.MVCObject'); +goog.require('ol.Object'); /** @@ -16,7 +16,7 @@ ol.LayerViewProperty_ = { /** * @constructor - * @extends {ol.MVCObject} + * @extends {ol.Object} */ ol.LayerView = function() { @@ -26,7 +26,7 @@ ol.LayerView = function() { this.setOpacity(1); }; -goog.inherits(ol.LayerView, ol.MVCObject); +goog.inherits(ol.LayerView, ol.Object); /** diff --git a/src/ol/mvcarray.js b/src/ol/mvcarray.js index 98e3abc252..7be13a3056 100644 --- a/src/ol/mvcarray.js +++ b/src/ol/mvcarray.js @@ -11,7 +11,7 @@ goog.provide('ol.MVCArrayEventType'); goog.require('goog.array'); goog.require('goog.asserts'); goog.require('goog.events.Event'); -goog.require('ol.MVCObject'); +goog.require('ol.Object'); /** @@ -54,7 +54,7 @@ goog.inherits(ol.MVCArrayEvent, goog.events.Event); /** * @constructor - * @extends {ol.MVCObject} + * @extends {ol.Object} * @param {Array=} opt_array Array. */ ol.MVCArray = function(opt_array) { @@ -70,7 +70,7 @@ ol.MVCArray = function(opt_array) { this.updateLength_(); }; -goog.inherits(ol.MVCArray, ol.MVCObject); +goog.inherits(ol.MVCArray, ol.Object); /** diff --git a/src/ol/mvcobject.js b/src/ol/object.js similarity index 60% rename from src/ol/mvcobject.js rename to src/ol/object.js index a62738b516..a979ac1bfe 100644 --- a/src/ol/mvcobject.js +++ b/src/ol/object.js @@ -5,7 +5,7 @@ * @see https://developers.google.com/maps/documentation/javascript/reference */ -goog.provide('ol.MVCObject'); +goog.provide('ol.Object'); goog.require('goog.array'); goog.require('goog.events'); @@ -14,9 +14,9 @@ goog.require('goog.object'); /** - * @typedef {{target: ol.MVCObject, key: string}} + * @typedef {{target: ol.Object, key: string}} */ -ol.MVCObjectAccessor; +ol.ObjectAccessor; @@ -24,32 +24,32 @@ ol.MVCObjectAccessor; * @constructor * @extends {goog.events.EventTarget} */ -ol.MVCObject = function() { +ol.Object = function() { goog.base(this); }; -goog.inherits(ol.MVCObject, goog.events.EventTarget); +goog.inherits(ol.Object, goog.events.EventTarget); /** * @param {string} str String. * @return {string} Capitalized string. */ -ol.MVCObject.capitalize = function(str) { +ol.Object.capitalize = function(str) { return str.substr(0, 1).toUpperCase() + str.substr(1); }; /** - * @param {ol.MVCObject|Object} arg Argument. - * @return {ol.MVCObject} MVCObject. + * @param {ol.Object|Object} arg Argument. + * @return {ol.Object} Object. */ -ol.MVCObject.create = function(arg) { - if (arg instanceof ol.MVCObject) { +ol.Object.create = function(arg) { + if (arg instanceof ol.Object) { return arg; } else { - var mvcObject = new ol.MVCObject(); - mvcObject.setOptions(arg); - return mvcObject; + var object = new ol.Object(); + object.setOptions(arg); + return object; } }; @@ -58,7 +58,7 @@ ol.MVCObject.create = function(arg) { * @private * @type {Object.} */ -ol.MVCObject.getterNameCache_ = {}; +ol.Object.getterNameCache_ = {}; /** @@ -66,10 +66,9 @@ ol.MVCObject.getterNameCache_ = {}; * @private * @return {string} Capitalized string. */ -ol.MVCObject.getGetterName_ = function(str) { - return ol.MVCObject.getterNameCache_[str] || - (ol.MVCObject.getterNameCache_[str] = - 'get' + ol.MVCObject.capitalize(str)); +ol.Object.getGetterName_ = function(str) { + return ol.Object.getterNameCache_[str] || + (ol.Object.getterNameCache_[str] = 'get' + ol.Object.capitalize(str)); }; @@ -77,7 +76,7 @@ ol.MVCObject.getGetterName_ = function(str) { * @private * @type {Object.} */ -ol.MVCObject.setterNameCache_ = {}; +ol.Object.setterNameCache_ = {}; /** @@ -85,47 +84,46 @@ ol.MVCObject.setterNameCache_ = {}; * @private * @return {string} Capitalized string. */ -ol.MVCObject.getSetterName_ = function(str) { - return ol.MVCObject.setterNameCache_[str] || - (ol.MVCObject.setterNameCache_[str] = - 'set' + ol.MVCObject.capitalize(str)); +ol.Object.getSetterName_ = function(str) { + return ol.Object.setterNameCache_[str] || + (ol.Object.setterNameCache_[str] = 'set' + ol.Object.capitalize(str)); }; /** - * @param {ol.MVCObject} obj Object. - * @return {Object.} Accessors. + * @param {ol.Object} obj Object. + * @return {Object.} Accessors. */ -ol.MVCObject.getAccessors = function(obj) { - return obj['gm_accessors_'] || (obj['gm_accessors_'] = {}); +ol.Object.getAccessors = function(obj) { + return obj['ol_accessors_'] || (obj['ol_accessors_'] = {}); }; /** - * @param {ol.MVCObject} obj Object. + * @param {ol.Object} obj Object. * @return {Object.} Listeners. */ -ol.MVCObject.getListeners = function(obj) { - return obj['gm_bindings_'] || (obj['gm_bindings_'] = {}); +ol.Object.getListeners = function(obj) { + return obj['ol_bindings_'] || (obj['ol_bindings_'] = {}); }; /** * @param {string} key Key. - * @param {ol.MVCObject} target Target. + * @param {ol.Object} target Target. * @param {string=} opt_targetKey Target key. * @param {boolean=} opt_noNotify No notify. */ -ol.MVCObject.prototype.bindTo = +ol.Object.prototype.bindTo = function(key, target, opt_targetKey, opt_noNotify) { var targetKey = goog.isDef(opt_targetKey) ? opt_targetKey : key; this.unbind(key); var eventType = targetKey.toLowerCase() + '_changed'; - var listeners = ol.MVCObject.getListeners(this); + var listeners = ol.Object.getListeners(this); listeners[key] = goog.events.listen(target, eventType, function() { this.notifyInternal_(key); }, undefined, this); - var accessors = ol.MVCObject.getAccessors(this); + var accessors = ol.Object.getAccessors(this); accessors[key] = {target: target, key: targetKey}; var noNotify = goog.isDef(opt_noNotify) ? opt_noNotify : false; if (!noNotify) { @@ -137,7 +135,7 @@ ol.MVCObject.prototype.bindTo = /** * @param {string} key Key. */ -ol.MVCObject.prototype.changed = function(key) { +ol.Object.prototype.changed = function(key) { }; @@ -145,13 +143,13 @@ ol.MVCObject.prototype.changed = function(key) { * @param {string} key Key. * @return {*} Value. */ -ol.MVCObject.prototype.get = function(key) { - var accessors = ol.MVCObject.getAccessors(this); +ol.Object.prototype.get = function(key) { + var accessors = ol.Object.getAccessors(this); if (goog.object.containsKey(accessors, key)) { var accessor = accessors[key]; var target = accessor.target; var targetKey = accessor.key; - var getterName = ol.MVCObject.getGetterName_(targetKey); + var getterName = ol.Object.getGetterName_(targetKey); if (target[getterName]) { return target[getterName](); } else { @@ -166,8 +164,8 @@ ol.MVCObject.prototype.get = function(key) { /** * @param {string} key Key. */ -ol.MVCObject.prototype.notify = function(key) { - var accessors = ol.MVCObject.getAccessors(this); +ol.Object.prototype.notify = function(key) { + var accessors = ol.Object.getAccessors(this); if (goog.object.containsKey(accessors, key)) { var accessor = accessors[key]; var target = accessor.target; @@ -183,7 +181,7 @@ ol.MVCObject.prototype.notify = function(key) { * @param {string} key Key. * @private */ -ol.MVCObject.prototype.notifyInternal_ = function(key) { +ol.Object.prototype.notifyInternal_ = function(key) { var changedMethodName = key + '_changed'; if (this[changedMethodName]) { this[changedMethodName](); @@ -199,13 +197,13 @@ ol.MVCObject.prototype.notifyInternal_ = function(key) { * @param {string} key Key. * @param {*} value Value. */ -ol.MVCObject.prototype.set = function(key, value) { - var accessors = ol.MVCObject.getAccessors(this); +ol.Object.prototype.set = function(key, value) { + var accessors = ol.Object.getAccessors(this); if (goog.object.containsKey(accessors, key)) { var accessor = accessors[key]; var target = accessor.target; var targetKey = accessor.key; - var setterName = ol.MVCObject.getSetterName_(targetKey); + var setterName = ol.Object.getSetterName_(targetKey); if (target[setterName]) { target[setterName](value); } else { @@ -221,9 +219,9 @@ ol.MVCObject.prototype.set = function(key, value) { /** * @param {Object.} options Options. */ -ol.MVCObject.prototype.setOptions = function(options) { +ol.Object.prototype.setOptions = function(options) { goog.object.forEach(options, function(value, key) { - var setterName = ol.MVCObject.getSetterName_(key); + var setterName = ol.Object.getSetterName_(key); if (this[setterName]) { this[setterName](value); } else { @@ -236,20 +234,20 @@ ol.MVCObject.prototype.setOptions = function(options) { /** * @param {Object.} values Values. */ -ol.MVCObject.prototype.setValues = ol.MVCObject.prototype.setOptions; +ol.Object.prototype.setValues = ol.Object.prototype.setOptions; /** * @param {string} key Key. */ -ol.MVCObject.prototype.unbind = function(key) { - var listeners = ol.MVCObject.getListeners(this); +ol.Object.prototype.unbind = function(key) { + var listeners = ol.Object.getListeners(this); var listener = listeners[key]; if (listener) { delete listeners[key]; goog.events.unlistenByKey(listener); var value = this.get(key); - var accessors = ol.MVCObject.getAccessors(this); + var accessors = ol.Object.getAccessors(this); delete accessors[key]; this[key] = value; } @@ -258,8 +256,8 @@ ol.MVCObject.prototype.unbind = function(key) { /** */ -ol.MVCObject.prototype.unbindAll = function() { - var listeners = ol.MVCObject.getListeners(this); +ol.Object.prototype.unbindAll = function() { + var listeners = ol.Object.getListeners(this); var keys = goog.object.getKeys(listeners); goog.array.forEach(keys, function(key) { this.unbind(key); diff --git a/src/ol/mvcobject_test.js b/src/ol/object_test.js similarity index 77% rename from src/ol/mvcobject_test.js rename to src/ol/object_test.js index 594987e3d0..680bdc4c4f 100644 --- a/src/ol/mvcobject_test.js +++ b/src/ol/object_test.js @@ -1,21 +1,21 @@ goog.require('goog.testing.jsunit'); -goog.require('ol.MVCObject'); +goog.require('ol.Object'); function testModel() { - var m = new ol.MVCObject(); + var m = new ol.Object(); assertNotNullNorUndefined(m); } function testGetUndefined() { - var m = new ol.MVCObject(); + var m = new ol.Object(); assertUndefined(m.get('k')); } function testGetSetGet() { - var m = new ol.MVCObject(); + var m = new ol.Object(); assertUndefined(m.get('k')); m.set('k', 1); assertEquals(1, m.get('k')); @@ -23,7 +23,7 @@ function testGetSetGet() { function testSetValues() { - var m = new ol.MVCObject(); + var m = new ol.Object(); m.setValues({ k1: 1, k2: 2 @@ -33,7 +33,7 @@ function testSetValues() { } function testNotifyCallback() { - var m = new ol.MVCObject(); + var m = new ol.Object(); var callbackCalled; m.changed = function() { callbackCalled = true; @@ -44,7 +44,7 @@ function testNotifyCallback() { function testNotifyKeyCallback() { - var m = new ol.MVCObject(); + var m = new ol.Object(); var callbackCalled = false; m.k_changed = function() { callbackCalled = true; @@ -55,7 +55,7 @@ function testNotifyKeyCallback() { function testNotifyKeyEvent() { - var m = new ol.MVCObject(); + var m = new ol.Object(); var eventDispatched = false; goog.events.listen(m, 'k_changed', function() { eventDispatched = true; @@ -66,7 +66,7 @@ function testNotifyKeyEvent() { function testSetNotifyCallback() { - var m = new ol.MVCObject(); + var m = new ol.Object(); var callbackCalled; m.changed = function() { callbackCalled = true; @@ -77,7 +77,7 @@ function testSetNotifyCallback() { function testSetNotifyKeyCallback() { - var m = new ol.MVCObject(); + var m = new ol.Object(); var callbackCalled = false; m.k_changed = function(v) { callbackCalled = true; @@ -88,8 +88,8 @@ function testSetNotifyKeyCallback() { function testBindSetNotifyKeyCallback() { - var m = new ol.MVCObject(); - var n = new ol.MVCObject(); + var m = new ol.Object(); + var n = new ol.Object(); var callbackCalled = false; n.k_changed = function(v) { callbackCalled = true; @@ -101,7 +101,7 @@ function testBindSetNotifyKeyCallback() { function testSetNotifyKeyEvent() { - var m = new ol.MVCObject(); + var m = new ol.Object(); var eventDispatched = false; goog.events.listen(m, 'k_changed', function() { eventDispatched = true; @@ -112,8 +112,8 @@ function testSetNotifyKeyEvent() { function testSetBind() { - var m = new ol.MVCObject(); - var n = new ol.MVCObject(); + var m = new ol.Object(); + var n = new ol.Object(); m.set('k', 1); assertEquals(1, m.get('k')); assertUndefined(n.get('k')); @@ -124,8 +124,8 @@ function testSetBind() { function testBindSet() { - var m = new ol.MVCObject(); - var n = new ol.MVCObject(); + var m = new ol.Object(); + var n = new ol.Object(); n.bindTo('k', m); m.set('k', 1); assertEquals(1, m.get('k')); @@ -134,8 +134,8 @@ function testBindSet() { function testBindSetBackwards() { - var m = new ol.MVCObject(); - var n = new ol.MVCObject(); + var m = new ol.Object(); + var n = new ol.Object(); n.bindTo('k', m); n.set('k', 1); assertEquals(1, m.get('k')); @@ -144,8 +144,8 @@ function testBindSetBackwards() { function testSetBindBackwards() { - var m = new ol.MVCObject(); - var n = new ol.MVCObject(); + var m = new ol.Object(); + var n = new ol.Object(); n.set('k', 1); n.bindTo('k', m); assertUndefined(m.get('k')); @@ -154,8 +154,8 @@ function testSetBindBackwards() { function testBindSetUnbind() { - var m = new ol.MVCObject(); - var n = new ol.MVCObject(); + var m = new ol.Object(); + var n = new ol.Object(); n.bindTo('k', m); n.set('k', 1); assertEquals(1, m.get('k')); @@ -170,8 +170,8 @@ function testBindSetUnbind() { function testUnbindAll() { - var m = new ol.MVCObject(); - var n = new ol.MVCObject(); + var m = new ol.Object(); + var n = new ol.Object(); n.bindTo('k', m); n.set('k', 1); assertEquals(m.get('k'), 1); @@ -186,8 +186,8 @@ function testUnbindAll() { function testBindNotify() { - var m = new ol.MVCObject(); - var n = new ol.MVCObject(); + var m = new ol.Object(); + var n = new ol.Object(); m.bindTo('k', n); mCallbackCalled = false; m.k_changed = function() { @@ -204,8 +204,8 @@ function testBindNotify() { function testBindBackwardsNotify() { - var m = new ol.MVCObject(); - var n = new ol.MVCObject(); + var m = new ol.Object(); + var n = new ol.Object(); n.bindTo('k', m); mCallbackCalled = false; m.k_changed = function() { @@ -222,8 +222,8 @@ function testBindBackwardsNotify() { function testBindRename() { - var m = new ol.MVCObject(); - var n = new ol.MVCObject(); + var m = new ol.Object(); + var n = new ol.Object(); n.bindTo('kn', m, 'km'); m.set('km', 1); assertEquals(m.get('km'), 1); @@ -232,8 +232,8 @@ function testBindRename() { function testBindRenameCallbacks() { - var m = new ol.MVCObject(); - var n = new ol.MVCObject(); + var m = new ol.Object(); + var n = new ol.Object(); var kmCallbackCalled = false; m.km_changed = function() { kmCallbackCalled = true; @@ -252,9 +252,9 @@ function testBindRenameCallbacks() { function testTransitiveBindForwards() { - var m = new ol.MVCObject(); - var n = new ol.MVCObject(); - var o = new ol.MVCObject(); + var m = new ol.Object(); + var n = new ol.Object(); + var o = new ol.Object(); n.bindTo('kn', m, 'km'); o.bindTo('ko', n, 'kn'); m.set('km', 1); @@ -265,9 +265,9 @@ function testTransitiveBindForwards() { function testTransitiveBindBackwards() { - var m = new ol.MVCObject(); - var n = new ol.MVCObject(); - var o = new ol.MVCObject(); + var m = new ol.Object(); + var n = new ol.Object(); + var o = new ol.Object(); n.bindTo('kn', m, 'km'); o.bindTo('ko', n, 'kn'); o.set('ko', 1); @@ -279,7 +279,7 @@ function testTransitiveBindBackwards() { function testInheritance() { var C = function() {}; - C.prototype = new ol.MVCObject(); + C.prototype = new ol.Object(); var callbackCalled; C.prototype.k_changed = function() { callbackCalled = true; @@ -293,10 +293,10 @@ function testInheritance() { function testMrideyAccessors() { // http://blog.mridey.com/2010/03/maps-javascript-api-v3-more-about.html - var a = new ol.MVCObject(); + var a = new ol.Object(); a.set('level', 2); assertEquals(2, a.get('level')); - var b = new ol.MVCObject(); + var b = new ol.Object(); b.setValues({ level: 2, index: 3, @@ -308,16 +308,16 @@ function testMrideyAccessors() { function testMrideyBinding() { // http://blog.mridey.com/2010/03/maps-javascript-api-v3-more-about.html - var a = new ol.MVCObject(); + var a = new ol.Object(); a.set('level', 2); - var b = new ol.MVCObject(); + var b = new ol.Object(); b.bindTo('index', a, 'level'); assertEquals(2, b.get('index')); a.set('level', 3); assertEquals(3, b.get('index')); b.set('index', 4); assertEquals(4, a.get('level')); - var c = new ol.MVCObject(); + var c = new ol.Object(); c.bindTo('zoom', a, 'level'); assertEquals(4, c.get('zoom')); b.unbind('index'); @@ -329,8 +329,8 @@ function testMrideyBinding() { function testCircularBind() { - var a = new ol.MVCObject(); - var b = new ol.MVCObject(); + var a = new ol.Object(); + var b = new ol.Object(); a.bindTo('k', b); assertThrows(function() { b.bindTo('k', a); @@ -339,8 +339,8 @@ function testCircularBind() { function testPriority() { - var a = new ol.MVCObject(); - var b = new ol.MVCObject(); + var a = new ol.Object(); + var b = new ol.Object(); a.set('k', 1); b.set('k', 2); a.bindTo('k', b); @@ -350,8 +350,8 @@ function testPriority() { function testPriorityUndefined() { - var a = new ol.MVCObject(); - var b = new ol.MVCObject(); + var a = new ol.Object(); + var b = new ol.Object(); a.set('k', 1); a.bindTo('k', b); assertUndefined(a.get('k')); @@ -360,7 +360,7 @@ function testPriorityUndefined() { function testSetter() { - var a = new ol.MVCObject(); + var a = new ol.Object(); var x; var setterCalled; a.setX = function(value) { @@ -374,14 +374,14 @@ function testSetter() { function testSetterBind() { - var a = new ol.MVCObject(); + var a = new ol.Object(); var x; var setterCalled; a.setX = function(value) { this.x = value; setterCalled = true; }; - var b = new ol.MVCObject(); + var b = new ol.Object(); b.bindTo('x', a); b.set('x', 1); assertEquals(1, a.get('x')); @@ -391,7 +391,7 @@ function testSetterBind() { function testGetter() { - var a = new ol.MVCObject(); + var a = new ol.Object(); var getterCalled; a.getX = function() { getterCalled = true; @@ -403,13 +403,13 @@ function testGetter() { function testGetterBind() { - var a = new ol.MVCObject(); + var a = new ol.Object(); var getterCalled; a.getX = function() { getterCalled = true; return 1; }; - var b = new ol.MVCObject(); + var b = new ol.Object(); b.bindTo('x', a); assertEquals(1, b.get('x')); assertTrue(getterCalled); @@ -417,7 +417,7 @@ function testGetterBind() { function testBindSelf() { - var a = new ol.MVCObject(); + var a = new ol.Object(); assertThrows(function() { a.bindTo('k', a); }); @@ -425,7 +425,7 @@ function testBindSelf() { function testChangedKey() { - var a = new ol.MVCObject(); + var a = new ol.Object(); var changedKey; a.changed = function(key) { changedKey = key; @@ -437,14 +437,14 @@ function testChangedKey() { function testCreateFromObject() { var obj = {k: 1}; - var mvcObject = ol.MVCObject.create(obj); - assertTrue(mvcObject instanceof ol.MVCObject); - assertEquals(1, mvcObject.get('k')); + var obj = ol.Object.create(obj); + assertTrue(obj instanceof ol.Object); + assertEquals(1, obj.get('k')); } -function testCreateFromMVCObject() { - var mvcObject1 = new ol.MVCObject(); - var mvcObject2 = ol.MVCObject.create(mvcObject1); - assertTrue(mvcObject2 === mvcObject1); +function testCreateFromObject() { + var obj1 = new ol.Object(); + var obj2 = ol.Object.create(obj1); + assertTrue(obj2 === obj1); }