public void Undo() {
ICommand run = s_current;
ICommand rev = VsqFile.executeCommand( run );
for ( int i = 0; i < s_current.Child.Count; i++ ) {
s_current.Child[i].Parent = rev;
rev.Child.Add( s_current.Child[i] );
}
rev.Parent = s_current.Parent;
for ( int i = 0; i < s_current.Parent.Child.Count; i++ ) {
if ( Object.ReferenceEquals( s_current, s_current.Parent.Child[i] ) ) {
s_current.Parent.Child[i] = rev;
break;
}
}
s_current = s_current.Parent;
}