using CommunityToolkit.Mvvm.ComponentModel;
using CommunityToolkit.Mvvm.Input;
using Serein.Library.Api;
using System.Windows.Input;
namespace Serein.Workbench.ViewModels
{
public class MainMenuBarViewModel : ObservableObject
{
private readonly IFlowEnvironment environment;
///
/// 保存项目
///
public ICommand SaveProjectCommand { get; private set; }
///
/// 加载本地文件
///
public ICommand LoadLocalProjectCommand { get; private set; }
///
/// 加载远程项目
///
public ICommand LoadRemoteProjectCommand { get; private set; }
///
/// 增加流程图
///
public ICommand CreateFlowCanvasCommand { get; private set; }
///
/// 移除流程图
///
public ICommand RemoteFlowCanvasCommand { get; private set; }
///
/// 运行当前画布流程
///
public ICommand StartCurrentCanvasFlowCommand { get; private set; }
///
/// 停止当前画布流程
///
public ICommand StopCurrentCanvasFlowCommand { get; private set; }
///
/// 打开环境输出窗口
///
public ICommand OpenEnvOutWindowCommand { get; private set; }
///
/// 打开动态编译窗口
///
public ICommand OpenDynamicCompilerCommand { get; private set; }
public MainMenuBarViewModel(IFlowEnvironment environment)
{
this.environment = environment;
SaveProjectCommand = new RelayCommand(SaveProject); // 保存项目
LoadLocalProjectCommand = new RelayCommand(LoadLocalProject); // 加载本地项目
LoadRemoteProjectCommand = new RelayCommand(LoadRemoteProject); // 加载远程项目
CreateFlowCanvasCommand = new RelayCommand(CreateFlowCanvas); // 增加画布
RemoteFlowCanvasCommand = new RelayCommand(RemoteFlowCanvas); // 移除画布
StartCurrentCanvasFlowCommand = new RelayCommand(StartCurrentCanvasFlow); // 运行当前流程
StopCurrentCanvasFlowCommand = new RelayCommand(StopCurrentCanvasFlow); // 停止当前流程
OpenEnvOutWindowCommand = new RelayCommand(OpenEnvOutWindow); // 打开运行输出窗口
OpenDynamicCompilerCommand = new RelayCommand(OpenDynamicCompiler); // 打开动态编译仓库窗口
}
private void SaveProject() {
environment.SaveProject(); // 保存项目
}
private void LoadLocalProject() {
//environment.LoadProject(); // 加载项目
}
private void LoadRemoteProject() { }
private void CreateFlowCanvas() { }
private void RemoteFlowCanvas() { }
private void StartCurrentCanvasFlow() { }
private void StopCurrentCanvasFlow() { }
private void OpenDynamicCompiler() { }
private void OpenEnvOutWindow() { }
}
}