This commit is contained in:
kwai
2023-08-18 18:56:37 +08:00
parent a696312936
commit e76a50f6e5
2 changed files with 13 additions and 85 deletions

View File

@@ -1,48 +0,0 @@
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Threading;
using System.Windows;
using System.Windows.Controls.Primitives;
using System.Windows.Input;
using System.Windows.Media;
using AIStudio.Wpf.DiagramDesigner.Geometrys;
namespace AIStudio.Wpf.DiagramDesigner.Controls
{
public class BlockDragThumb : DragThumb
{
BlockDesignerItemViewModel DesignerItem
{
get
{
return DataContext as BlockDesignerItemViewModel;
}
}
private Point? firstPoint;
protected override void OnPreviewMouseLeftButtonDown(MouseButtonEventArgs e)
{
base.OnPreviewMouseLeftButtonDown(e);
if (e.LeftButton == MouseButtonState.Pressed && firstPoint == null)
{
firstPoint = e.GetPosition(this);
DesignerItem.BeforeExecution();
}
}
protected override void OnPreviewMouseLeftButtonUp(MouseButtonEventArgs e)
{
base.OnPreviewMouseLeftButtonDown(e);
if (firstPoint == e.GetPosition(this))
{
DesignerItem.EditCommand?.Execute(e.GetPosition(this));
firstPoint = null;
}
}
}
}

View File

@@ -467,45 +467,10 @@ namespace AIStudio.Wpf.DiagramDesigner
items.ForEach(p => p.ExecutStatus = 0);
}
public async Task Execute()
{
await StopExecution(0);
await BeforeExecution();
if (await Executing())
{
await AfterExecution();
}
else
{
ExecutStatus = 0;
}
}
public virtual Task BeforeExecution()
{
ExecutStatus = 1;
return Task.CompletedTask;
}
public virtual Task<bool> Executing()
{
return Task.FromResult(true);
}
public virtual Task StopExecution(int status)
public virtual Task Execute()
{
return Task.CompletedTask;
}
public virtual async Task AfterExecution()
{
if (ExecutStatus == 1)
{
ExecutStatus = 0;
if (LinkNode.Next != null)
await LinkNode.Next.Value.Execute();
}
}
}
public virtual object GetResult()
{
@@ -637,4 +602,15 @@ namespace AIStudio.Wpf.DiagramDesigner
}
}
#endregion
[FlagsAttribute]
public enum ExecutStatus
{
Stop,
Run,
PauseCommand,
ContinueCommand,
StopCommand,
}
}