Data model visualization - Simplified and improved VMs

Layer conditions - Added left side property selection
This commit is contained in:
SpoinkyNL committed 2020-07-05 15:34:16 +02:00
1 parent f9d26a8ba3
commit c0f2cf08de
38 files changed
+908 -359

No files matched your search

+25 -15
View File
@@ -21,13 +21,13 @@ namespace Artemis.Core.Services
{
private readonly List<DataModel> _dataModelExpansions;
private readonly IPluginService _pluginService;
private readonly List<LayerConditionOperator> _registeredConditionOperators;
private readonly List<DisplayConditionOperator> _registeredConditionOperators;
internal DataModelService(IPluginService pluginService)
{
_pluginService = pluginService;
_dataModelExpansions = new List<DataModel>();
_registeredConditionOperators = new List<LayerConditionOperator>();
_registeredConditionOperators = new List<DisplayConditionOperator>();
_pluginService.PluginEnabled += PluginServiceOnPluginEnabled;
_pluginService.PluginDisabled += PluginServiceOnPluginDisabled;
@@ -81,40 +81,50 @@ namespace Artemis.Core.Services
return null;
}
public bool GetPluginExtendsDataModel(Plugin plugin)
{
if (plugin is Module module)
return module.InternalExpandsMainDataModel;
if (plugin is BaseDataModelExpansion)
return true;
public void RegisterConditionOperator(PluginInfo pluginInfo, LayerConditionOperator layerConditionOperator)
return false;
}
public void RegisterConditionOperator(PluginInfo pluginInfo, DisplayConditionOperator displayConditionOperator)
{
if (pluginInfo == null)
throw new ArgumentNullException(nameof(pluginInfo));
if (layerConditionOperator == null)
throw new ArgumentNullException(nameof(layerConditionOperator));
if (displayConditionOperator == null)
throw new ArgumentNullException(nameof(displayConditionOperator));
lock (_registeredConditionOperators)
{
if (_registeredConditionOperators.Contains(layerConditionOperator))
if (_registeredConditionOperators.Contains(displayConditionOperator))
return;
layerConditionOperator.Register(pluginInfo, this);
_registeredConditionOperators.Add(layerConditionOperator);
displayConditionOperator.Register(pluginInfo, this);
_registeredConditionOperators.Add(displayConditionOperator);
}
}
public void RemoveConditionOperator(LayerConditionOperator layerConditionOperator)
public void RemoveConditionOperator(DisplayConditionOperator displayConditionOperator)
{
if (layerConditionOperator == null)
throw new ArgumentNullException(nameof(layerConditionOperator));
if (displayConditionOperator == null)
throw new ArgumentNullException(nameof(displayConditionOperator));
lock (_registeredConditionOperators)
{
if (!_registeredConditionOperators.Contains(layerConditionOperator))
if (!_registeredConditionOperators.Contains(displayConditionOperator))
return;
layerConditionOperator.Unsubscribe();
_registeredConditionOperators.Remove(layerConditionOperator);
displayConditionOperator.Unsubscribe();
_registeredConditionOperators.Remove(displayConditionOperator);
}
}
public List<LayerConditionOperator> GetCompatibleConditionOperators(Type type)
public List<DisplayConditionOperator> GetCompatibleConditionOperators(Type type)
{
lock (_registeredConditionOperators)
{
@@ -29,17 +29,24 @@ namespace Artemis.Core.Services.Interfaces
/// <param name="plugin">Should be a module with a data model or a data model expansion</param>
DataModel GetPluginDataModel(Plugin plugin);
/// <summary>
/// Determines whether the given plugin expands the main data model
/// </summary>
/// <param name="plugin"></param>
/// <returns></returns>
bool GetPluginExtendsDataModel(Plugin plugin);
/// <summary>
/// Registers a new condition operator for use in layer conditions
/// </summary>
/// <param name="pluginInfo">The PluginInfo of the plugin this condition operator belongs to</param>
/// <param name="layerConditionOperator">The condition operator to register</param>
void RegisterConditionOperator([NotNull] PluginInfo pluginInfo, [NotNull] LayerConditionOperator layerConditionOperator);
/// <param name="displayConditionOperator">The condition operator to register</param>
void RegisterConditionOperator([NotNull] PluginInfo pluginInfo, [NotNull] DisplayConditionOperator displayConditionOperator);
/// <summary>
/// Removes a condition operator so it is no longer available for use in layer conditions
/// </summary>
/// <param name="layerConditionOperator">The layer condition operator to remove</param>
void RemoveConditionOperator([NotNull] LayerConditionOperator layerConditionOperator);
/// <param name="displayConditionOperator">The layer condition operator to remove</param>
void RemoveConditionOperator([NotNull] DisplayConditionOperator displayConditionOperator);
}
}