public void Delete(ICanvas canvas, IPoint point) { Snapshot(canvas, true); ModelEditor.DeleteElement(canvas, point); Context.SkipLeftClick = false; }
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 static TreeItemType SwitchItems(ICanvas canvas, IDiagramCreator creator, ITreeItem oldItem, ITreeItem newItem, Action <DiagramProperties> setProperties) { if (newItem == null) { return(TreeItemType.None); } var oldItemType = GetTreeItemType(oldItem == null ? null : oldItem.GetUid()); var newItemType = GetTreeItemType(newItem == null ? null : newItem.GetUid()); if (oldItemType == TreeItemType.Diagram) { ModelEditor.Store(canvas, oldItem); } if (newItemType == TreeItemType.Diagram) { ModelEditor.Load(canvas, creator, newItem); if (setProperties != null) { setProperties(canvas.GetProperties()); } } return(newItemType); }
public Solution GenerateSolution(string fileName, bool includeHistory) { return(ModelEditor.GenerateSolution(Context.CurrentTree, fileName, Context.TagFileName, Context.TableFileName, includeHistory)); }
public void Delete(ICanvas canvas, IEnumerable <IElement> elements) { Snapshot(canvas, true); foreach (var element in elements) { ModelEditor.DeleteElement(canvas, element); } }
public void Paste(string model, double offsetX, double offsetY, bool select) { Snapshot(Context.CurrentCanvas, true); SelectNone(); ModelEditor.Parse(model, Context.CurrentCanvas, Context.DiagramCreator, offsetX, offsetY, true, true, select, true); }
public TreeSolution OpenSolution(string fileName) { using (var reader = new System.IO.StreamReader(fileName)) { return(ModelEditor.Parse(reader.ReadToEnd(), null, Context.DiagramCreator, 0, 0, false, false, false, false)); } }
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 void OpenDiagram(string fileName, ICanvas canvas) { string diagram = ModelEditor.Open(fileName); Snapshot(canvas, true); ModelEditor.Clear(canvas); ModelEditor.Parse(diagram, canvas, Context.DiagramCreator, 0, 0, false, true, false, true); }
private void MouseToggleLineSelection(ICanvas canvas, IPoint point) { var element = canvas.HitTest(point, 6.0).FirstOrDefault() as IElement; if (element != null) { ModelEditor.SelectionToggleWire(element); } else { ModelEditor.SetLinesSelection(canvas, false); } }
public static IEnumerable <string> GetCurrentProjectDiagrams(ITree tree) { var selected = tree.GetSelectedItem() as ITreeItem; if (selected == null) { return(null); } switch (TreeEditor.GetTreeItemType(selected.GetUid())) { case TreeItemType.Diagram: { var models = new List <string>(); ModelEditor.GenerateProject(selected.GetParent() as ITreeItem, models, false); return(models); } case TreeItemType.Project: { var models = new List <string>(); ModelEditor.GenerateProject(selected, models, false); return(models); } case TreeItemType.Solution: { var solution = tree.GetItems().FirstOrDefault(); if (solution == null) { return(null); } var project = solution.GetItems().FirstOrDefault(); if (project != null) { return(null); } var models = new List <string>(); ModelEditor.GenerateProject(project, models, false); return(models); } default: return(null); } }
public static void AddDiagram(ITreeItem project, bool select, Func <ITreeItem> createDiagram, IdCounter counter) { var diagram = CreateDiagramItem(null, createDiagram, counter); project.Add(diagram); ModelEditor.Store(null, diagram); if (select == true) { diagram.SetSelected(true); } }
public void ToggleWireEnd() { var wires = ModelEditor.GetSelectedWires(Context.CurrentCanvas); if (wires.Count() <= 0) { return; } Snapshot(Context.CurrentCanvas, false); foreach (var wire in wires.Cast <ILine>()) { wire.SetEndVisible(wire.GetEndVisible() == true ? false : true); } }
private void SelectNextInitialize(bool deselect) { var elements = ModelEditor.GetAll(Context.CurrentCanvas); if (elements == null) { return; } Context.SelectedThumbList = new LinkedList <IElement>(elements); Context.CurrentThumbNode = Context.SelectedThumbList.First; if (Context.CurrentThumbNode != null) { SelectOneElement(Context.CurrentThumbNode.Value, deselect); } }
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 static bool Split(ICanvas canvas, ILine line, ILine currentLine, IPoint point, IDiagramCreator creator, bool snap) { var pin = Insert.Pin(canvas, point, creator, snap); double x = pin.GetX(); double y = pin.GetY(); var temp = Connect(canvas, pin, currentLine, x, y, creator); canvas.Remove(line); var connections = ModelEditor.RemoveWireConnections(canvas, line); if (connections != null && connections.Count == 2) { Reconnect(canvas, line, pin, x, y, connections, temp, creator); } else { throw new InvalidOperationException("LineEx should have only two connections: Start and End."); } return(true); }
private void Connect(ICanvas canvas, IThumb pin, IDiagramCreator creator) { if (pin == null) { return; } Context.CurrentRoot = pin.GetParent() as IThumb; double x; double y; ModelEditor.GetPinPosition(Context.CurrentRoot, pin, out x, out y); Context.CurrentLine = WireEditor.Connect(canvas, Context.CurrentRoot, Context.CurrentLine, x, y, creator); if (Context.CurrentLine == null) { Context.CurrentRoot = null; } }
public void SelectNone() { ModelEditor.SelectNone(Context.CurrentCanvas); }
public IEnumerable <IElement> GetElementsAll() { return(ModelEditor.GetAll(Context.CurrentCanvas)); }
public IEnumerable <IElement> GetElementsThumb() { return(ModelEditor.GetThumbs(Context.CurrentCanvas)); }
public IEnumerable <IElement> GetElementsSelected() { return(ModelEditor.GetSelected(Context.CurrentCanvas)); }
public void Delete() { Delete(Context.CurrentCanvas, ModelEditor.GetSelected(Context.CurrentCanvas)); }
public string GetCurrentModel() { return(ModelEditor.GenerateItemModel(Context.CurrentCanvas, Context.CurrentTree.GetSelectedItem() as ITreeItem, true)); }
public void SaveSolution(string fileName) { GetCurrentModel(); ModelEditor.Save(fileName, GenerateSolution(fileName, false).Model); }
public void SelectConnected() { ModelEditor.SelectConnected(Context.CurrentCanvas); }
public void ClearCanvas() { Snapshot(Context.CurrentCanvas, true); ModelEditor.Clear(Context.CurrentCanvas); }
public void SaveDiagram(string fileName, ICanvas canvas) { ModelEditor.Save(fileName, ModelEditor.GenerateDiagram(canvas, null, canvas.GetProperties())); }