using Artemis.Core; using Artemis.UI.DataModelVisualization.Display; using Artemis.UI.DataModelVisualization.Input; using Artemis.UI.PropertyInput; using Artemis.UI.Services.Interfaces; using Artemis.UI.Shared.Services; using Artemis.UI.Shared.Services.Interfaces; namespace Artemis.UI.Services { public class RegistrationService : IRegistrationService { private readonly IDataModelUIService _dataModelUIService; private readonly IProfileEditorService _profileEditorService; private bool _registeredBuiltInDataModelDisplays; private bool _registeredBuiltInDataModelInputs; private bool _registeredBuiltInPropertyEditors; public RegistrationService(IDataModelUIService dataModelUIService, IProfileEditorService profileEditorService) { _dataModelUIService = dataModelUIService; _profileEditorService = profileEditorService; } public void RegisterBuiltInDataModelDisplays() { if (_registeredBuiltInDataModelDisplays) return; _dataModelUIService.RegisterDataModelDisplay(Constants.CorePluginInfo); _registeredBuiltInDataModelDisplays = true; } public void RegisterBuiltInDataModelInputs() { if (_registeredBuiltInDataModelInputs) return; _dataModelUIService.RegisterDataModelInput(Constants.CorePluginInfo, null); _dataModelUIService.RegisterDataModelInput(Constants.CorePluginInfo, Constants.IntegralNumberTypes); _dataModelUIService.RegisterDataModelInput(Constants.CorePluginInfo, Constants.FloatNumberTypes); _registeredBuiltInDataModelInputs = true; } public void RegisterBuiltInPropertyEditors() { if (_registeredBuiltInPropertyEditors) return; _profileEditorService.RegisterPropertyInput(Constants.CorePluginInfo); _profileEditorService.RegisterPropertyInput(Constants.CorePluginInfo); _profileEditorService.RegisterPropertyInput(Constants.CorePluginInfo); _profileEditorService.RegisterPropertyInput(Constants.CorePluginInfo); _profileEditorService.RegisterPropertyInput(Constants.CorePluginInfo); _profileEditorService.RegisterPropertyInput(Constants.CorePluginInfo); _profileEditorService.RegisterPropertyInput(Constants.CorePluginInfo); _registeredBuiltInPropertyEditors = true; } } public interface IRegistrationService : IArtemisUIService { void RegisterBuiltInDataModelDisplays(); void RegisterBuiltInDataModelInputs(); void RegisterBuiltInPropertyEditors(); } }