Files
BeWoPlaner/BeWo/ViewModel/View/Administration/AiPromptbausteinComplexTreeViewModel.cs
2025-12-30 11:30:01 +01:00

142 lines
3.4 KiB
C#

using BeWo.ServiceProxy;
using BeWo.Services;
using BeWo.ViewModel.ListViewModel;
using BS.Shared;
using BS.Shared.DataContracts;
using BS.Shared.DataContracts.Feature.AI;
using BS.Shared.Extensions.CustomInterfaces;
using DevExpress.Xpf.Layout.Core;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Input;
using DelegateCommand = DevExpress.Mvvm.DelegateCommand;
namespace BeWo.ViewModel.View.Administration
{
public class AiPromptbausteinComplexTreeViewModel : WindowViewModel
{
private AiPromptbausteinFolderVM _SelectedFolder;
private IBeWoWindowService WindowService { get; set; }
private AiActionType AiActionType { get; set; }
public AiPromptbausteinFolderListVM Folders { get; set; }
public AiPromptbausteinPromptVM SelectedPrompt { get; set; }
public AiPromptbausteinFolderVM CopiedFolder { get; set; }
public ICommand OpenAddFolderDialogCommand { get; private set; }
public ICommand OpenEditFolderDialogCommand { get; private set; }
public ICommand CopyFolderCommand { get; private set; }
public ICommand PasteFolderCommand { get; private set; }
public ICommand DeleteFolderCommand { get; private set; }
public ICommand OpenAddPromptDialogCommand { get; private set; }
public ICommand OpenEditPromptDialogCommand { get; private set; }
public ICommand CopyPromptCommand { get; private set; }
public ICommand PastePromptCommand { get; private set; }
public ICommand DeletePromptCommand { get; private set; }
public AiPromptbausteinFolderVM SelectedFolder
{
get => _SelectedFolder;
set => SetProperty(ref _SelectedFolder, value, nameof(SelectedFolder));
}
public AiPromptbausteinComplexTreeViewModel()
{
if (BeWoApp.IsInDesignMode)
{
AiActionType = AiActionType.ServiceRecordConversation;
ReloadVMList();
return;
}
OpenAddFolderDialogCommand = new DelegateCommand(OpenAddFolderDialog, CanOpenAddFolderDialog, false);
OpenEditFolderDialogCommand = new DelegateCommand(OpenEditFolderDialog, CanOpenEditFolderDialog, false);
CopyFolderCommand = new DelegateCommand(CopyFolder, CanCopyFolder, false);
PasteFolderCommand = new DelegateCommand(PasteFolder, CanPasteFolder, false);
DeleteFolderCommand = new DelegateCommand(DeleteFolder, CanDeleteFolder, false);
}
public AiPromptbausteinComplexTreeViewModel(IBeWoWindowService windowService, AiActionType aiActionType) : this()
{
WindowService = windowService;
AiActionType = aiActionType;
}
public override bool IsDirty
{
get
{
return false;
}
}
public void SaveVMList()
{
}
internal void ReloadVMList()
{
var folders_dc = PredefinedAiPromptbausteinFolders.CreateSubTree(AiActionType);
Folders = new AiPromptbausteinFolderListVM(folders_dc);
FirePropertyChanged(nameof(Folders));
}
public void UpdateVMList(AiPromptbausteinTreeListVM new_list)
{
}
void OpenAddFolderDialog()
{
var vm = new AiPromptbausteinFolderViewModel();
WindowService.Show(vm);
}
void OpenEditFolderDialog()
{
}
void CopyFolder()
{
}
void PasteFolder()
{
}
void DeleteFolder()
{
}
bool CanOpenAddFolderDialog()
{
return false;
}
bool CanOpenEditFolderDialog()
{
return false;
}
bool CanCopyFolder()
{
return false;
}
bool CanPasteFolder()
{
return false;
}
bool CanDeleteFolder()
{
return false;
}
}
}