This commit is contained in:
艾竹
2023-08-13 23:05:06 +08:00
parent 872526f575
commit a696312936
2 changed files with 18 additions and 13 deletions

View File

@@ -244,7 +244,7 @@ namespace AIStudio.Wpf.DiagramDesigner
IsSelected = selected;
}
public virtual void InsertChild(BlockDesignerItemViewModel child, BlockItemsContainerInfo container, int index)
public virtual void InsertChild(BlockDesignerItemViewModel child, BlockItemsContainerInfo container, int index = -1)
{
if (container == null)
{
@@ -285,7 +285,7 @@ namespace AIStudio.Wpf.DiagramDesigner
items.ForEach(p => {
Root.Items.Remove(p);
container.InsertChild(p, index);
container.InsertChild(p, index++);
});
}
@@ -296,7 +296,7 @@ namespace AIStudio.Wpf.DiagramDesigner
System.Windows.Application.Current?.Dispatcher.BeginInvoke(new Action(async () => {
await Task.Delay(10);
AlignNext(LinkNode?.Next);
}));
}));
}
public virtual void RemoveChild(BlockDesignerItemViewModel child, BlockItemsContainerInfo container)
@@ -317,8 +317,8 @@ namespace AIStudio.Wpf.DiagramDesigner
}));
}
private bool _isExecuting;
public bool IsExecuting
private int _isExecuting;
public int ExecutStatus
{
get
{
@@ -457,19 +457,19 @@ namespace AIStudio.Wpf.DiagramDesigner
{
var items = this.LinkNode.List.ToList();
items.ForEach(p => p.IsExecuting = true);
items.ForEach(p => p.ExecutStatus = 1);
}
public override void ExitPreviewExecuteEdit()
{
var items = this.LinkNode.List.ToList();
items.ForEach(p => p.IsExecuting = false);
items.ForEach(p => p.ExecutStatus = 0);
}
public async Task Execute()
{
await StopExecution();
await StopExecution(0);
await BeforeExecution();
if (await Executing())
{
@@ -477,13 +477,13 @@ namespace AIStudio.Wpf.DiagramDesigner
}
else
{
IsExecuting = false;
ExecutStatus = 0;
}
}
public virtual Task BeforeExecution()
{
IsExecuting = true;
ExecutStatus = 1;
return Task.CompletedTask;
}
@@ -492,16 +492,16 @@ namespace AIStudio.Wpf.DiagramDesigner
return Task.FromResult(true);
}
public virtual Task StopExecution()
public virtual Task StopExecution(int status)
{
return Task.CompletedTask;
}
public virtual async Task AfterExecution()
{
if (IsExecuting)
if (ExecutStatus == 1)
{
IsExecuting = false;
ExecutStatus = 0;
if (LinkNode.Next != null)
await LinkNode.Next.Value.Execute();
}