diff --git a/EgtBEAMWALL.Optimizer/BTLDataWnd/BTLDataWndVM.vb b/EgtBEAMWALL.Optimizer/BTLDataWnd/BTLDataWndVM.vb
index 879ca0f6..01944709 100644
--- a/EgtBEAMWALL.Optimizer/BTLDataWnd/BTLDataWndVM.vb
+++ b/EgtBEAMWALL.Optimizer/BTLDataWnd/BTLDataWndVM.vb
@@ -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))
diff --git a/EgtBEAMWALL.Optimizer/ConfigurationPage/OnlyProdConfigurationPageV.xaml b/EgtBEAMWALL.Optimizer/ConfigurationPage/OnlyProdConfigurationPageV.xaml
index 9fc8f221..b8d0c15e 100644
--- a/EgtBEAMWALL.Optimizer/ConfigurationPage/OnlyProdConfigurationPageV.xaml
+++ b/EgtBEAMWALL.Optimizer/ConfigurationPage/OnlyProdConfigurationPageV.xaml
@@ -42,7 +42,7 @@
-
+
diff --git a/EgtBEAMWALL.Optimizer/ForcedStrategyBTL/ForcedStrategyBTLVM.vb b/EgtBEAMWALL.Optimizer/ForcedStrategyBTL/ForcedStrategyBTLVM.vb
index 531caaa4..fb29554d 100644
--- a/EgtBEAMWALL.Optimizer/ForcedStrategyBTL/ForcedStrategyBTLVM.vb
+++ b/EgtBEAMWALL.Optimizer/ForcedStrategyBTL/ForcedStrategyBTLVM.vb
@@ -128,7 +128,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))
@@ -139,7 +139,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)
diff --git a/EgtBEAMWALL.Optimizer/ForcedStrategyPanel/ForcedStrategyPanelVM.vb b/EgtBEAMWALL.Optimizer/ForcedStrategyPanel/ForcedStrategyPanelVM.vb
index 903ffff2..0e7fb9d6 100644
--- a/EgtBEAMWALL.Optimizer/ForcedStrategyPanel/ForcedStrategyPanelVM.vb
+++ b/EgtBEAMWALL.Optimizer/ForcedStrategyPanel/ForcedStrategyPanelVM.vb
@@ -132,7 +132,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))
@@ -143,7 +143,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)
diff --git a/EgtBEAMWALL.Optimizer/MachinePanel/MachinePanelVM.vb b/EgtBEAMWALL.Optimizer/MachinePanel/MachinePanelVM.vb
index 91761598..6a2a2044 100644
--- a/EgtBEAMWALL.Optimizer/MachinePanel/MachinePanelVM.vb
+++ b/EgtBEAMWALL.Optimizer/MachinePanel/MachinePanelVM.vb
@@ -8,24 +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
- CurrentMachine.InitCurrentMachine(DirectCast(value, MyMachine))
- ' 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
@@ -39,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
@@ -50,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
@@ -100,16 +122,15 @@ 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 StrategyMachineMsg As String
+ Public ReadOnly Property StrategyManagerMsg As String
Get
- Return EgtMsg(62569)
+ Return "StrategyManager" 'EgtMsg(61778)
End Get
End Property
@@ -138,8 +159,8 @@ Public Class MachinePanelVM
' Definizione comandi
Private m_cmdBeamTable As ICommand
Private m_cmdWallTable As ICommand
- Private m_cmdParameterMachine As ICommand
- Private m_cmdStrategyMachine As ICommand
+ Private m_cmdMachineParams As ICommand
+ Private m_cmdStrategyManager As ICommand
#End Region ' Fields & Properties
@@ -249,6 +270,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
@@ -270,6 +292,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
@@ -290,6 +313,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 ")
@@ -333,20 +357,22 @@ Public Class MachinePanelVM
#Region "COMMANDS"
-#Region "StrategyMachine"
+#Region "MachineParams"
- Public ReadOnly Property StrategyMachine_Command As ICommand
+ '''
+ ''' Returns a command that do Exec.
+ '''
+ Public ReadOnly Property MachineParams_Command As ICommand
Get
- If m_cmdStrategyMachine Is Nothing Then
- m_cmdStrategyMachine = New Command(AddressOf StrategyMachineVisibility)
+ If m_cmdMachineParams Is Nothing Then
+ m_cmdMachineParams = New Command(AddressOf MachineParams)
End If
- Return m_cmdStrategyMachine
+ Return m_cmdMachineParams
End Get
End Property
- Public Sub StrategyMachineVisibility()
- Map.refStrategyManagerVM.SetStrategyManager_Visibility(Visibility.Visible)
- SetMachine_Visibility(Visibility.Collapsed)
+ 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)
@@ -356,22 +382,24 @@ Public Class MachinePanelVM
'End If
End Sub
-#End Region ' StrategyMachine
+#End Region ' MachineParams
-#Region "ParameterMachine"
+#Region "StrategyManager"
- Public ReadOnly Property ParameterMachine_Command As ICommand
+ '''
+ ''' Returns a command that do Exec.
+ '''
+ Public ReadOnly Property StrategyManager_Command As ICommand
Get
- If m_cmdParameterMachine Is Nothing Then
- m_cmdParameterMachine = New Command(AddressOf ParameterMachineVisibility)
+ If m_cmdStrategyManager Is Nothing Then
+ m_cmdStrategyManager = New Command(AddressOf StrategyManager)
End If
- Return m_cmdParameterMachine
+ Return m_cmdStrategyManager
End Get
End Property
- Public Sub ParameterMachineVisibility()
- SetMachine_Visibility(Visibility.Visible)
- Map.refStrategyManagerVM.SetStrategyManager_Visibility(Visibility.Collapsed)
+ 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)
@@ -381,7 +409,7 @@ Public Class MachinePanelVM
'End If
End Sub
-#End Region ' ParameterMachine
+#End Region ' StrategyManager
#End Region ' COMMANDS
diff --git a/EgtBEAMWALL.Optimizer/MachinePanel/OnlyProdMachinePanelV.xaml b/EgtBEAMWALL.Optimizer/MachinePanel/OnlyProdMachinePanelV.xaml
index 9ce162e4..d6a18dd8 100644
--- a/EgtBEAMWALL.Optimizer/MachinePanel/OnlyProdMachinePanelV.xaml
+++ b/EgtBEAMWALL.Optimizer/MachinePanel/OnlyProdMachinePanelV.xaml
@@ -42,82 +42,26 @@
ToolTip="{Binding SetUpToolTip}"
Style="{StaticResource GeneralConfigurationToolBar_TextButton}"
Visibility="{Binding SetUp_Visibility}"/>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
diff --git a/EgtBEAMWALL.Optimizer/MainWindow/MainWindowM.vb b/EgtBEAMWALL.Optimizer/MainWindow/MainWindowM.vb
index 33c592cd..1ba7c920 100644
--- a/EgtBEAMWALL.Optimizer/MainWindow/MainWindowM.vb
+++ b/EgtBEAMWALL.Optimizer/MainWindow/MainWindowM.vb
@@ -493,32 +493,32 @@ Public Class MainWindowM
Return -1
End Function
- '''
- ''' Funzione che recupera il tipo di progetto
- '''
- '''
- 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
+ ''''
+ '''' Funzione che recupera il tipo di progetto
+ ''''
+ ''''
+ '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
'''
''' Fuzione che recupera la cartella dove salvare il file json CustomerConfig
'''
'''
- 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
'''
'''
- 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
diff --git a/EgtBEAMWALL.Optimizer/OptimizePanel/OnlyProdOptimizePanelV.xaml b/EgtBEAMWALL.Optimizer/OptimizePanel/OnlyProdOptimizePanelV.xaml
index be479f1b..da224846 100644
--- a/EgtBEAMWALL.Optimizer/OptimizePanel/OnlyProdOptimizePanelV.xaml
+++ b/EgtBEAMWALL.Optimizer/OptimizePanel/OnlyProdOptimizePanelV.xaml
@@ -14,4 +14,5 @@
Style="{StaticResource ToolBarWarehouse_Button}">
+
diff --git a/EgtBEAMWALL.Optimizer/SaveAsStrategyWnd/SaveAsStrategyVM.vb b/EgtBEAMWALL.Optimizer/SaveAsStrategyWnd/SaveAsStrategyVM.vb
index 3144e733..558528f4 100644
--- a/EgtBEAMWALL.Optimizer/SaveAsStrategyWnd/SaveAsStrategyVM.vb
+++ b/EgtBEAMWALL.Optimizer/SaveAsStrategyWnd/SaveAsStrategyVM.vb
@@ -163,7 +163,7 @@ Public Class SaveAsStrategyVM
''' Funzione che salva il file json CustomerConfig
'''
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
diff --git a/EgtBEAMWALL.Optimizer/SceneHost/MySceneHostVM.vb b/EgtBEAMWALL.Optimizer/SceneHost/MySceneHostVM.vb
index 213a74b5..6b0aed7a 100644
--- a/EgtBEAMWALL.Optimizer/SceneHost/MySceneHostVM.vb
+++ b/EgtBEAMWALL.Optimizer/SceneHost/MySceneHostVM.vb
@@ -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
diff --git a/EgtBEAMWALL.Optimizer/StrategyManager/JsonAvailableStrategyHelper.vb b/EgtBEAMWALL.Optimizer/StrategyManager/JsonAvailableStrategyHelper.vb
index 6a4e571a..1fc25d87 100644
--- a/EgtBEAMWALL.Optimizer/StrategyManager/JsonAvailableStrategyHelper.vb
+++ b/EgtBEAMWALL.Optimizer/StrategyManager/JsonAvailableStrategyHelper.vb
@@ -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
diff --git a/EgtBEAMWALL.Optimizer/StrategyManager/StrategyManagerVM.vb b/EgtBEAMWALL.Optimizer/StrategyManager/StrategyManagerVM.vb
index 80a325b7..a8478a11 100644
--- a/EgtBEAMWALL.Optimizer/StrategyManager/StrategyManagerVM.vb
+++ b/EgtBEAMWALL.Optimizer/StrategyManager/StrategyManagerVM.vb
@@ -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))
@@ -177,19 +187,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
- Update()
- 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
@@ -209,8 +220,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)))
@@ -521,11 +546,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)
@@ -560,7 +585,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
@@ -698,10 +723,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()
@@ -904,7 +931,7 @@ Public Class Strategy
'''
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