Esempio n. 1
0
        public void Delete(ICanvas canvas, IPoint point)
        {
            Snapshot(canvas, true);
            ModelEditor.DeleteElement(canvas, point);

            Context.SkipLeftClick = false;
        }
Esempio n. 2
0
        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);
        }
Esempio n. 4
0
 public Solution GenerateSolution(string fileName, bool includeHistory)
 {
     return(ModelEditor.GenerateSolution(Context.CurrentTree,
                                         fileName,
                                         Context.TagFileName,
                                         Context.TableFileName,
                                         includeHistory));
 }
Esempio n. 5
0
        public void Delete(ICanvas canvas, IEnumerable <IElement> elements)
        {
            Snapshot(canvas, true);

            foreach (var element in elements)
            {
                ModelEditor.DeleteElement(canvas, element);
            }
        }
Esempio n. 6
0
 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);
 }
Esempio n. 7
0
 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));
     }
 }
Esempio n. 8
0
        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);
        }
Esempio n. 9
0
        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);
        }
Esempio n. 10
0
        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);
            }
        }
Esempio n. 11
0
        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);
            }
        }
Esempio n. 13
0
        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);
            }
        }
Esempio n. 14
0
        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);
            }
        }
Esempio n. 15
0
        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);
        }
Esempio n. 16
0
        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);
        }
Esempio n. 17
0
        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;
            }
        }
Esempio n. 18
0
 public void SelectNone()
 {
     ModelEditor.SelectNone(Context.CurrentCanvas);
 }
Esempio n. 19
0
 public IEnumerable <IElement> GetElementsAll()
 {
     return(ModelEditor.GetAll(Context.CurrentCanvas));
 }
Esempio n. 20
0
 public IEnumerable <IElement> GetElementsThumb()
 {
     return(ModelEditor.GetThumbs(Context.CurrentCanvas));
 }
Esempio n. 21
0
 public IEnumerable <IElement> GetElementsSelected()
 {
     return(ModelEditor.GetSelected(Context.CurrentCanvas));
 }
Esempio n. 22
0
 public void Delete()
 {
     Delete(Context.CurrentCanvas, ModelEditor.GetSelected(Context.CurrentCanvas));
 }
Esempio n. 23
0
 public string GetCurrentModel()
 {
     return(ModelEditor.GenerateItemModel(Context.CurrentCanvas,
                                          Context.CurrentTree.GetSelectedItem() as ITreeItem,
                                          true));
 }
Esempio n. 24
0
 public void SaveSolution(string fileName)
 {
     GetCurrentModel();
     ModelEditor.Save(fileName, GenerateSolution(fileName, false).Model);
 }
Esempio n. 25
0
 public void SelectConnected()
 {
     ModelEditor.SelectConnected(Context.CurrentCanvas);
 }
Esempio n. 26
0
 public void ClearCanvas()
 {
     Snapshot(Context.CurrentCanvas, true);
     ModelEditor.Clear(Context.CurrentCanvas);
 }
Esempio n. 27
0
 public void SaveDiagram(string fileName, ICanvas canvas)
 {
     ModelEditor.Save(fileName, ModelEditor.GenerateDiagram(canvas, null, canvas.GetProperties()));
 }