Files
aistudio-wpf-diagram/AIStudio.Wpf.Flowchart/ViewModels/FlowNode.cs

177 lines
4.2 KiB
C#
Raw Normal View History

2022-10-28 22:45:39 +08:00
using AIStudio.Wpf.DiagramHelper;
using AIStudio.Wpf.DiagramHelper.Services;
2021-07-29 13:55:18 +08:00
using AIStudio.Wpf.Flowchart.Models;
2021-07-23 09:42:22 +08:00
using System.Collections.Generic;
using System.ComponentModel;
2022-10-28 22:45:39 +08:00
using AIStudio.Wpf.DiagramDesigner;
2021-07-23 09:42:22 +08:00
2021-07-29 13:55:18 +08:00
namespace AIStudio.Wpf.Flowchart.ViewModels
2021-07-23 09:42:22 +08:00
{
public class FlowNode : DesignerItemViewModelBase
{
protected IUIVisualizerService visualiserService;
2021-07-23 09:42:22 +08:00
public FlowNode(NodeKinds kind) : base()
{
Kind = kind;
Text = Kind.GetDescription();
2021-07-23 09:42:22 +08:00
ItemWidth = 80;
ItemHeight = 40;
}
public FlowNode(IDiagramViewModel parent, DesignerItemBase designer) : base(parent, designer)
{
}
protected override void Init()
{
base.Init();
ShowRotate = false;
ShowText = true;
IsReadOnlyText = true;
visualiserService = ApplicationServicesProvider.Instance.Provider.VisualizerService;
2021-07-23 09:42:22 +08:00
}
protected override void LoadDesignerItemViewModel(IDiagramViewModel parent, SelectableDesignerItemBase designerbase)
{
base.LoadDesignerItemViewModel(parent, designerbase);
FlowNodeDesignerItem designer = designerbase as FlowNodeDesignerItem;
this.Color = designer.Color;
this.Kind = designer.Kind;
this.StateImage = designer.StateImage;
if (this is MiddleFlowNode middle)
{
middle.UserIds = designer.UserIds;
middle.RoleIds = designer.RoleIds;
middle.ActType = designer.ActType;
}
}
private string _color;
2021-07-30 18:26:35 +08:00
[Browsable(false)]
2021-07-23 09:42:22 +08:00
public string Color
{
get { return _color; }
set
{
SetProperty(ref _color, value);
}
2021-07-26 22:37:54 +08:00
}
2021-07-23 09:42:22 +08:00
[Browsable(false)]
public NodeKinds Kind { get; set; }
[Browsable(false)]
public string StateImage { get; set; }
2021-07-26 22:37:54 +08:00
#region 使,
2021-07-26 22:37:54 +08:00
private int _status;
public int Status
{
get { return _status; }
set
{
SetProperty(ref _status, value);
}
}
private string _remark;
public string Remark
{
get { return _remark; }
set
{
SetProperty(ref _remark, value);
}
}
public List<string> PreStepId { get; set; }
public string NextStepId { get; set; }
public Dictionary<string, string> SelectNextStep { get; set; } = new Dictionary<string, string>();
2021-07-26 22:37:54 +08:00
#endregion
2022-12-01 23:12:13 +08:00
public virtual Dictionary<string, string> PropertiesSetting
{
get
{
return new Dictionary<string, string>()
{
{ "Text","文本" },
};
}
}
2021-07-23 09:42:22 +08:00
}
public class StartFlowNode : FlowNode
{
public StartFlowNode() : base(NodeKinds.Start)
{
}
public StartFlowNode(IDiagramViewModel parent, DesignerItemBase designer) : base(parent, designer)
{
}
}
public class EndFlowNode : FlowNode
{
public EndFlowNode() : base(NodeKinds.End)
{
}
public EndFlowNode(IDiagramViewModel parent, DesignerItemBase designer) : base(parent, designer)
{
}
}
public class DecideFlowNode : FlowNode
{
public DecideFlowNode() : base(NodeKinds.Decide)
{
}
public DecideFlowNode(IDiagramViewModel parent, DesignerItemBase designer) : base(parent, designer)
{
}
}
public class COBeginFlowNode : FlowNode
{
public COBeginFlowNode() : base(NodeKinds.COBegin)
{
}
public COBeginFlowNode(IDiagramViewModel parent, DesignerItemBase designer) : base(parent, designer)
{
}
}
public class COEndFlowNode : FlowNode
{
public COEndFlowNode() : base(NodeKinds.COEnd)
{
}
public COEndFlowNode(IDiagramViewModel parent, DesignerItemBase designer) : base(parent, designer)
{
}
}
}