Plugin features - Added exception display

This commit is contained in:
SpoinkyNL committed 2020-11-12 19:55:13 +01:00
1 parent c146479393
commit 9452f81214
9 files changed
+69 -10

No files matched your search

@@ -29,7 +29,7 @@ namespace Artemis.UI.Shared.Input
private bool _isEnabled = true;
private string _placeholder = "Select a property";
internal DataModelDynamicViewModel(Module module, ISettingsService settingsService, IDataModelUIService dataModelUIService)
public DataModelDynamicViewModel(Module module, ISettingsService settingsService, IDataModelUIService dataModelUIService)
{
_module = module;
_dataModelUIService = dataModelUIService;
@@ -25,7 +25,7 @@ namespace Artemis.UI.Shared.Input
private object _value;
private bool _displaySwitchButton;
internal DataModelStaticViewModel(Type targetType, DataModelPropertyAttribute targetDescription, IDataModelUIService dataModelUIService)
public DataModelStaticViewModel(Type targetType, DataModelPropertyAttribute targetDescription, IDataModelUIService dataModelUIService)
{
_dataModelUIService = dataModelUIService;
_rootView = Application.Current.Windows.OfType<Window>().SingleOrDefault(x => x.IsActive);
@@ -0,0 +1,17 @@
using System;
using Artemis.Core.DataModelExpansions;
using Artemis.Core.Modules;
using Artemis.UI.Shared.Input;
namespace Artemis.UI.Shared.Ninject.Factories
{
public interface ISharedVmFactory
{
}
public interface IDataModelVmFactory : ISharedVmFactory
{
DataModelDynamicViewModel DataModelDynamicViewModel(Module module);
DataModelStaticViewModel DataModelStaticViewModel(Type targetType, DataModelPropertyAttribute targetDescription);
}
}
@@ -1,4 +1,5 @@
using System;
using Artemis.UI.Shared.Ninject.Factories;
using Artemis.UI.Shared.Services;
using MaterialDesignThemes.Wpf;
using Ninject.Extensions.Conventions;
@@ -29,6 +30,15 @@ namespace Artemis.UI.Shared.Ninject
});
Kernel.Bind<ISnackbarMessageQueue>().ToConstant(new SnackbarMessageQueue(TimeSpan.FromSeconds(5))).InSingletonScope();
// Bind UI factories
Kernel.Bind(x =>
{
x.FromThisAssembly()
.SelectAllInterfaces()
.InheritedFrom<ISharedVmFactory>()
.BindToFactory();
});
}
}
}
@@ -7,6 +7,7 @@ using Artemis.Core.Modules;
using Artemis.Core.Services;
using Artemis.UI.Shared.DefaultTypes.DataModel.Display;
using Artemis.UI.Shared.Input;
using Artemis.UI.Shared.Ninject.Factories;
using Ninject;
using Ninject.Parameters;
@@ -15,13 +16,15 @@ namespace Artemis.UI.Shared.Services
internal class DataModelUIService : IDataModelUIService
{
private readonly IDataModelService _dataModelService;
private readonly IDataModelVmFactory _dataModelVmFactory;
private readonly IKernel _kernel;
private readonly List<DataModelVisualizationRegistration> _registeredDataModelDisplays;
private readonly List<DataModelVisualizationRegistration> _registeredDataModelEditors;
public DataModelUIService(IDataModelService dataModelService, IKernel kernel)
public DataModelUIService(IDataModelService dataModelService, IDataModelVmFactory dataModelVmFactory, IKernel kernel)
{
_dataModelService = dataModelService;
_dataModelVmFactory = dataModelVmFactory;
_kernel = kernel;
_registeredDataModelEditors = new List<DataModelVisualizationRegistration>();
_registeredDataModelDisplays = new List<DataModelVisualizationRegistration>();
@@ -219,12 +222,12 @@ namespace Artemis.UI.Shared.Services
public DataModelDynamicViewModel GetDynamicSelectionViewModel(Module module)
{
return _kernel.Get<DataModelDynamicViewModel>(new ConstructorArgument("module", module));
return _dataModelVmFactory.DataModelDynamicViewModel(module);
}
public DataModelStaticViewModel GetStaticInputViewModel(Type targetType, DataModelPropertyAttribute targetDescription)
{
return _kernel.Get<DataModelStaticViewModel>(new ConstructorArgument("targetType", targetType), new ConstructorArgument("targetDescription", targetDescription));
return _dataModelVmFactory.DataModelStaticViewModel(targetType, targetDescription);
}
private DataModelInputViewModel InstantiateDataModelInputViewModel(DataModelVisualizationRegistration registration, DataModelPropertyAttribute description, object initialValue)