mirror of
https://github.com/Artemis-RGB/Artemis
synced 2026-11-11 19:36:28 +00:00
Nodes - When usting custom VMs, create a VM for each presenter
This commit is contained in:
1 parent
7422a9667d
commit
ed33d8a148
4 files changed
+48
-26
No files matched your search
@@ -83,10 +83,7 @@ namespace Artemis.Core.Services
|
||||
// ignored
|
||||
}
|
||||
}
|
||||
|
||||
if (node is CustomViewModelNode customViewModelNode)
|
||||
customViewModelNode.BaseCustomViewModel = _kernel.Get(customViewModelNode.CustomViewModelType, new ConstructorArgument("node", node));
|
||||
|
||||
|
||||
node.Initialize(script);
|
||||
return node;
|
||||
}
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
using System;
|
||||
using Ninject;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.ObjectModel;
|
||||
using Ninject.Parameters;
|
||||
|
||||
namespace Artemis.Core
|
||||
{
|
||||
@@ -149,14 +151,24 @@ namespace Artemis.Core
|
||||
|
||||
public abstract class Node<T> : CustomViewModelNode where T : ICustomNodeViewModel
|
||||
{
|
||||
[Inject]
|
||||
internal IKernel Kernel { get; set; } = null!;
|
||||
|
||||
protected Node()
|
||||
{ }
|
||||
|
||||
protected Node(string name, string description) : base(name, description)
|
||||
{ }
|
||||
|
||||
public override Type CustomViewModelType => typeof(T);
|
||||
public T CustomViewModel => (T) BaseCustomViewModel!;
|
||||
public virtual T GetViewModel()
|
||||
{
|
||||
return Kernel.Get<T>(new ConstructorArgument("node", this));
|
||||
}
|
||||
|
||||
public override ICustomNodeViewModel GetCustomViewModel()
|
||||
{
|
||||
return GetViewModel();
|
||||
}
|
||||
}
|
||||
|
||||
public abstract class CustomViewModelNode : Node
|
||||
@@ -169,7 +181,6 @@ namespace Artemis.Core
|
||||
protected CustomViewModelNode(string name, string description) : base(name, description)
|
||||
{ }
|
||||
|
||||
public abstract Type CustomViewModelType { get; }
|
||||
public object? BaseCustomViewModel { get; set; }
|
||||
public abstract ICustomNodeViewModel GetCustomViewModel();
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user