63 lines
1.5 KiB
JavaScript
63 lines
1.5 KiB
JavaScript
|
//>>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;
|
||
|
});
|