Changeset 2838
- Timestamp:
- 03/21/07 16:02:01 (2 years ago)
- Files:
-
- sandbox/elemoine/openlayers/lib/OpenLayers/Control.js (modified) (1 diff)
- sandbox/elemoine/openlayers/lib/OpenLayers/Control/DragPan.js (modified) (2 diffs)
- sandbox/elemoine/openlayers/lib/OpenLayers/Control/KeyboardDefaults.js (modified) (1 diff)
- sandbox/elemoine/openlayers/lib/OpenLayers/Control/MouseDefaults.js (modified) (6 diffs)
- sandbox/elemoine/openlayers/lib/OpenLayers/Control/MouseToolbar.js (modified) (3 diffs)
- sandbox/elemoine/openlayers/lib/OpenLayers/Control/Navigation.js (modified) (3 diffs)
- sandbox/elemoine/openlayers/lib/OpenLayers/Control/PanZoom.js (modified) (1 diff)
- sandbox/elemoine/openlayers/lib/OpenLayers/Control/ZoomBox.js (modified) (1 diff)
- sandbox/elemoine/openlayers/lib/OpenLayers/Control/ZoomToMaxExtent.js (modified) (1 diff)
- sandbox/elemoine/openlayers/lib/OpenLayers/History.js (modified) (4 diffs)
- sandbox/elemoine/openlayers/lib/OpenLayers/Map.js (modified) (1 diff)
- sandbox/elemoine/openlayers/lib/OpenLayers/Memento/Map.js (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
sandbox/elemoine/openlayers/lib/OpenLayers/Control.js
r2803 r2838 139 139 }, 140 140 141 /** 142 * 143 */ 144 recordMapExtent: function () { 145 if (this.map) { 146 var memento = this.map.createMemento(); 147 OpenLayers.History.getInstance().addMemento(memento); 148 } 149 }, 150 141 151 /** @final @type String */ 142 152 CLASS_NAME: "OpenLayers.Control" sandbox/elemoine/openlayers/lib/OpenLayers/Control/DragPan.js
r2803 r2838 32 32 var newXY = new OpenLayers.Pixel(size.w / 2 + deltaX, 33 33 size.h / 2 + deltaY); 34 var newCenter = this.map.getLonLatFromViewPortPx( newXY ); 34 var newCenter = this.map.getLonLatFromViewPortPx( newXY ); 35 // create and record a memento before panning 36 var memento = this.map.createMemento(); 37 OpenLayers.History.getInstance().addMemento(memento); 35 38 this.map.setCenter(newCenter, null, true); 36 39 // this assumes xy won't be changed inside Handler.Drag … … 48 51 var newXY = new OpenLayers.Pixel(size.w / 2 + deltaX, 49 52 size.h / 2 + deltaY); 50 var newCenter = this.map.getLonLatFromViewPortPx( newXY ); 53 var newCenter = this.map.getLonLatFromViewPortPx( newXY ); 54 55 56 51 57 this.map.setCenter(newCenter, null, false); 52 58 // this assumes xy won't be changed inside Handler.Drag sandbox/elemoine/openlayers/lib/OpenLayers/Control/KeyboardDefaults.js
r2803 r2838 37 37 */ 38 38 defaultKeyPress: function (code) { 39 this.recordMapExtent(); 39 40 switch(code) { 40 41 case OpenLayers.Event.KEY_LEFT: sandbox/elemoine/openlayers/lib/OpenLayers/Control/MouseDefaults.js
r2803 r2838 72 72 */ 73 73 defaultDblClick: function (evt) { 74 var newCenter = this.map.getLonLatFromViewPortPx( evt.xy ); 74 var newCenter = this.map.getLonLatFromViewPortPx( evt.xy ); 75 this.recordMapExtent(); 75 76 this.map.setCenter(newCenter, this.map.zoom + 1); 76 77 OpenLayers.Event.stop(evt); … … 129 130 var newXY = new OpenLayers.Pixel(size.w / 2 + deltaX, 130 131 size.h / 2 + deltaY); 131 var newCenter = this.map.getLonLatFromViewPortPx( newXY ); 132 var newCenter = this.map.getLonLatFromViewPortPx( newXY ); 133 this.recordMapExtent(); 132 134 this.map.setCenter(newCenter, null, true); 133 135 this.mouseDragStart = evt.xy.clone(); … … 147 149 } else { 148 150 if (this.performedDrag) { 151 this.recordMapExtent(); 149 152 this.map.setCenter(this.map.center); 150 153 } … … 174 177 defaultWheelUp: function(evt) { 175 178 if (this.map.getZoom() <= this.map.getNumZoomLevels()) { 179 this.recordMapExtent(); 176 180 this.map.setCenter(this.map.getLonLatFromPixel(evt.xy), 177 181 this.map.getZoom() + 1); … … 184 188 defaultWheelDown: function(evt) { 185 189 if (this.map.getZoom() > 0) { 190 this.recordMapExtent(); 186 191 this.map.setCenter(this.map.getLonLatFromPixel(evt.xy), 187 192 this.map.getZoom() - 1); … … 206 211 } else { 207 212 var end = this.map.getLonLatFromViewPortPx( evt.xy ); 213 this.recordMapExtent(); 208 214 this.map.setCenter(new OpenLayers.LonLat( 209 215 (end.lon), sandbox/elemoine/openlayers/lib/OpenLayers/Control/MouseToolbar.js
r2803 r2838 115 115 this.switchModeTo("pan"); 116 116 this.performedDrag = false; 117 var newCenter = this.map.getLonLatFromViewPortPx( evt.xy ); 117 var newCenter = this.map.getLonLatFromViewPortPx( evt.xy ); 118 this.recordMapExtent(); 118 119 this.map.setCenter(newCenter, this.map.zoom + 1); 119 120 OpenLayers.Event.stop(evt); … … 264 265 var newXY = new OpenLayers.Pixel(size.w / 2 + deltaX, 265 266 size.h / 2 + deltaY); 266 var newCenter = this.map.getLonLatFromViewPortPx( newXY ); 267 var newCenter = this.map.getLonLatFromViewPortPx( newXY ); 268 this.recordMapExtent(); 267 269 this.map.setCenter(newCenter, null, true); 268 270 this.mouseDragStart = evt.xy.clone(); … … 284 286 case "pan": 285 287 if (this.performedDrag) { 288 this.recordMapExtent(); 286 289 this.map.setCenter(this.map.center); 287 290 } sandbox/elemoine/openlayers/lib/OpenLayers/Control/Navigation.js
r2803 r2838 54 54 */ 55 55 defaultDblClick: function (evt) { 56 var newCenter = this.map.getLonLatFromViewPortPx( evt.xy ); 56 var newCenter = this.map.getLonLatFromViewPortPx( evt.xy ); 57 this.recordMapExtent(); 57 58 this.map.setCenter(newCenter, this.map.zoom + 1); 58 59 OpenLayers.Event.stop(evt); … … 64 65 */ 65 66 wheelUp: function(evt) { 67 this.recordMapExtent(); 66 68 this.map.setCenter(this.map.getLonLatFromPixel(evt.xy), 67 69 this.map.getZoom() + 1); … … 72 74 */ 73 75 wheelDown: function(evt) { 76 this.recordMapExtent(); 74 77 this.map.setCenter(this.map.getLonLatFromPixel(evt.xy), 75 78 this.map.getZoom() - 1); sandbox/elemoine/openlayers/lib/OpenLayers/Control/PanZoom.js
r2810 r2838 112 112 buttonDown: function (evt) { 113 113 if (!OpenLayers.Event.isLeftClick(evt)) return; 114 115 var memento = this.map.createMemento(); 116 OpenLayers.History.getInstance().addMemento(memento); 114 115 this.recordMapExtent(); 117 116 118 117 switch (this.action) { sandbox/elemoine/openlayers/lib/OpenLayers/Control/ZoomBox.js
r2803 r2838 24 24 25 25 zoomBox: function (position) { 26 this.recordMapExtent(); 26 27 if (position instanceof OpenLayers.Bounds) { 27 28 var minXY = this.map.getLonLatFromPixel( sandbox/elemoine/openlayers/lib/OpenLayers/Control/ZoomToMaxExtent.js
r2803 r2838 17 17 trigger: function() { 18 18 if (this.map) { 19 this.recordMapExtent(); 19 20 this.map.zoomToMaxExtent(); 20 21 } sandbox/elemoine/openlayers/lib/OpenLayers/History.js
r2814 r2838 9 9 10 10 OpenLayers.History._instance = null; 11 OpenLayers.History.HISTSIZE = 30;11 OpenLayers.History.HISTSIZE = 100; 12 12 13 13 OpenLayers.History.getInstance = function() { … … 62 62 this.mementos = null; 63 63 }, 64 65 _addMemento: function(memento) { 66 if (this.mementos.length > OpenLayers.History.HISTSIZE - 1) 67 this.mementos.shift(); 68 this.mementos.push(memento); 69 }, 64 70 65 71 /** … … 70 76 return; 71 77 72 // TODO use HISTSIZE73 74 78 this.mementos.splice(this.pos); 75 this. mementos.push(memento);79 this._addMemento(memento); 76 80 this.pos = this.mementos.length; 77 81 }, … … 87 91 var obj = memento.getObject(); 88 92 89 if (this.pos == this.mementos.length) { 90 var m = obj.createMemento(); 91 this.mementos.push(m); 92 } 93 if (this.pos == this.mementos.length) 94 this._addMemento(obj.createMemento()); 93 95 94 96 obj.setMemento(memento); sandbox/elemoine/openlayers/lib/OpenLayers/Map.js
r2810 r2838 267 267 268 268 setMemento: function(memento) { 269 var bounds = memento.bounds; // TODO269 var bounds = memento.bounds; 270 270 this.zoomToExtent(bounds); 271 271 }, sandbox/elemoine/openlayers/lib/OpenLayers/Memento/Map.js
r2813 r2838 22 22 */ 23 23 initialize: function(map, bounds) { 24 var args = new Array(); 25 args.push(map); 26 OpenLayers.Memento.prototype.initialize.apply(this, args); 24 OpenLayers.Memento.prototype.initialize.apply(this, [ map ]); 27 25 this.bounds = bounds; 28 26 },
