Files
egtbeamwall/EgtBEAMWALL.Optimizer/GeneralParametersStrategy/JsonGeneralParameters.vb
T
Demetrio Cassarino cdf740cba7 -sistemato pulsante salva su configurazione
-aggiunto parametri strategie per lettura lingua
2026-06-25 12:40:08 +02:00

238 lines
8.0 KiB
VB.net

Imports System.Collections.ObjectModel
Imports EgtBEAMWALL.Core.ConstBeam
Imports EgtWPFLib5
Imports Newtonsoft.Json
Imports EgtUILib
Public Class JsonGeneralParameters
Inherits VMBase
#Region "FIELDS & PROPETIES"
Private m_nGroup As String
Public Property nGroup As String
Get
Return m_nGroup
End Get
Set(value As String)
m_nGroup = value
NotifyPropertyChanged(NameOf(nGroup))
End Set
End Property
Private m_sName As String
Public Property sName As String
Get
Return m_sName
End Get
Set(value As String)
m_sName = value
NotifyPropertyChanged(NameOf(sName))
End Set
End Property
Private m_sNameNge As String
Public Property sNameNge As String
Get
Return m_sNameNge
End Get
Set(value As String)
m_sNameNge = value
NotifyPropertyChanged(NameOf(sNameNge))
End Set
End Property
Private m_sDescriptionShort As String
Public Property sDescriptionShort As String
Get
Return m_sDescriptionShort
End Get
Set(value As String)
m_sDescriptionShort = value
NotifyPropertyChanged(NameOf(sDescriptionShort))
End Set
End Property
Private m_sDescriptionLong As String
Public Property sDescriptionLong As String
Get
Return m_sDescriptionLong
End Get
Set(value As String)
m_sDescriptionLong = value
NotifyPropertyChanged(NameOf(sDescriptionLong))
End Set
End Property
Private m_idDescriptionShortMsg As Integer
Public Property idDescriptionShortMsg As Integer
Get
Return m_idDescriptionShortMsg
End Get
Set(value As Integer)
m_idDescriptionShortMsg = value
NotifyPropertyChanged(NameOf(idDescriptionShortMsg))
End Set
End Property
Private m_idDescriptionLongMsg As Integer
Public Property idDescriptionLongMsg As Integer
Get
Return m_idDescriptionLongMsg
End Get
Set(value As Integer)
m_idDescriptionLongMsg = value
NotifyPropertyChanged(NameOf(idDescriptionLongMsg))
End Set
End Property
Private m_sValue As String
Public Property sValue As String
Get
Return m_sValue
End Get
Set(value As String)
m_sValue = value
NotifyPropertyChanged(NameOf(sValue))
End Set
End Property
Private m_sType As String
Public Property sType As String
Get
Return m_sType
End Get
Set(value As String)
m_sType = value
NotifyPropertyChanged(NameOf(sType))
End Set
End Property
Private m_Choices As New ObservableCollection(Of JsonDefaultComboParameter)
Public Property Choices As ObservableCollection(Of JsonDefaultComboParameter)
Get
Return m_Choices
End Get
Set(value As ObservableCollection(Of JsonDefaultComboParameter))
m_Choices = value
NotifyPropertyChanged(NameOf(Choices))
End Set
End Property
Private m_sMinUserLevel As Integer
Public Property sMinUserLevel As Integer
Get
Return m_sMinUserLevel
End Get
Set(value As Integer)
m_sMinUserLevel = value
NotifyPropertyChanged(NameOf(sMinUserLevel))
End Set
End Property
#End Region ' Fields & Propeties
#Region "CONSTRUCTOR"
<JsonConstructor>
Sub New(nGroup As String, sName As String, sNameNge As String, sValue As String, sDescriptionShort As String, sDescriptionLong As String, idDescriptionLongMsg As Integer, idDescriptionShortMsg As Integer, sType As String, sMinUserLevel As String)
m_nGroup = nGroup
m_sName = sName
m_sNameNge = sNameNge
m_sValue = sValue
m_sDescriptionShort = sDescriptionShort
m_sDescriptionLong = sDescriptionLong
m_idDescriptionShortMsg = idDescriptionShortMsg
m_idDescriptionLongMsg = idDescriptionLongMsg
m_sType = sType
m_sMinUserLevel = sMinUserLevel
End Sub
Sub New(ProjectParameters As ProjectParameters)
m_sName = ProjectParameters.sName
m_sNameNge = ProjectParameters.sNameNge
Select Case ProjectParameters.GetType()
Case GetType(BooleanGenericParameter)
m_sValue = If(DirectCast(ProjectParameters, BooleanGenericParameter).bValue, "true", "false")
Case GetType(DoubleGenericParameter)
m_sValue = DirectCast(ProjectParameters, DoubleGenericParameter).sValue
Case GetType(ComboGenericParameter)
m_sValue = DirectCast(ProjectParameters, ComboGenericParameter).SelValue.sValue
Case GetType(StringGenericParameter)
m_sValue = DirectCast(ProjectParameters, StringGenericParameter).sValue
Case GetType(ListGenericParameter)
m_sValue = DirectCast(ProjectParameters, ListGenericParameter).SelValue.sName
End Select
m_nGroup = ProjectParameters.nGroup
m_sDescriptionShort = ProjectParameters.sDescriptionShort
m_sDescriptionLong = ProjectParameters.sDescriptionLong
m_idDescriptionShortMsg = ProjectParameters.idDescriptionShortMsg
m_idDescriptionLongMsg = ProjectParameters.idDescriptionLongMsg
m_sMinUserLevel = ProjectParameters.sMinUserLevel
End Sub
#End Region ' Constructor
#Region "METHODS"
Friend Function Deserialize(StrategyType As BWType) As ProjectParameters
Dim ProjectParameters As ProjectParameters = Nothing
Select Case m_sType
Case "b"
ProjectParameters = New BooleanGenericParameter()
DirectCast(ProjectParameters, BooleanGenericParameter).SetValue(m_sValue)
If m_sMinUserLevel = 1 Then
DirectCast(ProjectParameters, BooleanGenericParameter).SetbBooleanVisibility(True)
End If
Case "d"
ProjectParameters = New DoubleGenericParameter()
DirectCast(ProjectParameters, DoubleGenericParameter).SetValue(m_sValue)
If m_sMinUserLevel = 1 Then
DirectCast(ProjectParameters, DoubleGenericParameter).SetbDoubleVisibility(True)
End If
Case "combo"
ProjectParameters = New ComboGenericParameter()
For Each Choice In Choices
DirectCast(ProjectParameters, ComboGenericParameter).ComboList.Add(Choice.Deserialize())
Next
DirectCast(ProjectParameters, ComboGenericParameter).SetSelValue(m_sValue)
If m_sMinUserLevel = 1 Then
DirectCast(ProjectParameters, ComboGenericParameter).SetbComboBoxVisibility(True)
End If
Case "tool"
'ProjectParameters = New ListGenericParameter(m_sSubType)
'DirectCast(ProjectParameters, ListGenericParameter).CreateToolsViews()
'If m_sMinUserLevel = 1 Then
' DirectCast(ProjectParameters, ListGenericParameter).SetbListBoxVisibility(True)
'End If
Case "s"
ProjectParameters = New StringGenericParameter()
DirectCast(ProjectParameters, StringGenericParameter).SetValue(m_sValue)
If m_sMinUserLevel = 1 Then
DirectCast(ProjectParameters, StringGenericParameter).SetbStringVisibility(True)
End If
Case Else
EgtOutLog("Tipo: " & m_sType & " non presente")
Return Nothing
End Select
ProjectParameters.nGroup = m_nGroup
ProjectParameters.sName = m_sName
ProjectParameters.sNameNge = m_sNameNge
If m_idDescriptionShortMsg < 0 OrElse EgtMsg(m_idDescriptionShortMsg).StartsWith("Msg") Then
ProjectParameters.sDescriptionShort = m_sDescriptionShort
Else
ProjectParameters.sDescriptionShort = EgtMsg(m_idDescriptionShortMsg)
End If
If m_idDescriptionLongMsg < 0 OrElse EgtMsg(m_idDescriptionLongMsg).StartsWith("Msg") Then
ProjectParameters.sDescriptionLong = m_sDescriptionLong
Else
ProjectParameters.sDescriptionLong = EgtMsg(m_idDescriptionLongMsg)
End If
ProjectParameters.sMinUserLevel = m_sMinUserLevel
Return ProjectParameters
End Function
#End Region ' Methods
End Class