Files
egtbeamwall/EgtBEAMWALL.Optimizer/GeneralParametersStrategy/GeneralParametersWndVM.vb
T
Demetrio Cassarino f4e2167c9b -terminato parametri generali
-corretto alcuni bug
2025-10-10 15:50:09 +02:00

109 lines
5.3 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"
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
WriteMainPrivateProfileString(S_STRATEGY, "ForceGeneralParameters", If(m_bSaveGeneralParameters, 1, 0))
Dim nBTLInfoLayerId As Integer = EgtGetFirstNameInGroup(GDB_ID.ROOT, PROJECTINFO)
If m_bSaveGeneralParameters Then
SetGeneralParametersIsEnable(True)
Dim sInfo As String = String.Empty
For Each GeneralParameter In 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
Map.refOnlyProdManagerVM.Save()
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())
For Each GenericItem As ProjectParameters In m_GeneralParametersList
Select Case GenericItem.sMinUserLevel
Case UserLevel.ADVANCED
Map.refMainMenuVM.UserLevelGenericVisibility(GenericItem, If(Map.refMainMenuVM.UserAdmin_IsChecked, Visibility.Visible, Visibility.Collapsed))
Case Else
If Not Map.refMainMenuVM.UserAdmin_IsChecked Then
Map.refMainMenuVM.UserLevelGenericVisibility(GenericItem, If(GenericItem.sMinUserLevel = UserLevel.USER, Visibility.Visible, Visibility.Collapsed))
Map.refMainMenuVM.SetUnloackImage("pack://application:,,,/Resources/NewPage/padlock.png")
End If
End Select
Next
NotifyPropertyChanged(NameOf(GeneralParametersList))
End If
End If
NotifyPropertyChanged(NameOf(bSaveGeneralParameters))
End Set
End Property
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
#End Region ' Fields & Properties
#Region "CONSTRUCTOR"
Sub New()
m_GeneralParametersList = Map.refOnlyProdManagerVM.GeneralParametersStrategyVM.GeneralParametersList
m_bSaveGeneralParameters = GetMainPrivateProfileInt(S_STRATEGY, "ForceGeneralParameters", 0) <> 0
End Sub
#End Region ' Constructor
End Class