1
0
mirror of https://github.com/Artemis-RGB/Artemis synced 2025-12-13 05:48:35 +00:00

Display conditions - Fixed event argument conditions

Display conditions - Fixed event inner-condition selection
This commit is contained in:
SpoinkyNL 2020-10-30 16:45:02 +01:00
parent f179980ac4
commit 13df88ca40
5 changed files with 30 additions and 10 deletions

View File

@ -62,7 +62,8 @@ namespace Artemis.Core
// If there is a child (root group), it must evaluate to true whenever the event triggered
if (Children.Any())
return Children[0].Evaluate();
return Children[0].EvaluateObject(_event.LastEventArgumentsUntyped);
// If there are no children, we always evaluate to true whenever the event triggered
return true;
}

View File

@ -44,6 +44,10 @@ namespace Artemis.Core
[DataModelIgnore]
public Type ArgumentsType => typeof(T);
/// <inheritdoc />
[DataModelIgnore]
public DataModelEventArgs? LastEventArgumentsUntyped => LastEventArguments;
/// <inheritdoc />
public event EventHandler? EventTriggered;
}
@ -87,6 +91,10 @@ namespace Artemis.Core
[DataModelIgnore]
public Type ArgumentsType => typeof(DataModelEventArgs);
/// <inheritdoc />
[DataModelIgnore]
public DataModelEventArgs? LastEventArgumentsUntyped => LastEventArguments;
/// <inheritdoc />
public event EventHandler? EventTriggered;
}

View File

@ -19,6 +19,11 @@ namespace Artemis.Core
/// </summary>
Type ArgumentsType { get; }
/// <summary>
/// Gets the event arguments of the last time the event was triggered by its base type
/// </summary>
public DataModelEventArgs? LastEventArgumentsUntyped { get; }
/// <summary>
/// Fires when the event is triggered
/// </summary>

View File

@ -97,7 +97,11 @@ namespace Artemis.UI.Shared.Input
public bool IsDataModelViewModelOpen
{
get => _isDataModelViewModelOpen;
set => SetAndNotify(ref _isDataModelViewModelOpen, value);
set
{
if (!SetAndNotify(ref _isDataModelViewModelOpen, value)) return;
if (value) UpdateDataModelVisualization();
}
}
public DataModelPath DataModelPath
@ -195,9 +199,14 @@ namespace Artemis.UI.Shared.Input
private void OnUpdateTimerOnElapsed(object sender, ElapsedEventArgs e)
{
if (!IsDataModelViewModelOpen)
return;
// if (!IsDataModelViewModelOpen)
// return;
//
// UpdateDataModelVisualization();
}
private void UpdateDataModelVisualization()
{
DataModelViewModel.Update(_dataModelUIService);
foreach (DataModelPropertiesViewModel extraDataModelViewModel in ExtraDataModelViewModels)
extraDataModelViewModel.Update(_dataModelUIService);

View File

@ -184,14 +184,11 @@ namespace Artemis.UI.Shared
internal void PopulateProperties(IDataModelUIService dataModelUIService)
{
// if (IsRootViewModel)
// return;
if (Parent == null && DataModel == null)
if (IsRootViewModel && DataModel == null)
return;
Type modelType = Parent == null || Parent.IsRootViewModel ? DataModel.GetType() : DataModelPath.GetPropertyType();
Type modelType = IsRootViewModel ? DataModel.GetType() : DataModelPath?.GetPropertyType() ?? DataModel.GetType();
// Add missing static children
foreach (PropertyInfo propertyInfo in modelType.GetProperties(BindingFlags.Public | BindingFlags.Instance).OrderBy(t => t.MetadataToken))
{