2023-03-21 23:08:12 +08:00
|
|
|
|
using System;
|
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
|
using System.Windows;
|
2023-03-01 19:28:06 +08:00
|
|
|
|
using System.Xml.Serialization;
|
|
|
|
|
|
using AIStudio.Wpf.DiagramDesigner;
|
|
|
|
|
|
using AIStudio.Wpf.Mind.ViewModels;
|
|
|
|
|
|
using Newtonsoft.Json;
|
|
|
|
|
|
|
|
|
|
|
|
namespace AIStudio.Wpf.Mind.Models
|
|
|
|
|
|
{
|
2023-03-21 23:08:12 +08:00
|
|
|
|
[Serializable]
|
|
|
|
|
|
[XmlInclude(typeof(MindNodeDesignerItem))]
|
2023-03-01 19:28:06 +08:00
|
|
|
|
public class MindNodeDesignerItem : DesignerItemBase
|
|
|
|
|
|
{
|
|
|
|
|
|
public MindNodeDesignerItem()
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
public MindNodeDesignerItem(MindNode item) : base(item)
|
|
|
|
|
|
{
|
2023-04-02 22:59:22 +08:00
|
|
|
|
MindType = item.MindType;
|
|
|
|
|
|
MindTheme = item.MindTheme;
|
2023-03-01 19:28:06 +08:00
|
|
|
|
Spacing = item.Spacing;
|
|
|
|
|
|
Offset = item.Offset;
|
|
|
|
|
|
IsExpanded = item.IsExpanded;
|
2023-03-21 23:08:12 +08:00
|
|
|
|
LinkInfoItem = new LinkInfoItem(item.LinkInfo);
|
|
|
|
|
|
ImageInfoItem = new ImageInfoItem(item.ImageInfo);
|
|
|
|
|
|
Remark = item.Remark;
|
2023-04-02 22:59:22 +08:00
|
|
|
|
Priority= item.Priority?.ToString();
|
|
|
|
|
|
Rate=item.Rate.ToString();
|
2023-03-21 23:08:12 +08:00
|
|
|
|
if (item.Tags != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
Tags = new List<string>(item.Tags);
|
|
|
|
|
|
}
|
2023-03-01 19:28:06 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
2023-04-02 22:59:22 +08:00
|
|
|
|
[XmlAttribute]
|
|
|
|
|
|
public MindType MindType
|
|
|
|
|
|
{
|
|
|
|
|
|
get; set;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
[XmlAttribute]
|
|
|
|
|
|
public MindTheme MindTheme
|
|
|
|
|
|
{
|
|
|
|
|
|
get; set;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2023-03-01 19:28:06 +08:00
|
|
|
|
[XmlIgnore]
|
|
|
|
|
|
public Size Spacing
|
|
|
|
|
|
{
|
|
|
|
|
|
get; set;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
[JsonIgnore]
|
|
|
|
|
|
[XmlAttribute("Spacing")]
|
|
|
|
|
|
public string XmlSpacing
|
|
|
|
|
|
{
|
|
|
|
|
|
get
|
|
|
|
|
|
{
|
|
|
|
|
|
return SerializeHelper.SerializeSize(Spacing);
|
|
|
|
|
|
}
|
|
|
|
|
|
set
|
|
|
|
|
|
{
|
|
|
|
|
|
Spacing = SerializeHelper.DeserializeSize(value);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
[XmlIgnore]
|
|
|
|
|
|
public Point Offset
|
|
|
|
|
|
{
|
|
|
|
|
|
get; set;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
[JsonIgnore]
|
|
|
|
|
|
[XmlAttribute("Offset")]
|
|
|
|
|
|
public string XmlOffset
|
|
|
|
|
|
{
|
|
|
|
|
|
get
|
|
|
|
|
|
{
|
|
|
|
|
|
return SerializeHelper.SerializePoint(Offset);
|
|
|
|
|
|
}
|
|
|
|
|
|
set
|
|
|
|
|
|
{
|
|
|
|
|
|
Offset = SerializeHelper.DeserializePoint(value);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
[XmlAttribute]
|
|
|
|
|
|
public bool IsExpanded
|
|
|
|
|
|
{
|
|
|
|
|
|
get; set;
|
|
|
|
|
|
}
|
2023-03-21 23:08:12 +08:00
|
|
|
|
|
|
|
|
|
|
[XmlElement]
|
|
|
|
|
|
public LinkInfoItem LinkInfoItem
|
|
|
|
|
|
{
|
|
|
|
|
|
get;set;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
[XmlElement]
|
|
|
|
|
|
public ImageInfoItem ImageInfoItem
|
|
|
|
|
|
{
|
|
|
|
|
|
get; set;
|
|
|
|
|
|
}
|
2023-04-02 22:59:22 +08:00
|
|
|
|
[XmlAttribute]
|
2023-03-21 23:08:12 +08:00
|
|
|
|
public string Remark
|
|
|
|
|
|
{
|
|
|
|
|
|
get; set;
|
|
|
|
|
|
}
|
2023-04-02 22:59:22 +08:00
|
|
|
|
[XmlAttribute]
|
|
|
|
|
|
public string Priority
|
2023-03-21 23:08:12 +08:00
|
|
|
|
{
|
|
|
|
|
|
get; set;
|
|
|
|
|
|
}
|
2023-04-02 22:59:22 +08:00
|
|
|
|
[XmlAttribute]
|
|
|
|
|
|
public string Rate
|
2023-03-21 23:08:12 +08:00
|
|
|
|
{
|
|
|
|
|
|
get; set;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
[XmlArray]
|
|
|
|
|
|
public List<string> Tags
|
|
|
|
|
|
{
|
|
|
|
|
|
get; set;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
[Serializable]
|
|
|
|
|
|
[XmlInclude(typeof(LinkInfoItem))]
|
|
|
|
|
|
public class LinkInfoItem
|
|
|
|
|
|
{
|
|
|
|
|
|
public LinkInfoItem()
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public LinkInfoItem(LinkInfo linkinfo)
|
|
|
|
|
|
{
|
2023-03-28 22:09:24 +08:00
|
|
|
|
Url = linkinfo?.Url;
|
|
|
|
|
|
Text = linkinfo?.Text;
|
2023-03-21 23:08:12 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
[XmlAttribute]
|
2023-03-26 23:23:34 +08:00
|
|
|
|
public string Url
|
2023-03-21 23:08:12 +08:00
|
|
|
|
{
|
|
|
|
|
|
get;set;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
[XmlAttribute]
|
|
|
|
|
|
public string Text
|
|
|
|
|
|
{
|
|
|
|
|
|
get; set;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
[Serializable]
|
|
|
|
|
|
[XmlInclude(typeof(ImageInfoItem))]
|
|
|
|
|
|
public class ImageInfoItem
|
|
|
|
|
|
{
|
|
|
|
|
|
public ImageInfoItem()
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public ImageInfoItem(ImageInfo imageInfo)
|
|
|
|
|
|
{
|
2023-03-28 22:09:24 +08:00
|
|
|
|
Url = imageInfo?.Url;
|
|
|
|
|
|
Text = imageInfo?.Text;
|
2023-03-21 23:08:12 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public string Url
|
|
|
|
|
|
{
|
|
|
|
|
|
get; set;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public string Text
|
|
|
|
|
|
{
|
|
|
|
|
|
get; set;
|
|
|
|
|
|
}
|
2023-03-01 19:28:06 +08:00
|
|
|
|
}
|
|
|
|
|
|
}
|