Maintains the stack of redo and undo logs.Each entry in the undo stack represents a single property change
Syntax
JScript | |
---|
public class ModificationHistory implements IExportAll |
Example
C# | Copy Code |
---|
<html> <head> <script type="text/javascript" src="../webControl/vdWebControl.js"></script> <script type="text/javascript"> var vdcanvas; // keep the vdcanvas control global for quick access inside the functions since it is the only one in the this page function vdrawInitPageLoad() {//Intiallize theweb control inside this function.It must be called inside onload event of this page vdmanager.AttachCanvas("canvas"); //create a new web control andattch it to the canvas elemement vdcanvas = vdmanager.vdrawObject(); //return a refence to the attached web control vdcanvas.vdAfterOpenDocument = _vdAfterOpenDocument; //defines the function that will be fire when a web control document loaded. vdcanvas.vdPrompt = _onprompt; //defines the function that will be fire when a vdcanvas.Prompt is called in order to print the message on this page vdcanvas.vdError = _vdError; //defines the function that will be fire when an error ocured in order to print the message on this page } function printInfo(text) {//print messages in the 'info' element of this page document.getElementById("info").innerHTML = ":" + text; } function _vdError(sender, ErrCategoryId, statusId, info) { printInfo("Error status code = " + statusId.toString() + ". " + (info ? info : "")); } function _onprompt(sender, msg) { printInfo(msg); } function _vdAfterOpenDocument() {//fire when a web control document loaded. vdcanvas.Prompt("Document opened successfully"); createTestobject(); } function createTestobject() { var k = 0; var line; for (k = 0; k < 2; k++) { line = vdcanvas.AddLine([-5, k, 0], [5, k, 0]); vdcanvas.UndoHistory().store(line, "Deleted", true); //add the new line object to history vdcanvas.UndoHistory().store(line, "PenColor"); //add the Pencolor property to history line.PenColor = vdConst.createNewColor(k.toString()); //change the PenColor } vdcanvas.UndoHistory().group_start(); //start a new undo group //same code with previous loop but inside a group for (k = 2; k < 4; k++) { line = vdcanvas.AddLine([-5, k, 0], [5, k, 0]); vdcanvas.UndoHistory().store(line, "Deleted", true); vdcanvas.UndoHistory().store(line, "PenColor"); line.PenColor = vdConst.createNewColor(k.toString()); } vdcanvas.UndoHistory().group_end(); //end the undo group vdcanvas.redraw(); } function undo() { vdcanvas.UndoHistory().undo(); //make a single undo . Call it multi times until everything undone setTimeout(vdcanvas.redraw, 0); //send a redraw to timeout } function redo() { vdcanvas.UndoHistory().redo(); //make a single redo.Call it multi times until everything redone. setTimeout(vdcanvas.redraw, 0); //send a redraw to timeout } function test() { //select a new document for the web control. //NOTE: Always a document must be selected to the web control.Else the web control is unusable vdcanvas.SelectDocument("vddocument.vds"); } </script> </head> <body onload="vdrawInitPageLoad()"> <div> <label>First Select Test to open a new drawing and create some entities, then select Undo and Redo buttons</label> </div> <div> <button onclick="test()"> Test</button> <button onclick="undo()"> Undo</button> <button onclick="redo()"> Redo</button> </div> <div> <label id="info"> :</label></div> <div> <canvas id="canvas" width="520" height="480"> </canvas> </div> </body> </html> |
See Also