OpenLayers OpenLayers

Changeset 2814

Show
Ignore:
Timestamp:
03/18/07 06:52:30 (2 years ago)
Author:
elemoine
Message:

undo and redo work, history control object still to be implemented

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • sandbox/elemoine/openlayers/lib/OpenLayers/History.js

    r2813 r2814  
    2626 
    2727    /** @type {int} pos */ 
    28     pos: -1
     28    pos: 0
    2929 
    3030    /** 
     
    4848 
    4949        this.mementos = new Array(); 
    50         this.pos = -1
     50        this.pos = 0
    5151        this.active = true; 
    5252    }, 
     
    7272        // TODO use HISTSIZE 
    7373 
    74         this.pos++; 
    7574        this.mementos.splice(this.pos); 
    7675        this.mementos.push(memento); 
     76        this.pos = this.mementos.length; 
    7777    }, 
    7878 
     
    8181     */ 
    8282    undo: function() { 
    83         if (this.active == false || this.pos == -1) 
     83        if (this.active == false || this.pos < 1) 
    8484            return; 
     85             
     86        var memento = this.mementos[this.pos - 1]; 
     87        var obj = memento.getObject(); 
     88             
     89        if (this.pos == this.mementos.length) { 
     90            var m = obj.createMemento(); 
     91            this.mementos.push(m); 
     92        }  
    8593 
    86         var memento = this.mementos[this.pos--]
    87         memento.getObject().setMemento(memento)
     94        obj.setMemento(memento)
     95        this.pos--
    8896    }, 
    8997 
     
    92100     */ 
    93101    redo: function() { 
    94         if (this.active == false || this.pos == this.mementos.length - 1
     102        if (this.active == false || this.pos > this.mementos.length - 2
    95103            return; 
    96104 
    97         var memento = this.mementos[++this.pos]; 
     105        var memento = this.mementos[this.pos + 1]; 
    98106        memento.getObject().setMemento(memento); 
     107        this.pos++; 
    99108    }, 
    100109 
  • sandbox/elemoine/openlayers/lib/OpenLayers/Memento.js

    r2813 r2814  
    99OpenLayers.Memento.prototype = { 
    1010 
    11     /** @type {Object} object */ 
     11    /** @type {Object} obj */ 
    1212    obj: null, 
    1313