Project

General

Profile

Statistics
| Revision:

root / trunk / web / dojo / dojox / drawing / manager / Undo.js @ 13

History | View | Annotate | Download (1.04 KB)

1
/*
2
        Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved.
3
        Available via Academic Free License >= 2.1 OR the modified BSD license.
4
        see: http://dojotoolkit.org/license for details
5
*/
6

    
7

    
8
if(!dojo._hasResource["dojox.drawing.manager.Undo"]){
9
dojo._hasResource["dojox.drawing.manager.Undo"]=true;
10
dojo.provide("dojox.drawing.manager.Undo");
11
dojox.drawing.manager.Undo=dojox.drawing.util.oo.declare(function(_1){
12
this.keys=_1.keys;
13
this.undostack=[];
14
this.redostack=[];
15
dojo.connect(this.keys,"onKeyDown",this,"onKeyDown");
16
},{onKeyDown:function(_2){
17
if(!_2.cmmd){
18
return;
19
}
20
if(_2.keyCode==90&&!_2.shift){
21
this.undo();
22
}else{
23
if((_2.keyCode==90&&_2.shift)||_2.keyCode==89){
24
this.redo();
25
}
26
}
27
},add:function(_3){
28
_3.args=dojo.mixin({},_3.args);
29
this.undostack.push(_3);
30
},apply:function(_4,_5,_6){
31
dojo.hitch(_4,_5)(_6);
32
},undo:function(){
33
var o=this.undostack.pop();
34
if(!o){
35
return;
36
}
37
o.before();
38
this.redostack.push(o);
39
},redo:function(){
40
var o=this.redostack.pop();
41
if(!o){
42
return;
43
}
44
if(o.after){
45
o.after();
46
}else{
47
o.before();
48
}
49
this.undostack.push(o);
50
}});
51
}