mirror of
https://gitee.com/akwkevin/aistudio.-wpf.-diagram
synced 2026-04-16 22:26:36 +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,46 +467,11 @@ namespace AIStudio.Wpf.DiagramDesigner
|
|||||||
items.ForEach(p => p.ExecutStatus = 0);
|
items.ForEach(p => p.ExecutStatus = 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task Execute()
|
public virtual 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)
|
|
||||||
{
|
{
|
||||||
return Task.CompletedTask;
|
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()
|
public virtual object GetResult()
|
||||||
{
|
{
|
||||||
if (FirstContainer != null)
|
if (FirstContainer != null)
|
||||||
@@ -637,4 +602,15 @@ namespace AIStudio.Wpf.DiagramDesigner
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
[FlagsAttribute]
|
||||||
|
public enum ExecutStatus
|
||||||
|
{
|
||||||
|
Stop,
|
||||||
|
Run,
|
||||||
|
PauseCommand,
|
||||||
|
ContinueCommand,
|
||||||
|
StopCommand,
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user