- gestita pagina configurazione macchina

- migliorato caricamento strategie
This commit is contained in:
Emmanuele Sassi
2025-09-18 12:59:57 +02:00
parent 47d8ec273e
commit c986f46861
12 changed files with 192 additions and 95 deletions
@@ -519,7 +519,7 @@ Public Class BTLDataWndVM
Sub New(nProjId As Integer)
' leggo cartella dei setup delle strategie
Dim AISetupDirPath As String = Map.refMainWindowVM.MainWindowM.GetAISetupDirPath(ProjectManagerVM.CurrProd.nType)
Dim AISetupDirPath As String = Map.refMainWindowVM.MainWindowM.GetAISetupDirPath(ProjectManagerVM.CurrProd.nType, True)
Dim AISetupPaths As String() = Directory.GetFiles(AISetupDirPath)
For Each AiSetup In AISetupPaths
m_StrategySetupList.Add(Path.GetFileNameWithoutExtension(AiSetup))
@@ -42,7 +42,7 @@
</StackPanel>
</TabItem.Header>
<TabItem.Content>
<EgtBEAMWALL:OnlyProdMachine_ConfigurationPageV/>
<EgtBEAMWALL:OnlyProdMachinePanelV DataContext="{Binding MachinePanelVM}"/>
</TabItem.Content>
</TabItem>
<TabItem>
@@ -104,7 +104,7 @@ Public Class ForcedStrategyBTLVM
End If
If IsNothing(JsonAvailableTopology) Then Return False
m_StrategyList = New ObservableCollection(Of Strategy)((From JsonAvailableStrategy In JsonAvailableTopology.StrategyList
Select JsonAvailableStrategy.Deserialize(-1)).ToList())
Select JsonAvailableStrategy.Deserialize(ProjectManagerVM.CurrProd.nType, -1)).ToList())
End If
' recupero custom
Dim nPartId As Integer = EgtGetParent(EgtGetParent(nFeatureId))
@@ -115,7 +115,7 @@ Public Class ForcedStrategyBTLVM
EgtGetInfo(nBTLInfoLayerId, "AISETUP", sStrategySetupName)
If Not String.IsNullOrWhiteSpace(sStrategySetupName) Then
' carico custom
Dim sAISetupDirPath As String = Map.refMainWindowVM.MainWindowM.GetAISetupDirPath(ProjectManagerVM.CurrProd.nType)
Dim sAISetupDirPath As String = Map.refMainWindowVM.MainWindowM.GetAISetupDirPath(ProjectManagerVM.CurrProd.nType, True)
Dim sStrategyConfigurationFilePath As String = sAISetupDirPath & "\" & sStrategySetupName & ".json"
If File.Exists(sStrategyConfigurationFilePath) Then
Dim sReadedFile As String = File.ReadAllText(sStrategyConfigurationFilePath)
@@ -104,7 +104,7 @@ Public Class ForcedStrategyPanelVM
End If
If IsNothing(JsonAvailableTopology) Then Return False
m_StrategyList = New ObservableCollection(Of Strategy)((From JsonAvailableStrategy In JsonAvailableTopology.StrategyList
Select JsonAvailableStrategy.Deserialize(-1)).ToList())
Select JsonAvailableStrategy.Deserialize(ProjectManagerVM.CurrProd.nType, -1)).ToList())
End If
' recupero custom
Dim nPartId As Integer = EgtGetParent(EgtGetParent(nFeatureId))
@@ -115,7 +115,7 @@ Public Class ForcedStrategyPanelVM
EgtGetInfo(nBTLInfoLayerId, "AISETUP", sStrategySetupName)
If Not String.IsNullOrWhiteSpace(sStrategySetupName) Then
' carico custom
Dim sAISetupDirPath As String = Map.refMainWindowVM.MainWindowM.GetAISetupDirPath(ProjectManagerVM.CurrProd.nType)
Dim sAISetupDirPath As String = Map.refMainWindowVM.MainWindowM.GetAISetupDirPath(ProjectManagerVM.CurrProd.nType, True)
Dim sStrategyConfigurationFilePath As String = sAISetupDirPath & "\" & sStrategySetupName & ".json"
If File.Exists(sStrategyConfigurationFilePath) Then
Dim sReadedFile As String = File.ReadAllText(sStrategyConfigurationFilePath)
@@ -8,23 +8,32 @@ Public Class MachinePanelVM
#Region "FIELDS & PROPERTIES"
Private Enum ConfigTabs As Integer
EMPTY = 0
STRATEGYMANAGER = 1
MACHINEPARAMS = 2
End Enum
' Radice del direttorio delle macchine
Private m_sMachinesRoot As String
' Macchina correntemente selezionata e quindi attiva
Private m_SelectedMachine As Machine = Nothing
Public Overrides Property SelectedMachine As Machine
Public Shadows Property SelectedMachine As MyMachine
Get
Return m_SelectedMachine
End Get
Set(value As Machine)
Set(value As MyMachine)
If value IsNot m_SelectedMachine Then
' imposto macchina in DbGeometrico
If Not IsNothing(value) AndAlso EgtSetCurrMachine(value.Name) Then
m_SelectedMachine = value
' crea l'elenco dei parametri della macchina corrente
SelectedMachine.CreateMachParams()
' aggiorno lista strategie
Map.refStrategyManagerVM.Update()
End If
' crea l'elenco dei parametri della macchina corrente
DirectCast(value, MyMachine).CreateMachParams()
NotifyPropertyChanged(NameOf(SelectedMachine))
' Salvo impostazione macchina corrente
' SaveCurrentMachine()
' inizializzo la macchina selezionata come macchina corrente
@@ -38,6 +47,20 @@ Public Class MachinePanelVM
End Set
End Property
Private m_nSelTab As ConfigTabs
Public Property nSelTab As Integer
Get
Return m_nSelTab
End Get
Set(value As Integer)
m_nSelTab = value
End Set
End Property
Private Sub SetSelTab(nValue As ConfigTabs)
m_nSelTab = nValue
NotifyPropertyChanged(NameOf(nSelTab))
End Sub
Private m_MachPanel_IsEnabled As Boolean = True
Public Property MachPanel_IsEnabled As Boolean
Get
@@ -49,19 +72,19 @@ Public Class MachinePanelVM
End Set
End Property
Private m_BeamTable_Visibility As Visibility
Public ReadOnly Property BeamTable_Visibility As Visibility
Get
Return m_BeamTable_Visibility
End Get
End Property
'Private m_BeamTable_Visibility As Visibility
'Public ReadOnly Property BeamTable_Visibility As Visibility
' Get
' Return m_BeamTable_Visibility
' End Get
'End Property
Private m_WallTable_Visibility As Visibility
Public ReadOnly Property WallTable_Visibility As Visibility
Get
Return m_WallTable_Visibility
End Get
End Property
'Private m_WallTable_Visibility As Visibility
'Public ReadOnly Property WallTable_Visibility As Visibility
' Get
' Return m_WallTable_Visibility
' End Get
'End Property
Public ReadOnly Property SetUp_Visibility As Visibility
Get
@@ -86,11 +109,16 @@ Public Class MachinePanelVM
Return EgtMsg(90933)
End Get
End Property
Public ReadOnly Property ParameterMachineMsg As String
Public ReadOnly Property MachineParamsMsg As String
Get
Return EgtMsg(61778)
End Get
End Property
Public ReadOnly Property StrategyManagerMsg As String
Get
Return "StrategyManager" 'EgtMsg(61778)
End Get
End Property
#End Region ' Messages
@@ -117,7 +145,8 @@ Public Class MachinePanelVM
' Definizione comandi
Private m_cmdBeamTable As ICommand
Private m_cmdWallTable As ICommand
Private m_cmdParameterMachine As ICommand
Private m_cmdMachineParams As ICommand
Private m_cmdStrategyManager As ICommand
#End Region 'FIELDS & PROPERTIES
@@ -227,6 +256,7 @@ Public Class MachinePanelVM
End Function
Public Overrides Sub ToolDb(ByVal param As Object)
SetSelTab(ConfigTabs.EMPTY)
If Not VerifyMachinesDir(m_sMachinesRoot) Then Return
' ricarico il database per intercettare eventuali aggiornamenti fatti da altre istanze del programma (se la cartella Machines è condivisa)
If Not EgtTdbReload() Then
@@ -248,6 +278,7 @@ Public Class MachinePanelVM
End Sub
Public Overrides Sub MachDb(ByVal param As Object)
SetSelTab(ConfigTabs.EMPTY)
If Not VerifyMachinesDir(m_sMachinesRoot) Then Return
' ricarico il database per intercettare eventuali aggiornamenti fatti da altre istanze del programma (se la cartella Machines è condivisa)
If Not EgtMdbReload() Then
@@ -268,6 +299,7 @@ Public Class MachinePanelVM
End Sub
Public Overrides Sub SetUp(ByVal param As Object)
SetSelTab(ConfigTabs.EMPTY)
' verifico che il file di configurazione attrezzaggio (lua) della macchina esista
If Not File.Exists(CurrentMachine.sMachDir & "\Scripts\" & SETUP_LUA) Then
EgtOutLog("SetUp error: SetUp configuration file doesn't exist ")
@@ -312,31 +344,59 @@ Public Class MachinePanelVM
#Region "COMMANDS"
#Region "ParameterMachine"
#Region "MachineParams"
''' <summary>
''' Returns a command that do Exec.
''' </summary>
Public ReadOnly Property ParameterMachine_Command As ICommand
Public ReadOnly Property MachineParams_Command As ICommand
Get
If m_cmdParameterMachine Is Nothing Then
m_cmdParameterMachine = New Command(AddressOf ParameterMachineVisibility)
If m_cmdMachineParams Is Nothing Then
m_cmdMachineParams = New Command(AddressOf MachineParams)
End If
Return m_cmdParameterMachine
Return m_cmdMachineParams
End Get
End Property
Public Sub ParameterMachineVisibility()
If Map.refConfigurationPageVM.m_MachineParameter_Visibility Then
Map.refConfigurationPageVM.SetMachineParameter_Visibility(Visibility.Visible)
Map.refConfigurationPageVM.SetMachine_Visibility(Visibility.Visible)
Else
Map.refConfigurationPageVM.SetMachineParameter_Visibility(Visibility.Collapsed)
Map.refConfigurationPageVM.SetMachine_Visibility(Visibility.Collapsed)
End If
Public Sub MachineParams()
SetSelTab(ConfigTabs.MACHINEPARAMS)
'If Map.refConfigurationPageVM.m_MachineParameter_Visibility Then
' Map.refConfigurationPageVM.SetMachineParameter_Visibility(Visibility.Visible)
' Map.refConfigurationPageVM.SetMachine_Visibility(Visibility.Visible)
'Else
' Map.refConfigurationPageVM.SetMachineParameter_Visibility(Visibility.Collapsed)
' Map.refConfigurationPageVM.SetMachine_Visibility(Visibility.Collapsed)
'End If
End Sub
#End Region ' ParameterMachine
#End Region ' MachineParams
#Region "StrategyManager"
''' <summary>
''' Returns a command that do Exec.
''' </summary>
Public ReadOnly Property StrategyManager_Command As ICommand
Get
If m_cmdStrategyManager Is Nothing Then
m_cmdStrategyManager = New Command(AddressOf StrategyManager)
End If
Return m_cmdStrategyManager
End Get
End Property
Public Sub StrategyManager()
SetSelTab(ConfigTabs.STRATEGYMANAGER)
'If Map.refConfigurationPageVM.m_MachineParameter_Visibility Then
' Map.refConfigurationPageVM.SetMachineParameter_Visibility(Visibility.Visible)
' Map.refConfigurationPageVM.SetMachine_Visibility(Visibility.Visible)
'Else
' Map.refConfigurationPageVM.SetMachineParameter_Visibility(Visibility.Collapsed)
' Map.refConfigurationPageVM.SetMachine_Visibility(Visibility.Collapsed)
'End If
End Sub
#End Region ' StrategyManager
#End Region ' COMMANDS
@@ -42,19 +42,24 @@
ToolTip="{Binding SetUpToolTip}"
Style="{StaticResource GeneralConfigurationToolBar_TextButton}"
Visibility="{Binding SetUp_Visibility}"/>
<Button Content="{Binding ParameterMachineMsg}"
<Button Content="{Binding StrategyManagerMsg}"
ToolTip="{Binding ParameterMachineMsg}"
Command="{Binding StrategyMachine_Command}"
Command="{Binding StrategyManager_Command}"
Style="{StaticResource MachineToolBar_ParameterMachineButton}" Width="140"/>
<Button Content="{Binding ParameterMachineMsg}"
ToolTip="{Binding ParameterMachineMsg}"
Command="{Binding ParameterMachine_Command}"
Command="{Binding MachineParams_Command}"
Style="{StaticResource MachineToolBar_ParameterMachineButton}" Width="140"/>
</StackPanel>
</Grid>
<TabControl Grid.Row="1"
SelectedIndex="{Binding SelMachineConfigurationPage}">
SelectedIndex="{Binding nSelTab}">
<TabControl.ItemContainerStyle>
<Style TargetType="{x:Type TabItem}">
<Setter Property="Visibility" Value="Collapsed"/>
</Style>
</TabControl.ItemContainerStyle>
<TabItem Header="EMPTY">
</TabItem>
<TabItem Header="STRATEGIES">
+28 -26
View File
@@ -493,32 +493,32 @@ Public Class MainWindowM
Return -1
End Function
''' <summary>
''' Funzione che recupera il tipo di progetto
''' </summary>
''' <returns></returns>
Private Function GetProdType() As BWType
' Recupero CurrProd
Dim currProd As Integer = GetCurrProd()
ProjectManagerVM.SetCurrProd(currProd)
If Not IsNothing(ProjectManagerVM.CurrProd) Then
Return ProjectManagerVM.CurrProd.nType
Else
Return BWType.NULL
End If
End Function
'''' <summary>
'''' Funzione che recupera il tipo di progetto
'''' </summary>
'''' <returns></returns>
'Private Function GetProdType() As BWType
' ' Recupero CurrProd
' Dim currProd As Integer = GetCurrProd()
' ProjectManagerVM.SetCurrProd(currProd)
' If Not IsNothing(ProjectManagerVM.CurrProd) Then
' Return ProjectManagerVM.CurrProd.nType
' Else
' Return BWType.NULL
' End If
'End Function
''' <summary>
''' Fuzione che recupera la cartella dove salvare il file json CustomerConfig
''' </summary>
''' <returns></returns>
Friend Function GetAISetupDirPath(StrategyType As BWType) As String
Friend Function GetAISetupDirPath(StrategyType As BWType, bProdPage As Boolean) As String
' Percorso SetUpDir
Dim sAISetUpDir As String = String.Empty
If StrategyType = BWType.BEAM Then
sAISetUpDir = sMachinesRoot & "\" & CurrentMachine.sMachineName & "\" & BEAM_DIR & "\" & AISETUP_DIR
sAISetUpDir = sMachinesRoot & "\" & If(bProdPage, CurrentMachine.sMachineName, Map.refMachinePanelVM.SelectedMachine.Name) & "\" & BEAM_DIR & "\" & AISETUP_DIR
ElseIf StrategyType = BWType.WALL Then
sAISetUpDir = sMachinesRoot & "\" & CurrentMachine.sMachineName & "\" & WALL_DIR & "\" & AISETUP_DIR
sAISetUpDir = sMachinesRoot & "\" & If(bProdPage, CurrentMachine.sMachineName, Map.refMachinePanelVM.SelectedMachine.Name) & "\" & WALL_DIR & "\" & AISETUP_DIR
End If
' Controllo se la cartella AISetup è presente
If Not Directory.Exists(sAISetUpDir) Then
@@ -545,15 +545,17 @@ Public Class MainWindowM
''' Funzione che recupera il percorso della cartella Standard
''' </summary>
''' <returns></returns>
Friend Function GetStandardDirPath() As String
' Recupero tipo progetto
Dim nProdType As BWType = GetProdType()
If nProdType = BWType.BEAM Then
Return sBeamRoot & "\" & STRATEGIES_DIR & "\" & STANDARD_DIR
ElseIf nProdType = BWType.WALL Then
Return sWallRoot & "\" & STRATEGIES_DIR & "\" & STANDARD_DIR
End If
Return String.Empty
Friend Function GetStandardDirPath(StrategyType As BWType) As String
Return GetStrategiesDirPath(StrategyType) & "\" & STANDARD_DIR
'' Recupero tipo progetto
'Dim nProdType As BWType = GetProdType()
'If nProdType = BWType.BEAM Then
' Return sBeamRoot & "\" & STRATEGIES_DIR & "\" & STANDARD_DIR
'ElseIf nProdType = BWType.WALL Then
' Return sWallRoot & "\" & STRATEGIES_DIR & "\" & STANDARD_DIR
'End If
'Return String.Empty
End Function
#End Region ' METHODS
@@ -14,4 +14,5 @@
Style="{StaticResource ToolBarWarehouse_Button}">
<Image Source="/Resources/OptimizePanel/Warehouse.png" Stretch="Uniform"/>
</Button>
</StackPanel>
@@ -163,7 +163,7 @@ Public Class SaveAsStrategyVM
''' Funzione che salva il file json CustomerConfig
''' </summary>
Public Sub SaveAs()
Dim sAISetupDirPath As String = Map.refMainWindowVM.MainWindowM.GetAISetupDirPath(ProjectManagerVM.CurrProd.nType)
Dim sAISetupDirPath As String = Map.refMainWindowVM.MainWindowM.GetAISetupDirPath(ProjectManagerVM.CurrProd.nType, False)
Dim sStrategyConfigurationFilePath As String = sAISetupDirPath & "\" & sFileNameCustomConfig & ".json"
Dim Strategy As New StrategySetup(sFileNameCustomConfig)
Map.refStrategyManagerVM.SelStrategySetup = Strategy
@@ -73,8 +73,8 @@ Public Class MySceneHostVM
EgtInitBeamMgr(EIB_FL.TS3_POS + EIB_FL.USEUATTR)
' inizializzo gestore lavorazioni
EgtInitMachMgr(Map.refMainWindowVM.MainWindowM.sMachinesRoot, Map.refMainWindowVM.MainWindowM.sToolMakersDir)
' Seleziono la macchina impostata nel file ini
Map.refMachinePanelVM.LoadCurrentMachine()
'' Seleziono la macchina impostata nel file ini
'Map.refMachinePanelVM.LoadCurrentMachine()
Return
End If
' Problemi
@@ -3,6 +3,7 @@ Imports EgtUILib
Imports Newtonsoft.Json
Imports System.Collections.ObjectModel
Imports System.IO
Imports EgtBEAMWALL.Core.ConstBeam
'----------- Classe che fa riferimento alle Feature del file Json -----------
Public Class JsonAvailableStrategyFeature
@@ -74,12 +75,12 @@ Public Class JsonAvailableStrategyFeature
Next
End Sub
Friend Function Deserialize() As StrategyFeature
Friend Function Deserialize(StrategyType As BWType) As StrategyFeature
Dim StrategyFeature As New StrategyFeature() With {.sName = m_sName,
.nPrc = m_nPrc,
.nGrp = m_nGrp}
For Each Topology In TopologyList
StrategyFeature.TopologyList.Add(Topology.Deserialize())
StrategyFeature.TopologyList.Add(Topology.Deserialize(StrategyType))
Next
Return StrategyFeature
End Function
@@ -134,10 +135,10 @@ Public Class JsonAvailableTopology
#End Region ' Constructor
Friend Function Deserialize() As Topology
Friend Function Deserialize(StrategyType As BWType) As Topology
Dim Topology As New Topology() With {.sName = m_sName}
For StrategyIndex = 0 To StrategyList.Count - 1
Topology.StrategyList.Add(StrategyList(StrategyIndex).Deserialize(StrategyIndex))
Topology.StrategyList.Add(StrategyList(StrategyIndex).Deserialize(StrategyType, StrategyIndex))
Next
Topology.CreateStrategyViews()
Return Topology
@@ -177,11 +178,11 @@ Public Class JsonAvailableStrategy
#End Region ' Constructor
Friend Function Deserialize(StrategyIndex As Integer) As Strategy
Friend Function Deserialize(StrategyType As BWType, StrategyIndex As Integer) As Strategy
Dim Strategy As New Strategy() With {.sStrategyId = m_sStrategyId,
.nIndexInList = StrategyIndex}
' Recupero file StrategyJson
Dim StrategyPath As String = Map.refMainWindowVM.MainWindowM.GetStandardDirPath() & "\" & sStrategyId & "\" & sStrategyId & ".json"
Dim StrategyPath As String = Map.refMainWindowVM.MainWindowM.GetStandardDirPath(StrategyType) & "\" & sStrategyId & "\" & sStrategyId & ".json"
' Controllo se il file esiste
If Not File.Exists(StrategyPath) Then
EgtOutLog("Error! Strategy file not found! " & m_sStrategyId)
@@ -190,7 +191,7 @@ Public Class JsonAvailableStrategy
Dim StrategyJson As String = File.ReadAllText(StrategyPath)
Dim strategyConfig As JsonDefaultStrategy = JsonConvert.DeserializeObject(Of JsonDefaultStrategy)(StrategyJson)
Strategy.sStrategyName = strategyConfig.sStrategyName
Dim sImagePath As String = Map.refMainWindowVM.MainWindowM.GetStandardDirPath() & "\" & sStrategyId & "\" & sStrategyId & ".png"
Dim sImagePath As String = Map.refMainWindowVM.MainWindowM.GetStandardDirPath(StrategyType) & "\" & sStrategyId & "\" & sStrategyId & ".png"
If File.Exists(sImagePath) Then
Strategy.sStrategyImagePath = sImagePath
End If
@@ -26,6 +26,11 @@ Public Class StrategyManagerVM
End Get
Set(value As IdNameStruct)
m_SelStrategyType = value
' deseleziono eventuale strategia selezionata
If Not IsNothing(m_SelTreeItem) Then
m_SelTreeItem.IsSelected = False
'SelTreeItem = Nothing
End If
End Set
End Property
@@ -42,6 +47,11 @@ Public Class StrategyManagerVM
Return m_SelStrategySetup
End Get
Set(value As StrategySetup)
' deseleziono eventuale strategia precedentemente selezionata
If Not IsNothing(m_SelTreeItem) Then
m_SelTreeItem.IsSelected = False
'SelTreeItem = Nothing
End If
m_SelStrategySetup = value
m_SelStrategySetup.Read()
NotifyPropertyChanged(NameOf(SelStrategySetup))
@@ -167,18 +177,20 @@ Public Class StrategyManagerVM
Sub New()
' Setto riferimento
Map.SetRefStrategyManagerVM(Me)
' imposto Type a primo della lista per default
Select Case CurrentMachine.nType
Case MachineType.BEAM
m_SelStrategyType = m_StrategyTypeList.FirstOrDefault(Function(x) x.Id = BWType.BEAM)
Case MachineType.WALL
m_SelStrategyType = m_StrategyTypeList.FirstOrDefault(Function(x) x.Id = BWType.WALL)
Case MachineType.BOTH
m_SelStrategyType = m_StrategyTypeList.FirstOrDefault(Function(x) x.Id = BWType.BEAM)
End Select
NotifyPropertyChanged(NameOf(StrategyType_Visibility))
'' imposto Type a primo della lista per default
'Select Case CurrentMachine.nType
' Case MachineType.BEAM
' m_SelStrategyType = m_StrategyTypeList.FirstOrDefault(Function(x) x.Id = BWType.BEAM)
' Case MachineType.WALL
' m_SelStrategyType = m_StrategyTypeList.FirstOrDefault(Function(x) x.Id = BWType.WALL)
' Case MachineType.BOTH
' m_SelStrategyType = m_StrategyTypeList.FirstOrDefault(Function(x) x.Id = BWType.BEAM)
'End Select
'NotifyPropertyChanged(NameOf(StrategyType_Visibility))
' Assegno riferimento funzione per aggiornare elemento selezionato dall'albero
Topology.refUpdateSelTreeItem = AddressOf UpdateSelTreeItem
'' aggiorno liste
'Update()
End Sub
#End Region ' Constructor
@@ -198,8 +210,22 @@ Public Class StrategyManagerVM
End Sub
Friend Sub Update()
' imposto Type a primo della lista per default
Select Case Map.refMachinePanelVM.SelectedMachine.nType
Case MachineType.BEAM
m_SelStrategyType = m_StrategyTypeList.FirstOrDefault(Function(x) x.Id = BWType.BEAM)
Case MachineType.WALL
m_SelStrategyType = m_StrategyTypeList.FirstOrDefault(Function(x) x.Id = BWType.WALL)
Case MachineType.BOTH
If Not IsNothing(ProjectManagerVM.CurrProd) Then
m_SelStrategyType = m_StrategyTypeList.FirstOrDefault(Function(x) x.Id = ProjectManagerVM.CurrProd.nType)
Else
m_SelStrategyType = m_StrategyTypeList.FirstOrDefault(Function(x) x.Id = BWType.BEAM)
End If
End Select
NotifyPropertyChanged(NameOf(StrategyType_Visibility))
' leggo cartella dei setup delle strategie
Dim AISetupDirPath As String = Map.refMainWindowVM.MainWindowM.GetAISetupDirPath(SelStrategyType.Id)
Dim AISetupDirPath As String = Map.refMainWindowVM.MainWindowM.GetAISetupDirPath(SelStrategyType.Id, False)
Dim AISetupPaths As String() = Directory.GetFiles(AISetupDirPath)
For Each AiSetup In AISetupPaths
m_StrategySetupList.Add(New StrategySetup(Path.GetFileNameWithoutExtension(AiSetup)))
@@ -510,11 +536,11 @@ Public Class StrategySetup
Dim sReadedFile As String = File.ReadAllText(sAvailableStrategiesFilePath)
Dim JsonStrategyFeatureList As List(Of JsonAvailableStrategyFeature) = JsonConvert.DeserializeObject(Of List(Of JsonAvailableStrategyFeature))(sReadedFile)
m_StrategyFeatureList = New ObservableCollection(Of StrategyFeature)((From JsonStrategyFeature In JsonStrategyFeatureList
Select JsonStrategyFeature.Deserialize()).ToList())
Select JsonStrategyFeature.Deserialize(Map.refStrategyManagerVM.SelStrategyType.Id)).ToList())
End If
' carico custom
Dim sAISetupDirPath As String = Map.refMainWindowVM.MainWindowM.GetAISetupDirPath(Map.refStrategyManagerVM.SelStrategyType.Id)
Dim sAISetupDirPath As String = Map.refMainWindowVM.MainWindowM.GetAISetupDirPath(Map.refStrategyManagerVM.SelStrategyType.Id, False)
Dim sStrategyConfigurationFilePath As String = sAISetupDirPath & "\" & sName & ".json"
If File.Exists(sStrategyConfigurationFilePath) Then
Dim sReadedFile As String = File.ReadAllText(sStrategyConfigurationFilePath)
@@ -549,7 +575,7 @@ Public Class StrategySetup
JsonFromStrategyManager.Add(StrategyFeature.Serialize())
Next
Dim JsonFromStrategy As String = JsonConvert.SerializeObject(JsonFromStrategyManager, Formatting.Indented)
Dim sAISetupDirPath As String = Map.refMainWindowVM.MainWindowM.GetAISetupDirPath(Map.refStrategyManagerVM.SelStrategyType.Id)
Dim sAISetupDirPath As String = Map.refMainWindowVM.MainWindowM.GetAISetupDirPath(Map.refStrategyManagerVM.SelStrategyType.Id, False)
Dim sStrategyConfigurationFilePath As String = sAISetupDirPath & "\" & sName & ".json"
File.WriteAllText(sStrategyConfigurationFilePath, JsonFromStrategy)
End Sub
@@ -687,10 +713,12 @@ Public Class Topology
End Get
Set(value As Boolean)
m_bIsSelected = value
refUpdateSelTreeItem(Me)
If Not value Then
If value Then
refUpdateSelTreeItem(Me)
Else
SelActiveStrategy = Nothing
SelAvailableStrategy = Nothing
m_StrategyList.Clear()
End If
m_AvailableStrategyList_View.Refresh()
m_ActiveStrategyList_View.Refresh()
@@ -896,7 +924,7 @@ Public Class Strategy
''' </summary>
Friend Sub ReadConfigurationStrategyJson()
' Recupero file StrategyJson
Dim StrategyPath As String = Map.refMainWindowVM.MainWindowM.GetStandardDirPath() & "\" & sStrategyId & "\" & sStrategyId & ".json"
Dim StrategyPath As String = Map.refMainWindowVM.MainWindowM.GetStandardDirPath(Map.refStrategyManagerVM.SelStrategyType.Id) & "\" & sStrategyId & "\" & sStrategyId & ".json"
' Controllo se il file esiste
If Not File.Exists(StrategyPath) Then Return
' Leggo il contenuto del file JSON e deserializzo