diff --git a/src/Artemis.Core/DefaultTypes/DataBindings/Converters/GeneralDataBindingConverter.cs b/src/Artemis.Core/DefaultTypes/DataBindings/Converters/GeneralDataBindingConverter.cs
index 16ef4bb8e..fed1be236 100644
--- a/src/Artemis.Core/DefaultTypes/DataBindings/Converters/GeneralDataBindingConverter.cs
+++ b/src/Artemis.Core/DefaultTypes/DataBindings/Converters/GeneralDataBindingConverter.cs
@@ -2,9 +2,16 @@
namespace Artemis.Core.DefaultTypes
{
- ///
+ ///
+ /// Represents a generic data binding converter that acts as the bridge between a
+ /// and a and does not support
+ /// sum or interpolation
+ ///
public class GeneralDataBindingConverter : DataBindingConverter where T : ILayerProperty
{
+ ///
+ /// Creates a new instance of the class
+ ///
public GeneralDataBindingConverter()
{
SupportsSum = false;
diff --git a/src/Artemis.Core/Models/Profile/Conditions/Abstract/DisplayConditionPart.cs b/src/Artemis.Core/Models/Profile/Conditions/Abstract/DataModelConditionPart.cs
similarity index 59%
rename from src/Artemis.Core/Models/Profile/Conditions/Abstract/DisplayConditionPart.cs
rename to src/Artemis.Core/Models/Profile/Conditions/Abstract/DataModelConditionPart.cs
index f751046d0..f9954b483 100644
--- a/src/Artemis.Core/Models/Profile/Conditions/Abstract/DisplayConditionPart.cs
+++ b/src/Artemis.Core/Models/Profile/Conditions/Abstract/DataModelConditionPart.cs
@@ -8,43 +8,43 @@ namespace Artemis.Core
///
/// An abstract class for display condition parts
///
- public abstract class DisplayConditionPart : IDisposable
+ public abstract class DataModelConditionPart : IDisposable
{
- private readonly List _children = new List();
+ private readonly List _children = new List();
///
/// Gets the parent of this part
///
- public DisplayConditionPart Parent { get; internal set; }
+ public DataModelConditionPart Parent { get; internal set; }
///
/// Gets the children of this part
///
- public IReadOnlyList Children => _children.AsReadOnly();
+ public IReadOnlyList Children => _children.AsReadOnly();
///
/// Adds a child to the display condition part's collection
///
- ///
- public void AddChild(DisplayConditionPart displayConditionPart)
+ ///
+ public void AddChild(DataModelConditionPart dataModelConditionPart)
{
- if (!_children.Contains(displayConditionPart))
+ if (!_children.Contains(dataModelConditionPart))
{
- displayConditionPart.Parent = this;
- _children.Add(displayConditionPart);
+ dataModelConditionPart.Parent = this;
+ _children.Add(dataModelConditionPart);
}
}
///
/// Removes a child from the display condition part's collection
///
- /// The child to remove
- public void RemoveChild(DisplayConditionPart displayConditionPart)
+ /// The child to remove
+ public void RemoveChild(DataModelConditionPart dataModelConditionPart)
{
- if (_children.Contains(displayConditionPart))
+ if (_children.Contains(dataModelConditionPart))
{
- displayConditionPart.Parent = null;
- _children.Remove(displayConditionPart);
+ dataModelConditionPart.Parent = null;
+ _children.Remove(dataModelConditionPart);
}
}
@@ -59,13 +59,16 @@ namespace Artemis.Core
///
///
///
- public abstract bool EvaluateObject(object target);
+ internal abstract bool EvaluateObject(object target);
internal abstract void Save();
internal abstract DisplayConditionPartEntity GetEntity();
#region IDisposable
+ ///
+ /// Disposed the condition part
+ ///
protected virtual void Dispose(bool disposing)
{
if (disposing)
@@ -73,6 +76,7 @@ namespace Artemis.Core
}
}
+ ///
public void Dispose()
{
Dispose(true);
diff --git a/src/Artemis.Core/Models/Profile/Conditions/DisplayConditionGroup.cs b/src/Artemis.Core/Models/Profile/Conditions/DataModelConditionGroup.cs
similarity index 72%
rename from src/Artemis.Core/Models/Profile/Conditions/DisplayConditionGroup.cs
rename to src/Artemis.Core/Models/Profile/Conditions/DataModelConditionGroup.cs
index 055a40b0b..9a2f3c6ef 100644
--- a/src/Artemis.Core/Models/Profile/Conditions/DisplayConditionGroup.cs
+++ b/src/Artemis.Core/Models/Profile/Conditions/DataModelConditionGroup.cs
@@ -6,29 +6,29 @@ using Artemis.Storage.Entities.Profile.Conditions;
namespace Artemis.Core
{
///
- /// A group containing zero to many s which it evaluates using a boolean specific
+ /// A group containing zero to many s which it evaluates using a boolean specific
/// operator
///
- public class DisplayConditionGroup : DisplayConditionPart
+ public class DataModelConditionGroup : DataModelConditionPart
{
private bool _disposed;
///
- /// Creates a new instance of the class
+ /// Creates a new instance of the class
///
///
- public DisplayConditionGroup(DisplayConditionPart parent)
+ public DataModelConditionGroup(DataModelConditionPart parent)
{
Parent = parent;
Entity = new DisplayConditionGroupEntity();
}
///
- /// Creates a new instance of the class
+ /// Creates a new instance of the class
///
///
///
- public DisplayConditionGroup(DisplayConditionPart parent, DisplayConditionGroupEntity entity)
+ public DataModelConditionGroup(DataModelConditionPart parent, DisplayConditionGroupEntity entity)
{
Parent = parent;
Entity = entity;
@@ -37,13 +37,13 @@ namespace Artemis.Core
foreach (var childEntity in Entity.Children)
{
if (childEntity is DisplayConditionGroupEntity groupEntity)
- AddChild(new DisplayConditionGroup(this, groupEntity));
+ AddChild(new DataModelConditionGroup(this, groupEntity));
else if (childEntity is DisplayConditionListEntity listEntity)
- AddChild(new DisplayConditionList(this, listEntity));
+ AddChild(new DataModelConditionList(this, listEntity));
else if (childEntity is DisplayConditionPredicateEntity predicateEntity)
- AddChild(new DisplayConditionPredicate(this, predicateEntity));
+ AddChild(new DataModelConditionPredicate(this, predicateEntity));
else if (childEntity is DisplayConditionListPredicateEntity listPredicateEntity)
- AddChild(new DisplayConditionListPredicate(this, listPredicateEntity));
+ AddChild(new DataModelConditionListPredicate(this, listPredicateEntity));
}
}
@@ -82,8 +82,22 @@ namespace Artemis.Core
}
}
+ #region IDisposable
+
///
- public override bool EvaluateObject(object target)
+ protected override void Dispose(bool disposing)
+ {
+ _disposed = true;
+ foreach (var child in Children)
+ child.Dispose();
+
+ base.Dispose(disposing);
+ }
+
+ #endregion
+
+ ///
+ internal override bool EvaluateObject(object target)
{
if (_disposed)
throw new ObjectDisposedException("DisplayConditionGroup");
@@ -119,26 +133,31 @@ namespace Artemis.Core
{
return Entity;
}
-
- #region IDisposable
-
- protected override void Dispose(bool disposing)
- {
- _disposed = true;
- foreach (var child in Children)
- child.Dispose();
-
- base.Dispose(disposing);
- }
-
- #endregion
}
+ ///
+ /// Represents a boolean operator
+ ///
public enum BooleanOperator
{
+ ///
+ /// All the conditions in the group should evaluate to true
+ ///
And,
+
+ ///
+ /// Any of the conditions in the group should evaluate to true
+ ///
Or,
+
+ ///
+ /// All the conditions in the group should evaluate to false
+ ///
AndNot,
+
+ ///
+ /// Any of the conditions in the group should evaluate to false
+ ///
OrNot
}
}
\ No newline at end of file
diff --git a/src/Artemis.Core/Models/Profile/Conditions/DisplayConditionList.cs b/src/Artemis.Core/Models/Profile/Conditions/DataModelConditionList.cs
similarity index 74%
rename from src/Artemis.Core/Models/Profile/Conditions/DisplayConditionList.cs
rename to src/Artemis.Core/Models/Profile/Conditions/DataModelConditionList.cs
index 5ecbc607c..eda2ba6ee 100644
--- a/src/Artemis.Core/Models/Profile/Conditions/DisplayConditionList.cs
+++ b/src/Artemis.Core/Models/Profile/Conditions/DataModelConditionList.cs
@@ -8,11 +8,18 @@ using Artemis.Storage.Entities.Profile.Conditions;
namespace Artemis.Core
{
- public class DisplayConditionList : DisplayConditionPart
+ ///
+ /// A condition that evaluates one or more predicates inside a list
+ ///
+ public class DataModelConditionList : DataModelConditionPart
{
private bool _disposed;
- public DisplayConditionList(DisplayConditionPart parent)
+ ///
+ /// Creates a new instance of the class
+ ///
+ ///
+ public DataModelConditionList(DataModelConditionPart parent)
{
Parent = parent;
Entity = new DisplayConditionListEntity();
@@ -20,7 +27,7 @@ namespace Artemis.Core
Initialize();
}
- public DisplayConditionList(DisplayConditionPart parent, DisplayConditionListEntity entity)
+ internal DataModelConditionList(DataModelConditionPart parent, DisplayConditionListEntity entity)
{
Parent = parent;
Entity = entity;
@@ -29,14 +36,29 @@ namespace Artemis.Core
Initialize();
}
- public DisplayConditionListEntity Entity { get; set; }
+ internal DisplayConditionListEntity Entity { get; set; }
+ ///
+ /// Gets or sets the list operator
+ ///
public ListOperator ListOperator { get; set; }
+
+ ///
+ /// Gets the currently used instance of the list data model
+ ///
public DataModel ListDataModel { get; private set; }
+
+ ///
+ /// Gets the path of the list property in the
+ ///
public string ListPropertyPath { get; private set; }
- public Func CompiledListAccessor { get; set; }
+ ///
+ /// Gets the compiled function that accesses the list this condition evaluates on
+ ///
+ public Func CompiledListAccessor { get; private set; }
+ ///
public override bool Evaluate()
{
if (_disposed)
@@ -48,27 +70,11 @@ namespace Artemis.Core
return EvaluateObject(CompiledListAccessor(ListDataModel));
}
- public override bool EvaluateObject(object target)
- {
- if (_disposed)
- throw new ObjectDisposedException("DisplayConditionList");
-
- if (!Children.Any())
- return false;
- if (!(target is IList list))
- return false;
-
- var objectList = list.Cast();
- return ListOperator switch
- {
- ListOperator.Any => objectList.Any(o => Children[0].EvaluateObject(o)),
- ListOperator.All => objectList.All(o => Children[0].EvaluateObject(o)),
- ListOperator.None => objectList.Any(o => !Children[0].EvaluateObject(o)),
- ListOperator.Count => false,
- _ => throw new ArgumentOutOfRangeException()
- };
- }
-
+ ///
+ /// Updates the list the predicate is evaluated on
+ ///
+ /// The data model of the list
+ /// The path pointing to the list inside the list
public void UpdateList(DataModel dataModel, string path)
{
if (_disposed)
@@ -98,24 +104,49 @@ namespace Artemis.Core
return;
// Create a new root group
- AddChild(new DisplayConditionGroup(this));
+ AddChild(new DataModelConditionGroup(this));
CreateExpression();
}
- public void CreateExpression()
+ #region IDisposable
+
+ ///
+ protected override void Dispose(bool disposing)
+ {
+ _disposed = true;
+
+ DataModelStore.DataModelAdded -= DataModelStoreOnDataModelAdded;
+ DataModelStore.DataModelRemoved -= DataModelStoreOnDataModelRemoved;
+
+ foreach (var child in Children)
+ child.Dispose();
+
+ base.Dispose(disposing);
+ }
+
+ #endregion
+
+ internal override bool EvaluateObject(object target)
{
if (_disposed)
throw new ObjectDisposedException("DisplayConditionList");
- var parameter = Expression.Parameter(typeof(object), "listDataModel");
- var accessor = ListPropertyPath.Split('.').Aggregate(
- Expression.Convert(parameter, ListDataModel.GetType()),
- (expression, s) => Expression.Convert(Expression.Property(expression, s), typeof(IList)));
+ if (!Children.Any())
+ return false;
+ if (!(target is IList list))
+ return false;
- var lambda = Expression.Lambda>(accessor, parameter);
- CompiledListAccessor = lambda.Compile();
+ var objectList = list.Cast();
+ return ListOperator switch
+ {
+ ListOperator.Any => objectList.Any(o => Children[0].EvaluateObject(o)),
+ ListOperator.All => objectList.All(o => Children[0].EvaluateObject(o)),
+ ListOperator.None => objectList.Any(o => !Children[0].EvaluateObject(o)),
+ ListOperator.Count => false,
+ _ => throw new ArgumentOutOfRangeException()
+ };
}
-
+
internal override void Save()
{
// Target list
@@ -159,14 +190,28 @@ namespace Artemis.Core
// There should only be one child and it should be a group
if (Entity.Children.SingleOrDefault() is DisplayConditionGroupEntity rootGroup)
- AddChild(new DisplayConditionGroup(this, rootGroup));
+ AddChild(new DataModelConditionGroup(this, rootGroup));
else
{
Entity.Children.Clear();
- AddChild(new DisplayConditionGroup(this));
+ AddChild(new DataModelConditionGroup(this));
}
}
+ private void CreateExpression()
+ {
+ if (_disposed)
+ throw new ObjectDisposedException("DisplayConditionList");
+
+ var parameter = Expression.Parameter(typeof(object), "listDataModel");
+ var accessor = ListPropertyPath.Split('.').Aggregate(
+ Expression.Convert(parameter, ListDataModel.GetType()),
+ (expression, s) => Expression.Convert(Expression.Property(expression, s), typeof(IList)));
+
+ var lambda = Expression.Lambda>(accessor, parameter);
+ CompiledListAccessor = lambda.Compile();
+ }
+
#region Event handlers
@@ -191,31 +236,31 @@ namespace Artemis.Core
}
#endregion
-
- #region IDisposable
-
- ///
- protected override void Dispose(bool disposing)
- {
- _disposed = true;
-
- DataModelStore.DataModelAdded -= DataModelStoreOnDataModelAdded;
- DataModelStore.DataModelRemoved -= DataModelStoreOnDataModelRemoved;
-
- foreach (var child in Children)
- child.Dispose();
-
- base.Dispose(disposing);
- }
-
- #endregion
}
+ ///
+ /// Represents a list operator
+ ///
public enum ListOperator
{
+ ///
+ /// Any of the list items should evaluate to true
+ ///
Any,
+
+ ///
+ /// All of the list items should evaluate to true
+ ///
All,
+
+ ///
+ /// None of the list items should evaluate to true
+ ///
None,
+
+ ///
+ /// A specific amount of the list items should evaluate to true
+ ///
Count
}
}
\ No newline at end of file
diff --git a/src/Artemis.Core/Models/Profile/Conditions/DisplayConditionListPredicate.cs b/src/Artemis.Core/Models/Profile/Conditions/DataModelConditionListPredicate.cs
similarity index 81%
rename from src/Artemis.Core/Models/Profile/Conditions/DisplayConditionListPredicate.cs
rename to src/Artemis.Core/Models/Profile/Conditions/DataModelConditionListPredicate.cs
index ef93a992b..5b6cd275c 100644
--- a/src/Artemis.Core/Models/Profile/Conditions/DisplayConditionListPredicate.cs
+++ b/src/Artemis.Core/Models/Profile/Conditions/DataModelConditionListPredicate.cs
@@ -8,9 +8,17 @@ using Newtonsoft.Json;
namespace Artemis.Core
{
- public class DisplayConditionListPredicate : DisplayConditionPart
+ ///
+ /// A predicate like evaluated inside a
+ ///
+ public class DataModelConditionListPredicate : DataModelConditionPart
{
- public DisplayConditionListPredicate(DisplayConditionPart parent, ProfileRightSideType predicateType)
+ ///
+ /// Creates a new instance of the class
+ ///
+ ///
+ ///
+ public DataModelConditionListPredicate(DataModelConditionPart parent, ProfileRightSideType predicateType)
{
Parent = parent;
PredicateType = predicateType;
@@ -20,7 +28,7 @@ namespace Artemis.Core
Initialize();
}
- public DisplayConditionListPredicate(DisplayConditionPart parent, DisplayConditionListPredicateEntity entity)
+ internal DataModelConditionListPredicate(DataModelConditionPart parent, DisplayConditionListPredicateEntity entity)
{
Parent = parent;
Entity = entity;
@@ -30,27 +38,150 @@ namespace Artemis.Core
Initialize();
}
- public DisplayConditionListPredicateEntity Entity { get; set; }
+ internal DisplayConditionListPredicateEntity Entity { get; set; }
+ ///
+ /// Gets or sets the predicate type
+ ///
public ProfileRightSideType PredicateType { get; set; }
+
+ ///
+ /// Gets the operator
+ ///
public ConditionOperator Operator { get; private set; }
+ ///
+ /// Gets the type of the content of the list this predicate is evaluated on
+ ///
public Type ListType { get; private set; }
+
+ ///
+ /// Gets the currently used instance of the list data model
+ ///
public DataModel ListDataModel { get; private set; }
+
+ ///
+ /// Gets the path of the list property in the
+ ///
public string ListPropertyPath { get; private set; }
+ ///
+ /// Gets the path of the left property in the
+ ///
public string LeftPropertyPath { get; private set; }
+
+ ///
+ /// Gets the path of the right property in the
+ ///
public string RightPropertyPath { get; private set; }
+
+ ///
+ /// Gets the right static value, only used it is
+ ///
+ ///
public object RightStaticValue { get; private set; }
+ ///
+ /// Gets the compiled function that evaluates this predicate
+ ///
public Func CompiledListPredicate { get; private set; }
- public void ApplyParentList()
+ ///
+ /// Updates the left side of the predicate
+ ///
+ /// The path pointing to the left side value inside the list
+ public void UpdateLeftSide(string path)
+ {
+ if (!ListContainsInnerPath(path))
+ throw new ArtemisCoreException($"List type {ListType.Name} does not contain path {path}");
+
+ LeftPropertyPath = path;
+
+ ValidateOperator();
+ ValidateRightSide();
+ CreateExpression();
+ }
+
+ ///
+ /// Updates the right side of the predicate, makes the predicate dynamic and re-compiles the expression
+ ///
+ /// The path pointing to the right side value inside the list
+ public void UpdateRightSideDynamic(string path)
+ {
+ if (!ListContainsInnerPath(path))
+ throw new ArtemisCoreException($"List type {ListType.Name} does not contain path {path}");
+
+ PredicateType = ProfileRightSideType.Dynamic;
+ RightPropertyPath = path;
+
+ CreateExpression();
+ }
+
+ ///
+ /// Updates the right side of the predicate, makes the predicate static and re-compiles the expression
+ ///
+ /// The right side value to use
+ public void UpdateRightSideStatic(object staticValue)
+ {
+ PredicateType = ProfileRightSideType.Static;
+ RightPropertyPath = null;
+
+ SetStaticValue(staticValue);
+ CreateExpression();
+ }
+
+ ///
+ /// Updates the operator of the predicate and re-compiles the expression
+ ///
+ ///
+ public void UpdateOperator(ConditionOperator conditionOperator)
+ {
+ if (conditionOperator == null)
+ {
+ Operator = null;
+ return;
+ }
+
+ if (LeftPropertyPath == null)
+ {
+ Operator = conditionOperator;
+ return;
+ }
+
+ var leftType = GetTypeAtInnerPath(LeftPropertyPath);
+ if (conditionOperator.SupportsType(leftType))
+ Operator = conditionOperator;
+
+ CreateExpression();
+ }
+
+ ///
+ /// Not supported for list predicates, always returns false
+ ///
+ public override bool Evaluate()
+ {
+ return false;
+ }
+
+ #region IDisposable
+
+ ///
+ protected override void Dispose(bool disposing)
+ {
+ ConditionOperatorStore.ConditionOperatorAdded -= ConditionOperatorStoreOnConditionOperatorAdded;
+ ConditionOperatorStore.ConditionOperatorRemoved -= ConditionOperatorStoreOnConditionOperatorRemoved;
+
+ base.Dispose(disposing);
+ }
+
+ #endregion
+
+ internal void ApplyParentList()
{
var current = Parent;
while (current != null)
{
- if (current is DisplayConditionList parentList)
+ if (current is DataModelConditionList parentList)
{
UpdateList(parentList.ListDataModel, parentList.ListPropertyPath);
return;
@@ -60,7 +191,7 @@ namespace Artemis.Core
}
}
- public void UpdateList(DataModel dataModel, string path)
+ internal void UpdateList(DataModel dataModel, string path)
{
if (dataModel != null && path == null)
throw new ArtemisCoreException("If a data model is provided, a path is also required");
@@ -89,70 +220,19 @@ namespace Artemis.Core
CreateExpression();
}
- public void UpdateLeftSide(string path)
- {
- if (!ListContainsInnerPath(path))
- throw new ArtemisCoreException($"List type {ListType.Name} does not contain path {path}");
-
- LeftPropertyPath = path;
-
- ValidateOperator();
- ValidateRightSide();
- CreateExpression();
- }
-
- public void UpdateRightSideDynamic(string path)
- {
- if (!ListContainsInnerPath(path))
- throw new ArtemisCoreException($"List type {ListType.Name} does not contain path {path}");
-
- PredicateType = ProfileRightSideType.Dynamic;
- RightPropertyPath = path;
-
- CreateExpression();
- }
-
- public void UpdateRightSideStatic(object staticValue)
- {
- PredicateType = ProfileRightSideType.Static;
- RightPropertyPath = null;
-
- SetStaticValue(staticValue);
- CreateExpression();
- }
-
- public void UpdateOperator(ConditionOperator conditionOperator)
- {
- if (conditionOperator == null)
- {
- Operator = null;
- return;
- }
-
- if (LeftPropertyPath == null)
- {
- Operator = conditionOperator;
- return;
- }
-
- var leftType = GetTypeAtInnerPath(LeftPropertyPath);
- if (conditionOperator.SupportsType(leftType))
- Operator = conditionOperator;
-
- CreateExpression();
- }
-
- public override bool Evaluate()
- {
- return false;
- }
-
- public override bool EvaluateObject(object target)
+ ///
+ /// Evaluates the condition part on the given target
+ ///
+ ///
+ /// An instance of the list described in and
+ ///
+ ///
+ internal override bool EvaluateObject(object target)
{
return CompiledListPredicate != null && CompiledListPredicate(target);
}
- public bool ListContainsInnerPath(string path)
+ internal bool ListContainsInnerPath(string path)
{
if (ListType == null)
return false;
@@ -171,7 +251,7 @@ namespace Artemis.Core
return true;
}
- public Type GetTypeAtInnerPath(string path)
+ internal Type GetTypeAtInnerPath(string path)
{
if (!ListContainsInnerPath(path))
return null;
@@ -210,6 +290,11 @@ namespace Artemis.Core
}
}
+ internal override DisplayConditionPartEntity GetEntity()
+ {
+ return Entity;
+ }
+
private void Initialize()
{
ConditionOperatorStore.ConditionOperatorAdded += ConditionOperatorStoreOnConditionOperatorAdded;
@@ -270,11 +355,6 @@ namespace Artemis.Core
}
}
- internal override DisplayConditionPartEntity GetEntity()
- {
- return Entity;
- }
-
private void CreateExpression()
{
CompiledListPredicate = null;
@@ -412,18 +492,5 @@ namespace Artemis.Core
}
#endregion
-
- #region IDisposable
-
- ///
- protected override void Dispose(bool disposing)
- {
- ConditionOperatorStore.ConditionOperatorAdded -= ConditionOperatorStoreOnConditionOperatorAdded;
- ConditionOperatorStore.ConditionOperatorRemoved -= ConditionOperatorStoreOnConditionOperatorRemoved;
-
- base.Dispose(disposing);
- }
-
- #endregion
}
}
\ No newline at end of file
diff --git a/src/Artemis.Core/Models/Profile/Conditions/DisplayConditionPredicate.cs b/src/Artemis.Core/Models/Profile/Conditions/DataModelConditionPredicate.cs
similarity index 96%
rename from src/Artemis.Core/Models/Profile/Conditions/DisplayConditionPredicate.cs
rename to src/Artemis.Core/Models/Profile/Conditions/DataModelConditionPredicate.cs
index a86f57dc1..5af53d9cc 100644
--- a/src/Artemis.Core/Models/Profile/Conditions/DisplayConditionPredicate.cs
+++ b/src/Artemis.Core/Models/Profile/Conditions/DataModelConditionPredicate.cs
@@ -9,17 +9,17 @@ using Newtonsoft.Json;
namespace Artemis.Core
{
///
- /// A predicate in a display condition using either two data model values or one data model value and a
+ /// A predicate in a data model condition using either two data model values or one data model value and a
/// static value
///
- public class DisplayConditionPredicate : DisplayConditionPart
+ public class DataModelConditionPredicate : DataModelConditionPart
{
///
- /// Creates a new instance of the class
+ /// Creates a new instance of the class
///
///
///
- public DisplayConditionPredicate(DisplayConditionPart parent, ProfileRightSideType predicateType)
+ public DataModelConditionPredicate(DataModelConditionPart parent, ProfileRightSideType predicateType)
{
Parent = parent;
PredicateType = predicateType;
@@ -28,12 +28,7 @@ namespace Artemis.Core
Initialize();
}
- ///
- /// Creates a new instance of the class
- ///
- ///
- ///
- public DisplayConditionPredicate(DisplayConditionPart parent, DisplayConditionPredicateEntity entity)
+ internal DataModelConditionPredicate(DataModelConditionPart parent, DisplayConditionPredicateEntity entity)
{
Parent = parent;
Entity = entity;
@@ -219,7 +214,7 @@ namespace Artemis.Core
}
///
- public override bool EvaluateObject(object target)
+ internal override bool EvaluateObject(object target)
{
return false;
}
diff --git a/src/Artemis.Core/Models/Profile/DataBindings/DataBindingConverter.cs b/src/Artemis.Core/Models/Profile/DataBindings/DataBindingConverter.cs
index 380caba36..486c50632 100644
--- a/src/Artemis.Core/Models/Profile/DataBindings/DataBindingConverter.cs
+++ b/src/Artemis.Core/Models/Profile/DataBindings/DataBindingConverter.cs
@@ -11,15 +11,18 @@ namespace Artemis.Core
public abstract class DataBindingConverter : IDataBindingConverter
{
///
- /// A dynamically compiled getter pointing to the data bound property
+ /// Gets a dynamically compiled getter pointing to the data bound property
///
public Func GetExpression { get; private set; }
///
- /// A dynamically compiled setter pointing to the data bound property
+ /// Gets a dynamically compiled setter pointing to the data bound property used for value types
///
public Action ValueTypeSetExpression { get; private set; }
+ ///
+ /// Gets a dynamically compiled setter pointing to the data bound property used for reference types
+ ///
public Action ReferenceTypeSetExpression { get; private set; }
///
diff --git a/src/Artemis.Core/Models/Profile/RenderProfileElement.cs b/src/Artemis.Core/Models/Profile/RenderProfileElement.cs
index 674126fcd..f2eec3588 100644
--- a/src/Artemis.Core/Models/Profile/RenderProfileElement.cs
+++ b/src/Artemis.Core/Models/Profile/RenderProfileElement.cs
@@ -49,9 +49,9 @@ namespace Artemis.Core
DisplayContinuously = RenderElementEntity.DisplayContinuously;
AlwaysFinishTimeline = RenderElementEntity.AlwaysFinishTimeline;
- DisplayConditionGroup = RenderElementEntity.RootDisplayCondition != null
- ? new DisplayConditionGroup(null, RenderElementEntity.RootDisplayCondition)
- : new DisplayConditionGroup(null);
+ DataModelConditionGroup = RenderElementEntity.RootDisplayCondition != null
+ ? new DataModelConditionGroup(null, RenderElementEntity.RootDisplayCondition)
+ : new DataModelConditionGroup(null);
ActivateEffects();
}
@@ -82,8 +82,8 @@ namespace Artemis.Core
}
// Conditions
- RenderElementEntity.RootDisplayCondition = DisplayConditionGroup?.Entity;
- DisplayConditionGroup?.Save();
+ RenderElementEntity.RootDisplayCondition = DataModelConditionGroup?.Entity;
+ DataModelConditionGroup?.Save();
}
#region Properties
@@ -392,22 +392,22 @@ namespace Artemis.Core
private set => SetAndNotify(ref _displayConditionMet, value);
}
- private DisplayConditionGroup _displayConditionGroup;
+ private DataModelConditionGroup _dataModelConditionGroup;
private TimeSpan _timelinePosition;
private bool _displayConditionMet;
///
/// Gets or sets the root display condition group
///
- public DisplayConditionGroup DisplayConditionGroup
+ public DataModelConditionGroup DataModelConditionGroup
{
- get => _displayConditionGroup;
- set => SetAndNotify(ref _displayConditionGroup, value);
+ get => _dataModelConditionGroup;
+ set => SetAndNotify(ref _dataModelConditionGroup, value);
}
public void UpdateDisplayCondition()
{
- var conditionMet = DisplayConditionGroup == null || DisplayConditionGroup.Evaluate();
+ var conditionMet = DataModelConditionGroup == null || DataModelConditionGroup.Evaluate();
if (conditionMet && !DisplayConditionMet)
TimelinePosition = TimeSpan.Zero;
diff --git a/src/Artemis.Core/Plugins/DataModelExpansions/Attributes/DataModelIgnoreAttribute.cs b/src/Artemis.Core/Plugins/DataModelExpansions/Attributes/DataModelIgnoreAttribute.cs
index 63a0003b8..a9339b2ee 100644
--- a/src/Artemis.Core/Plugins/DataModelExpansions/Attributes/DataModelIgnoreAttribute.cs
+++ b/src/Artemis.Core/Plugins/DataModelExpansions/Attributes/DataModelIgnoreAttribute.cs
@@ -2,6 +2,9 @@
namespace Artemis.Core.DataModelExpansions
{
+ ///
+ /// Represents an attribute that marks a data model property to be ignored by the UI
+ ///
public class DataModelIgnoreAttribute : Attribute
{
}
diff --git a/src/Artemis.Core/Plugins/DataModelExpansions/Attributes/DataModelProperty.cs b/src/Artemis.Core/Plugins/DataModelExpansions/Attributes/DataModelProperty.cs
index ee627a080..6eae6b89b 100644
--- a/src/Artemis.Core/Plugins/DataModelExpansions/Attributes/DataModelProperty.cs
+++ b/src/Artemis.Core/Plugins/DataModelExpansions/Attributes/DataModelProperty.cs
@@ -2,6 +2,9 @@
namespace Artemis.Core.DataModelExpansions
{
+ ///
+ /// Represents an attribute that describes a data model property
+ ///
[AttributeUsage(AttributeTargets.Property)]
public class DataModelPropertyAttribute : Attribute
{
diff --git a/src/Artemis.Core/Plugins/DataModelExpansions/DataModel.cs b/src/Artemis.Core/Plugins/DataModelExpansions/DataModel.cs
index e0fbc4f35..e9a063eef 100644
--- a/src/Artemis.Core/Plugins/DataModelExpansions/DataModel.cs
+++ b/src/Artemis.Core/Plugins/DataModelExpansions/DataModel.cs
@@ -28,7 +28,7 @@ namespace Artemis.Core.DataModelExpansions
[DataModelIgnore]
public bool IsExpansion { get; internal set; }
- public bool ContainsPath(string path)
+ internal bool ContainsPath(string path)
{
var parts = path.Split('.');
var current = GetType();
@@ -43,7 +43,7 @@ namespace Artemis.Core.DataModelExpansions
return true;
}
- public Type GetTypeAtPath(string path)
+ internal Type GetTypeAtPath(string path)
{
if (!ContainsPath(path))
return null;
@@ -62,7 +62,7 @@ namespace Artemis.Core.DataModelExpansions
return result;
}
- public Type GetListTypeInPath(string path)
+ internal Type GetListTypeInPath(string path)
{
if (!ContainsPath(path))
return null;
@@ -90,7 +90,7 @@ namespace Artemis.Core.DataModelExpansions
return null;
}
- public Type GetListTypeAtPath(string path)
+ internal Type GetListTypeAtPath(string path)
{
if (!ContainsPath(path))
return null;
@@ -98,29 +98,7 @@ namespace Artemis.Core.DataModelExpansions
var child = GetTypeAtPath(path);
return child.GenericTypeArguments.Length > 0 ? child.GenericTypeArguments[0] : null;
}
-
- public string GetListInnerPath(string path)
- {
- if (GetListTypeInPath(path) == null)
- throw new ArtemisCoreException($"Cannot determine inner list path at {path} because it does not contain a list");
-
- var parts = path.Split('.');
- var current = GetType();
-
- for (var index = 0; index < parts.Length; index++)
- {
- var part = parts[index];
- var property = current.GetProperty(part);
-
- if (typeof(IList).IsAssignableFrom(property.PropertyType))
- return string.Join('.', parts.Skip(index + 1).ToList());
-
- current = property.PropertyType;
- }
-
- return null;
- }
-
+
///
/// Returns a read-only list of all properties in this datamodel that are to be ignored
///
diff --git a/src/Artemis.Core/Plugins/DataModelExpansions/Internal/BaseDataModelExpansion.cs b/src/Artemis.Core/Plugins/DataModelExpansions/Internal/BaseDataModelExpansion.cs
index b1cb9a882..7dd9838fd 100644
--- a/src/Artemis.Core/Plugins/DataModelExpansions/Internal/BaseDataModelExpansion.cs
+++ b/src/Artemis.Core/Plugins/DataModelExpansions/Internal/BaseDataModelExpansion.cs
@@ -10,14 +10,22 @@ namespace Artemis.Core.DataModelExpansions
///
public abstract class BaseDataModelExpansion : Plugin
{
- protected readonly List HiddenPropertiesList = new List();
+ ///
+ /// Gets a list of all properties ignored at runtime using IgnoreProperty(x => x.y)
+ ///
+ protected internal readonly List HiddenPropertiesList = new List();
///
- /// Gets a list of all properties ignored at runtime using IgnoreProperty(x => x.y)
+ /// Gets a list of all properties ignored at runtime using IgnoreProperty(x => x.y)
///
public ReadOnlyCollection HiddenProperties => HiddenPropertiesList.AsReadOnly();
internal DataModel InternalDataModel { get; set; }
+
+ ///
+ /// Called each frame when the data model should update
+ ///
+ /// Time in seconds since the last update
public abstract void Update(double deltaTime);
///
diff --git a/src/Artemis.Core/Plugins/LayerBrushes/BrushConfigurationViewModel.cs b/src/Artemis.Core/Plugins/LayerBrushes/BrushConfigurationViewModel.cs
index 6d770e975..16915f0a2 100644
--- a/src/Artemis.Core/Plugins/LayerBrushes/BrushConfigurationViewModel.cs
+++ b/src/Artemis.Core/Plugins/LayerBrushes/BrushConfigurationViewModel.cs
@@ -2,13 +2,23 @@
namespace Artemis.Core.LayerBrushes
{
+ ///
+ /// Represents a view model for a brush configuration window
+ ///
public abstract class BrushConfigurationViewModel : Screen
{
+ ///
+ /// Creates a new instance of the class
+ ///
+ ///
protected BrushConfigurationViewModel(BaseLayerBrush layerBrush)
{
LayerBrush = layerBrush;
}
+ ///
+ /// Gets the layer brush this view model is associated with
+ ///
public BaseLayerBrush LayerBrush { get; }
}
}
\ No newline at end of file
diff --git a/src/Artemis.Core/Plugins/LayerBrushes/LayerBrush.cs b/src/Artemis.Core/Plugins/LayerBrushes/LayerBrush.cs
index 7ae5e268a..0ad17ffb2 100644
--- a/src/Artemis.Core/Plugins/LayerBrushes/LayerBrush.cs
+++ b/src/Artemis.Core/Plugins/LayerBrushes/LayerBrush.cs
@@ -1,10 +1,16 @@
-using Artemis.Core.Services;
-using SkiaSharp;
+using SkiaSharp;
namespace Artemis.Core.LayerBrushes
{
+ ///
+ /// Represents a brush that renders on a layer
+ ///
+ /// The type of brush properties
public abstract class LayerBrush : PropertiesLayerBrush where T : LayerPropertyGroup
{
+ ///
+ /// Creates a new instance of the class
+ ///
protected LayerBrush()
{
BrushType = LayerBrushType.Regular;
diff --git a/src/Artemis.Core/Plugins/LayerBrushes/LayerBrushDescriptor.cs b/src/Artemis.Core/Plugins/LayerBrushes/LayerBrushDescriptor.cs
index c03948109..abea15d1c 100644
--- a/src/Artemis.Core/Plugins/LayerBrushes/LayerBrushDescriptor.cs
+++ b/src/Artemis.Core/Plugins/LayerBrushes/LayerBrushDescriptor.cs
@@ -44,6 +44,16 @@ namespace Artemis.Core.LayerBrushes
///
public LayerBrushProvider LayerBrushProvider { get; }
+ ///
+ /// Determines whether the provided references to a brush provided by this descriptor
+ ///
+ public bool MatchesLayerBrushReference(LayerBrushReference reference)
+ {
+ if (reference == null)
+ return false;
+ return LayerBrushProvider.PluginInfo.Guid == reference.BrushPluginGuid && LayerBrushType.Name == reference.BrushType;
+ }
+
///
/// Creates an instance of the described brush and applies it to the layer
///
@@ -61,12 +71,5 @@ namespace Artemis.Core.LayerBrushes
layer.LayerBrush = brush;
layer.OnLayerBrushUpdated();
}
-
- public bool MatchesLayerBrushReference(LayerBrushReference reference)
- {
- if (reference == null)
- return false;
- return LayerBrushProvider.PluginInfo.Guid == reference.BrushPluginGuid && LayerBrushType.Name == reference.BrushType;
- }
}
}
\ No newline at end of file
diff --git a/src/Artemis.Core/Plugins/LayerBrushes/PerLedLayerBrush.cs b/src/Artemis.Core/Plugins/LayerBrushes/PerLedLayerBrush.cs
index 8ad27213a..b6783ad32 100644
--- a/src/Artemis.Core/Plugins/LayerBrushes/PerLedLayerBrush.cs
+++ b/src/Artemis.Core/Plugins/LayerBrushes/PerLedLayerBrush.cs
@@ -1,16 +1,21 @@
-using Artemis.Core.Services;
-using SkiaSharp;
+using SkiaSharp;
namespace Artemis.Core.LayerBrushes
{
+ ///
+ /// Represents a brush that renders on a per-layer basis
+ ///
+ /// The type of brush properties
public abstract class PerLedLayerBrush : PropertiesLayerBrush where T : LayerPropertyGroup
{
+ ///
+ /// Creates a new instance of the class
+ ///
protected PerLedLayerBrush()
{
BrushType = LayerBrushType.Regular;
}
-
///
/// The main method of rendering for this type of brush. Called once per frame for each LED in the layer
///
diff --git a/src/Artemis.Core/Plugins/LayerEffects/EffectConfigurationViewModel.cs b/src/Artemis.Core/Plugins/LayerEffects/EffectConfigurationViewModel.cs
index e1dde9fe8..472f947ea 100644
--- a/src/Artemis.Core/Plugins/LayerEffects/EffectConfigurationViewModel.cs
+++ b/src/Artemis.Core/Plugins/LayerEffects/EffectConfigurationViewModel.cs
@@ -2,13 +2,23 @@
namespace Artemis.Core.LayerEffects
{
+ ///
+ /// Represents a view model for an effect configuration window
+ ///
public abstract class EffectConfigurationViewModel : Screen
{
+ ///
+ /// Creates a new instance of the class
+ ///
+ ///
protected EffectConfigurationViewModel(BaseLayerEffect layerEffect)
{
LayerEffect = layerEffect;
}
+ ///
+ /// Gets the layer effect this view model is associated with
+ ///
public BaseLayerEffect LayerEffect { get; }
}
}
\ No newline at end of file
diff --git a/src/Artemis.Core/Plugins/LayerEffects/LayerEffect.cs b/src/Artemis.Core/Plugins/LayerEffects/LayerEffect.cs
index ff7c6adec..180e5b1a5 100644
--- a/src/Artemis.Core/Plugins/LayerEffects/LayerEffect.cs
+++ b/src/Artemis.Core/Plugins/LayerEffects/LayerEffect.cs
@@ -1,8 +1,11 @@
using System;
-using Artemis.Core.Services;
namespace Artemis.Core.LayerEffects
{
+ ///
+ /// Represents an effect that applies preprocessing and/or postprocessing to a layer
+ ///
+ ///
public abstract class LayerEffect : BaseLayerEffect where T : LayerPropertyGroup
{
private T _properties;
diff --git a/src/Artemis.Core/Plugins/Modules/ActivationRequirements/BooleanActivationRequirement.cs b/src/Artemis.Core/Plugins/Modules/ActivationRequirements/BooleanActivationRequirement.cs
index 0333d9303..ca240c5ab 100644
--- a/src/Artemis.Core/Plugins/Modules/ActivationRequirements/BooleanActivationRequirement.cs
+++ b/src/Artemis.Core/Plugins/Modules/ActivationRequirements/BooleanActivationRequirement.cs
@@ -16,6 +16,7 @@
return ActivationMet;
}
+ ///
public string GetUserFriendlyDescription()
{
return "No description available";
diff --git a/src/Artemis.Core/Plugins/Modules/ActivationRequirements/ProcessActivationRequirement.cs b/src/Artemis.Core/Plugins/Modules/ActivationRequirements/ProcessActivationRequirement.cs
index 28a3899c1..d738b735c 100644
--- a/src/Artemis.Core/Plugins/Modules/ActivationRequirements/ProcessActivationRequirement.cs
+++ b/src/Artemis.Core/Plugins/Modules/ActivationRequirements/ProcessActivationRequirement.cs
@@ -43,6 +43,7 @@ namespace Artemis.Core.Modules
: processes.Any();
}
+ ///
public string GetUserFriendlyDescription()
{
var description = $"Requirement met when \"{ProcessName}.exe\" is running";
diff --git a/src/Artemis.Core/Plugins/Modules/Module.cs b/src/Artemis.Core/Plugins/Modules/Module.cs
index fc35d7538..ffe21f538 100644
--- a/src/Artemis.Core/Plugins/Modules/Module.cs
+++ b/src/Artemis.Core/Plugins/Modules/Module.cs
@@ -144,13 +144,13 @@ namespace Artemis.Core.Modules
public bool IsUpdateAllowed => IsActivated && (UpdateDuringActivationOverride || !IsActivatedOverride);
///
- /// Called each frame when the module must update
+ /// Called each frame when the module should update
///
/// Time in seconds since the last update
public abstract void Update(double deltaTime);
///
- /// Called each frame when the module must render
+ /// Called each frame when the module should render
///
/// Time since the last render
/// The RGB Surface to render to
diff --git a/src/Artemis.Core/Plugins/Modules/ProfileModule.cs b/src/Artemis.Core/Plugins/Modules/ProfileModule.cs
index 8c15c9e0a..8df97f33c 100644
--- a/src/Artemis.Core/Plugins/Modules/ProfileModule.cs
+++ b/src/Artemis.Core/Plugins/Modules/ProfileModule.cs
@@ -91,18 +91,27 @@ namespace Artemis.Core.Modules
///
public abstract class ProfileModule : Module
{
- protected readonly List HiddenPropertiesList = new List();
+ ///
+ /// Gets a list of all properties ignored at runtime using IgnoreProperty(x => x.y)
+ ///
+ protected internal readonly List HiddenPropertiesList = new List();
+ ///
+ /// Creates a new instance of the class
+ ///
protected ProfileModule()
{
OpacityOverride = 1;
}
///
- /// Gets a list of all properties ignored at runtime using IgnoreProperty(x => x.y)
+ /// Gets a list of all properties ignored at runtime using IgnoreProperty(x => x.y)
///
public ReadOnlyCollection HiddenProperties => HiddenPropertiesList.AsReadOnly();
+ ///
+ /// Gets the currently active profile
+ ///
public Profile ActiveProfile { get; private set; }
///
@@ -225,8 +234,14 @@ namespace Artemis.Core.Modules
#region Events
+ ///
+ /// Occurs when the has changed
+ ///
public event EventHandler ActiveProfileChanged;
+ ///
+ /// Invokes the event
+ ///
protected virtual void OnActiveProfileChanged()
{
ActiveProfileChanged?.Invoke(this, EventArgs.Empty);
diff --git a/src/Artemis.Core/Plugins/PluginConfigurationViewModel.cs b/src/Artemis.Core/Plugins/PluginConfigurationViewModel.cs
index c1e1d521a..731dc1b3f 100644
--- a/src/Artemis.Core/Plugins/PluginConfigurationViewModel.cs
+++ b/src/Artemis.Core/Plugins/PluginConfigurationViewModel.cs
@@ -2,13 +2,23 @@
namespace Artemis.Core
{
+ ///
+ /// Represents a view model for a plugin configuration window
+ ///
public abstract class PluginConfigurationViewModel : Screen
{
+ ///
+ /// Creates a new instance of the class
+ ///
+ ///
protected PluginConfigurationViewModel(Plugin plugin)
{
Plugin = plugin;
}
+ ///
+ /// Gets the plugin this configuration view model is associated with
+ ///
public Plugin Plugin { get; }
}
}
\ No newline at end of file
diff --git a/src/Artemis.Core/Plugins/PluginInfo.cs b/src/Artemis.Core/Plugins/PluginInfo.cs
index 971658630..28646a2da 100644
--- a/src/Artemis.Core/Plugins/PluginInfo.cs
+++ b/src/Artemis.Core/Plugins/PluginInfo.cs
@@ -8,6 +8,9 @@ using Stylet;
namespace Artemis.Core
{
+ ///
+ /// Represents basic info about a plugin and contains a reference to the instance of said plugin
+ ///
[JsonObject(MemberSerialization.OptIn)]
public class PluginInfo : PropertyChangedBase
{
@@ -17,7 +20,6 @@ namespace Artemis.Core
private Guid _guid;
private string _icon;
private Plugin _instance;
- private bool _lastEnableSuccessful;
private Exception _loadException;
private string _main;
private string _name;
@@ -140,6 +142,7 @@ namespace Artemis.Core
///
internal PluginEntity PluginEntity { get; set; }
+ ///
public override string ToString()
{
return $"{Name} v{Version} - {Guid}";
diff --git a/src/Artemis.Core/Plugins/PluginUpdateRegistration.cs b/src/Artemis.Core/Plugins/PluginUpdateRegistration.cs
index ec3cf11c1..4bc43c93f 100644
--- a/src/Artemis.Core/Plugins/PluginUpdateRegistration.cs
+++ b/src/Artemis.Core/Plugins/PluginUpdateRegistration.cs
@@ -93,12 +93,12 @@ namespace Artemis.Core
Action(interval.TotalSeconds);
}
- private void InstanceOnPluginEnabled(object? sender, EventArgs e)
+ private void InstanceOnPluginEnabled(object sender, EventArgs e)
{
Start();
}
- private void InstanceOnPluginDisabled(object? sender, EventArgs e)
+ private void InstanceOnPluginDisabled(object sender, EventArgs e)
{
Stop();
}
diff --git a/src/Artemis.Core/Plugins/Settings/PluginSetting.cs b/src/Artemis.Core/Plugins/Settings/PluginSetting.cs
index 31e66b849..a9b1d7f4b 100644
--- a/src/Artemis.Core/Plugins/Settings/PluginSetting.cs
+++ b/src/Artemis.Core/Plugins/Settings/PluginSetting.cs
@@ -6,6 +6,10 @@ using Stylet;
namespace Artemis.Core
{
+ ///
+ /// Represents a setting tied to a plugin of type
+ ///
+ /// The value type of the setting
public class PluginSetting : PropertyChangedBase
{
// ReSharper disable once NotAccessedField.Local
@@ -78,14 +82,21 @@ namespace Artemis.Core
_pluginRepository.SaveSetting(_pluginSettingEntity);
}
+ ///
+ /// Occurs when the value of the setting has been changed
+ ///
public event EventHandler SettingChanged;
+ ///
public override string ToString()
{
return $"{nameof(Name)}: {Name}, {nameof(Value)}: {Value}, {nameof(HasChanged)}: {HasChanged}";
}
- protected virtual void OnSettingChanged()
+ ///
+ /// Invokes the event
+ ///
+ protected internal virtual void OnSettingChanged()
{
SettingChanged?.Invoke(this, EventArgs.Empty);
}
diff --git a/src/Artemis.Core/RGB.NET/BitmapBrush.cs b/src/Artemis.Core/RGB.NET/BitmapBrush.cs
index 224cf93c7..b95dc6774 100644
--- a/src/Artemis.Core/RGB.NET/BitmapBrush.cs
+++ b/src/Artemis.Core/RGB.NET/BitmapBrush.cs
@@ -47,8 +47,19 @@ namespace Artemis.Core
///
public Dictionary RenderedTargets { get; } = new Dictionary();
+ ///
+ /// Gets or sets the desired scale of the bitmap brush
+ ///
public Scale Scale { get; set; }
+
+ ///
+ /// Gets the last rendered scale of the bitmap brush
+ ///
public Scale RenderedScale { get; private set; }
+
+ ///
+ /// Gets the bitmap used to sample the brush
+ ///
public SKBitmap Bitmap { get; private set; }
#endregion
@@ -148,6 +159,7 @@ namespace Artemis.Core
{
}
+ ///
public void Dispose()
{
lock (_disposeLock)
@@ -157,7 +169,7 @@ namespace Artemis.Core
}
}
- public bool IsDisposed { get; set; }
+ internal bool IsDisposed { get; set; }
#endregion
}
diff --git a/src/Artemis.Core/Services/Interfaces/IPluginService.cs b/src/Artemis.Core/Services/Interfaces/IPluginService.cs
index d975c28c8..50f65773a 100644
--- a/src/Artemis.Core/Services/Interfaces/IPluginService.cs
+++ b/src/Artemis.Core/Services/Interfaces/IPluginService.cs
@@ -70,10 +70,10 @@ namespace Artemis.Core.Services
List GetAllPluginInfo();
///
- /// Finds all enabled instances of type T
+ /// Finds all enabled instances of
///
/// Either or a plugin type implementing
- /// Returns a list of plug instances of type T
+ /// Returns a list of plugin instances of
List GetPluginsOfType() where T : Plugin;
///
diff --git a/src/Artemis.Core/Services/Storage/Interfaces/ISurfaceService.cs b/src/Artemis.Core/Services/Storage/Interfaces/ISurfaceService.cs
index b49dc98d1..8258b3e19 100644
--- a/src/Artemis.Core/Services/Storage/Interfaces/ISurfaceService.cs
+++ b/src/Artemis.Core/Services/Storage/Interfaces/ISurfaceService.cs
@@ -3,6 +3,9 @@ using System.Collections.ObjectModel;
namespace Artemis.Core.Services
{
+ ///
+ /// Provides access to the device surface and its configuration
+ ///
public interface ISurfaceService : IArtemisService
{
///
diff --git a/src/Artemis.Core/Utilities/DeserializationLogger.cs b/src/Artemis.Core/Utilities/DeserializationLogger.cs
index 1be7ad7fb..01e9bc6b2 100644
--- a/src/Artemis.Core/Utilities/DeserializationLogger.cs
+++ b/src/Artemis.Core/Utilities/DeserializationLogger.cs
@@ -13,26 +13,26 @@ namespace Artemis.Core
_logger = kernel.Get();
}
- public static void LogPredicateDeserializationFailure(DisplayConditionPredicate displayConditionPredicate, JsonException exception)
+ public static void LogPredicateDeserializationFailure(DataModelConditionPredicate dataModelConditionPredicate, JsonException exception)
{
_logger.Warning(
exception,
"Failed to deserialize display condition predicate {left} {operator} {right}",
- displayConditionPredicate.Entity.LeftPropertyPath,
- displayConditionPredicate.Entity.OperatorType,
- displayConditionPredicate.Entity.RightPropertyPath
+ dataModelConditionPredicate.Entity.LeftPropertyPath,
+ dataModelConditionPredicate.Entity.OperatorType,
+ dataModelConditionPredicate.Entity.RightPropertyPath
);
}
- public static void LogListPredicateDeserializationFailure(DisplayConditionListPredicate displayConditionPredicate, JsonException exception)
+ public static void LogListPredicateDeserializationFailure(DataModelConditionListPredicate dataModelConditionPredicate, JsonException exception)
{
_logger.Warning(
exception,
"Failed to deserialize display condition list predicate {list} => {left} {operator} {right}",
- displayConditionPredicate.Entity.ListPropertyPath,
- displayConditionPredicate.Entity.LeftPropertyPath,
- displayConditionPredicate.Entity.OperatorType,
- displayConditionPredicate.Entity.RightPropertyPath
+ dataModelConditionPredicate.Entity.ListPropertyPath,
+ dataModelConditionPredicate.Entity.LeftPropertyPath,
+ dataModelConditionPredicate.Entity.OperatorType,
+ dataModelConditionPredicate.Entity.RightPropertyPath
);
}
diff --git a/src/Artemis.Core/Utilities/Easings.cs b/src/Artemis.Core/Utilities/Easings.cs
index c60e7f115..c26da8f76 100644
--- a/src/Artemis.Core/Utilities/Easings.cs
+++ b/src/Artemis.Core/Utilities/Easings.cs
@@ -1,4 +1,5 @@
-using System;
+#pragma warning disable 1591
+using System;
namespace Artemis.Core
{
diff --git a/src/Artemis.UI.Shared/DataModelVisualization/Shared/DataModelVisualizationViewModel.cs b/src/Artemis.UI.Shared/DataModelVisualization/Shared/DataModelVisualizationViewModel.cs
index a683e4d91..02e12d148 100644
--- a/src/Artemis.UI.Shared/DataModelVisualization/Shared/DataModelVisualizationViewModel.cs
+++ b/src/Artemis.UI.Shared/DataModelVisualization/Shared/DataModelVisualizationViewModel.cs
@@ -176,7 +176,7 @@ namespace Artemis.UI.Shared
IsMatchingFilteredTypes = filteredTypes.Any(t => t == PropertyInfo.PropertyType || t == typeof(Enum) && PropertyInfo.PropertyType.IsEnum);
}
- public DataModelVisualizationViewModel GetChildForCondition(DisplayConditionPredicate predicate, DisplayConditionSide side)
+ public DataModelVisualizationViewModel GetChildForCondition(DataModelConditionPredicate predicate, DisplayConditionSide side)
{
if (side == DisplayConditionSide.Left)
{
diff --git a/src/Artemis.UI/Ninject/Factories/IVMFactory.cs b/src/Artemis.UI/Ninject/Factories/IVMFactory.cs
index 8290e0002..e6e59f368 100644
--- a/src/Artemis.UI/Ninject/Factories/IVMFactory.cs
+++ b/src/Artemis.UI/Ninject/Factories/IVMFactory.cs
@@ -65,10 +65,10 @@ namespace Artemis.UI.Ninject.Factories
public interface IDisplayConditionsVmFactory : IVmFactory
{
- DisplayConditionGroupViewModel DisplayConditionGroupViewModel(DisplayConditionGroup displayConditionGroup, bool isListGroup);
- DisplayConditionListViewModel DisplayConditionListViewModel(DisplayConditionList displayConditionList);
- DisplayConditionPredicateViewModel DisplayConditionPredicateViewModel(DisplayConditionPredicate displayConditionPredicate);
- DisplayConditionListPredicateViewModel DisplayConditionListPredicateViewModel(DisplayConditionListPredicate displayConditionListPredicate);
+ DisplayConditionGroupViewModel DisplayConditionGroupViewModel(DataModelConditionGroup dataModelConditionGroup, bool isListGroup);
+ DisplayConditionListViewModel DisplayConditionListViewModel(DataModelConditionList dataModelConditionList);
+ DisplayConditionPredicateViewModel DisplayConditionPredicateViewModel(DataModelConditionPredicate dataModelConditionPredicate);
+ DisplayConditionListPredicateViewModel DisplayConditionListPredicateViewModel(DataModelConditionListPredicate dataModelConditionListPredicate);
}
public interface ILayerPropertyVmFactory : IVmFactory
diff --git a/src/Artemis.UI/Screens/ProfileEditor/DisplayConditions/Abstract/DisplayConditionViewModel.cs b/src/Artemis.UI/Screens/ProfileEditor/DisplayConditions/Abstract/DisplayConditionViewModel.cs
index 65565fdb2..2cca9b857 100644
--- a/src/Artemis.UI/Screens/ProfileEditor/DisplayConditions/Abstract/DisplayConditionViewModel.cs
+++ b/src/Artemis.UI/Screens/ProfileEditor/DisplayConditions/Abstract/DisplayConditionViewModel.cs
@@ -5,12 +5,12 @@ namespace Artemis.UI.Screens.ProfileEditor.DisplayConditions.Abstract
{
public abstract class DisplayConditionViewModel : Conductor.Collection.AllActive
{
- protected DisplayConditionViewModel(DisplayConditionPart model)
+ protected DisplayConditionViewModel(DataModelConditionPart model)
{
Model = model;
}
- public DisplayConditionPart Model { get; }
+ public DataModelConditionPart Model { get; }
public abstract void Update();
diff --git a/src/Artemis.UI/Screens/ProfileEditor/DisplayConditions/DisplayConditionGroupViewModel.cs b/src/Artemis.UI/Screens/ProfileEditor/DisplayConditions/DisplayConditionGroupViewModel.cs
index f337d80dc..9d7a85a77 100644
--- a/src/Artemis.UI/Screens/ProfileEditor/DisplayConditions/DisplayConditionGroupViewModel.cs
+++ b/src/Artemis.UI/Screens/ProfileEditor/DisplayConditions/DisplayConditionGroupViewModel.cs
@@ -17,11 +17,11 @@ namespace Artemis.UI.Screens.ProfileEditor.DisplayConditions
private bool _isInitialized;
private bool _isRootGroup;
- public DisplayConditionGroupViewModel(DisplayConditionGroup displayConditionGroup,
+ public DisplayConditionGroupViewModel(DataModelConditionGroup dataModelConditionGroup,
bool isListGroup,
IProfileEditorService profileEditorService,
IDisplayConditionsVmFactory displayConditionsVmFactory)
- : base(displayConditionGroup)
+ : base(dataModelConditionGroup)
{
IsListGroup = isListGroup;
_profileEditorService = profileEditorService;
@@ -38,7 +38,7 @@ namespace Artemis.UI.Screens.ProfileEditor.DisplayConditions
public bool IsListGroup { get; }
- public DisplayConditionGroup DisplayConditionGroup => (DisplayConditionGroup) Model;
+ public DataModelConditionGroup DataModelConditionGroup => (DataModelConditionGroup) Model;
public bool IsRootGroup
{
@@ -53,12 +53,12 @@ namespace Artemis.UI.Screens.ProfileEditor.DisplayConditions
}
public bool DisplayBooleanOperator => Items.Count > 1;
- public string SelectedBooleanOperator => DisplayConditionGroup.BooleanOperator.Humanize();
+ public string SelectedBooleanOperator => DataModelConditionGroup.BooleanOperator.Humanize();
public void SelectBooleanOperator(string type)
{
var enumValue = Enum.Parse(type);
- DisplayConditionGroup.BooleanOperator = enumValue;
+ DataModelConditionGroup.BooleanOperator = enumValue;
NotifyOfPropertyChange(nameof(SelectedBooleanOperator));
_profileEditorService.UpdateSelectedProfileElement();
@@ -69,19 +69,19 @@ namespace Artemis.UI.Screens.ProfileEditor.DisplayConditions
if (type == "Static")
{
if (!IsListGroup)
- DisplayConditionGroup.AddChild(new DisplayConditionPredicate(DisplayConditionGroup, ProfileRightSideType.Static));
+ DataModelConditionGroup.AddChild(new DataModelConditionPredicate(DataModelConditionGroup, ProfileRightSideType.Static));
else
- DisplayConditionGroup.AddChild(new DisplayConditionListPredicate(DisplayConditionGroup, ProfileRightSideType.Static));
+ DataModelConditionGroup.AddChild(new DataModelConditionListPredicate(DataModelConditionGroup, ProfileRightSideType.Static));
}
else if (type == "Dynamic")
{
if (!IsListGroup)
- DisplayConditionGroup.AddChild(new DisplayConditionPredicate(DisplayConditionGroup, ProfileRightSideType.Dynamic));
+ DataModelConditionGroup.AddChild(new DataModelConditionPredicate(DataModelConditionGroup, ProfileRightSideType.Dynamic));
else
- DisplayConditionGroup.AddChild(new DisplayConditionListPredicate(DisplayConditionGroup, ProfileRightSideType.Dynamic));
+ DataModelConditionGroup.AddChild(new DataModelConditionListPredicate(DataModelConditionGroup, ProfileRightSideType.Dynamic));
}
else if (type == "List" && !IsListGroup)
- DisplayConditionGroup.AddChild(new DisplayConditionList(DisplayConditionGroup));
+ DataModelConditionGroup.AddChild(new DataModelConditionList(DataModelConditionGroup));
Update();
_profileEditorService.UpdateSelectedProfileElement();
@@ -89,7 +89,7 @@ namespace Artemis.UI.Screens.ProfileEditor.DisplayConditions
public void AddGroup()
{
- DisplayConditionGroup.AddChild(new DisplayConditionGroup(DisplayConditionGroup));
+ DataModelConditionGroup.AddChild(new DataModelConditionGroup(DataModelConditionGroup));
Update();
_profileEditorService.UpdateSelectedProfileElement();
@@ -100,7 +100,7 @@ namespace Artemis.UI.Screens.ProfileEditor.DisplayConditions
NotifyOfPropertyChange(nameof(SelectedBooleanOperator));
// Remove VMs of effects no longer applied on the layer
- var toRemove = Items.Where(c => !DisplayConditionGroup.Children.Contains(c.Model)).ToList();
+ var toRemove = Items.Where(c => !DataModelConditionGroup.Children.Contains(c.Model)).ToList();
// Using RemoveRange breaks our lovely animations
foreach (var displayConditionViewModel in toRemove)
Items.Remove(displayConditionViewModel);
@@ -112,17 +112,17 @@ namespace Artemis.UI.Screens.ProfileEditor.DisplayConditions
switch (childModel)
{
- case DisplayConditionGroup displayConditionGroup:
+ case DataModelConditionGroup displayConditionGroup:
Items.Add(_displayConditionsVmFactory.DisplayConditionGroupViewModel(displayConditionGroup, IsListGroup));
break;
- case DisplayConditionList displayConditionListPredicate:
+ case DataModelConditionList displayConditionListPredicate:
Items.Add(_displayConditionsVmFactory.DisplayConditionListViewModel(displayConditionListPredicate));
break;
- case DisplayConditionPredicate displayConditionPredicate:
+ case DataModelConditionPredicate displayConditionPredicate:
if (!IsListGroup)
Items.Add(_displayConditionsVmFactory.DisplayConditionPredicateViewModel(displayConditionPredicate));
break;
- case DisplayConditionListPredicate displayConditionListPredicate:
+ case DataModelConditionListPredicate displayConditionListPredicate:
if (IsListGroup)
Items.Add(_displayConditionsVmFactory.DisplayConditionListPredicateViewModel(displayConditionListPredicate));
break;
diff --git a/src/Artemis.UI/Screens/ProfileEditor/DisplayConditions/DisplayConditionListPredicateViewModel.cs b/src/Artemis.UI/Screens/ProfileEditor/DisplayConditions/DisplayConditionListPredicateViewModel.cs
index 07738d392..421dcbeb6 100644
--- a/src/Artemis.UI/Screens/ProfileEditor/DisplayConditions/DisplayConditionListPredicateViewModel.cs
+++ b/src/Artemis.UI/Screens/ProfileEditor/DisplayConditions/DisplayConditionListPredicateViewModel.cs
@@ -38,12 +38,12 @@ namespace Artemis.UI.Screens.ProfileEditor.DisplayConditions
private List _supportedInputTypes;
public DisplayConditionListPredicateViewModel(
- DisplayConditionListPredicate displayConditionListPredicate,
+ DataModelConditionListPredicate dataModelConditionListPredicate,
IProfileEditorService profileEditorService,
IDataModelUIService dataModelUIService,
IConditionOperatorService conditionOperatorService,
ISettingsService settingsService,
- IEventAggregator eventAggregator) : base(displayConditionListPredicate)
+ IEventAggregator eventAggregator) : base(dataModelConditionListPredicate)
{
_profileEditorService = profileEditorService;
_dataModelUIService = dataModelUIService;
@@ -63,8 +63,8 @@ namespace Artemis.UI.Screens.ProfileEditor.DisplayConditions
Task.Run(Initialize);
}
- public DisplayConditionListPredicate DisplayConditionListPredicate => (DisplayConditionListPredicate) Model;
- public bool ShowRightSidePropertySelection => DisplayConditionListPredicate.PredicateType == ProfileRightSideType.Dynamic;
+ public DataModelConditionListPredicate DataModelConditionListPredicate => (DataModelConditionListPredicate) Model;
+ public bool ShowRightSidePropertySelection => DataModelConditionListPredicate.PredicateType == ProfileRightSideType.Dynamic;
public bool CanActivateRightSideInputViewModel => SelectedLeftSideProperty?.PropertyInfo != null;
public PluginSetting ShowDataModelValues { get; }
@@ -193,45 +193,45 @@ namespace Artemis.UI.Screens.ProfileEditor.DisplayConditions
if (LeftSideDataModel == null || RightSideDataModel == null)
return;
- var listDataModelGuid = DisplayConditionListPredicate.ListDataModel.PluginInfo.Guid;
+ var listDataModelGuid = DataModelConditionListPredicate.ListDataModel.PluginInfo.Guid;
// If static, only allow selecting properties also supported by input
- if (DisplayConditionListPredicate.PredicateType == ProfileRightSideType.Static)
+ if (DataModelConditionListPredicate.PredicateType == ProfileRightSideType.Static)
LeftSideDataModel.ApplyTypeFilter(false, _supportedInputTypes.ToArray());
// Determine the left side property first
- SelectedLeftSideProperty = LeftSideDataModel.GetChildByPath(listDataModelGuid, DisplayConditionListPredicate.LeftPropertyPath);
+ SelectedLeftSideProperty = LeftSideDataModel.GetChildByPath(listDataModelGuid, DataModelConditionListPredicate.LeftPropertyPath);
var leftSideType = SelectedLeftSideProperty?.PropertyInfo?.PropertyType;
// Get the supported operators
Operators.Clear();
Operators.AddRange(_conditionOperatorService.GetConditionOperatorsForType(leftSideType));
- if (DisplayConditionListPredicate.Operator == null)
- DisplayConditionListPredicate.UpdateOperator(Operators.FirstOrDefault(o => o.SupportsType(leftSideType)));
- SelectedOperator = DisplayConditionListPredicate.Operator;
+ if (DataModelConditionListPredicate.Operator == null)
+ DataModelConditionListPredicate.UpdateOperator(Operators.FirstOrDefault(o => o.SupportsType(leftSideType)));
+ SelectedOperator = DataModelConditionListPredicate.Operator;
// Determine the right side
- if (DisplayConditionListPredicate.PredicateType == ProfileRightSideType.Dynamic)
+ if (DataModelConditionListPredicate.PredicateType == ProfileRightSideType.Dynamic)
{
- SelectedRightSideProperty = RightSideDataModel.GetChildByPath(listDataModelGuid, DisplayConditionListPredicate.RightPropertyPath);
+ SelectedRightSideProperty = RightSideDataModel.GetChildByPath(listDataModelGuid, DataModelConditionListPredicate.RightPropertyPath);
RightSideDataModel.ApplyTypeFilter(true, leftSideType);
}
else
- RightStaticValue = DisplayConditionListPredicate.RightStaticValue;
+ RightStaticValue = DataModelConditionListPredicate.RightStaticValue;
}
public void ApplyLeftSide()
{
- DisplayConditionListPredicate.UpdateLeftSide(SelectedLeftSideProperty.PropertyPath);
+ DataModelConditionListPredicate.UpdateLeftSide(SelectedLeftSideProperty.PropertyPath);
_profileEditorService.UpdateSelectedProfileElement();
- SelectedOperator = DisplayConditionListPredicate.Operator;
+ SelectedOperator = DataModelConditionListPredicate.Operator;
Update();
}
public void ApplyRightSideDynamic()
{
- DisplayConditionListPredicate.UpdateRightSideDynamic(SelectedRightSideProperty.PropertyPath);
+ DataModelConditionListPredicate.UpdateRightSideDynamic(SelectedRightSideProperty.PropertyPath);
_profileEditorService.UpdateSelectedProfileElement();
Update();
@@ -241,7 +241,7 @@ namespace Artemis.UI.Screens.ProfileEditor.DisplayConditions
{
if (isSubmitted)
{
- DisplayConditionListPredicate.UpdateRightSideStatic(value);
+ DataModelConditionListPredicate.UpdateRightSideStatic(value);
_profileEditorService.UpdateSelectedProfileElement();
Update();
@@ -255,7 +255,7 @@ namespace Artemis.UI.Screens.ProfileEditor.DisplayConditions
public void ApplyOperator()
{
- DisplayConditionListPredicate.UpdateOperator(SelectedOperator);
+ DataModelConditionListPredicate.UpdateOperator(SelectedOperator);
_profileEditorService.UpdateSelectedProfileElement();
Update();
@@ -270,7 +270,7 @@ namespace Artemis.UI.Screens.ProfileEditor.DisplayConditions
RightSideInputViewModel = _dataModelUIService.GetDataModelInputViewModel(
SelectedLeftSideProperty.PropertyInfo.PropertyType,
SelectedLeftSideProperty.PropertyDescription,
- DisplayConditionListPredicate.RightStaticValue,
+ DataModelConditionListPredicate.RightStaticValue,
ApplyRightSideStatic
);
_eventAggregator.Subscribe(this);
@@ -286,12 +286,12 @@ namespace Artemis.UI.Screens.ProfileEditor.DisplayConditions
private void RightDataModelUpdateRequested(object sender, EventArgs e)
{
- var listDataModelGuid = DisplayConditionListPredicate.ListDataModel.PluginInfo.Guid;
+ var listDataModelGuid = DataModelConditionListPredicate.ListDataModel.PluginInfo.Guid;
var leftSideType = SelectedLeftSideProperty?.PropertyInfo?.PropertyType;
// If the right side property is missing it may be available now that the data model has been updated
- if (SelectedRightSideProperty == null && DisplayConditionListPredicate.RightPropertyPath != null)
- SelectedRightSideProperty = RightSideDataModel.GetChildByPath(listDataModelGuid, DisplayConditionListPredicate.RightPropertyPath);
+ if (SelectedRightSideProperty == null && DataModelConditionListPredicate.RightPropertyPath != null)
+ SelectedRightSideProperty = RightSideDataModel.GetChildByPath(listDataModelGuid, DataModelConditionListPredicate.RightPropertyPath);
// With the data model updated, also reapply the filter
RightSideDataModel.ApplyTypeFilter(true, leftSideType);
@@ -299,19 +299,19 @@ namespace Artemis.UI.Screens.ProfileEditor.DisplayConditions
private void LeftDataModelUpdateRequested(object sender, EventArgs e)
{
- if (DisplayConditionListPredicate.PredicateType == ProfileRightSideType.Static)
+ if (DataModelConditionListPredicate.PredicateType == ProfileRightSideType.Static)
LeftSideDataModel.ApplyTypeFilter(false, _supportedInputTypes.ToArray());
}
private DataModelVisualizationViewModel GetListDataModel()
{
- if (DisplayConditionListPredicate.ListDataModel == null || DisplayConditionListPredicate.ListPropertyPath == null)
+ if (DataModelConditionListPredicate.ListDataModel == null || DataModelConditionListPredicate.ListPropertyPath == null)
throw new ArtemisUIException("Cannot create a list predicate without first selecting a target list");
var dataModel = _dataModelUIService.GetPluginDataModelVisualization(_profileEditorService.GetCurrentModule(), true);
var listDataModel = (DataModelListViewModel) dataModel.GetChildByPath(
- DisplayConditionListPredicate.ListDataModel.PluginInfo.Guid,
- DisplayConditionListPredicate.ListPropertyPath
+ DataModelConditionListPredicate.ListDataModel.PluginInfo.Guid,
+ DataModelConditionListPredicate.ListPropertyPath
);
return listDataModel.GetListTypeViewModel(_dataModelUIService);
diff --git a/src/Artemis.UI/Screens/ProfileEditor/DisplayConditions/DisplayConditionListViewModel.cs b/src/Artemis.UI/Screens/ProfileEditor/DisplayConditions/DisplayConditionListViewModel.cs
index 4cf4cb2a2..353b86b9f 100644
--- a/src/Artemis.UI/Screens/ProfileEditor/DisplayConditions/DisplayConditionListViewModel.cs
+++ b/src/Artemis.UI/Screens/ProfileEditor/DisplayConditions/DisplayConditionListViewModel.cs
@@ -25,12 +25,12 @@ namespace Artemis.UI.Screens.ProfileEditor.DisplayConditions
private DataModelPropertiesViewModel _targetDataModel;
public DisplayConditionListViewModel(
- DisplayConditionList displayConditionList,
+ DataModelConditionList dataModelConditionList,
DisplayConditionViewModel parent,
IProfileEditorService profileEditorService,
IDataModelUIService dataModelUIService,
IDisplayConditionsVmFactory displayConditionsVmFactory,
- ISettingsService settingsService) : base(displayConditionList)
+ ISettingsService settingsService) : base(dataModelConditionList)
{
_profileEditorService = profileEditorService;
_dataModelUIService = dataModelUIService;
@@ -48,7 +48,7 @@ namespace Artemis.UI.Screens.ProfileEditor.DisplayConditions
public DelegateCommand SelectListPropertyCommand { get; }
public PluginSetting ShowDataModelValues { get; }
- public DisplayConditionList DisplayConditionList => (DisplayConditionList) Model;
+ public DataModelConditionList DataModelConditionList => (DataModelConditionList) Model;
public bool IsInitialized
{
@@ -70,12 +70,12 @@ namespace Artemis.UI.Screens.ProfileEditor.DisplayConditions
set => SetAndNotify(ref _selectedListProperty, value);
}
- public string SelectedListOperator => DisplayConditionList.ListOperator.Humanize();
+ public string SelectedListOperator => DataModelConditionList.ListOperator.Humanize();
public void SelectListOperator(string type)
{
var enumValue = Enum.Parse(type);
- DisplayConditionList.ListOperator = enumValue;
+ DataModelConditionList.ListOperator = enumValue;
NotifyOfPropertyChange(nameof(SelectedListOperator));
_profileEditorService.UpdateSelectedProfileElement();
@@ -84,9 +84,9 @@ namespace Artemis.UI.Screens.ProfileEditor.DisplayConditions
public void AddCondition(string type)
{
if (type == "Static")
- DisplayConditionList.AddChild(new DisplayConditionPredicate(DisplayConditionList, ProfileRightSideType.Static));
+ DataModelConditionList.AddChild(new DataModelConditionPredicate(DataModelConditionList, ProfileRightSideType.Static));
else if (type == "Dynamic")
- DisplayConditionList.AddChild(new DisplayConditionPredicate(DisplayConditionList, ProfileRightSideType.Dynamic));
+ DataModelConditionList.AddChild(new DataModelConditionPredicate(DataModelConditionList, ProfileRightSideType.Dynamic));
Update();
_profileEditorService.UpdateSelectedProfileElement();
@@ -94,7 +94,7 @@ namespace Artemis.UI.Screens.ProfileEditor.DisplayConditions
public void AddGroup()
{
- DisplayConditionList.AddChild(new DisplayConditionGroup(DisplayConditionList));
+ DataModelConditionList.AddChild(new DataModelConditionGroup(DataModelConditionList));
Update();
_profileEditorService.UpdateSelectedProfileElement();
@@ -122,7 +122,7 @@ namespace Artemis.UI.Screens.ProfileEditor.DisplayConditions
public void ApplyList()
{
- DisplayConditionList.UpdateList(SelectedListProperty.DataModel, SelectedListProperty.PropertyPath);
+ DataModelConditionList.UpdateList(SelectedListProperty.DataModel, SelectedListProperty.PropertyPath);
_profileEditorService.UpdateSelectedProfileElement();
Update();
@@ -136,11 +136,11 @@ namespace Artemis.UI.Screens.ProfileEditor.DisplayConditions
NotifyOfPropertyChange(nameof(SelectedListOperator));
// Update the selected list property
- if (DisplayConditionList.ListDataModel != null && DisplayConditionList.ListPropertyPath != null)
+ if (DataModelConditionList.ListDataModel != null && DataModelConditionList.ListPropertyPath != null)
{
var child = TargetDataModel.GetChildByPath(
- DisplayConditionList.ListDataModel.PluginInfo.Guid,
- DisplayConditionList.ListPropertyPath
+ DataModelConditionList.ListDataModel.PluginInfo.Guid,
+ DataModelConditionList.ListPropertyPath
);
SelectedListProperty = child as DataModelListViewModel;
}
@@ -149,7 +149,7 @@ namespace Artemis.UI.Screens.ProfileEditor.DisplayConditions
TargetDataModel.ApplyTypeFilter(true, typeof(IList));
// Remove VMs of effects no longer applied on the layer
- var toRemove = Items.Where(c => !DisplayConditionList.Children.Contains(c.Model)).ToList();
+ var toRemove = Items.Where(c => !DataModelConditionList.Children.Contains(c.Model)).ToList();
// Using RemoveRange breaks our lovely animations
foreach (var displayConditionViewModel in toRemove)
Items.Remove(displayConditionViewModel);
@@ -158,7 +158,7 @@ namespace Artemis.UI.Screens.ProfileEditor.DisplayConditions
{
if (Items.Any(c => c.Model == childModel))
continue;
- if (!(childModel is DisplayConditionGroup displayConditionGroup))
+ if (!(childModel is DataModelConditionGroup displayConditionGroup))
continue;
var viewModel = _displayConditionsVmFactory.DisplayConditionGroupViewModel(displayConditionGroup, true);
diff --git a/src/Artemis.UI/Screens/ProfileEditor/DisplayConditions/DisplayConditionPredicateViewModel.cs b/src/Artemis.UI/Screens/ProfileEditor/DisplayConditions/DisplayConditionPredicateViewModel.cs
index 6ce25d5ee..aa86f1d6d 100644
--- a/src/Artemis.UI/Screens/ProfileEditor/DisplayConditions/DisplayConditionPredicateViewModel.cs
+++ b/src/Artemis.UI/Screens/ProfileEditor/DisplayConditions/DisplayConditionPredicateViewModel.cs
@@ -37,12 +37,12 @@ namespace Artemis.UI.Screens.ProfileEditor.DisplayConditions
private List _supportedInputTypes;
public DisplayConditionPredicateViewModel(
- DisplayConditionPredicate displayConditionPredicate,
+ DataModelConditionPredicate dataModelConditionPredicate,
IProfileEditorService profileEditorService,
IDataModelUIService dataModelUIService,
IConditionOperatorService conditionOperatorService,
ISettingsService settingsService,
- IEventAggregator eventAggregator) : base(displayConditionPredicate)
+ IEventAggregator eventAggregator) : base(dataModelConditionPredicate)
{
_profileEditorService = profileEditorService;
_dataModelUIService = dataModelUIService;
@@ -61,8 +61,8 @@ namespace Artemis.UI.Screens.ProfileEditor.DisplayConditions
Initialize();
}
- public DisplayConditionPredicate DisplayConditionPredicate => (DisplayConditionPredicate) Model;
- public bool ShowRightSidePropertySelection => DisplayConditionPredicate.PredicateType == ProfileRightSideType.Dynamic;
+ public DataModelConditionPredicate DataModelConditionPredicate => (DataModelConditionPredicate) Model;
+ public bool ShowRightSidePropertySelection => DataModelConditionPredicate.PredicateType == ProfileRightSideType.Dynamic;
public bool CanActivateRightSideInputViewModel => SelectedLeftSideProperty?.PropertyInfo != null;
public PluginSetting ShowDataModelValues { get; }
@@ -188,46 +188,46 @@ namespace Artemis.UI.Screens.ProfileEditor.DisplayConditions
public override void Update()
{
- if (LeftSideDataModel == null || DisplayConditionPredicate.PredicateType == ProfileRightSideType.Dynamic && RightSideDataModel == null)
+ if (LeftSideDataModel == null || DataModelConditionPredicate.PredicateType == ProfileRightSideType.Dynamic && RightSideDataModel == null)
return;
// If static, only allow selecting properties also supported by input
- if (DisplayConditionPredicate.PredicateType == ProfileRightSideType.Static)
+ if (DataModelConditionPredicate.PredicateType == ProfileRightSideType.Static)
LeftSideDataModel.ApplyTypeFilter(false, _supportedInputTypes.ToArray());
// Determine the left side property first
- SelectedLeftSideProperty = LeftSideDataModel.GetChildForCondition(DisplayConditionPredicate, DisplayConditionSide.Left);
+ SelectedLeftSideProperty = LeftSideDataModel.GetChildForCondition(DataModelConditionPredicate, DisplayConditionSide.Left);
var leftSideType = SelectedLeftSideProperty?.PropertyInfo?.PropertyType;
// Get the supported operators
Operators.Clear();
Operators.AddRange(_conditionOperatorService.GetConditionOperatorsForType(leftSideType));
- if (DisplayConditionPredicate.Operator == null)
- DisplayConditionPredicate.UpdateOperator(Operators.FirstOrDefault(o => o.SupportsType(leftSideType)));
- SelectedOperator = DisplayConditionPredicate.Operator;
+ if (DataModelConditionPredicate.Operator == null)
+ DataModelConditionPredicate.UpdateOperator(Operators.FirstOrDefault(o => o.SupportsType(leftSideType)));
+ SelectedOperator = DataModelConditionPredicate.Operator;
// Determine the right side
- if (DisplayConditionPredicate.PredicateType == ProfileRightSideType.Dynamic)
+ if (DataModelConditionPredicate.PredicateType == ProfileRightSideType.Dynamic)
{
- SelectedRightSideProperty = LeftSideDataModel.GetChildForCondition(DisplayConditionPredicate, DisplayConditionSide.Right);
+ SelectedRightSideProperty = LeftSideDataModel.GetChildForCondition(DataModelConditionPredicate, DisplayConditionSide.Right);
RightSideDataModel.ApplyTypeFilter(true, leftSideType);
}
else
- RightStaticValue = DisplayConditionPredicate.RightStaticValue;
+ RightStaticValue = DataModelConditionPredicate.RightStaticValue;
}
public void ApplyLeftSide()
{
- DisplayConditionPredicate.UpdateLeftSide(SelectedLeftSideProperty.DataModel, SelectedLeftSideProperty.PropertyPath);
+ DataModelConditionPredicate.UpdateLeftSide(SelectedLeftSideProperty.DataModel, SelectedLeftSideProperty.PropertyPath);
_profileEditorService.UpdateSelectedProfileElement();
- SelectedOperator = DisplayConditionPredicate.Operator;
+ SelectedOperator = DataModelConditionPredicate.Operator;
Update();
}
public void ApplyRightSideDynamic()
{
- DisplayConditionPredicate.UpdateRightSide(SelectedRightSideProperty.DataModel, SelectedRightSideProperty.PropertyPath);
+ DataModelConditionPredicate.UpdateRightSide(SelectedRightSideProperty.DataModel, SelectedRightSideProperty.PropertyPath);
_profileEditorService.UpdateSelectedProfileElement();
Update();
@@ -237,7 +237,7 @@ namespace Artemis.UI.Screens.ProfileEditor.DisplayConditions
{
if (isSubmitted)
{
- DisplayConditionPredicate.UpdateRightSide(value);
+ DataModelConditionPredicate.UpdateRightSide(value);
_profileEditorService.UpdateSelectedProfileElement();
Update();
@@ -251,7 +251,7 @@ namespace Artemis.UI.Screens.ProfileEditor.DisplayConditions
public void ApplyOperator()
{
- DisplayConditionPredicate.UpdateOperator(SelectedOperator);
+ DataModelConditionPredicate.UpdateOperator(SelectedOperator);
_profileEditorService.UpdateSelectedProfileElement();
Update();
@@ -266,7 +266,7 @@ namespace Artemis.UI.Screens.ProfileEditor.DisplayConditions
RightSideInputViewModel = _dataModelUIService.GetDataModelInputViewModel(
SelectedLeftSideProperty.PropertyInfo.PropertyType,
SelectedLeftSideProperty.PropertyDescription,
- DisplayConditionPredicate.RightStaticValue,
+ DataModelConditionPredicate.RightStaticValue,
ApplyRightSideStatic
);
_eventAggregator.Subscribe(this);
@@ -283,8 +283,8 @@ namespace Artemis.UI.Screens.ProfileEditor.DisplayConditions
private void RightDataModelUpdateRequested(object sender, EventArgs e)
{
var leftSideType = SelectedLeftSideProperty?.PropertyInfo?.PropertyType;
- if (DisplayConditionPredicate.PredicateType == ProfileRightSideType.Dynamic)
- SelectedRightSideProperty = LeftSideDataModel.GetChildForCondition(DisplayConditionPredicate, DisplayConditionSide.Right);
+ if (DataModelConditionPredicate.PredicateType == ProfileRightSideType.Dynamic)
+ SelectedRightSideProperty = LeftSideDataModel.GetChildForCondition(DataModelConditionPredicate, DisplayConditionSide.Right);
// With the data model updated, also reapply the filter
RightSideDataModel.ApplyTypeFilter(true, leftSideType);
@@ -292,7 +292,7 @@ namespace Artemis.UI.Screens.ProfileEditor.DisplayConditions
private void LeftDataModelUpdateRequested(object sender, EventArgs e)
{
- if (DisplayConditionPredicate.PredicateType == ProfileRightSideType.Static)
+ if (DataModelConditionPredicate.PredicateType == ProfileRightSideType.Static)
LeftSideDataModel.ApplyTypeFilter(false, _supportedInputTypes.ToArray());
}
diff --git a/src/Artemis.UI/Screens/ProfileEditor/DisplayConditions/DisplayConditionsViewModel.cs b/src/Artemis.UI/Screens/ProfileEditor/DisplayConditions/DisplayConditionsViewModel.cs
index 6f25f8141..112aba813 100644
--- a/src/Artemis.UI/Screens/ProfileEditor/DisplayConditions/DisplayConditionsViewModel.cs
+++ b/src/Artemis.UI/Screens/ProfileEditor/DisplayConditions/DisplayConditionsViewModel.cs
@@ -82,10 +82,10 @@ namespace Artemis.UI.Screens.ProfileEditor.DisplayConditions
}
// Ensure the layer has a root display condition group
- if (e.RenderProfileElement.DisplayConditionGroup == null)
- e.RenderProfileElement.DisplayConditionGroup = new DisplayConditionGroup(null);
+ if (e.RenderProfileElement.DataModelConditionGroup == null)
+ e.RenderProfileElement.DataModelConditionGroup = new DataModelConditionGroup(null);
- ActiveItem = _displayConditionsVmFactory.DisplayConditionGroupViewModel(e.RenderProfileElement.DisplayConditionGroup, false);
+ ActiveItem = _displayConditionsVmFactory.DisplayConditionGroupViewModel(e.RenderProfileElement.DataModelConditionGroup, false);
ActiveItem.IsRootGroup = true;
ActiveItem.Update();