Data bindings - WIP commit

This commit is contained in:
SpoinkyNL committed 2020-09-06 21:24:35 +02:00
1 parent 7bcac904fc
commit 1dc58fd09a
42 files changed
+902 -356

No files matched your search

@@ -15,6 +15,8 @@ namespace Artemis.Core.Services
{
_logger = logger;
_registeredDataBindingModifierTypes = new List<DataBindingModifierType>();
RegisterBuiltInModifiers();
}
public IReadOnlyCollection<DataBindingModifierType> RegisteredDataBindingModifierTypes
@@ -98,5 +100,10 @@ namespace Artemis.Core.Services
dataBindingModifier.Entity.ModifierType
);
}
private void RegisterBuiltInModifiers()
{
RegisterModifierType(Constants.CorePluginInfo, new MultiplicationModifierType());
}
}
}
@@ -54,5 +54,6 @@ namespace Artemis.Core.Services
void RemoveLayerEffect(BaseLayerEffect layerEffect);
void InstantiateDisplayConditions(RenderProfileElement renderElement);
void InstantiateDataBindings(RenderProfileElement renderElement);
}
}
@@ -10,16 +10,18 @@ namespace Artemis.Core.Services
internal class RenderElementService : IRenderElementService
{
private readonly IDataModelService _dataModelService;
private readonly IDataBindingService _dataBindingService;
private readonly IKernel _kernel;
private readonly ILogger _logger;
private readonly IPluginService _pluginService;
public RenderElementService(IKernel kernel, ILogger logger, IPluginService pluginService, IDataModelService dataModelService)
public RenderElementService(IKernel kernel, ILogger logger, IPluginService pluginService, IDataModelService dataModelService, IDataBindingService dataBindingService)
{
_kernel = kernel;
_logger = logger;
_pluginService = pluginService;
_dataModelService = dataModelService;
_dataBindingService = dataBindingService;
}
public Layer CreateLayer(Profile profile, ProfileElement parent, string name)
@@ -35,6 +37,7 @@ namespace Artemis.Core.Services
InstantiateLayerBrush(layer);
InstantiateLayerEffects(layer);
InstantiateDisplayConditions(layer);
InstantiateDataBindings(layer);
return layer;
}
@@ -156,5 +159,11 @@ namespace Artemis.Core.Services
_logger.Warning(e, $"Failed to init display conditions for {renderElement}");
}
}
public void InstantiateDataBindings(RenderProfileElement renderElement)
{
foreach (var baseLayerProperty in renderElement.GetAllLayerProperties())
baseLayerProperty.InitializeDataBindings(_dataModelService, _dataBindingService);
}
}
}
@@ -299,6 +299,7 @@ namespace Artemis.Core.Services
_renderElementService.RemoveLayerEffect(layerLayerEffect);
_renderElementService.InstantiateDisplayConditions(folder);
_renderElementService.InstantiateDataBindings(folder);
}
}
@@ -324,6 +325,7 @@ namespace Artemis.Core.Services
_renderElementService.RemoveLayerEffect(layerLayerEffect);
_renderElementService.InstantiateDisplayConditions(layer);
_renderElementService.InstantiateDataBindings(layer);
}
}