mirror of
https://gitee.com/langsisi_admin/serein-flow
synced 2026-03-03 00:00:49 +08:00
优化了Workbench上的操作。
This commit is contained in:
@@ -22,11 +22,13 @@ namespace Serein.Workbench.ViewModels
|
||||
public BaseNodesViewModel BaseNodesViewModel => App.GetService<BaseNodesViewModel>() ?? throw new NotImplementedException();
|
||||
public FlowLibrarysViewModel FlowLibrarysViewModel => App.GetService<FlowLibrarysViewModel>() ?? throw new NotImplementedException();
|
||||
public FlowEditViewModel FlowEditViewModel => App.GetService<FlowEditViewModel>() ?? throw new NotImplementedException();
|
||||
public ViewNodeInfoViewModel NodeInfoViewModel => App.GetService<ViewNodeInfoViewModel>() ?? throw new NotImplementedException();
|
||||
public ViewNodeMethodInfoViewModel ViewNodeMethodInfoViewModel => App.GetService<ViewNodeMethodInfoViewModel>() ?? throw new NotImplementedException();
|
||||
|
||||
|
||||
|
||||
public FlowCanvasViewModel FlowCanvasViewModel => App.GetService<FlowCanvasViewModel>() ?? throw new NotImplementedException();
|
||||
public CanvasInfoViewModel CanvasNodeTreeViewModel => App.GetService<CanvasInfoViewModel>() ?? throw new NotImplementedException();
|
||||
public ViewCanvasInfoViewModel CanvasNodeTreeViewModel => App.GetService<ViewCanvasInfoViewModel>() ?? throw new NotImplementedException();
|
||||
|
||||
public IServiceProvider ServiceProvider { get; }
|
||||
}
|
||||
|
||||
@@ -10,6 +10,7 @@ namespace Serein.Workbench.ViewModels
|
||||
{
|
||||
private readonly IFlowEnvironment environment;
|
||||
private readonly FlowNodeService flowNodeService;
|
||||
private readonly FlowProjectService flowProjectService;
|
||||
|
||||
/// <summary>
|
||||
/// 保存项目
|
||||
@@ -61,10 +62,13 @@ namespace Serein.Workbench.ViewModels
|
||||
|
||||
|
||||
|
||||
public MainMenuBarViewModel(IFlowEnvironment environment, FlowNodeService flowNodeService)
|
||||
public MainMenuBarViewModel(IFlowEnvironment environment,
|
||||
FlowNodeService flowNodeService,
|
||||
FlowProjectService flowProjectService)
|
||||
{
|
||||
this.environment = environment;
|
||||
this.flowNodeService = flowNodeService;
|
||||
this.flowProjectService = flowProjectService;
|
||||
SaveProjectCommand = new RelayCommand(SaveProject); // 保存项目
|
||||
LoadLocalProjectCommand = new RelayCommand(LoadLocalProject); // 加载本地项目
|
||||
LoadRemoteProjectCommand = new RelayCommand(LoadRemoteProject); // 加载远程项目
|
||||
@@ -78,12 +82,16 @@ namespace Serein.Workbench.ViewModels
|
||||
|
||||
OpenEnvOutWindowCommand = new RelayCommand(OpenEnvOutWindow); // 打开运行输出窗口
|
||||
OpenDynamicCompilerCommand = new RelayCommand(OpenDynamicCompiler); // 打开动态编译仓库窗口
|
||||
this.flowProjectService = flowProjectService;
|
||||
}
|
||||
|
||||
private void SaveProject() => environment.SaveProject(); // 保存项目
|
||||
private void LoadLocalProject() {
|
||||
//environment.LoadProject(); // 加载项目
|
||||
|
||||
flowProjectService.SelectProjectFile(); //选择项目
|
||||
}
|
||||
|
||||
|
||||
private void LoadRemoteProject()
|
||||
{
|
||||
}
|
||||
@@ -91,7 +99,7 @@ namespace Serein.Workbench.ViewModels
|
||||
|
||||
private void RemoteFlowCanvas() => flowNodeService.RemoveFlowCanvas();
|
||||
|
||||
private void StartFlow() => environment.StartFlowAsync([.. flowNodeService.FlowCanvass.Select(c => c.Guid)]);
|
||||
private void StartUIFlow() => environment.StartFlowAsync([.. flowNodeService.FlowCanvass.Select(c => c.Guid)]);
|
||||
private void StartCurrentCanvasFlow() => environment.StartFlowAsync([flowNodeService.CurrentSelectCanvas.Guid]);
|
||||
private void StopCurrentCanvasFlow() { }
|
||||
private void OpenDynamicCompiler() { }
|
||||
|
||||
@@ -10,7 +10,7 @@ using System.Threading.Tasks;
|
||||
|
||||
namespace Serein.Workbench.ViewModels
|
||||
{
|
||||
internal partial class CanvasInfoViewModel : ObservableObject
|
||||
internal partial class ViewCanvasInfoViewModel : ObservableObject
|
||||
{
|
||||
private readonly FlowNodeService flowNodeService;
|
||||
|
||||
@@ -20,7 +20,7 @@ namespace Serein.Workbench.ViewModels
|
||||
[ObservableProperty]
|
||||
private FlowCanvasDetails _model;
|
||||
|
||||
public CanvasInfoViewModel(FlowNodeService flowNodeService)
|
||||
public ViewCanvasInfoViewModel(FlowNodeService flowNodeService)
|
||||
{
|
||||
this.flowNodeService = flowNodeService;
|
||||
this.flowNodeService.OnViewCanvasChanged += OnViewCanvasChanged;
|
||||
@@ -34,5 +34,8 @@ namespace Serein.Workbench.ViewModels
|
||||
{
|
||||
Model = flowCanvas.ViewModel.Model;
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
46
Workbench/ViewModels/ViewNodeInfoViewModel.cs
Normal file
46
Workbench/ViewModels/ViewNodeInfoViewModel.cs
Normal file
@@ -0,0 +1,46 @@
|
||||
using CommunityToolkit.Mvvm.ComponentModel;
|
||||
using Serein.Library;
|
||||
using Serein.Workbench.Node.View;
|
||||
using Serein.Workbench.Services;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Serein.Workbench.ViewModels
|
||||
{
|
||||
internal partial class ViewNodeInfoViewModel : ObservableObject
|
||||
{
|
||||
private readonly FlowNodeService flowNodeService;
|
||||
|
||||
/// <summary>
|
||||
/// 当前预览的节点
|
||||
/// </summary>
|
||||
[ObservableProperty]
|
||||
private NodeModelBase viewNodeModel;
|
||||
|
||||
public ViewNodeInfoViewModel(FlowNodeService flowNodeService)
|
||||
{
|
||||
this.flowNodeService = flowNodeService;
|
||||
InitEvent();
|
||||
}
|
||||
|
||||
private void InitEvent()
|
||||
{
|
||||
flowNodeService.OnViewNodeControlChanged += OnViewNodeControlChanged;
|
||||
}
|
||||
private void OnViewNodeControlChanged(NodeControlBase viewNodeControl)
|
||||
{
|
||||
if(viewNodeControl is null)
|
||||
{
|
||||
ViewNodeModel = null;
|
||||
}
|
||||
else
|
||||
{
|
||||
ViewNodeModel = viewNodeControl.ViewModel.NodeModel;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
40
Workbench/ViewModels/ViewNodeMethodInfoViewModel.cs
Normal file
40
Workbench/ViewModels/ViewNodeMethodInfoViewModel.cs
Normal file
@@ -0,0 +1,40 @@
|
||||
using CommunityToolkit.Mvvm.ComponentModel;
|
||||
using Serein.Library;
|
||||
using Serein.Workbench.Services;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Reflection;
|
||||
using System.Reflection.Metadata;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Serein.Workbench.ViewModels
|
||||
{
|
||||
internal partial class ViewNodeMethodInfoViewModel : ObservableObject
|
||||
{
|
||||
private readonly FlowNodeService flowNodeService;
|
||||
|
||||
/// <summary>
|
||||
/// 当前预览的节点
|
||||
/// </summary>
|
||||
[ObservableProperty]
|
||||
private MethodDetailsInfo mdInfo;
|
||||
|
||||
public ViewNodeMethodInfoViewModel(FlowNodeService flowNodeService)
|
||||
{
|
||||
this.flowNodeService = flowNodeService;
|
||||
|
||||
InitEvent();
|
||||
}
|
||||
private void InitEvent()
|
||||
{
|
||||
flowNodeService.OnViewMethodDetailsInfoChanged += OnViewMethodDetailsInfoChanged;
|
||||
}
|
||||
private void OnViewMethodDetailsInfoChanged(MethodDetailsInfo methodDetailsInfo)
|
||||
{
|
||||
MdInfo = methodDetailsInfo;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user