- gestita abilitazione redis

- aggiunto Dictionary plugin
This commit is contained in:
Emmanuele Sassi
2024-07-31 18:39:49 +02:00
parent aff5e53493
commit 0b655aeb09
7 changed files with 69 additions and 35 deletions
+23 -11
View File
@@ -48,26 +48,31 @@ Public Class MainWindowVM
' creo gestore delle macchine a stati
m_FiniteStateMachineManager = New FiniteStateMachineManager
If GetMainPrivateProfileInt(S_REDIS, K_ENABLED, 0) = 1 Then
m_RedisManager = New RedisManager
End If
m_RedisManager = New RedisManager
Dim PluginUI As IPluginControl = GetControlByName(Of IPluginControl)("Supervisor.Plugin.FiveLakes")
ContentPanel = PluginUI
' aggiungo Dictionary del plugin
Dim PluginDictionary As IPluginControl = GetDictionary(Of IPluginControl)("Supervisor.Plugin.FiveLakes")
Application.Current.Resources.MergedDictionaries.Add(PluginDictionary)
' aggiungo MainMenu dal plugin
Dim PluginMainMenu As IPluginControl = GetControlByName(Of IPluginControl)("Supervisor.Plugin.FiveLakes", "MainMenu")
'ContentPanel = PluginMainMenu
' aggiungo Project dal plugin
Dim ProjectPlugin As IPluginControl = GetControlByName(Of IPluginControl)("Supervisor.Plugin.FiveLakes", "Project")
ContentPanel = ProjectPlugin
End Sub
#Region "Plugin"
Private m_Loader As MEFLoader = New MEFLoader()
Private Function GetPathByName(ByVal name As String) As String
'Dim PluginNameSplit() As String = name.Split("."c)
'Dim res = MainWindowM.sDataRoot & "\Plugin\" & PluginNameSplit(0)
Dim res = MainWindowM.sDataRoot & "\Plugin\" & name
Return res
Private Function GetPathByName(sPluginFileName As String) As String
Return MainWindowM.sDataRoot & "\Plugin\" & sPluginFileName
End Function
Friend Function GetControlByName(Of T)(sName As String) As Panel
Dim PlugInControl As Object = m_Loader.LoadByTag(Of T)(GetPathByName(sName), sName).FirstOrDefault()
Friend Function GetControlByName(Of T)(sPluginFileName As String, sPluginTagName As String) As Panel
Dim PlugInControl As Object = m_Loader.LoadByTag(Of T)(GetPathByName(sPluginFileName), sPluginTagName).FirstOrDefault()
Dim PluginPanel As Panel = Nothing
If PlugInControl.GetType().BaseType.FullName = GetType(Panel).FullName OrElse PlugInControl.GetType().BaseType.FullName = GetType(Grid).FullName Then
PluginPanel = TryCast(PlugInControl, Panel)
@@ -75,6 +80,13 @@ Public Class MainWindowVM
Return PluginPanel
End Function
Friend Function GetDictionary(Of T)(sPluginFileName As String) As ResourceDictionary
Dim DictionaryControl As Object = m_Loader.LoadByTag(Of T)(GetPathByName(sPluginFileName), "Dictionary").FirstOrDefault()
Dim Dictionary As ResourceDictionary = Nothing
Dictionary = TryCast(DictionaryControl, ResourceDictionary)
Return DictionaryControl
End Function
#End Region ' Plugin
End Class