7b4f8529c3
-cambiato gestione SetVisibility -aggiunto su veriifica singolo pezzo disabilita intera riga
276 lines
13 KiB
VB.net
276 lines
13 KiB
VB.net
Imports System.Collections.ObjectModel
|
|
Imports System.IO
|
|
Imports EgtBEAMWALL.Core
|
|
Imports EgtBEAMWALL.Optimizer.MainMenuVM
|
|
Imports EgtUILib
|
|
Imports EgtWPFLib5
|
|
Imports Newtonsoft.Json
|
|
|
|
Public Class GeneralParametersWndVM
|
|
Inherits VMBase
|
|
|
|
#Region "FIELDS & PROPERTIES"
|
|
|
|
Private PADLOCK_IMAGE As String = "pack://application:,,,/Resources/NewPage/padlock.png"
|
|
|
|
Friend Event m_CloseWindow(bDialogResult As Boolean)
|
|
|
|
Private m_GeneralParametersList As New ObservableCollection(Of ProjectParameters)
|
|
Public Property GeneralParametersList As ObservableCollection(Of ProjectParameters)
|
|
Get
|
|
Return m_GeneralParametersList
|
|
End Get
|
|
Set(value As ObservableCollection(Of ProjectParameters))
|
|
m_GeneralParametersList = value
|
|
NotifyPropertyChanged(NameOf(GeneralParametersList))
|
|
End Set
|
|
End Property
|
|
|
|
Private m_bSaveGeneralParameters As Boolean
|
|
Public Property bSaveGeneralParameters As Boolean
|
|
Get
|
|
Return m_bSaveGeneralParameters
|
|
End Get
|
|
Set(value As Boolean)
|
|
m_bSaveGeneralParameters = value
|
|
If m_bSaveGeneralParameters Then
|
|
SetGeneralParametersIsEnable(True)
|
|
Else
|
|
SetGeneralParametersIsEnable(False)
|
|
Dim sStrategiesDirPath As String = Map.refMainWindowVM.MainWindowM.GetStrategiesDirPath(Map.refStrategyManagerVM.SelStrategyType.Id)
|
|
Dim sGeneralParametersFilePath As String = sStrategiesDirPath & "\" & GENERALPARAMETERS_FILE & ".json"
|
|
If File.Exists(sGeneralParametersFilePath) Then
|
|
Dim sReadedFiles As String = File.ReadAllText(sGeneralParametersFilePath)
|
|
Dim JsonGeneralParametersList As List(Of JsonGeneralParameters) = JsonConvert.DeserializeObject(Of List(Of JsonGeneralParameters))(sReadedFiles)
|
|
m_GeneralParametersList = New ObservableCollection(Of ProjectParameters)((From JsonGeneralParameter In JsonGeneralParametersList
|
|
Select JsonGeneralParameter.Deserialize(Map.refStrategyManagerVM.SelStrategyType.Id)).ToList())
|
|
End If
|
|
End If
|
|
NotifyPropertyChanged(NameOf(bSaveGeneralParameters))
|
|
End Set
|
|
End Property
|
|
Friend Sub SetbSaveGeneralParameters(value As Boolean)
|
|
m_bSaveGeneralParameters = value
|
|
NotifyPropertyChanged(NameOf(bSaveGeneralParameters))
|
|
End Sub
|
|
|
|
Private m_GeneralParametersIsEnable As Boolean = False
|
|
Public ReadOnly Property GeneralParametersIsEnable As Boolean
|
|
Get
|
|
Return m_GeneralParametersIsEnable
|
|
End Get
|
|
End Property
|
|
Friend Sub SetGeneralParametersIsEnable(value As Boolean)
|
|
m_GeneralParametersIsEnable = value
|
|
NotifyPropertyChanged(NameOf(GeneralParametersIsEnable))
|
|
End Sub
|
|
|
|
Private m_StrategySetupList As New ObservableCollection(Of String)
|
|
Public ReadOnly Property StrategySetupList As ObservableCollection(Of String)
|
|
Get
|
|
Return m_StrategySetupList
|
|
End Get
|
|
End Property
|
|
|
|
Private m_SelStrategySetup As String
|
|
Public Property SelStrategySetup As String
|
|
Get
|
|
Return m_SelStrategySetup
|
|
End Get
|
|
Set(value As String)
|
|
m_SelStrategySetup = value
|
|
NotifyPropertyChanged(NameOf(SelStrategySetup))
|
|
End Set
|
|
End Property
|
|
|
|
' Definizione Comandi
|
|
Private m_cmdOk_Command As ICommand
|
|
|
|
#End Region ' Fields & Properties
|
|
|
|
#Region "CONSTRUCTOR"
|
|
|
|
Sub New(nType As BWType)
|
|
' leggo cartella dei setup delle strategie
|
|
Dim AISetupDirPath As String = Map.refMainWindowVM.MainWindowM.GetAISetupDirPath(nType, True)
|
|
Dim AISetupPaths As String() = Directory.GetFiles(AISetupDirPath).Where(Function(f) Path.GetExtension(f).ToLower() <> ".ini").ToArray()
|
|
For Each AiSetup In AISetupPaths
|
|
m_StrategySetupList.Add(Path.GetFileNameWithoutExtension(AiSetup))
|
|
Next
|
|
|
|
Dim sStrategiesDirPath As String = Map.refMainWindowVM.MainWindowM.GetStrategiesDirPath(nType)
|
|
Dim sGeneralParametersFilePath As String = sStrategiesDirPath & "\" & GENERALPARAMETERS_FILE & ".json"
|
|
If File.Exists(sGeneralParametersFilePath) Then
|
|
Dim sReadedFiles As String = File.ReadAllText(sGeneralParametersFilePath)
|
|
Dim JsonGeneralParametersList As List(Of JsonGeneralParameters) = JsonConvert.DeserializeObject(Of List(Of JsonGeneralParameters))(sReadedFiles)
|
|
m_GeneralParametersList = New ObservableCollection(Of ProjectParameters)((From JsonGeneralParameter In JsonGeneralParametersList
|
|
Select JsonGeneralParameter.Deserialize(Map.refStrategyManagerVM.SelStrategyType.Id)).ToList())
|
|
For Each GenericItem As ProjectParameters In m_GeneralParametersList
|
|
Select Case GenericItem.sMinUserLevel
|
|
Case UserLevel.ADVANCED
|
|
Map.refMainMenuVM.UserLevelGenericVisibility(GenericItem, If(Map.refMainMenuVM.UserAdmin_IsChecked, True, False))
|
|
Case UserLevel.ADMINISTRATOR
|
|
Map.refMainMenuVM.UserLevelGenericVisibility(GenericItem, If(Map.refMainMenuVM.UnlockAllIsChecked, True, False))
|
|
Case Else
|
|
If Not Map.refMainMenuVM.UserAdmin_IsChecked Then
|
|
Map.refMainMenuVM.UserLevelGenericVisibility(GenericItem, If(GenericItem.sMinUserLevel = UserLevel.USER, True, False))
|
|
Map.refMainMenuVM.SetUnloackImage(PADLOCK_IMAGE)
|
|
End If
|
|
End Select
|
|
Next
|
|
NotifyPropertyChanged(NameOf(GeneralParametersList))
|
|
End If
|
|
|
|
' Leggo info se presenti
|
|
Dim nBTLInfoLayerId As Integer = EgtGetFirstNameInGroup(GDB_ID.ROOT, PROJECTINFO)
|
|
' leggo file default config
|
|
Map.refMainWindowVM.MainWindowM.GetDefaultConfigDirPath(nType, True)
|
|
Dim sInfo As String = String.Empty
|
|
Dim sDefaultConfigFile As String = String.Empty
|
|
EgtGetInfo(nBTLInfoLayerId, AI_SETUP, m_SelStrategySetup)
|
|
If m_SelStrategySetup Is String.Empty Then
|
|
If EgtUILib.GetPrivateProfileString(S_STRATEGY, K_DEFAULTCONFIG, "", sDefaultConfigFile, Map.refMainWindowVM.MainWindowM.sDefaultConfig) <> 0 Then
|
|
m_SelStrategySetup = sDefaultConfigFile
|
|
Else
|
|
' restituisce la lista dei file presenti nella cartella con le relative informazioni
|
|
Dim StrategySetupListFile As List(Of FileInfo) = m_StrategySetupList.Where(Function(f) File.Exists(AISetupDirPath & "\" & f & ".json")).
|
|
Select(Function(f) New FileInfo(AISetupDirPath & "\" & f & ".json")).
|
|
OrderByDescending(Function(fi) fi.LastWriteTime).ToList()
|
|
' restituisce l'ultimo file modificato
|
|
If StrategySetupListFile.Any() Then
|
|
sDefaultConfigFile = Path.GetFileNameWithoutExtension(StrategySetupListFile.First().Name)
|
|
End If
|
|
sDefaultConfigFile = m_StrategySetupList.FirstOrDefault(Function(x) x = sDefaultConfigFile)
|
|
m_SelStrategySetup = sDefaultConfigFile
|
|
End If
|
|
End If
|
|
For Each GeneralParameter In m_GeneralParametersList
|
|
Select Case GeneralParameter.GetType()
|
|
Case GetType(BooleanGenericParameter)
|
|
SetbSaveGeneralParameters(True)
|
|
SetGeneralParametersIsEnable(True)
|
|
Dim sTmpBoolValue As Boolean = DirectCast(GeneralParameter, BooleanGenericParameter).bValue
|
|
If EgtExistsInfo(nBTLInfoLayerId, GeneralParameter.sNameNge) Then
|
|
EgtGetInfo(nBTLInfoLayerId, GeneralParameter.sNameNge, DirectCast(GeneralParameter, BooleanGenericParameter).bValue)
|
|
Else
|
|
SetbSaveGeneralParameters(False)
|
|
SetGeneralParametersIsEnable(False)
|
|
DirectCast(GeneralParameter, BooleanGenericParameter).bValue = sTmpBoolValue
|
|
End If
|
|
Case GetType(DoubleGenericParameter)
|
|
SetbSaveGeneralParameters(True)
|
|
SetGeneralParametersIsEnable(True)
|
|
Dim sTmpDoubleValue As String = DirectCast(GeneralParameter, DoubleGenericParameter).sValue
|
|
If EgtExistsInfo(nBTLInfoLayerId, GeneralParameter.sNameNge) Then
|
|
EgtGetInfo(nBTLInfoLayerId, GeneralParameter.sNameNge, DirectCast(GeneralParameter, DoubleGenericParameter).sValue)
|
|
Else
|
|
SetbSaveGeneralParameters(False)
|
|
SetGeneralParametersIsEnable(False)
|
|
DirectCast(GeneralParameter, DoubleGenericParameter).sValue = sTmpDoubleValue
|
|
End If
|
|
Case GetType(ComboGenericParameter)
|
|
SetbSaveGeneralParameters(True)
|
|
SetGeneralParametersIsEnable(True)
|
|
Dim sTmpComboValue As String = DirectCast(GeneralParameter, ComboGenericParameter).SelValue.sValue
|
|
If EgtExistsInfo(nBTLInfoLayerId, GeneralParameter.sNameNge) Then
|
|
EgtGetInfo(nBTLInfoLayerId, GeneralParameter.sNameNge, DirectCast(GeneralParameter, ComboGenericParameter).SelValue.sValue)
|
|
Else
|
|
DirectCast(GeneralParameter, ComboGenericParameter).SelValue.sValue = sTmpComboValue
|
|
SetbSaveGeneralParameters(False)
|
|
SetGeneralParametersIsEnable(False)
|
|
End If
|
|
Case GetType(StringGenericParameter)
|
|
SetbSaveGeneralParameters(True)
|
|
SetGeneralParametersIsEnable(True)
|
|
Dim sTmpStringValue As String = DirectCast(GeneralParameter, StringGenericParameter).sValue
|
|
If EgtExistsInfo(nBTLInfoLayerId, GeneralParameter.sNameNge) Then
|
|
EgtGetInfo(nBTLInfoLayerId, GeneralParameter.sNameNge, DirectCast(GeneralParameter, StringGenericParameter).sValue)
|
|
Else
|
|
SetbSaveGeneralParameters(False)
|
|
SetGeneralParametersIsEnable(False)
|
|
DirectCast(GeneralParameter, StringGenericParameter).sValue = sTmpStringValue
|
|
End If
|
|
Case GetType(ListGenericParameter)
|
|
SetbSaveGeneralParameters(True)
|
|
SetGeneralParametersIsEnable(True)
|
|
For Each Item As ToolParameter In DirectCast(GeneralParameter, ListGenericParameter).ListValue
|
|
If Item.bIsActive Then
|
|
sInfo &= Item.sUUID & "," & Item.sName & ";"
|
|
Dim sTmpInfo As String = sInfo
|
|
If EgtExistsInfo(nBTLInfoLayerId, GeneralParameter.sNameNge) Then
|
|
EgtGetInfo(nBTLInfoLayerId, GeneralParameter.sNameNge, sInfo)
|
|
Else
|
|
SetbSaveGeneralParameters(False)
|
|
SetGeneralParametersIsEnable(False)
|
|
sInfo = sTmpInfo
|
|
End If
|
|
End If
|
|
Next
|
|
End Select
|
|
Next
|
|
End Sub
|
|
|
|
#End Region ' Constructor
|
|
|
|
#Region "METHODS"
|
|
|
|
Friend Sub SaveProjectParameters()
|
|
Dim sInfo As String = String.Empty
|
|
Dim sDefaultConfigFile As String = String.Empty
|
|
Dim nBTLInfoLayerId As Integer = EgtGetFirstNameInGroup(GDB_ID.ROOT, PROJECTINFO)
|
|
If Not IsNothing(m_SelStrategySetup) Then EgtSetInfo(nBTLInfoLayerId, AI_SETUP, m_SelStrategySetup)
|
|
If m_SelStrategySetup Is String.Empty Then
|
|
If EgtUILib.GetPrivateProfileString(S_STRATEGY, K_DEFAULTCONFIG, "", sDefaultConfigFile, Map.refMainWindowVM.MainWindowM.sDefaultConfig) <> 0 Then
|
|
m_SelStrategySetup = sDefaultConfigFile
|
|
EgtSetInfo(nBTLInfoLayerId, AI_SETUP, m_SelStrategySetup)
|
|
End If
|
|
End If
|
|
For Each GeneralParameter In m_GeneralParametersList
|
|
Select Case GeneralParameter.GetType()
|
|
Case GetType(BooleanGenericParameter)
|
|
EgtSetInfo(nBTLInfoLayerId, GeneralParameter.sNameNge, DirectCast(GeneralParameter, BooleanGenericParameter).bValue)
|
|
Case GetType(DoubleGenericParameter)
|
|
EgtSetInfo(nBTLInfoLayerId, GeneralParameter.sNameNge, DirectCast(GeneralParameter, DoubleGenericParameter).sValue)
|
|
Case GetType(ComboGenericParameter)
|
|
EgtSetInfo(nBTLInfoLayerId, GeneralParameter.sNameNge, DirectCast(GeneralParameter, ComboGenericParameter).SelValue.sValue)
|
|
Case GetType(StringGenericParameter)
|
|
EgtSetInfo(nBTLInfoLayerId, GeneralParameter.sNameNge, DirectCast(GeneralParameter, StringGenericParameter).sValue)
|
|
Case GetType(ListGenericParameter)
|
|
For Each Item As ToolParameter In DirectCast(GeneralParameter, ListGenericParameter).ListValue
|
|
If Item.bIsActive Then
|
|
sInfo &= Item.sUUID & "," & Item.sName & ";"
|
|
EgtSetInfo(nBTLInfoLayerId, GeneralParameter.sNameNge, sInfo)
|
|
End If
|
|
Next
|
|
End Select
|
|
Next
|
|
End Sub
|
|
|
|
#End Region ' Methods
|
|
|
|
#Region "COMMANDS"
|
|
|
|
#Region "Ok_Command"
|
|
|
|
Public ReadOnly Property Ok_Command As ICommand
|
|
Get
|
|
If m_cmdOk_Command Is Nothing Then
|
|
m_cmdOk_Command = New Command(AddressOf Ok)
|
|
End If
|
|
Return m_cmdOk_Command
|
|
End Get
|
|
End Property
|
|
|
|
Public Sub Ok()
|
|
SaveProjectParameters()
|
|
Map.refProdManagerVM.Save()
|
|
' Chiudo finestra
|
|
RaiseEvent m_CloseWindow(True)
|
|
End Sub
|
|
|
|
#End Region ' Ok_Command
|
|
|
|
#End Region ' Commands
|
|
|
|
End Class
|