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); }
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)); }
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; }