public static void Redo(ICanvas canvas, IDiagramCreator creator, bool pushUndo) { var history = Get(canvas); var undo = history.Undo; var redo = history.Redo; if (redo.Count <= 0) { return; } // save current model if (pushUndo == true) { var current = ModelEditor.GenerateDiagram(canvas, null, canvas.GetProperties()); undo.Push(current); } // restore previous model var model = redo.Pop(); ModelEditor.Clear(canvas); ModelEditor.Parse(model, canvas, creator, 0, 0, false, true, false, true); NotifyCanvasHistoryChanged(new CanvasHistoryChangedEventArgs() { Canvas = canvas, Undo = undo, Redo = redo }); }
public void Copy() { var canvas = Context.CurrentCanvas; string model = ModelEditor.Generate(ModelEditor.GetSelected(canvas)); if (model.Length == 0) { model = ModelEditor.GenerateDiagram(canvas, null, canvas.GetProperties()); } ClipboardSetText(model); }
public static string Add(ICanvas canvas) { var history = Get(canvas); var undo = history.Undo; var redo = history.Redo; var model = ModelEditor.GenerateDiagram(canvas, null, canvas.GetProperties()); undo.Push(model); redo.Clear(); NotifyCanvasHistoryChanged(new CanvasHistoryChangedEventArgs() { Canvas = canvas, Undo = undo, Redo = redo }); return(model); }
public void SaveDiagram(string fileName, ICanvas canvas) { ModelEditor.Save(fileName, ModelEditor.GenerateDiagram(canvas, null, canvas.GetProperties())); }