Knoten gelten nicht mehr standardhaft als IsDirty, wenn Kindknoten IsDirty ist

This commit is contained in:
2025-12-10 13:06:27 +01:00
parent 14097204e6
commit a655219996
2 changed files with 71 additions and 54 deletions

View File

@@ -22,55 +22,68 @@ namespace BeWo.ViewModel.ListViewModel
}
}
public override int AddedCount
//public override int AddedCount
//{
// get
// {
// var base_value = base.AddedCount;
// foreach (var vm in VMList)
// {
// if (vm.Children is object)
// base_value += vm.Children.AddedCount;
// }
// return base_value;
// }
//}
//public override int ChangedCount
//{
// get
// {
// var base_value = base.ChangedCount;
// foreach (var vm in VMList)
// {
// if (vm.Children is object)
// base_value += vm.Children.ChangedCount;
// }
// return base_value;
// }
//}
//public override int RemovedCount
//{
// get
// {
// var base_value = base.RemovedCount;
// foreach (var vm in VMList)
// {
// if(vm.Children is object)
// base_value += vm.Children.RemovedCount;
// }
// return base_value;
// }
//}
public bool ContainsDirtyNode()
{
get
if (IsDirty)
return true;
foreach (var vm in VMList)
{
var base_value = base.AddedCount;
foreach (var vm in VMList)
{
if (vm.Children is object)
base_value += vm.Children.AddedCount;
}
return base_value;
if (vm.Children is object && vm.Children.ContainsDirtyNode())
return true;
}
return false;
}
public override int ChangedCount
{
get
{
var base_value = base.ChangedCount;
foreach (var vm in VMList)
{
if (vm.Children is object)
base_value += vm.Children.ChangedCount;
}
return base_value;
}
}
public override int RemovedCount
{
get
{
var base_value = base.RemovedCount;
foreach (var vm in VMList)
{
if(vm.Children is object)
base_value += vm.Children.RemovedCount;
}
return base_value;
}
}
#region Designer
private void InitDesigner()
{

View File

@@ -68,14 +68,24 @@ namespace BeWo.ViewModel.View.Administration
public ICommand PastePromptbausteinCommand { get; set; }
public ICommand DeletePromptbausteinCommand { get; set; }
public override bool IsDirty => ListVM is object && ListVM.IsDirty;
public void SaveVMList ()
public override bool IsDirty
{
get
{
if (ListVM is null)
return false;
return ListVM.ContainsDirtyNode();
}
}
public void UpdateVMList(AiPromptbausteinTreeListVM new_list)
public void SaveVMList()
{
// BFS -> 1. Sobald Knoten gefunden wird mit IsNew=true: Teilbaum als neu markieren
// 2. Sobald Knoten gefunden wird mit IsNew=false && IsDirty=true: Knoten als update markieren
// 3. Checken, welche Knoten gelöscht wurden
}
public void UpdateVMList(AiPromptbausteinTreeListVM new_list)
{
ListVM = new_list;
FirePropertyChanged(nameof(ListVM));
@@ -90,29 +100,24 @@ namespace BeWo.ViewModel.View.Administration
WindowService.ShowAiPromptbausteinDetailWindow(AiPromptbausteinDetailViewModel.CreateAdd(this, parent.NewVM, parent));
}
public void EditPromptbaustein()
{
WindowService.ShowAiPromptbausteinDetailWindow(AiPromptbausteinDetailViewModel.CreateEdit(this, SelectedNode));
}
public void CopyPromptbaustein()
{
CopySingleTreeNode = false;
CopyTreeNode = SelectedNode;
}
public void CopySinglePromptbaustein()
{
CopySingleTreeNode = true;
CopyTreeNode = SelectedNode;
}
public void PastePromptbaustein()
{
CopyPastePromptbaustein(!CopySingleTreeNode, CopyTreeNode, SelectedNode);
}
private void CopyPastePromptbaustein(bool rec, AiPromptbausteinTreeVM old_node, AiPromptbausteinTreeVM new_parent)
{
var old_parent = old_node?.Parent;
@@ -136,7 +141,6 @@ namespace BeWo.ViewModel.View.Administration
CopyPastePromptbaustein(rec, old_child, new_node);
}
}
public void DeletePromptbaustein()
{
var node = SelectedNode;