附加信息序列化

This commit is contained in:
艾竹
2023-03-21 23:08:12 +08:00
parent 3c8120aa15
commit 5ff4376674
3 changed files with 214 additions and 4 deletions

View File

@@ -1,4 +1,6 @@
using System.Windows;
using System;
using System.Collections.Generic;
using System.Windows;
using System.Xml.Serialization;
using AIStudio.Wpf.DiagramDesigner;
using AIStudio.Wpf.Mind.ViewModels;
@@ -6,6 +8,8 @@ using Newtonsoft.Json;
namespace AIStudio.Wpf.Mind.Models
{
[Serializable]
[XmlInclude(typeof(MindNodeDesignerItem))]
public class MindNodeDesignerItem : DesignerItemBase
{
public MindNodeDesignerItem()
@@ -17,6 +21,15 @@ namespace AIStudio.Wpf.Mind.Models
Spacing = item.Spacing;
Offset = item.Offset;
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]
@@ -65,5 +78,92 @@ namespace AIStudio.Wpf.Mind.Models
{
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;
}
}
}

View File

@@ -1,5 +1,7 @@
using System.Collections.Generic;
using System;
using System.Collections.Generic;
using System.Windows;
using System.Xml.Serialization;
using AIStudio.Wpf.DiagramDesigner;
using AIStudio.Wpf.DiagramModels;
using AIStudio.Wpf.DiagramModels.ViewModels;
@@ -27,17 +29,108 @@ namespace AIStudio.Wpf.Flowchart.Models
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)
{
MindNode mindNode = new MindNode(diagramViewModel);
mindNode.Spacing = Spacing;
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);
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;
}
}
}

View File

@@ -78,7 +78,6 @@ namespace AIStudio.Wpf.Mind.ViewModels
IsInnerConnector = true;
MindLayout.Appearance(this, MindThemeModel, initAppearance);
var xx = GlobalType.AllTypes;
this.PropertyChanged -= this.Item_PropertyChanged;
this.PropertyChanged += this.Item_PropertyChanged;
}
@@ -97,6 +96,15 @@ namespace AIStudio.Wpf.Mind.ViewModels
Spacing = designer.Spacing;
Offset = designer.Offset;
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.Offset = Offset;
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;
}