Changeset 6122
- Timestamp:
- 02/08/08 13:02:54 (1 year ago)
- Files:
-
- sandbox/ahocevar/styleMap/openlayers/doc/authors.txt (modified) (3 diffs)
- sandbox/ahocevar/styleMap/openlayers/doc/licenses/BSD-LICENSE.txt (copied) (copied from trunk/openlayers/doc/licenses/BSD-LICENSE.txt)
- sandbox/ahocevar/styleMap/openlayers/examples/animated_panning.html (copied) (copied from trunk/openlayers/examples/animated_panning.html)
- sandbox/ahocevar/styleMap/openlayers/examples/click-handler.html (modified) (3 diffs)
- sandbox/ahocevar/styleMap/openlayers/lib/OpenLayers.js (modified) (1 diff)
- sandbox/ahocevar/styleMap/openlayers/lib/OpenLayers/Control.js (modified) (1 diff)
- sandbox/ahocevar/styleMap/openlayers/lib/OpenLayers/Control/DragFeature.js (modified) (10 diffs)
- sandbox/ahocevar/styleMap/openlayers/lib/OpenLayers/Control/ModifyFeature.js (modified) (7 diffs)
- sandbox/ahocevar/styleMap/openlayers/lib/OpenLayers/Control/Navigation.js (modified) (8 diffs)
- sandbox/ahocevar/styleMap/openlayers/lib/OpenLayers/Control/OverviewMap.js (modified) (8 diffs)
- sandbox/ahocevar/styleMap/openlayers/lib/OpenLayers/Format/WFS.js (modified) (7 diffs)
- sandbox/ahocevar/styleMap/openlayers/lib/OpenLayers/Format/WMC/v1_1_0.js (modified) (1 diff)
- sandbox/ahocevar/styleMap/openlayers/lib/OpenLayers/Handler/Click.js (modified) (2 diffs)
- sandbox/ahocevar/styleMap/openlayers/lib/OpenLayers/Map.js (modified) (8 diffs)
- sandbox/ahocevar/styleMap/openlayers/lib/OpenLayers/Popup.js (modified) (3 diffs)
- sandbox/ahocevar/styleMap/openlayers/lib/OpenLayers/Renderer/VML.js (modified) (1 diff)
- sandbox/ahocevar/styleMap/openlayers/lib/OpenLayers/Tile/Image.js (modified) (2 diffs)
- sandbox/ahocevar/styleMap/openlayers/lib/OpenLayers/Tween.js (copied) (copied from trunk/openlayers/lib/OpenLayers/Tween.js)
- sandbox/ahocevar/styleMap/openlayers/tests/Control/test_DragFeature.html (modified) (6 diffs)
- sandbox/ahocevar/styleMap/openlayers/tests/Control/test_ModifyFeature.html (modified) (2 diffs)
- sandbox/ahocevar/styleMap/openlayers/tests/Control/test_Navigation.html (modified) (1 diff)
- sandbox/ahocevar/styleMap/openlayers/tests/Control/test_OverviewMap.html (modified) (4 diffs)
- sandbox/ahocevar/styleMap/openlayers/tests/Control/test_PanZoom.html (modified) (8 diffs)
- sandbox/ahocevar/styleMap/openlayers/tests/Control/test_Permalink.html (modified) (6 diffs)
- sandbox/ahocevar/styleMap/openlayers/tests/Format/WMC (copied) (copied from trunk/openlayers/tests/Format/WMC)
- sandbox/ahocevar/styleMap/openlayers/tests/Format/WMC/test_v1_1_0.html (copied) (copied from trunk/openlayers/tests/Format/WMC/test_v1_1_0.html)
- sandbox/ahocevar/styleMap/openlayers/tests/Handler/test_Click.html (modified) (2 diffs)
- sandbox/ahocevar/styleMap/openlayers/tests/Layer/test_Grid.html (modified) (1 diff)
- sandbox/ahocevar/styleMap/openlayers/tests/Layer/test_KaMap.html (modified) (1 diff)
- sandbox/ahocevar/styleMap/openlayers/tests/list-tests.html (modified) (2 diffs)
- sandbox/ahocevar/styleMap/openlayers/tests/manual/tween.html (copied) (copied from trunk/openlayers/tests/manual/tween.html)
- sandbox/ahocevar/styleMap/openlayers/tests/test_Map.html (modified) (3 diffs)
- sandbox/ahocevar/styleMap/openlayers/tests/test_Tween.html (copied) (copied from trunk/openlayers/tests/test_Tween.html)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
sandbox/ahocevar/styleMap/openlayers/doc/authors.txt
r5970 r6122 1 1 OpenLayers contributors: 2 2 3 Seb Benthall 3 4 Howard Butler 4 5 Bertil Chaupis … … 25 26 James Stembridge 26 27 Erik Uzureau 28 Ivan Willig 27 29 Bill Woodall 28 30 Steve Woodbridge … … 33 35 Some portions of OpenLayers are used under the MIT license, availabie in 34 36 doc/licenses/MIT-LICENSE.txt. 37 38 Some portions of OpenLayers are Copyright 2001 Robert Penner, and are used 39 under the BSD license, available in doc/licenses/BSD-LICENSE.txt sandbox/ahocevar/styleMap/openlayers/examples/click-handler.html
r5438 r6122 39 39 'single': true, 40 40 'double': false, 41 'pixelTolerance': null,41 'pixelTolerance': 0, 42 42 'stopSingle': false, 43 43 'stopDouble': false … … 103 103 } 104 104 }), 105 " nodrag": new OpenLayers.Control.Click({105 "drag": new OpenLayers.Control.Click({ 106 106 handlerOptions: { 107 107 "single": true, 108 "pixelTolerance": 1108 "pixelTolerance": null 109 109 } 110 110 }), … … 205 205 </tr> 206 206 <tr> 207 <td>single nodrag</td>208 <td><button id=" nodragStatus" onclick="toggle('nodrag')">off</button></td>209 <td><textarea class="output" id=" nodragOutput"></textarea></td>207 <td>single with drag</td> 208 <td><button id="dragStatus" onclick="toggle('drag')">off</button></td> 209 <td><textarea class="output" id="dragOutput"></textarea></td> 210 210 </tr> 211 211 <tr> sandbox/ahocevar/styleMap/openlayers/lib/OpenLayers.js
r6079 r6122 80 80 "OpenLayers/BaseTypes/Size.js", 81 81 "OpenLayers/Console.js", 82 "OpenLayers/Tween.js", 82 83 "Rico/Corner.js", 83 84 "Rico/Color.js", sandbox/ahocevar/styleMap/openlayers/lib/OpenLayers/Control.js
r5910 r6122 140 140 this.handler = null; 141 141 } 142 if(this.handlers) { 143 for(var key in this.handlers) { 144 if(this.handlers.hasOwnProperty(key) && 145 typeof this.handlers[key].destroy == "function") { 146 this.handlers[key].destroy(); 147 } 148 } 149 this.handlers = null; 150 } 142 151 if (this.map) { 143 152 this.map.removeControl(this); sandbox/ahocevar/styleMap/openlayers/lib/OpenLayers/Control/DragFeature.js
r5614 r6122 78 78 79 79 /** 80 * Property: dragHandler81 * {<OpenLayers.Handler.Drag>}82 */83 dragHandler: null,84 85 /**86 80 * Property: dragCallbacks 87 81 * {Object} The functions that are sent to the drag handler for callback. 88 82 */ 89 83 dragCallbacks: {}, 90 91 /**92 * Property: featureHandler93 * {<OpenLayers.Handler.Feature>}94 */95 featureHandler: null,96 84 97 85 /** … … 120 108 OpenLayers.Control.prototype.initialize.apply(this, [options]); 121 109 this.layer = layer; 122 this.dragCallbacks = OpenLayers.Util.extend({down: this.downFeature, 123 move: this.moveFeature, 124 up: this.upFeature, 125 out: this.cancel, 126 done: this.doneDragging 127 }, this.dragCallbacks); 128 this.dragHandler = new OpenLayers.Handler.Drag(this, this.dragCallbacks); 129 this.featureCallbacks = OpenLayers.Util.extend({over: this.overFeature, 130 out: this.outFeature 131 }, this.featureCallbacks); 132 var handlerOptions = {geometryTypes: this.geometryTypes}; 133 this.featureHandler = new OpenLayers.Handler.Feature(this, this.layer, 134 this.featureCallbacks, 135 handlerOptions); 110 this.handlers = { 111 drag: new OpenLayers.Handler.Drag( 112 this, OpenLayers.Util.extend({ 113 down: this.downFeature, 114 move: this.moveFeature, 115 up: this.upFeature, 116 out: this.cancel, 117 done: this.doneDragging 118 }, this.dragCallbacks) 119 ), 120 feature: new OpenLayers.Handler.Feature( 121 this, this.layer, OpenLayers.Util.extend({ 122 over: this.overFeature, 123 out: this.outFeature 124 }, this.featureCallbacks), 125 {geometryTypes: this.geometryTypes} 126 ) 127 }; 136 128 }, 137 129 … … 142 134 destroy: function() { 143 135 this.layer = null; 144 this.dragHandler.destroy();145 this.featureHandler.destroy();146 136 OpenLayers.Control.prototype.destroy.apply(this, []); 147 137 }, … … 155 145 */ 156 146 activate: function() { 157 return (this. featureHandler.activate() &&147 return (this.handlers.feature.activate() && 158 148 OpenLayers.Control.prototype.activate.apply(this, arguments)); 159 149 }, … … 168 158 deactivate: function() { 169 159 // the return from the handlers is unimportant in this case 170 this. dragHandler.deactivate();171 this. featureHandler.deactivate();160 this.handlers.drag.deactivate(); 161 this.handlers.feature.deactivate(); 172 162 this.feature = null; 173 163 this.dragging = false; … … 185 175 */ 186 176 overFeature: function(feature) { 187 if(!this. dragHandler.dragging) {177 if(!this.handlers.drag.dragging) { 188 178 this.feature = feature; 189 this. dragHandler.activate();179 this.handlers.drag.activate(); 190 180 this.over = true; 191 181 // TBD replace with CSS classes … … 239 229 upFeature: function(pixel) { 240 230 if(!this.over) { 241 this. dragHandler.deactivate();231 this.handlers.drag.deactivate(); 242 232 this.feature = null; 243 233 // TBD replace with CSS classes … … 266 256 */ 267 257 outFeature: function(feature) { 268 if(!this. dragHandler.dragging) {258 if(!this.handlers.drag.dragging) { 269 259 this.over = false; 270 this. dragHandler.deactivate();260 this.handlers.drag.deactivate(); 271 261 // TBD replace with CSS classes 272 262 this.map.div.style.cursor = "default"; … … 284 274 */ 285 275 cancel: function() { 286 this. dragHandler.deactivate();276 this.handlers.drag.deactivate(); 287 277 this.over = false; 288 278 }, … … 296 286 */ 297 287 setMap: function(map) { 298 this. dragHandler.setMap(map);299 this. featureHandler.setMap(map);288 this.handlers.drag.setMap(map); 289 this.handlers.feature.setMap(map); 300 290 OpenLayers.Control.prototype.setMap.apply(this, arguments); 301 291 }, sandbox/ahocevar/styleMap/openlayers/lib/OpenLayers/Control/ModifyFeature.js
r5974 r6122 84 84 85 85 /** 86 * Property: keyboardHandler87 * { <OpenLayers.Handler.Keyboard>}88 */ 89 keyboardHandler: null,86 * Property: handlers 87 * {Object} 88 */ 89 handlers: null, 90 90 91 91 /** … … 217 217 keypress: this.handleKeypress 218 218 }; 219 this. keyboardHandler = new OpenLayers.Handler.Keyboard(220 this, keyboardOptions221 );219 this.handlers = { 220 keyboard: new OpenLayers.Handler.Keyboard(this, keyboardOptions) 221 }; 222 222 }, 223 223 … … 230 230 this.selectControl.destroy(); 231 231 this.dragControl.destroy(); 232 this.keyboardHandler.destroy();233 232 OpenLayers.Control.prototype.destroy.apply(this, []); 234 233 }, … … 243 242 activate: function() { 244 243 return (this.selectControl.activate() && 245 this. keyboardHandler.activate() &&244 this.handlers.keyboard.activate() && 246 245 OpenLayers.Control.prototype.activate.apply(this, arguments)); 247 246 }, … … 267 266 } 268 267 this.selectControl.deactivate(); 269 this. keyboardHandler.deactivate();268 this.handlers.keyboard.deactivate(); 270 269 deactivated = true; 271 270 } … … 353 352 [feature]); 354 353 this.dragControl.lastPixel = pixel; 355 this.dragControl. dragHandler.started = true;356 this.dragControl. dragHandler.start = pixel;357 this.dragControl. dragHandler.last = pixel;354 this.dragControl.handlers.drag.started = true; 355 this.dragControl.handlers.drag.start = pixel; 356 this.dragControl.handlers.drag.last = pixel; 358 357 } 359 358 } … … 487 486 if(vertex && 488 487 OpenLayers.Util.indexOf(this.vertices, vertex) != -1 && 489 !this.dragControl. dragHandler.dragging &&488 !this.dragControl.handlers.drag.dragging && 490 489 vertex.geometry.parent) { 491 490 // remove the vertex sandbox/ahocevar/styleMap/openlayers/lib/OpenLayers/Control/Navigation.js
r5990 r6122 37 37 zoomBox: null, 38 38 39 /**40 * Property: wheelHandler41 * {<OpenLayers.Handler.MouseWheel>}42 */43 wheelHandler: null,44 45 39 /** 46 40 * Constructor: OpenLayers.Control.Navigation … … 52 46 */ 53 47 initialize: function(options) { 48 this.handlers = {}; 54 49 OpenLayers.Control.prototype.initialize.apply(this, arguments); 55 50 }, … … 62 57 */ 63 58 destroy: function() { 64 OpenLayers.Control.prototype.destroy.apply(this,arguments);65 66 59 this.deactivate(); 67 60 … … 71 64 this.dragPan = null; 72 65 73 if (this.wheelHandler) {74 this.wheelHandler.destroy();75 }76 this.wheelHandler = null;77 78 if (this.clickHandler) {79 this.clickHandler.destroy();80 }81 this.clickHandler = null;82 83 66 if (this.zoomBox) { 84 67 this.zoomBox.destroy(); 85 68 } 86 69 this.zoomBox = null; 70 OpenLayers.Control.prototype.destroy.apply(this,arguments); 87 71 }, 88 72 … … 92 76 activate: function() { 93 77 this.dragPan.activate(); 94 this. wheelHandler.activate();95 this. clickHandler.activate();78 this.handlers.wheel.activate(); 79 this.handlers.click.activate(); 96 80 this.zoomBox.activate(); 97 81 return OpenLayers.Control.prototype.activate.apply(this,arguments); … … 104 88 this.zoomBox.deactivate(); 105 89 this.dragPan.deactivate(); 106 this. clickHandler.deactivate();107 this. wheelHandler.deactivate();90 this.handlers.click.deactivate(); 91 this.handlers.wheel.deactivate(); 108 92 return OpenLayers.Control.prototype.deactivate.apply(this,arguments); 109 93 }, … … 113 97 */ 114 98 draw: function() { 115 this. clickHandler= new OpenLayers.Handler.Click(this,99 this.handlers.click = new OpenLayers.Handler.Click(this, 116 100 { 'dblclick': this.defaultDblClick }, 117 101 { … … 124 108 this.dragPan.draw(); 125 109 this.zoomBox.draw(); 126 this. wheelHandler= new OpenLayers.Handler.MouseWheel(110 this.handlers.wheel = new OpenLayers.Handler.MouseWheel( 127 111 this, {"up" : this.wheelUp, 128 112 "down": this.wheelDown} ); sandbox/ahocevar/styleMap/openlayers/lib/OpenLayers/Control/OverviewMap.js
r6010 r6122 99 99 100 100 /** 101 * Property: dragHandler102 * { <OpenLayers.Handler.Drag>} A handler for dragging the extent rectangle.103 */ 104 dragHandler: null,101 * Property: handlers 102 * {Object} 103 */ 104 handlers: null, 105 105 106 106 /** … … 115 115 initialize: function(options) { 116 116 this.layers = []; 117 this.handlers = {}; 117 118 OpenLayers.Control.prototype.initialize.apply(this, [options]); 118 119 }, … … 126 127 return; 127 128 } 128 this.dragHandler.destroy(); 129 this.clickHandler.destroy(); 129 this.handlers.click.destroy(); 130 130 131 131 this.mapDiv.removeChild(this.extentRectangle); … … 281 281 */ 282 282 rectDrag: function(px) { 283 var deltaX = this. dragHandler.last.x - px.x;284 var deltaY = this. dragHandler.last.y - px.y;283 var deltaX = this.handlers.drag.last.x - px.x; 284 var deltaY = this.handlers.drag.last.y - px.y; 285 285 if(deltaX != 0 || deltaY != 0) { 286 286 var rectTop = this.rectPxBounds.top; … … 435 435 // create the overview map 436 436 var options = OpenLayers.Util.extend( 437 {controls: [], maxResolution: 'auto'}, this.mapOptions); 437 {controls: [], maxResolution: 'auto', 438 fallThrough: false}, this.mapOptions); 438 439 this.ovmap = new OpenLayers.Map(this.mapDiv, options); 439 440 … … 456 457 this.hComp = (this.hComp) ? this.hComp : 2; 457 458 458 this. dragHandler= new OpenLayers.Handler.Drag(459 this.handlers.drag = new OpenLayers.Handler.Drag( 459 460 this, {move: this.rectDrag, done: this.updateMapToRect}, 460 461 {map: this.ovmap} 461 462 ); 462 this. clickHandler= new OpenLayers.Handler.Click(463 this.handlers.click = new OpenLayers.Handler.Click( 463 464 this, { 464 465 "click": this.mapDivClick … … 470 471 } 471 472 ); 472 this. clickHandler.activate();473 this.handlers.click.activate(); 473 474 474 475 this.rectEvents = new OpenLayers.Events(this, this.extentRectangle, 475 476 null, true); 476 477 this.rectEvents.register("mouseover", this, function(e) { 477 if(!this. dragHandler.active && !this.map.dragging) {478 this. dragHandler.activate();478 if(!this.handlers.drag.active && !this.map.dragging) { 479 this.handlers.drag.activate(); 479 480 } 480 481 }); 481 482 this.rectEvents.register("mouseout", this, function(e) { 482 if(!this. dragHandler.dragging) {483 this. dragHandler.deactivate();483 if(!this.handlers.drag.dragging) { 484 this.handlers.drag.deactivate(); 484 485 } 485 486 }); … … 511 512 updateMapToRect: function() { 512 513 var lonLatBounds = this.getMapBoundsFromRectBounds(this.rectPxBounds); 513 this.map. setCenter(lonLatBounds.getCenterLonLat(), this.map.zoom);514 this.map.panTo(lonLatBounds.getCenterLonLat()); 514 515 }, 515 516 sandbox/ahocevar/styleMap/openlayers/lib/OpenLayers/Format/WFS.js
r5868 r6122 22 22 */ 23 23 wfsns: "http://www.opengis.net/wfs", 24 25 ogcns: "http://www.opengis.net/ogc", 24 26 25 27 /* … … 58 60 */ 59 61 write: function(features) { 60 61 var transaction = this.createElementNS( 'http://www.opengis.net/wfs', 'wfs:Transaction');62 63 var transaction = this.createElementNS(this.wfsns, 'wfs:Transaction'); 62 64 transaction.setAttribute("version","1.0.0"); 63 65 transaction.setAttribute("service","WFS"); … … 75 77 } 76 78 } 77 return transaction; 79 80 return OpenLayers.Format.XML.prototype.write.apply(this,[transaction]); 78 81 }, 79 82 … … 91 94 featureContainer.appendChild(geomContainer); 92 95 for(var attr in feature.attributes) { 93 var attrText = document.createTextNode(feature.attributes[attr]);96 var attrText = this.createTextNode(feature.attributes[attr]); 94 97 var nodename = attr; 95 98 if (attr.search(":") != -1) { … … 129 132 130 133 var propertyNode = this.createElementNS(this.wfsns, 'wfs:Property'); 131 var nameNode = this.createElementNS( 'http://www.opengis.net/wfs', 'wfs:Name');134 var nameNode = this.createElementNS(this.wfsns, 'wfs:Name'); 132 135 133 var txtNode = document.createTextNode(this.geometryName);136 var txtNode = this.createTextNode(this.geometryName); 134 137 nameNode.appendChild(txtNode); 135 138 propertyNode.appendChild(nameNode); 136 139 137 var valueNode = this.createElementNS( 'http://www.opengis.net/wfs', 'wfs:Value');140 var valueNode = this.createElementNS(this.wfsns, 'wfs:Value'); 138 141 valueNode.appendChild(this.buildGeometryNode(feature.geometry)); 139 142 … … 141 144 updateNode.appendChild(propertyNode); 142 145 143 var filterNode = this.createElementNS( 'http://www.opengis.net/ogc', 'ogc:Filter');144 var filterIdNode = this.createElementNS( 'http://www.opengis.net/ogc', 'ogc:FeatureId');146 var filterNode = this.createElementNS(this.ogcns, 'ogc:Filter'); 147 var filterIdNode = this.createElementNS(this.ogcns, 'ogc:FeatureId'); 145 148 filterIdNode.setAttribute("fid", feature.fid); 146 149 filterNode.appendChild(filterIdNode); … … 165 168 deleteNode.setAttribute("typeName", this.layerName); 166 169 167 var filterNode = this.createElementNS( 'http://www.opengis.net/ogc', 'ogc:Filter');168 var filterIdNode = this.createElementNS( 'http://www.opengis.net/ogc', 'ogc:FeatureId');170 var filterNode = this.createElementNS(this.ogcns, 'ogc:Filter'); 171 var filterIdNode = this.createElementNS(this.ogcns, 'ogc:FeatureId'); 169 172 filterIdNode.setAttribute("fid", feature.fid); 170 173 filterNode.appendChild(filterIdNode); sandbox/ahocevar/styleMap/openlayers/lib/OpenLayers/Format/WMC/v1_1_0.js
r5919 r6122 90 90 91 91 // min/max scale denominator elements go before the 4th element in v1 92 var minSD = this.createElementNS( 93 this.namespaces.sld, "sld:MinScaleDenominator" 94 ); 95 minSD.appendChild(this.createTextNode(layer.maxScale.toPrecision(10))); 96 node.insertBefore(minSD, node.childNodes[3]); 92 if(layer.options.resolutions || layer.options.scales || 93 layer.options.minResolution || layer.options.maxScale) { 94 var minSD = this.createElementNS( 95 this.namespaces.sld, "sld:MinScaleDenominator" 96 ); 97 minSD.appendChild(this.createTextNode(layer.maxScale.toPrecision(10))); 98 node.insertBefore(minSD, node.childNodes[3]); 99 } 97 100 98 var maxSD = this.createElementNS( 99 this.namespaces.sld, "sld:MaxScaleDenominator" 100 ); 101 maxSD.appendChild(this.createTextNode(layer.minScale.toPrecision(10))); 102 node.insertBefore(maxSD, node.childNodes[4]); 101 if(layer.options.resolutions || layer.options.scales || 102 layer.options.maxResolution || layer.options.minScale) { 103 var maxSD = this.createElementNS( 104 this.namespaces.sld, "sld:MaxScaleDenominator" 105 ); 106 maxSD.appendChild(this.createTextNode(layer.minScale.toPrecision(10))); 107 node.insertBefore(maxSD, node.childNodes[4]); 108 } 103 109 104 110 return node; sandbox/ahocevar/styleMap/openlayers/lib/OpenLayers/Handler/Click.js
r5698 r6122 46 46 * APIProperty: pixelTolerance 47 47 * {Number} Maximum number of pixels between mouseup and mousedown for an 48 * event to be considered a click. Default is null. If set to an48 * event to be considered a click. Default is 0. If set to an 49 49 * integer value, clicks with a drag greater than the value will be 50 50 * ignored. This property can only be set when the handler is 51 51 * constructed. 52 52 */ 53 pixelTolerance: null,53 pixelTolerance: 0, 54 54 55 55 /** … … 183 183 passesTolerance: function(evt) { 184 184 var passes = true; 185 if(this.pixelTolerance && this.down) {185 if(this.pixelTolerance != null && this.down) { 186 186 var dpx = Math.sqrt( 187 187 Math.pow(this.down.x - evt.xy.x, 2) + sandbox/ahocevar/styleMap/openlayers/lib/OpenLayers/Map.js
r5982 r6122 374 374 // Note that this is ok, as updateSize() does nothing if the 375 375 // map's size has not actually changed. 376 this.updateSizeDestroy = OpenLayers.Function.bind(this.updateSize, 377 this); 376 378 OpenLayers.Event.observe(window, 'resize', 377 OpenLayers.Function.bind(this.updateSize, this));379 this.updateSizeDestroy); 378 380 } 379 381 … … 435 437 */ 436 438 unloadDestroy: null, 439 440 /** 441 * Method: updateSizeDestroy 442 * When the map is destroyed, we need to stop listening to updateSize 443 * events: this method stores the function we need to unregister in 444 * non-IE browsers. 445 */ 446 updateSizeDestroy: null, 437 447 438 448 /** … … 449 459 OpenLayers.Event.stopObserving(window, 'unload', this.unloadDestroy); 450 460 this.unloadDestroy = null; 461 462 if (this.updateSizeDestroy) { 463 OpenLayers.Event.stopObserving(window, 'resize', 464 this.updateSizeDestroy); 465 } else { 466 this.events.unregister("resize", this, this.updateSize); 467 } 451 468 452 469 if (this.layers != null) { … … 1230 1247 * dx - {Integer} 1231 1248 * dy - {Integer} 1232 */ 1233 pan: function(dx, dy) { 1234 1249 * options - {Object} Only one at this time: "animate", which uses 1250 * panTo instead of setCenter. Default is true. 1251 */ 1252 pan: function(dx, dy, options) { 1253 1254 if (!options) { 1255 options = {} 1256 } 1235 1257 // getCenter 1236 1258 var centerPx = this.getViewPortPxFromLonLat(this.getCenter()); … … 1242 1264 if (!newCenterPx.equals(centerPx)) { 1243 1265 var newCenterLonLat = this.getLonLatFromViewPortPx(newCenterPx); 1244 this.setCenter(newCenterLonLat); 1266 if (options.animate) { 1267 this.panTo(newCenterLonLat); 1268 } else { 1269 this.setCenter(newCenterLonLat); 1270 } 1245 1271 } 1246 1272 1247 1273 }, 1274 1275 /** 1276 * APIMethod: panTo 1277 * Allows user to pan to a new lonlat 1278 * If the new lonlat is in the current extent the map will slide smoothly 1279 * 1280 * Parameters: 1281 * lonlat - {<OpenLayers.Lonlat>} 1282 */ 1283 panTo: function(lonlat) { 1284 if (this.getExtent().containsLonLat(lonlat)) { 1285 if (!this.panTween) { 1286 this.panTween = new OpenLayers.Tween(OpenLayers.Easing.Expo.easeOut); 1287 } 1288 var center = this.getCenter(); 1289 var from = { 1290 lon: center.lon, 1291 lat: center.lat 1292 }; 1293 var to = { 1294 lon: lonlat.lon, 1295 lat: lonlat.lat 1296 }; 1297 this.panTween.start(from, to, 50, { 1298 callbacks: { 1299 start: OpenLayers.Function.bind(function(lonlat) { 1300 this.events.triggerEvent("movestart"); 1301 }, this), 1302 eachStep: OpenLayers.Function.bind(function(lonlat) { 1303 var lonlat = new OpenLayers.LonLat(lonlat.lon, lonlat.lat); 1304 this.moveTo(lonlat, this.zoom, true); 1305 }, this), 1306 done: OpenLayers.Function.bind(function(lonlat) { 1307 this.events.triggerEvent("moveend"); 1308 }, this) 1309 } 1310 }); 1311 } else { 1312 this.setCenter(lonlat); 1313 } 1314 }, 1248 1315 1249 1316 /** … … 1260 1327 * TBD: reconsider forceZoomChange in 3.0 1261 1328 */ 1262 setCenter: function (lonlat, zoom, dragging, forceZoomChange) { 1263 this.dragging = !!dragging; 1264 1329 setCenter: function(lonlat, zoom, dragging, forceZoomChange) { 1330 this.moveTo(lonlat, zoom, { 1331 'dragging': dragging, 1332 'forceZoomChange': forceZoomChange, 1333 'caller': 'setCenter' 1334 }); 1335 }, 1336 1337 /** 1338 * Method: moveTo 1339 * 1340 * Parameters: 1341 * lonlat - {<OpenLayers.LonLat>} 1342 * zoom - {Integer} 1343 * options - {Object} 1344 */ 1345 moveTo: function(lonlat, zoom, options) { 1346 if (!options) { 1347 options = {}; 1348 } 1349 // dragging is false by default 1350 var dragging = options.dragging; 1351 // forceZoomChange is false by default 1352 var forceZoomChange = options.forceZoomChange; 1353 // noEvent is false by default 1354 var noEvent = options.noEvent; 1355 1356 if (this.panTween && options.caller == "setCenter") { 1357 this.panTween.stop(); 1358 } 1359 1265 1360 if (!this.center && !this.isValidLonLat(lonlat)) { 1266 1361 lonlat = this.maxExtent.getCenterLonLat(); … … 1312 1407 if (zoomChanged || centerChanged || !dragging) { 1313 1408 1314 if (!dragging) { this.events.triggerEvent("movestart"); } 1409 if (!dragging && !noEvent) { 1410 this.events.triggerEvent("movestart"); 1411 } 1315 1412 1316 1413 if (centerChanged) { … … 1378 1475 1379 1476 // even if nothing was done, we want to notify of this 1380 if (!dragging) { this.events.triggerEvent("moveend"); } 1477 if (!dragging && !noEvent) { 1478 this.events.triggerEvent("moveend"); 1479 } 1381 1480 }, 1382 1481 sandbox/ahocevar/styleMap/openlayers/lib/OpenLayers/Popup.js
r5614 r6122 92 92 93 93 /** 94 * Property: closeDiv 95 * {DOMElement} the optional closer image 96 */ 97 closeDiv: null, 98 99 /** 94 100 * Property: padding 95 101 * {int} the internal padding of the content div. … … 158 164 var closeSize = new OpenLayers.Size(17,17); 159 165 var img = OpenLayers.Util.getImagesLocation() + "close.gif"; 160 var closeImg = OpenLayers.Util.createAlphaImageDiv(this.id + "_close", 161 null, 162 closeSize, 163 img); 164 closeImg.style.right = this.padding + "px"; 165 closeImg.style.top = this.padding + "px"; 166 this.groupDiv.appendChild(closeImg); 166 this.closeDiv = OpenLayers.Util.createAlphaImageDiv( 167 this.id + "_close", null, closeSize, img 168 ); 169 this.closeDiv.style.right = this.padding + "px"; 170 this.closeDiv.style.top = this.padding + "px"; 171 this.groupDiv.appendChild(this.closeDiv); 167 172 168 173 var closePopup = closeBoxCallback || function(e) { … … 170 175 OpenLayers.Event.stop(e); 171 176 }; 172 OpenLayers.Event.observe( closeImg, "click",177 OpenLayers.Event.observe(this.closeDiv, "click", 173 178 OpenLayers.Function.bindAsEventListener(closePopup, this)); 174 179 sandbox/ahocevar/styleMap/openlayers/lib/OpenLayers/Renderer/VML.js
r5944 r6122 217 217 if (!(style.graphicWidth && style.graphicHeight)) { 218 218 fill.aspect = "atmost"; 219 } 220 221 &
