Files
aistudio-wpf-diagram/Extensions/AIStudio.Wpf.Mind/Models/MindNodeModel.cs

158 lines
3.3 KiB
C#
Raw Normal View History

2023-03-21 23:08:12 +08:00
using System;
using System.Collections.Generic;
2023-03-28 22:09:24 +08:00
using System.ComponentModel.Design;
2023-03-08 23:02:50 +08:00
using System.Windows;
2023-03-21 23:08:12 +08:00
using System.Xml.Serialization;
2023-03-05 23:22:34 +08:00
using AIStudio.Wpf.DiagramDesigner;
2023-04-16 20:11:40 +08:00
using AIStudio.Wpf.DiagramDesigner.Serializable;
using AIStudio.Wpf.DiagramDesigner.Serializable.ViewModels;
2023-03-01 19:28:06 +08:00
using AIStudio.Wpf.Mind;
using AIStudio.Wpf.Mind.ViewModels;
2023-04-02 12:01:46 +08:00
namespace AIStudio.Wpf.Mind.Models
2023-03-01 19:28:06 +08:00
{
public class MindNodeModel : DiagramNode
{
public MindType MindType
{
get; set;
}
public MindTheme MindTheme
{
get; set;
}
2023-03-01 19:28:06 +08:00
public Size Spacing
{
get; set;
}
public Point Offset
{
get; set;
}
public bool IsExpanded
{
get; set;
}
2023-03-21 23:08:12 +08:00
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;
}
2023-03-05 23:22:34 +08:00
public override DiagramItemViewModel ToNodel(IDiagramViewModel diagramViewModel)
2023-03-01 19:28:06 +08:00
{
2023-03-05 23:22:34 +08:00
MindNode mindNode = new MindNode(diagramViewModel);
mindNode.MindType = MindType;
mindNode.MindTheme = MindTheme;
2023-03-01 19:28:06 +08:00
mindNode.Spacing = Spacing;
mindNode.Offset = Offset;
2023-03-21 23:08:12 +08:00
mindNode.IsExpanded = IsExpanded;
2023-03-28 22:09:24 +08:00
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);
}
2023-03-21 23:08:12 +08:00
mindNode.Remark = Remark;
mindNode.Priority = Priority;
mindNode.Rate = Rate;
if (Tags != null)
{
mindNode.Tags = new System.Collections.ObjectModel.ObservableCollection<string>(Tags);
}
2023-03-10 12:09:13 +08:00
mindNode.InitLayout(false);
2023-03-01 19:28:06 +08:00
return mindNode;
}
}
2023-03-21 23:08:12 +08:00
public class LinkInfoModel
{
public LinkInfoModel()
{
}
public LinkInfoModel(LinkInfo linkinfo)
{
2023-03-28 22:09:24 +08:00
Url = linkinfo?.Url;
Text = linkinfo?.Text;
2023-03-21 23:08:12 +08:00
}
2023-03-26 23:23:34 +08:00
public string Url
2023-03-21 23:08:12 +08:00
{
get; set;
}
public string Text
{
get; set;
}
}
public class ImageInfoModel
{
public ImageInfoModel()
{
}
public ImageInfoModel(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
}