Example #1
0
        public static string GenerateItemModel(ICanvas canvas, ITreeItem item, bool update)
        {
            string model = null;

            if (item != null)
            {
                string uid       = item.GetUid();
                bool   isDiagram = StringUtil.StartsWith(uid, Constants.TagHeaderDiagram);

                if (isDiagram == true)
                {
                    var prop = (canvas == null) ? DiagramProperties.Default : canvas.GetProperties();
                    model = GenerateDiagram(canvas, uid, prop);
                    if (update == true)
                    {
                        UndoRedo undoRedo = (canvas == null) ?
                                            new UndoRedo(new Stack <string>(), new Stack <string>()) :
                                            canvas.GetTag() as UndoRedo;

                        item.SetTag(new Diagram(model, undoRedo));
                    }
                }
            }

            return(model);
        }
        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);
        }
Example #3
0
        public static void Store(ICanvas canvas, ITreeItem item)
        {
            string model = (canvas == null) ?
                           GenerateItemModel(null, item, true) :
                           GenerateDiagram(canvas, item.GetUid(), canvas == null ? null : canvas.GetProperties());

            item.SetTag(new Diagram(model, canvas != null ? canvas.GetTag() as UndoRedo : null));
        }
Example #4
0
        public static string GenerateProject(ITreeItem project,
                                             List <string> models,
                                             bool includeHistory)
        {
            var sb = new StringBuilder();

            sb.Append(Constants.PrefixRoot);
            sb.Append(Constants.ArgumentSeparator);
            sb.Append(project.GetUid());
            sb.Append(Environment.NewLine);

            foreach (var diagram in project.GetItems())
            {
                if (diagram.GetTag() != null)
                {
                    var tag     = diagram.GetTag() as Diagram;
                    var model   = tag.Model;
                    var history = tag.History;

                    if (model == null)
                    {
                        model = GenerateItemModel(null, diagram, true);
                    }

                    models.Add(model);
                    sb.Append(model);

                    if (includeHistory == true && history != null)
                    {
                        foreach (var m in history.Undo)
                        {
                            models.Add(m);
                            sb.Append(m);
                        }
                    }
                }
            }

            return(sb.ToString());
        }
        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;
        }