mind的拷贝完成

This commit is contained in:
艾竹
2023-03-25 22:10:49 +08:00
parent b36bd4b228
commit 5e5da021ab
13 changed files with 189 additions and 103 deletions

View File

@@ -4,6 +4,7 @@ using System.Linq;
using System.Windows.Input;
using System.Windows.Media;
using AIStudio.Wpf.DiagramDesigner;
using AIStudio.Wpf.DiagramDesigner.Geometrys;
using AIStudio.Wpf.Mind.Helpers;
namespace AIStudio.Wpf.Mind.ViewModels
@@ -426,7 +427,7 @@ namespace AIStudio.Wpf.Mind.ViewModels
if (items?.Count == 0)
{
var node = new MindNode(this) { Text = $"分支主题{parent.Children.Count + 1}"};
var node = new MindNode(this) { Text = $"分支主题{parent.Children.Count + 1}" };
items.Add(node);
}
@@ -463,7 +464,7 @@ namespace AIStudio.Wpf.Mind.ViewModels
else
{
node = SelectedItem as MindNode;
}
}
if (node.Parent is MindNode parent)
{
@@ -616,6 +617,7 @@ namespace AIStudio.Wpf.Mind.ViewModels
protected override bool Delete(object parameter)
{
List<MindNode> nodes = new List<MindNode>();
List<SelectableDesignerItemViewModelBase> others = new List<SelectableDesignerItemViewModelBase>();
if (parameter is MindNode node1)
{
nodes.Add(node1);
@@ -627,6 +629,8 @@ namespace AIStudio.Wpf.Mind.ViewModels
else
{
nodes.AddRange(SelectedItems.OfType<MindNode>());
others = SelectedItems.Where(p => !(p is MindNode)).ToList();
}
if (nodes.FirstOrDefault()?.IsEditing != false)
@@ -641,16 +645,14 @@ namespace AIStudio.Wpf.Mind.ViewModels
() => {
foreach (var node in nodes)
{
if (node.NodeLevel == 0)
{
DirectRemoveItemCommand.Execute(node);
}
else
{
node.ParentNode?.RemoveChild(node, true);
}
node.Remove(true);
}
RootItems.ForEach(p => p.LayoutUpdated());
if (others.Any())
{
base.Delete(others);
}
},
() => {
foreach (var node in nodes)
@@ -669,9 +671,11 @@ namespace AIStudio.Wpf.Mind.ViewModels
#region ,
protected override void FixOtherInfo(List<SelectableDesignerItemViewModelBase> items)
{
List<MindNode> parents = new List<MindNode>();
foreach (var item in items.OfType<MindNode>())
{
//item.DesiredPosition = new PointBase(item.DesiredPosition?.X ?? 0 + OffsetX, item.DesiredPosition?.Y ?? 0 + OffsetY);
var parent = Items.OfType<MindNode>().FirstOrDefault(p => p.Id == item.ParentId);
if (parent != null && !items.Contains(parent))
{
@@ -679,6 +683,7 @@ namespace AIStudio.Wpf.Mind.ViewModels
}
else if (item.ParentId == Guid.Empty)
{
item.Offset = new PointBase(OffsetX, OffsetX);
parents.Add(item);
item.InitLayout(false);
}
@@ -806,7 +811,7 @@ namespace AIStudio.Wpf.Mind.ViewModels
if (obj is string mindThemeModel)
{
MindThemeModel = MindThemeHelper.GetTheme(mindThemeModel);
if (mindThemeModel.StartsWith("CoolLightYellow"))
if (MindThemeModel?.Dark == true)
{
PageBackground = Colors.Black;
}