mirror of
https://gitee.com/akwkevin/aistudio.-wpf.-diagram
synced 2026-04-02 15:16:37 +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 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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user