root / trunk / web / dojo / dojox / drawing / manager / Undo.js @ 13
History | View | Annotate | Download (1.04 KB)
1 | 9 | andrej.cim | /*
|
---|---|---|---|
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 | } |