//>>built
define("dojox/sketch/UndoStack",["dojo/_base/kernel","dojo/_base/lang","dojo/_base/declare","../xml/DomParser"],function(_1){_1.getObject("sketch",true,dojox);var ta=dojox.sketch;ta.CommandTypes={Create:"Create",Move:"Move",Modify:"Modify",Delete:"Delete",Convert:"Convert"};_1.declare("dojox.sketch.UndoStack",null,{constructor:function(_2){this.figure=_2;this._steps=[];this._undoedSteps=[];},apply:function(_3,_4,to){if(!_4&&!to&&_3.fullText){this.figure.setValue(_3.fullText);return;}var _5=_4.shapeText;var _6=to.shapeText;if(_5.length==0&&_6.length==0){return;}if(_5.length==0){var o=dojox.xml.DomParser.parse(_6).documentElement;var a=this.figure._loadAnnotation(o);if(a){this.figure._add(a);}return;}if(_6.length==0){var _7=this.figure.getAnnotator(_4.shapeId);this.figure._delete([_7],true);return;}var _8=this.figure.getAnnotator(to.shapeId);var no=dojox.xml.DomParser.parse(_6).documentElement;_8.draw(no);this.figure.select(_8);return;},add:function(_9,_a,_b){var id=_a?_a.id:"";var _c=_a?_a.serialize():"";if(_9==ta.CommandTypes.Delete){_c="";}var _d={cmdname:_9,before:{shapeId:id,shapeText:_b||""},after:{shapeId:id,shapeText:_c}};this._steps.push(_d);this._undoedSteps=[];},destroy:function(){},undo:function(){var _e=this._steps.pop();if(_e){this._undoedSteps.push(_e);this.apply(_e,_e.after,_e.before);}},redo:function(){var _f=this._undoedSteps.pop();if(_f){this._steps.push(_f);this.apply(_f,_f.before,_f.after);}}});return dojox.sketch.UndoStack;});