mirror of
https://gitee.com/akwkevin/aistudio.-wpf.-diagram
synced 2026-03-03 00:00:57 +08:00
block
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -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,
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user