- Timestamp:
- 2019-02-12T12:44:28+13:00 (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
main/trunk/greenstone3/web/interfaces/default/js/map-scripts-editor-history.js
r32766 r32769 1 var prevOverlays = [];2 var presentOverlays = [];3 var undoneOverlays = [];4 var cycleComplete = true;1 //var prevOverlays = []; 2 //var presentOverlays = []; 3 //var undoneOverlays = []; 4 //var cycleComplete = true; 5 5 6 6 function MapEditorHistory() … … 12 12 } 13 13 14 MapEditorHistory.prototype.undo = function( overlays) {15 for ( vari = 0; i < overlays.length; i++) {14 MapEditorHistory.prototype.undo = function() { 15 for (let i = 0; i < overlays.length; i++) { 16 16 overlays[i].setMap(null); 17 17 } … … 34 34 35 35 36 function undo() { 37 38 for (var i = 0; i < overlays.length; i++) { 39 overlays[i].setMap(null); 40 } 41 if (prevOverlays.length != 0) { 36 37 38 MapEditorHistory.prototype.redo = function() { 39 40 if (this.undoneOverlays.length != 0) { 42 41 selectedShapes = []; 42 for (let i = 0; i < overlays.length; i++) { 43 overlays[i].setMap(null); 44 } 45 43 46 overlays = []; 44 undoneOverlaysPush(); 45 var prev_overlay = prevOverlays.pop(); 46 47 if (prev_overlay.length > 0) { 48 for (var i = 0; i < prev_overlay.length; i++) { 49 overlays[i] = prev_overlay[i]; 50 overlays[i].setMap(map); 51 overlays[i].draggable = draggableState; 52 } 53 } 54 } 55 } 56 57 function redo() { 58 59 if (undoneOverlays.length != 0) { 60 selectedShapes = []; 61 for (var i = 0; i < overlays.length; i++) { 62 overlays[i].setMap(null); 63 } 64 65 overlays = []; 66 var lastEntry = undoneOverlays[undoneOverlays.length - 1]; 67 for (var i = 0; i < lastEntry.length; i++) { 47 var lastEntry = this.undoneOverlays[this.undoneOverlays.length - 1]; 48 for (let i = 0; i < lastEntry.length; i++) { 68 49 overlays[i] = lastEntry[i]; 69 50 overlays[i].setMap(map); … … 71 52 } 72 53 73 var conditionPrevious = presentOverlays[0];54 var conditionPrevious = this.presentOverlays[0]; 74 55 if (conditionPrevious !== undefined) { 75 56 if (conditionPrevious.length == 0) { 76 prevOverlays.push(presentOverlays[0]);57 this.prevOverlays.push(this.presentOverlays[0]); 77 58 } else { 78 59 var overlays_copy = []; 79 for ( var i = 0; i <presentOverlays[0].length; i++) {80 var clone_shape = cloneShape(presentOverlays[0][i]);81 if ( overlayItemIsShape(clone_shape)) {60 for (let i = 0; i < this.presentOverlays[0].length; i++) { 61 var clone_shape = this.cloneShape(this.presentOverlays[0][i]); 62 if (this.overlayItemIsShape(clone_shape)) { 82 63 addShapeListeners(clone_shape, null); 83 64 } else { … … 86 67 overlays_copy[i] = clone_shape; 87 68 } 88 prevOverlays.push(overlays_copy); 89 } 90 } 91 presentOverlays = []; 92 presentOverlays.push(undoneOverlays[undoneOverlays.length - 1]); 93 undoneOverlays.pop(); 94 } 95 } 96 97 function clonePath(path) { 69 this.prevOverlays.push(overlays_copy); 70 } 71 } 72 this.presentOverlays = []; 73 this.presentOverlays.push(this.undoneOverlays[this.undoneOverlays.length - 1]); 74 this.undoneOverlays.pop(); 75 } 76 } 77 78 79 80 81 MapEditorHistory.prototype.clonePath = function(path){ 98 82 var clone_path = []; 99 83 … … 111 95 } 112 96 113 function clonePolyline(polyline) { 97 98 MapEditorHistory.prototype.clonePolyline = function(polyline){ 114 99 var path = polyline.getPath(); 115 100 var geodesic = polyline.geodesic; … … 135 120 } 136 121 137 function clonePolygon(polygon) { 122 123 MapEditorHistory.prototype.clonePolygon = function(polygon){ 138 124 var path = polygon.getPath(); 139 125 var geodesic = polygon.geodesic; … … 163 149 } 164 150 165 function cloneRectangle(rect){151 MapEditorHistory.prototype.cloneRectangle = function(rect){ 166 152 var strokeColor = rect.strokeColor; 167 153 var strokeOpacity = rect.strokeOpacity; … … 190 176 } 191 177 192 function cloneCircle(circ){178 MapEditorHistory.prototype.cloneCircle = function(circ){ 193 179 var strokeColor = circ.strokeColor; 194 180 var strokeOpacity = circ.strokeOpacity; … … 217 203 } 218 204 219 function cloneMarker(marker){205 MapEditorHistory.prototype.cloneMarker = function(marker){ 220 206 var position = marker.getPosition(); 221 207 var anchorPoint = marker.anchorPoint; … … 232 218 } 233 219 234 function cloneShape(shape){220 MapEditorHistory.prototype.cloneShape = function(shape){ 235 221 if (shape.type === google.maps.drawing.OverlayType.POLYLINE) { 236 var clone_polyline =clonePolyline(shape);222 let clone_polyline = this.clonePolyline(shape); 237 223 return clone_polyline; 238 224 } else if (shape.type === google.maps.drawing.OverlayType.POLYGON) { 239 var clone_polygon =clonePolygon(shape);225 let clone_polygon = this.clonePolygon(shape); 240 226 return clone_polygon; 241 227 } else if (shape.type === google.maps.drawing.OverlayType.RECTANGLE) { 242 var clone_rect =cloneRectangle(shape);228 let clone_rect = this.cloneRectangle(shape); 243 229 return clone_rect; 244 230 245 231 } else if (shape.type === google.maps.drawing.OverlayType.CIRCLE) { 246 var clone_circ =cloneCircle(shape);232 let clone_circ = this.cloneCircle(shape); 247 233 return clone_circ; 248 234 249 235 } else { 250 var clone_marker =cloneMarker(shape);236 let clone_marker = this.cloneMarker(shape); 251 237 return clone_marker; 252 238 } 253 239 } 254 240 255 function overlayItemIsShape(overlay_item){241 MapEditorHistory.prototype.overlayItemIsShape = function(overlay_item){ 256 242 var type = overlay_item.type; 257 243 … … 263 249 return is_shape; 264 250 } 265 266 function historyOverlayPush() { 267 if (cycleComplete) { 251 MapEditorHistory.prototype.historyOverlayPush = function(){ 252 if (this.cycleComplete) { 268 253 var overlays_copy = []; 269 254 for (var i = 0; i < overlays.length; i++) { 270 var clone_shape =cloneShape(overlays[i]);271 272 if ( overlayItemIsShape(clone_shape)) {255 let clone_shape = this.cloneShape(overlays[i]); 256 257 if (this.overlayItemIsShape(clone_shape)) { 273 258 addShapeListeners(clone_shape, null); // don't have an overlay event! 274 259 } else { … … 278 263 } 279 264 undoneOverlays = []; 280 prevOverlays.push(overlays_copy);265 this.prevOverlays.push(overlays_copy); 281 266 } 282 267 283 268 cycleComplete = false; 284 269 } 285 function presentOverlayPush() { 286 287 OVbeforeClearing = overlays; 288 PObeforeClearing = presentOverlays; 289 presentOverlays = []; 270 271 MapEditorHistory.prototype.presentOverlayPush = function(){ 272 this.presentOverlays = []; 290 273 var overlays_copy = []; 291 274 for (var i = 0; i < overlays.length; i++) { 292 var clone_shape =cloneShape(overlays[i]);293 if ( overlayItemIsShape(clone_shape)) {275 let clone_shape = this.cloneShape(overlays[i]); 276 if (this.overlayItemIsShape(clone_shape)) { 294 277 addShapeListeners(clone_shape, null); // don't have an overlay event! 295 278 } else { 296 addMarkerListeners(clone_shape, null); // don't have an overlay event!279 this.addMarkerListeners(clone_shape, null); // don't have an overlay event! 297 280 } 298 281 overlays_copy[i] = clone_shape; 299 282 } 300 presentOverlays.push(overlays_copy);283 this.presentOverlays.push(overlays_copy); 301 284 cycleComplete = true; 302 285 303 286 } 304 287 305 function undoneOverlaysPush(){306 288 MapEditorHistory.prototype.undoneOverlaysPush = function(){ 289 presentOverlayPush 307 290 var conditionUndone = presentOverlays[presentOverlays.length - 1] !== undefined; 308 291 309 292 if (conditionUndone) { 310 varoverlays_copy = [];293 let overlays_copy = []; 311 294 for (var i = 0; i < presentOverlays[0].length; i++) { 312 295 var clone_shape = cloneShape(presentOverlays[0][i]); … … 327 310 var overlays_copy = []; 328 311 for (var i = 0; i < prevOverlays[prevOverlays.length - 1].length; i++) { 329 varclone_shape = cloneShape(prevOverlays[prevOverlays.length - 1][i]);312 let clone_shape = cloneShape(prevOverlays[prevOverlays.length - 1][i]); 330 313 if (overlayItemIsShape(clone_shape)) { 331 314 addShapeListeners(clone_shape, null); // don't have an overlay event! … … 342 325 MapEditorHistory.prototype.undoneOverlaysPush = function() { 343 326 344 varconditionUndone = this.presentOverlays[this.presentOverlays.length - 1] !== undefined;327 let conditionUndone = this.presentOverlays[this.presentOverlays.length - 1] !== undefined; 345 328 346 329 if (conditionUndone) { 347 330 var overlays_copy = []; 348 331 for (var i = 0; i < this.presentOverlays[0].length; i++) { 349 var clone_shape =cloneShape(this.presentOverlays[0][i]);350 if ( overlayItemIsShape(clone_shape)) {332 let clone_shape = this.cloneShape(this.presentOverlays[0][i]); 333 if (this.overlayItemIsShape(clone_shape)) { 351 334 addShapeListeners(clone_shape, null); // don't have an overlay event! 352 335 } else { … … 358 341 } 359 342 360 varconditionPresent = this.prevOverlays[this.prevOverlays.length - 1] !== undefined;343 let conditionPresent = this.prevOverlays[this.prevOverlays.length - 1] !== undefined; 361 344 362 345 if (conditionPresent) { 363 346 this.presentOverlays = []; 364 347 var overlays_copy = []; 365 for ( vari = 0; i < this.prevOverlays[this.prevOverlays.length - 1].length; i++) {366 var clone_shape = cloneShape(this.prevOverlays[this.prevOverlays.length - 1][i]);367 if ( overlayItemIsShape(clone_shape)) {348 for (let i = 0; i < this.prevOverlays[this.prevOverlays.length - 1].length; i++) { 349 var clone_shape = this.cloneShape(this.prevOverlays[this.prevOverlays.length - 1][i]); 350 if (this.overlayItemIsShape(clone_shape)) { 368 351 addShapeListeners(clone_shape, null); // don't have an overlay event! 369 352 } else {
Note:
See TracChangeset
for help on using the changeset viewer.