From 004fde73c063ad2dd4d408153007444f1cc54dfb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bartosz=20Korczy=C5=84ski?= Date: Sat, 8 May 2021 13:43:40 +0100 Subject: [PATCH] [Database editor] Support for conditions in database table editors --- .../Helpers/FieldValueTemplateSelector.cs | 3 + .../MultiRow/MultiRowDbTableEditorView.axaml | 5 ++ .../Helpers/FieldValueTemplateSelector.cs | 3 + .../MultiRow/MultiRowDbTableEditorView.xaml | 5 ++ .../Data/DatabaseTableModelGenerator.cs | 13 +++- .../IDatabaseTableModelGenerator.cs | 1 + .../Data/Structs/DatabaseColumnJson.cs | 3 + .../Structs/DatabaseTableDefinitionJson.cs | 30 ++++++++ .../DbDefinitions/gossip_menu_option.json | 20 ++++++ ...aseEntityConditionsChangedHistoryAction.cs | 37 ++++++++++ .../Loaders/DatabaseTableDataProvider.cs | 46 +++++++++++- WDE.DatabaseEditors/Models/DatabaseEntity.cs | 43 +++++++++-- .../QueryGenerators/QueryGenerator.cs | 67 ++++++++++++++++- .../MultiRow/DatabaseCellViewModel.cs | 24 ++++++- .../MultiRow/DatabaseColumnHeaderViewModel.cs | 6 ++ .../MultiRowDbTableEditorViewModel.cs | 71 +++++++++++++------ 16 files changed, 345 insertions(+), 32 deletions(-) create mode 100644 WDE.DatabaseEditors/History/DatabaseEntityConditionsChangedHistoryAction.cs diff --git a/WDE.DatabaseEditors.Avalonia/Helpers/FieldValueTemplateSelector.cs b/WDE.DatabaseEditors.Avalonia/Helpers/FieldValueTemplateSelector.cs index 843568958..f51b75d2f 100644 --- a/WDE.DatabaseEditors.Avalonia/Helpers/FieldValueTemplateSelector.cs +++ b/WDE.DatabaseEditors.Avalonia/Helpers/FieldValueTemplateSelector.cs @@ -13,9 +13,12 @@ public class FieldValueTemplateSelector : IDataTemplate { public DataTemplate? GenericTemplate { get; set; } public DataTemplate? BoolTemplate { get; set; } + public DataTemplate? CommandTemplate { get; set; } public IControl Build(object param) { + if (param is ViewModels.MultiRow.DatabaseCellViewModel vm3 && vm3.ActionCommand != null) + return CommandTemplate!.Build(param); if ((param is DatabaseCellViewModel vm && vm.ParameterValue is ParameterValue holder && holder.Parameter is BoolParameter) || (param is ViewModels.MultiRow.DatabaseCellViewModel vm2 && vm2.ParameterValue is ParameterValue holder2 && holder2.Parameter is BoolParameter)) return BoolTemplate!.Build(param); diff --git a/WDE.DatabaseEditors.Avalonia/Views/MultiRow/MultiRowDbTableEditorView.axaml b/WDE.DatabaseEditors.Avalonia/Views/MultiRow/MultiRowDbTableEditorView.axaml index 7ec9f83cb..858093abb 100644 --- a/WDE.DatabaseEditors.Avalonia/Views/MultiRow/MultiRowDbTableEditorView.axaml +++ b/WDE.DatabaseEditors.Avalonia/Views/MultiRow/MultiRowDbTableEditorView.axaml @@ -74,6 +74,11 @@ + + +