mirror of
https://github.com/Artemis-RGB/Artemis
synced 2026-11-11 19:36:28 +00:00
Data model conditions - Improved right-side type detection
This commit is contained in:
1 parent
b8fa8779d9
commit
eb1c99a944
5 files changed
+64
-23
No files matched your search
+9
-6
@@ -156,14 +156,16 @@ namespace Artemis.UI.Screens.ProfileEditor.Conditions
|
||||
{
|
||||
DisposeRightSideDynamicViewModel();
|
||||
if (RightSideInputViewModel == null)
|
||||
CreateRightSideInputViewModel(SelectedOperator.RightSideType);
|
||||
CreateRightSideInputViewModel();
|
||||
|
||||
if (SelectedOperator.RightSideType.IsValueType && DataModelConditionListPredicate.RightStaticValue == null)
|
||||
RightSideInputViewModel.Value = SelectedOperator.RightSideType.GetDefault();
|
||||
else
|
||||
RightSideInputViewModel.Value = DataModelConditionListPredicate.RightStaticValue;
|
||||
if (RightSideInputViewModel.TargetType != SelectedOperator.RightSideType)
|
||||
RightSideInputViewModel.UpdateTargetType(SelectedOperator.RightSideType);
|
||||
|
||||
Type preferredType = DataModelConditionListPredicate.GetPreferredRightSideType();
|
||||
if (RightSideInputViewModel.TargetType != preferredType)
|
||||
RightSideInputViewModel.UpdateTargetType(preferredType);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -222,7 +224,7 @@ namespace Artemis.UI.Screens.ProfileEditor.Conditions
|
||||
SelectedOperator = dataModelConditionOperator;
|
||||
ApplyOperator();
|
||||
}
|
||||
|
||||
|
||||
#region IDisposable
|
||||
|
||||
public void Dispose()
|
||||
@@ -286,9 +288,10 @@ namespace Artemis.UI.Screens.ProfileEditor.Conditions
|
||||
RightSideSelectionViewModel.ExtraDataModelViewModels.Add(listValue);
|
||||
}
|
||||
|
||||
private void CreateRightSideInputViewModel(Type leftSideType)
|
||||
private void CreateRightSideInputViewModel()
|
||||
{
|
||||
RightSideInputViewModel = _dataModelUIService.GetStaticInputViewModel(leftSideType, LeftSideSelectionViewModel.DataModelPath?.GetPropertyDescription());
|
||||
Type preferredType = DataModelConditionListPredicate.GetPreferredRightSideType();
|
||||
RightSideInputViewModel = _dataModelUIService.GetStaticInputViewModel(preferredType, LeftSideSelectionViewModel.DataModelPath?.GetPropertyDescription());
|
||||
RightSideInputViewModel.ButtonBrush = (SolidColorBrush) Application.Current.FindResource("PrimaryHueMidBrush");
|
||||
RightSideInputViewModel.DisplaySwitchButton = true;
|
||||
RightSideInputViewModel.ValueUpdated += RightSideOnValueEntered;
|
||||
|
||||
+9
-6
@@ -131,14 +131,16 @@ namespace Artemis.UI.Screens.ProfileEditor.Conditions
|
||||
{
|
||||
DisposeRightSideDynamicViewModel();
|
||||
if (RightSideInputViewModel == null)
|
||||
CreateRightSideInputViewModel(SelectedOperator.RightSideType);
|
||||
CreateRightSideInputViewModel();
|
||||
|
||||
if (SelectedOperator.RightSideType.IsValueType && DataModelConditionPredicate.RightStaticValue == null)
|
||||
RightSideInputViewModel.Value = SelectedOperator.RightSideType.GetDefault();
|
||||
else
|
||||
RightSideInputViewModel.Value = DataModelConditionPredicate.RightStaticValue;
|
||||
if (RightSideInputViewModel.TargetType != SelectedOperator.RightSideType)
|
||||
RightSideInputViewModel.UpdateTargetType(SelectedOperator.RightSideType);
|
||||
|
||||
Type preferredType = DataModelConditionPredicate.GetPreferredRightSideType();
|
||||
if (RightSideInputViewModel.TargetType != preferredType)
|
||||
RightSideInputViewModel.UpdateTargetType(preferredType);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -188,7 +190,7 @@ namespace Artemis.UI.Screens.ProfileEditor.Conditions
|
||||
SelectedOperator = DataModelConditionOperator;
|
||||
ApplyOperator();
|
||||
}
|
||||
|
||||
|
||||
#region IDisposable
|
||||
|
||||
public void Dispose()
|
||||
@@ -217,9 +219,10 @@ namespace Artemis.UI.Screens.ProfileEditor.Conditions
|
||||
RightSideSelectionViewModel.SwitchToStaticRequested += RightSideSelectionViewModelOnSwitchToStaticRequested;
|
||||
}
|
||||
|
||||
private void CreateRightSideInputViewModel(Type leftSideType)
|
||||
private void CreateRightSideInputViewModel()
|
||||
{
|
||||
RightSideInputViewModel = _dataModelUIService.GetStaticInputViewModel(leftSideType, LeftSideSelectionViewModel.DataModelPath?.GetPropertyDescription());
|
||||
Type preferredType = DataModelConditionPredicate.GetPreferredRightSideType();
|
||||
RightSideInputViewModel = _dataModelUIService.GetStaticInputViewModel(preferredType, LeftSideSelectionViewModel.DataModelPath?.GetPropertyDescription());
|
||||
RightSideInputViewModel.ButtonBrush = (SolidColorBrush) Application.Current.FindResource("PrimaryHueMidBrush");
|
||||
RightSideInputViewModel.DisplaySwitchButton = true;
|
||||
RightSideInputViewModel.ValueUpdated += RightSideOnValueEntered;
|
||||
|
||||
Reference in new issue
Block a user