mirror of
https://gitee.com/akwkevin/aistudio.-wpf.-diagram
synced 2026-05-02 05:51:28 +08:00
附加信息序列化
This commit is contained in:
@@ -1,4 +1,6 @@
|
|||||||
using System.Windows;
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Windows;
|
||||||
using System.Xml.Serialization;
|
using System.Xml.Serialization;
|
||||||
using AIStudio.Wpf.DiagramDesigner;
|
using AIStudio.Wpf.DiagramDesigner;
|
||||||
using AIStudio.Wpf.Mind.ViewModels;
|
using AIStudio.Wpf.Mind.ViewModels;
|
||||||
@@ -6,6 +8,8 @@ using Newtonsoft.Json;
|
|||||||
|
|
||||||
namespace AIStudio.Wpf.Mind.Models
|
namespace AIStudio.Wpf.Mind.Models
|
||||||
{
|
{
|
||||||
|
[Serializable]
|
||||||
|
[XmlInclude(typeof(MindNodeDesignerItem))]
|
||||||
public class MindNodeDesignerItem : DesignerItemBase
|
public class MindNodeDesignerItem : DesignerItemBase
|
||||||
{
|
{
|
||||||
public MindNodeDesignerItem()
|
public MindNodeDesignerItem()
|
||||||
@@ -17,6 +21,15 @@ namespace AIStudio.Wpf.Mind.Models
|
|||||||
Spacing = item.Spacing;
|
Spacing = item.Spacing;
|
||||||
Offset = item.Offset;
|
Offset = item.Offset;
|
||||||
IsExpanded = item.IsExpanded;
|
IsExpanded = item.IsExpanded;
|
||||||
|
LinkInfoItem = new LinkInfoItem(item.LinkInfo);
|
||||||
|
ImageInfoItem = new ImageInfoItem(item.ImageInfo);
|
||||||
|
Remark = item.Remark;
|
||||||
|
Priority= item.Priority;
|
||||||
|
Rate=item.Rate;
|
||||||
|
if (item.Tags != null)
|
||||||
|
{
|
||||||
|
Tags = new List<string>(item.Tags);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
[XmlIgnore]
|
[XmlIgnore]
|
||||||
@@ -65,5 +78,92 @@ namespace AIStudio.Wpf.Mind.Models
|
|||||||
{
|
{
|
||||||
get; set;
|
get; set;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[XmlElement]
|
||||||
|
public LinkInfoItem LinkInfoItem
|
||||||
|
{
|
||||||
|
get;set;
|
||||||
|
}
|
||||||
|
|
||||||
|
[XmlElement]
|
||||||
|
public ImageInfoItem ImageInfoItem
|
||||||
|
{
|
||||||
|
get; set;
|
||||||
|
}
|
||||||
|
|
||||||
|
public string Remark
|
||||||
|
{
|
||||||
|
get; set;
|
||||||
|
}
|
||||||
|
|
||||||
|
public double? Priority
|
||||||
|
{
|
||||||
|
get; set;
|
||||||
|
}
|
||||||
|
|
||||||
|
public double? Rate
|
||||||
|
{
|
||||||
|
get; set;
|
||||||
|
}
|
||||||
|
|
||||||
|
[XmlArray]
|
||||||
|
public List<string> Tags
|
||||||
|
{
|
||||||
|
get; set;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
[Serializable]
|
||||||
|
[XmlInclude(typeof(LinkInfoItem))]
|
||||||
|
public class LinkInfoItem
|
||||||
|
{
|
||||||
|
public LinkInfoItem()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public LinkInfoItem(LinkInfo linkinfo)
|
||||||
|
{
|
||||||
|
Link = linkinfo.Link;
|
||||||
|
Text = linkinfo.Text;
|
||||||
|
}
|
||||||
|
|
||||||
|
[XmlAttribute]
|
||||||
|
public string Link
|
||||||
|
{
|
||||||
|
get;set;
|
||||||
|
}
|
||||||
|
|
||||||
|
[XmlAttribute]
|
||||||
|
public string Text
|
||||||
|
{
|
||||||
|
get; set;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
[Serializable]
|
||||||
|
[XmlInclude(typeof(ImageInfoItem))]
|
||||||
|
public class ImageInfoItem
|
||||||
|
{
|
||||||
|
public ImageInfoItem()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public ImageInfoItem(ImageInfo imageInfo)
|
||||||
|
{
|
||||||
|
Url = imageInfo.Url;
|
||||||
|
Text = imageInfo.Text;
|
||||||
|
}
|
||||||
|
|
||||||
|
public string Url
|
||||||
|
{
|
||||||
|
get; set;
|
||||||
|
}
|
||||||
|
|
||||||
|
public string Text
|
||||||
|
{
|
||||||
|
get; set;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,7 @@
|
|||||||
using System.Collections.Generic;
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
using System.Windows;
|
using System.Windows;
|
||||||
|
using System.Xml.Serialization;
|
||||||
using AIStudio.Wpf.DiagramDesigner;
|
using AIStudio.Wpf.DiagramDesigner;
|
||||||
using AIStudio.Wpf.DiagramModels;
|
using AIStudio.Wpf.DiagramModels;
|
||||||
using AIStudio.Wpf.DiagramModels.ViewModels;
|
using AIStudio.Wpf.DiagramModels.ViewModels;
|
||||||
@@ -27,17 +29,108 @@ namespace AIStudio.Wpf.Flowchart.Models
|
|||||||
get; set;
|
get; set;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[XmlElement]
|
||||||
|
public LinkInfoModel LinkInfoModel
|
||||||
|
{
|
||||||
|
get; set;
|
||||||
|
}
|
||||||
|
|
||||||
|
[XmlElement]
|
||||||
|
public ImageInfoModel ImageInfoModel
|
||||||
|
{
|
||||||
|
get; set;
|
||||||
|
}
|
||||||
|
|
||||||
|
public string Remark
|
||||||
|
{
|
||||||
|
get; set;
|
||||||
|
}
|
||||||
|
|
||||||
|
public double? Priority
|
||||||
|
{
|
||||||
|
get; set;
|
||||||
|
}
|
||||||
|
|
||||||
|
public double? Rate
|
||||||
|
{
|
||||||
|
get; set;
|
||||||
|
}
|
||||||
|
|
||||||
|
[XmlArray]
|
||||||
|
public List<string> Tags
|
||||||
|
{
|
||||||
|
get; set;
|
||||||
|
}
|
||||||
|
|
||||||
public override DiagramItemViewModel ToNodel(IDiagramViewModel diagramViewModel)
|
public override DiagramItemViewModel ToNodel(IDiagramViewModel diagramViewModel)
|
||||||
{
|
{
|
||||||
MindNode mindNode = new MindNode(diagramViewModel);
|
MindNode mindNode = new MindNode(diagramViewModel);
|
||||||
|
|
||||||
mindNode.Spacing = Spacing;
|
mindNode.Spacing = Spacing;
|
||||||
mindNode.Offset = Offset;
|
mindNode.Offset = Offset;
|
||||||
mindNode.IsExpanded = IsExpanded;
|
mindNode.IsExpanded = IsExpanded;
|
||||||
|
mindNode.LinkInfo = new LinkInfo(){Link = LinkInfoModel?.Link, Text= LinkInfoModel?.Text};
|
||||||
|
mindNode.ImageInfo = new ImageInfo() { Url= ImageInfoModel?.Url, Text= ImageInfoModel?.Text };
|
||||||
|
mindNode.Remark = Remark;
|
||||||
|
mindNode.Priority = Priority;
|
||||||
|
mindNode.Rate = Rate;
|
||||||
|
if (Tags != null)
|
||||||
|
{
|
||||||
|
mindNode.Tags = new System.Collections.ObjectModel.ObservableCollection<string>(Tags);
|
||||||
|
}
|
||||||
|
|
||||||
mindNode.InitLayout(false);
|
mindNode.InitLayout(false);
|
||||||
return mindNode;
|
return mindNode;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public class LinkInfoModel
|
||||||
|
{
|
||||||
|
public LinkInfoModel()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public LinkInfoModel(LinkInfo linkinfo)
|
||||||
|
{
|
||||||
|
Link = linkinfo.Link;
|
||||||
|
Text = linkinfo.Text;
|
||||||
|
}
|
||||||
|
|
||||||
|
public string Link
|
||||||
|
{
|
||||||
|
get; set;
|
||||||
|
}
|
||||||
|
|
||||||
|
public string Text
|
||||||
|
{
|
||||||
|
get; set;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public class ImageInfoModel
|
||||||
|
{
|
||||||
|
public ImageInfoModel()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public ImageInfoModel(ImageInfo imageInfo)
|
||||||
|
{
|
||||||
|
Url = imageInfo.Url;
|
||||||
|
Text = imageInfo.Text;
|
||||||
|
}
|
||||||
|
|
||||||
|
public string Url
|
||||||
|
{
|
||||||
|
get; set;
|
||||||
|
}
|
||||||
|
|
||||||
|
public string Text
|
||||||
|
{
|
||||||
|
get; set;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -78,7 +78,6 @@ namespace AIStudio.Wpf.Mind.ViewModels
|
|||||||
IsInnerConnector = true;
|
IsInnerConnector = true;
|
||||||
MindLayout.Appearance(this, MindThemeModel, initAppearance);
|
MindLayout.Appearance(this, MindThemeModel, initAppearance);
|
||||||
|
|
||||||
var xx = GlobalType.AllTypes;
|
|
||||||
this.PropertyChanged -= this.Item_PropertyChanged;
|
this.PropertyChanged -= this.Item_PropertyChanged;
|
||||||
this.PropertyChanged += this.Item_PropertyChanged;
|
this.PropertyChanged += this.Item_PropertyChanged;
|
||||||
}
|
}
|
||||||
@@ -97,6 +96,15 @@ namespace AIStudio.Wpf.Mind.ViewModels
|
|||||||
Spacing = designer.Spacing;
|
Spacing = designer.Spacing;
|
||||||
Offset = designer.Offset;
|
Offset = designer.Offset;
|
||||||
IsExpanded = designer.IsExpanded;
|
IsExpanded = designer.IsExpanded;
|
||||||
|
LinkInfo = new LinkInfo() { Link = designer.LinkInfoItem?.Link, Text = designer.LinkInfoItem?.Text };
|
||||||
|
ImageInfo = new ImageInfo() { Url = designer.ImageInfoItem?.Url, Text = designer.ImageInfoItem?.Text };
|
||||||
|
Remark = designer.Remark;
|
||||||
|
Priority = designer.Priority;
|
||||||
|
Rate = designer.Rate;
|
||||||
|
if (designer.Tags != null)
|
||||||
|
{
|
||||||
|
Tags = new ObservableCollection<string>(designer.Tags);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -107,6 +115,15 @@ namespace AIStudio.Wpf.Mind.ViewModels
|
|||||||
mindNodeModel.Spacing = Spacing;
|
mindNodeModel.Spacing = Spacing;
|
||||||
mindNodeModel.Offset = Offset;
|
mindNodeModel.Offset = Offset;
|
||||||
mindNodeModel.IsExpanded = IsExpanded;
|
mindNodeModel.IsExpanded = IsExpanded;
|
||||||
|
mindNodeModel.LinkInfoModel = new LinkInfoModel(LinkInfo);
|
||||||
|
mindNodeModel.ImageInfoModel = new ImageInfoModel(ImageInfo);
|
||||||
|
mindNodeModel.Remark = Remark;
|
||||||
|
mindNodeModel.Priority = Priority;
|
||||||
|
mindNodeModel.Rate = Rate;
|
||||||
|
if (Tags != null)
|
||||||
|
{
|
||||||
|
mindNodeModel.Tags = new List<string>(Tags);
|
||||||
|
}
|
||||||
return mindNodeModel;
|
return mindNodeModel;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user