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 there is a child (root group), it must evaluate to true whenever the event triggered
if (Children.Any()) 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 // If there are no children, we always evaluate to true whenever the event triggered
return true; return true;
} }

View File

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

View File

@ -19,6 +19,11 @@ namespace Artemis.Core
/// </summary> /// </summary>
Type ArgumentsType { get; } 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> /// <summary>
/// Fires when the event is triggered /// Fires when the event is triggered
/// </summary> /// </summary>

View File

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

View File

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