Data model conditions - Expanded events UI logic

This commit is contained in:
SpoinkyNL committed 2020-10-25 22:32:38 +01:00
1 parent fbd319beb9
commit e7ce16ba73
15 files changed
+226 -54

No files matched your search

@@ -29,19 +29,19 @@ namespace Artemis.UI.Shared
public override void Update(IDataModelUIService dataModelUIService)
{
DisplayValueType = DataModelPath?.GetPropertyType();
// Only set a display value if ToString returns useful information and not just the type name
object currentValue = GetCurrentValue();
if (currentValue != null && currentValue.ToString() != currentValue.GetType().ToString())
DisplayValue = currentValue.ToString();
else
DisplayValue = null;
// Always populate properties
PopulateProperties(dataModelUIService);
// Only update children if the parent is expanded
if (Parent != null && !Parent.IsVisualizationExpanded && !Parent.IsRootViewModel)
if (Parent != null && !Parent.IsRootViewModel && !Parent.IsVisualizationExpanded)
return;
foreach (DataModelVisualizationViewModel dataModelVisualizationViewModel in Children)
@@ -50,9 +50,9 @@ namespace Artemis.UI.Shared
public override object GetCurrentValue()
{
if (Parent == null)
return null;
return Parent.IsRootViewModel ? DataModel : base.GetCurrentValue();
if (Parent == null || Parent.IsRootViewModel || IsRootViewModel)
return DataModel;
return base.GetCurrentValue();
}
/// <inheritdoc />
@@ -28,7 +28,7 @@ namespace Artemis.UI.Shared
Children = new BindableCollection<DataModelVisualizationViewModel>();
IsMatchingFilteredTypes = true;
if (dataModel == null && parent == null && dataModelPath == null)
if (parent == null)
IsRootViewModel = true;
else
PropertyDescription = DataModelPath?.GetPropertyDescription() ?? DataModel.DataModelDescription;
@@ -184,7 +184,10 @@ namespace Artemis.UI.Shared
internal void PopulateProperties(IDataModelUIService dataModelUIService)
{
if (IsRootViewModel)
// if (IsRootViewModel)
// return;
if (Parent == null && DataModel == null)
return;
Type modelType = Parent == null || Parent.IsRootViewModel ? DataModel.GetType() : DataModelPath.GetPropertyType();
@@ -235,6 +238,7 @@ namespace Artemis.UI.Shared
if (toRemoveDynamic.Any())
Children.RemoveRange(toRemoveDynamic);
}
private DataModelVisualizationViewModel CreateChild(IDataModelUIService dataModelUIService, string path, int depth)
{
if (depth > MaxDepth)
@@ -1,17 +1,29 @@
using Artemis.Core;
using System.Linq;
using Artemis.Core;
using Artemis.UI.Shared.Services;
namespace Artemis.UI.Shared
{
public static class DataModelWrapperExtensions
{
public static DataModelPropertiesViewModel CreateViewModel(this EventPredicateWrapperDataModel wrapper)
public static DataModelPropertiesViewModel CreateViewModel(this EventPredicateWrapperDataModel wrapper, IDataModelUIService dataModelUIService)
{
return new DataModelPropertiesViewModel(wrapper, null, new DataModelPath(wrapper));
DataModelPropertiesViewModel viewModel = new DataModelPropertiesViewModel(wrapper, null, new DataModelPath(wrapper));
viewModel.Update(dataModelUIService);
viewModel.UpdateRequested += (sender, args) => viewModel.Update(dataModelUIService);
viewModel.Children.First().IsVisualizationExpanded = true;
return viewModel;
}
public static DataModelPropertiesViewModel CreateViewModel(this ListPredicateWrapperDataModel wrapper)
public static DataModelPropertiesViewModel CreateViewModel(this ListPredicateWrapperDataModel wrapper, IDataModelUIService dataModelUIService)
{
return new DataModelPropertiesViewModel(wrapper, null, new DataModelPath(wrapper));
DataModelPropertiesViewModel viewModel = new DataModelPropertiesViewModel(wrapper, null, new DataModelPath(wrapper));
viewModel.Update(dataModelUIService);
viewModel.UpdateRequested += (sender, args) => viewModel.Update(dataModelUIService);
viewModel.Children.First().IsVisualizationExpanded = true;
return viewModel;
}
}
}