mirror of
https://gitee.com/akwkevin/aistudio.-wpf.-diagram
synced 2026-04-04 08:06:36 +08:00
项目结构调整
This commit is contained in:
183
Extensions/AIStudio.Wpf.Mind/Models/MindNodeDesignerItem.cs
Normal file
183
Extensions/AIStudio.Wpf.Mind/Models/MindNodeDesignerItem.cs
Normal file
@@ -0,0 +1,183 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Windows;
|
||||
using System.Xml.Serialization;
|
||||
using AIStudio.Wpf.DiagramDesigner;
|
||||
using AIStudio.Wpf.Mind.ViewModels;
|
||||
using Newtonsoft.Json;
|
||||
|
||||
namespace AIStudio.Wpf.Mind.Models
|
||||
{
|
||||
[Serializable]
|
||||
[XmlInclude(typeof(MindNodeDesignerItem))]
|
||||
public class MindNodeDesignerItem : DesignerItemBase
|
||||
{
|
||||
public MindNodeDesignerItem()
|
||||
{
|
||||
|
||||
}
|
||||
public MindNodeDesignerItem(MindNode item) : base(item)
|
||||
{
|
||||
MindType = item.MindType;
|
||||
MindTheme = item.MindTheme;
|
||||
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?.ToString();
|
||||
Rate=item.Rate.ToString();
|
||||
if (item.Tags != null)
|
||||
{
|
||||
Tags = new List<string>(item.Tags);
|
||||
}
|
||||
}
|
||||
|
||||
[XmlAttribute]
|
||||
public MindType MindType
|
||||
{
|
||||
get; set;
|
||||
}
|
||||
|
||||
[XmlAttribute]
|
||||
public MindTheme MindTheme
|
||||
{
|
||||
get; set;
|
||||
}
|
||||
|
||||
[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;
|
||||
}
|
||||
|
||||
[XmlElement]
|
||||
public LinkInfoItem LinkInfoItem
|
||||
{
|
||||
get;set;
|
||||
}
|
||||
|
||||
[XmlElement]
|
||||
public ImageInfoItem ImageInfoItem
|
||||
{
|
||||
get; set;
|
||||
}
|
||||
[XmlAttribute]
|
||||
public string Remark
|
||||
{
|
||||
get; set;
|
||||
}
|
||||
[XmlAttribute]
|
||||
public string Priority
|
||||
{
|
||||
get; set;
|
||||
}
|
||||
[XmlAttribute]
|
||||
public string Rate
|
||||
{
|
||||
get; set;
|
||||
}
|
||||
|
||||
[XmlArray]
|
||||
public List<string> Tags
|
||||
{
|
||||
get; set;
|
||||
}
|
||||
}
|
||||
|
||||
[Serializable]
|
||||
[XmlInclude(typeof(LinkInfoItem))]
|
||||
public class LinkInfoItem
|
||||
{
|
||||
public LinkInfoItem()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public LinkInfoItem(LinkInfo linkinfo)
|
||||
{
|
||||
Url = linkinfo?.Url;
|
||||
Text = linkinfo?.Text;
|
||||
}
|
||||
|
||||
[XmlAttribute]
|
||||
public string Url
|
||||
{
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
157
Extensions/AIStudio.Wpf.Mind/Models/MindNodeModel.cs
Normal file
157
Extensions/AIStudio.Wpf.Mind/Models/MindNodeModel.cs
Normal file
@@ -0,0 +1,157 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel.Design;
|
||||
using System.Windows;
|
||||
using System.Xml.Serialization;
|
||||
using AIStudio.Wpf.DiagramDesigner;
|
||||
using AIStudio.Wpf.DiagramDesigner.Serializable;
|
||||
using AIStudio.Wpf.DiagramDesigner.Serializable.ViewModels;
|
||||
using AIStudio.Wpf.Mind;
|
||||
using AIStudio.Wpf.Mind.ViewModels;
|
||||
|
||||
namespace AIStudio.Wpf.Mind.Models
|
||||
{
|
||||
|
||||
public class MindNodeModel : DiagramNode
|
||||
{
|
||||
public MindType MindType
|
||||
{
|
||||
get; set;
|
||||
}
|
||||
|
||||
public MindTheme MindTheme
|
||||
{
|
||||
get; set;
|
||||
}
|
||||
|
||||
public Size Spacing
|
||||
{
|
||||
get; set;
|
||||
}
|
||||
|
||||
|
||||
public Point Offset
|
||||
{
|
||||
get; set;
|
||||
}
|
||||
|
||||
public bool IsExpanded
|
||||
{
|
||||
get; set;
|
||||
}
|
||||
|
||||
public LinkInfoModel LinkInfoModel
|
||||
{
|
||||
get; set;
|
||||
}
|
||||
|
||||
public ImageInfoModel ImageInfoModel
|
||||
{
|
||||
get; set;
|
||||
}
|
||||
|
||||
public string Remark
|
||||
{
|
||||
get; set;
|
||||
}
|
||||
|
||||
public double? Priority
|
||||
{
|
||||
get; set;
|
||||
}
|
||||
|
||||
public double? Rate
|
||||
{
|
||||
get; set;
|
||||
}
|
||||
|
||||
public List<string> Tags
|
||||
{
|
||||
get; set;
|
||||
}
|
||||
|
||||
public override DiagramItemViewModel ToNodel(IDiagramViewModel diagramViewModel)
|
||||
{
|
||||
MindNode mindNode = new MindNode(diagramViewModel);
|
||||
mindNode.MindType = MindType;
|
||||
mindNode.MindTheme = MindTheme;
|
||||
mindNode.Spacing = Spacing;
|
||||
mindNode.Offset = Offset;
|
||||
mindNode.IsExpanded = IsExpanded;
|
||||
if (string.IsNullOrEmpty(LinkInfoModel?.Url) && string.IsNullOrEmpty(LinkInfoModel?.Text))
|
||||
{
|
||||
mindNode.LinkInfo = null;
|
||||
}
|
||||
else
|
||||
{
|
||||
mindNode.LinkInfo = new LinkInfo(LinkInfoModel?.Url, LinkInfoModel?.Text);
|
||||
}
|
||||
if (string.IsNullOrEmpty(ImageInfoModel?.Url) && string.IsNullOrEmpty(ImageInfoModel?.Text))
|
||||
{
|
||||
mindNode.ImageInfo = null;
|
||||
}
|
||||
else
|
||||
{
|
||||
mindNode.ImageInfo = new ImageInfo(ImageInfoModel?.Url, 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)
|
||||
{
|
||||
Url = linkinfo?.Url;
|
||||
Text = linkinfo?.Text;
|
||||
}
|
||||
|
||||
public string Url
|
||||
{
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
41
Extensions/AIStudio.Wpf.Mind/Models/MindTheme.cs
Normal file
41
Extensions/AIStudio.Wpf.Mind/Models/MindTheme.cs
Normal file
@@ -0,0 +1,41 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace AIStudio.Wpf.Mind.Models
|
||||
{
|
||||
public enum MindTheme
|
||||
{
|
||||
[Description("天空蓝")]
|
||||
SkyBlue,
|
||||
[Description("紧凑蓝")]
|
||||
SkyBlueMini,
|
||||
[Description("文艺绿")]
|
||||
LiteratureGreen,
|
||||
[Description("紧凑绿")]
|
||||
LiteratureGreenMini,
|
||||
[Description("脑残粉")]
|
||||
BrainDeadPink,
|
||||
[Description("紧凑粉")]
|
||||
BrainDeadPinkMini,
|
||||
[Description("浪漫紫")]
|
||||
RomanticPurple,
|
||||
[Description("紧凑紫")]
|
||||
RomanticPurpleMini,
|
||||
[Description("清新红")]
|
||||
FreshRed,
|
||||
[Description("紧凑红")]
|
||||
FreshRedMini,
|
||||
[Description("泥土黄")]
|
||||
EarthyYellow,
|
||||
[Description("紧凑黄")]
|
||||
EarthyYellowMini,
|
||||
[Description("冷光黄")]
|
||||
CoolLightYellow,
|
||||
[Description("紧凑黄")]
|
||||
CoolLightYellowMini,
|
||||
}
|
||||
}
|
||||
23
Extensions/AIStudio.Wpf.Mind/Models/MindType.cs
Normal file
23
Extensions/AIStudio.Wpf.Mind/Models/MindType.cs
Normal file
@@ -0,0 +1,23 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Text;
|
||||
|
||||
namespace AIStudio.Wpf.Mind.Models
|
||||
{
|
||||
public enum MindType
|
||||
{
|
||||
[Description("思维导图")]
|
||||
Mind,
|
||||
[Description("目录组织图")]
|
||||
Directory,
|
||||
[Description("鱼骨头图")]
|
||||
FishBone,
|
||||
[Description("逻辑结构图")]
|
||||
Logical,
|
||||
[Description("组织结构图")]
|
||||
Organizational,
|
||||
[Description("天盘图(暂未完成)")]
|
||||
Celestial
|
||||
}
|
||||
}
|
||||
22
Extensions/AIStudio.Wpf.Mind/Models/TreeNode.cs
Normal file
22
Extensions/AIStudio.Wpf.Mind/Models/TreeNode.cs
Normal file
@@ -0,0 +1,22 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.ObjectModel;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace AIStudio.Wpf.Mind.Models
|
||||
{
|
||||
public class TreeNode
|
||||
{
|
||||
public string Text
|
||||
{
|
||||
get; set;
|
||||
}
|
||||
|
||||
public List<TreeNode> Children
|
||||
{
|
||||
get; set;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user