This commit is contained in:
艾竹
2023-07-22 19:11:08 +08:00
parent 8ab43ecae1
commit b6e095293c
5 changed files with 122 additions and 3 deletions

View File

@@ -0,0 +1,39 @@
using AIStudio.Wpf.DiagramDesigner;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace AIStudio.Wpf.DiagramDesigner
{
public class ConstParameter : BindableBase, IParameter
{
private object _value;
public object Value
{
get
{
return _value;
}
set
{
SetProperty(ref _value, value);
}
}
public void Add(object value)
{
if (double.TryParse(Value?.ToString() ?? "", out var value1) && double.TryParse(value?.ToString() ?? "", out var value2))
{
Value = value1 + value2;
}
else
{
Value = $"{Value}{value}";
}
}
}
}

View File

@@ -0,0 +1,18 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace AIStudio.Wpf.DiagramDesigner
{
public interface IParameter
{
object Value
{
get; set;
}
void Add(object value);
}
}

View File

@@ -0,0 +1,10 @@
using System;
using AIStudio.Wpf.DiagramDesigner;
namespace AIStudio.Wpf.DiagramDesigner
{
public class VarParameter : ConstParameter
{
}
}

View File

@@ -176,7 +176,20 @@ namespace AIStudio.Wpf.DiagramDesigner
{
SetProperty(ref _actualItemHeight, value);
}
}
}
private IParameter _parameter;
public IParameter Parameter
{
get
{
return _parameter;
}
set
{
SetProperty(ref _parameter, value);
}
}
private ObservableCollection<BlockDesignerItemViewModel> _children = new ObservableCollection<BlockDesignerItemViewModel>();
public ObservableCollection<BlockDesignerItemViewModel> Children
@@ -322,7 +335,14 @@ namespace AIStudio.Wpf.DiagramDesigner
{
if (OnlyOneChild)
{
return Children.FirstOrDefault()?.GetResult();
if (Children?.Count == 1)
{
return Children.FirstOrDefault()?.GetResult();
}
else
{
return Parameter?.Value;
}
}
else
{

View File

@@ -3,6 +3,7 @@ using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using AIStudio.Wpf.DiagramDesigner.Geometrys;
using AIStudio.Wpf.DiagramDesigner.Models;
@@ -248,6 +249,19 @@ namespace AIStudio.Wpf.DiagramDesigner
}
}
private bool _isExecuting;
public bool IsExecuting
{
get
{
return _isExecuting;
}
set
{
SetProperty(ref _isExecuting, value);
}
}
public string Flag
{
get; set;
@@ -409,11 +423,29 @@ namespace AIStudio.Wpf.DiagramDesigner
}
#region
public virtual void Execute()
public void Execute()
{
BeforeExecute();
Executing();
AfterExecute();
}
public virtual void BeforeExecute()
{
IsExecuting = true;
}
public virtual void Executing()
{
}
public virtual void AfterExecute()
{
IsExecuting = false;
Next?.Execute();
}
public virtual object GetResult()
{
if (FirstContainer != null)