7b4f8529c3
-cambiato gestione SetVisibility -aggiunto su veriifica singolo pezzo disabilita intera riga
579 lines
18 KiB
VB.net
579 lines
18 KiB
VB.net
Imports EgtWPFLib5
|
|
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
|
|
Inherits VMBase
|
|
|
|
#Region "FIELDS & PROPETIES"
|
|
|
|
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_nPrc As Integer
|
|
Public Property nPrc As Integer
|
|
Get
|
|
Return m_nPrc
|
|
End Get
|
|
Set(value As Integer)
|
|
m_nPrc = value
|
|
NotifyPropertyChanged(NameOf(nPrc))
|
|
End Set
|
|
End Property
|
|
|
|
Private m_nGrp As Integer
|
|
Public Property nGrp As Integer
|
|
Get
|
|
Return m_nGrp
|
|
End Get
|
|
Set(value As Integer)
|
|
m_nGrp = value
|
|
NotifyPropertyChanged(NameOf(nGrp))
|
|
End Set
|
|
End Property
|
|
|
|
Private m_TopologyList As New ObservableCollection(Of JsonAvailableTopology)
|
|
Public Property TopologyList As ObservableCollection(Of JsonAvailableTopology)
|
|
Get
|
|
Return m_TopologyList
|
|
End Get
|
|
Set(value As ObservableCollection(Of JsonAvailableTopology))
|
|
m_TopologyList = value
|
|
NotifyPropertyChanged(NameOf(TopologyList))
|
|
End Set
|
|
End Property
|
|
|
|
#End Region ' Fields & Propeties
|
|
|
|
#Region "CONSTRUCTOR"
|
|
|
|
<JsonConstructor>
|
|
Sub New(sName As String, nPRC As Integer, nGRP As Integer)
|
|
m_sName = sName
|
|
m_nPrc = nPRC
|
|
m_nGrp = nGRP
|
|
End Sub
|
|
|
|
Sub New(StrategyFeature As StrategyFeature)
|
|
m_sName = StrategyFeature.sName
|
|
m_nPrc = StrategyFeature.nPrc
|
|
m_nGrp = StrategyFeature.nGrp
|
|
For Each Topology In StrategyFeature.TopologyList
|
|
m_TopologyList.Add(New JsonAvailableTopology(Topology))
|
|
Next
|
|
End Sub
|
|
|
|
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(StrategyType))
|
|
Next
|
|
Return StrategyFeature
|
|
End Function
|
|
|
|
#End Region ' Constructor
|
|
|
|
End Class
|
|
|
|
'----------- Classe che fa riferimento alle Topologie delle Feature del file Json -----------
|
|
Public Class JsonAvailableTopology
|
|
Inherits VMBase
|
|
|
|
#Region "FIELDS & PROPETIES"
|
|
|
|
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_sImage As String
|
|
Public Property sImage As String
|
|
Get
|
|
Return m_sImage
|
|
End Get
|
|
Set(value As String)
|
|
m_sImage = value
|
|
NotifyPropertyChanged(NameOf(sImage))
|
|
End Set
|
|
End Property
|
|
|
|
Private m_StrategyList As New ObservableCollection(Of JsonAvailableStrategy)
|
|
Public Property StrategyList As ObservableCollection(Of JsonAvailableStrategy)
|
|
Get
|
|
Return m_StrategyList
|
|
End Get
|
|
Set(value As ObservableCollection(Of JsonAvailableStrategy))
|
|
m_StrategyList = value
|
|
NotifyPropertyChanged(NameOf(StrategyList))
|
|
End Set
|
|
End Property
|
|
|
|
#End Region ' Fields & Propeties
|
|
|
|
#Region "CONSTRUCTOR"
|
|
|
|
<JsonConstructor>
|
|
Sub New(sName As String)
|
|
m_sName = sName
|
|
End Sub
|
|
|
|
Sub New(Topology As Topology)
|
|
m_sName = Topology.sName
|
|
m_sImage = Topology.sImage
|
|
For Each Strategy In Topology.StrategyList
|
|
m_StrategyList.Add(New JsonAvailableStrategy(Strategy))
|
|
Next
|
|
End Sub
|
|
|
|
#End Region ' Constructor
|
|
|
|
Friend Function Deserialize(StrategyType As BWType) As Topology
|
|
Dim Topology As New Topology() With {.sName = m_sName,
|
|
.sImage = m_sImage}
|
|
For StrategyIndex = 0 To StrategyList.Count - 1
|
|
Topology.StrategyList.Add(StrategyList(StrategyIndex).Deserialize(StrategyType, StrategyIndex))
|
|
Next
|
|
Topology.CreateStrategyViews()
|
|
Return Topology
|
|
End Function
|
|
|
|
End Class
|
|
|
|
'----------- Classe che fa alle Strategie delle Topologie delle Feature del file Json -----------
|
|
Public Class JsonAvailableStrategy
|
|
Inherits VMBase
|
|
|
|
#Region "FIELDS & PROPETIES"
|
|
|
|
Private m_sStrategyId As String
|
|
Public Property sStrategyId As String
|
|
Get
|
|
Return m_sStrategyId
|
|
End Get
|
|
Set(value As String)
|
|
m_sStrategyId = value
|
|
NotifyPropertyChanged(NameOf(sStrategyId))
|
|
End Set
|
|
End Property
|
|
|
|
#End Region ' Fields & Propeties
|
|
|
|
#Region "CONSTRUCTOR"
|
|
|
|
<JsonConstructor>
|
|
Sub New(sStrategyID As String)
|
|
m_sStrategyId = sStrategyID
|
|
End Sub
|
|
|
|
Sub New(Strategy As Strategy)
|
|
m_sStrategyId = Strategy.sStrategyId
|
|
End Sub
|
|
|
|
#End Region ' Constructor
|
|
|
|
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(StrategyType) & "\" & sStrategyId & "\" & sStrategyId & ".json"
|
|
|
|
' Controllo se il file esiste
|
|
If Not File.Exists(StrategyPath) Then
|
|
EgtOutLog("Error! Strategy file not found! " & m_sStrategyId)
|
|
End If
|
|
' Leggo il contenuto del file JSON e deserializzo
|
|
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(StrategyType) & "\" & sStrategyId & "\" & sStrategyId & ".png"
|
|
If File.Exists(sImagePath) Then
|
|
Strategy.sStrategyImagePath = sImagePath
|
|
End If
|
|
If StrategyConfig.sStrategyId <> m_sStrategyId Then EgtOutLog("Error! Strategy name wrong in " & m_sStrategyId)
|
|
For Each Parameter In StrategyConfig.ParameterList
|
|
Dim NewParameter As StrategyParameter = Parameter.Deserialize()
|
|
If Not IsNothing(NewParameter) Then
|
|
Strategy.ParameterList.Add(Parameter.Deserialize())
|
|
End If
|
|
Next
|
|
Return Strategy
|
|
End Function
|
|
|
|
End Class
|
|
|
|
'----------- Classe che fa alle Strategie delle Topologie delle Feature del file Json -----------
|
|
Public Class JsonDefaultStrategy
|
|
Inherits VMBase
|
|
|
|
#Region "FIELDS & PROPETIES"
|
|
|
|
Private m_sStrategyId As String
|
|
Public Property sStrategyId As String
|
|
Get
|
|
Return m_sStrategyId
|
|
End Get
|
|
Set(value As String)
|
|
m_sStrategyId = value
|
|
End Set
|
|
End Property
|
|
|
|
Private m_sStrategyName As String
|
|
Public Property sStrategyName As String
|
|
Get
|
|
Return m_sStrategyName
|
|
End Get
|
|
Set(value As String)
|
|
m_sStrategyName = value
|
|
End Set
|
|
End Property
|
|
|
|
Private m_ParameterList As New ObservableCollection(Of JsonDefaultStrategyParameter)
|
|
Public Property ParameterList As ObservableCollection(Of JsonDefaultStrategyParameter)
|
|
Get
|
|
Return m_ParameterList
|
|
End Get
|
|
Set(value As ObservableCollection(Of JsonDefaultStrategyParameter))
|
|
m_ParameterList = value
|
|
End Set
|
|
End Property
|
|
|
|
#End Region ' Fields & Propeties
|
|
|
|
#Region "CONSTRUCTOR"
|
|
|
|
<JsonConstructor>
|
|
Sub New(sStrategyId As String, sStrategyName As String)
|
|
m_sStrategyId = sStrategyId
|
|
m_sStrategyName = sStrategyName
|
|
End Sub
|
|
|
|
Sub New(Strategy As Strategy)
|
|
m_sStrategyId = Strategy.sStrategyId
|
|
For Each Parameter In Strategy.ParameterList
|
|
m_ParameterList.Add(New JsonDefaultStrategyParameter(Parameter))
|
|
Next
|
|
End Sub
|
|
|
|
#End Region ' Constructor
|
|
|
|
End Class
|
|
|
|
'----------- Classe che fa riferimento ai parametri delle Strategie nel file Json -----------
|
|
Public Class JsonDefaultStrategyParameter
|
|
Inherits VMBase
|
|
|
|
#Region "FIELDS & PROPETIES"
|
|
|
|
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_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_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_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_sSource As String
|
|
Public Property sSource As String
|
|
Get
|
|
Return m_sSource
|
|
End Get
|
|
Set(value As String)
|
|
m_sSource = value
|
|
NotifyPropertyChanged(NameOf(sSource))
|
|
End Set
|
|
End Property
|
|
|
|
Private m_sSubType As String
|
|
Public Property sSubType As String
|
|
Get
|
|
Return m_sSubType
|
|
End Get
|
|
Set(value As String)
|
|
m_sSubType = value
|
|
NotifyPropertyChanged(NameOf(sSubType))
|
|
End Set
|
|
End Property
|
|
|
|
Private m_sMessageId As String
|
|
Public Property sMessageId As String
|
|
Get
|
|
Return m_sMessageId
|
|
End Get
|
|
Set(value As String)
|
|
m_sMessageId = value
|
|
NotifyPropertyChanged(NameOf(sMessageId))
|
|
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
|
|
|
|
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
|
|
|
|
#End Region ' Fields & Propeties
|
|
|
|
#Region "CONSTRUCTOR"
|
|
|
|
<JsonConstructor>
|
|
Sub New(sName As String, sNameNge As String, sValue As String, sDescriptionShort As String, sDescriptionLong As String, sType As String, sSource As String, sSubType As String, sMessageId As String, sMinUserLevel As Integer)
|
|
m_sName = sName
|
|
m_sNameNge = sNameNge
|
|
m_sValue = sValue
|
|
m_sDescriptionShort = sDescriptionShort
|
|
m_sDescriptionLong = sDescriptionLong
|
|
m_sType = sType
|
|
m_sSource = sSource
|
|
m_sSubType = sSubType
|
|
m_sMessageId = sMessageId
|
|
m_sMinUserLevel = sMinUserLevel
|
|
End Sub
|
|
|
|
Sub New(StrategyParameter As StrategyParameter)
|
|
m_sName = StrategyParameter.sName
|
|
m_sNameNge = StrategyParameter.sNameNge
|
|
Select Case StrategyParameter.GetType()
|
|
Case GetType(BooleanStrategyParameter)
|
|
m_sValue = If(DirectCast(StrategyParameter, BooleanStrategyParameter).bValue, "true", "false")
|
|
Case GetType(DoubleStrategyParameter)
|
|
m_sValue = DirectCast(StrategyParameter, DoubleStrategyParameter).sValue
|
|
Case GetType(ComboStrategyParameter)
|
|
m_sValue = DirectCast(StrategyParameter, ComboStrategyParameter).SelValue.sValue
|
|
Case GetType(StringStrategyParameter)
|
|
m_sValue = DirectCast(StrategyParameter, StringStrategyParameter).sValue
|
|
Case GetType(ListStrategyParameter)
|
|
m_sValue = DirectCast(StrategyParameter, ListStrategyParameter).SelValue.sName
|
|
End Select
|
|
m_sSource = StrategyParameter.sSource
|
|
m_sSubType = StrategyParameter.sSubType
|
|
m_sDescriptionShort = StrategyParameter.sDescriptionShort
|
|
m_sDescriptionLong = StrategyParameter.sDescriptionLong
|
|
m_sMessageId = StrategyParameter.sMessageId
|
|
m_sMinUserLevel = StrategyParameter.sMinUserLevel
|
|
End Sub
|
|
|
|
#End Region ' Constructor
|
|
|
|
Friend Function Deserialize() As StrategyParameter
|
|
Dim StrategyParameter As StrategyParameter = Nothing
|
|
Select Case m_sType
|
|
Case "b"
|
|
StrategyParameter = New BooleanStrategyParameter()
|
|
DirectCast(StrategyParameter, BooleanStrategyParameter).SetValue(m_sValue)
|
|
If m_sMinUserLevel = 1 Then
|
|
DirectCast(StrategyParameter, BooleanStrategyParameter).SetbBooleanVisibility(True)
|
|
End If
|
|
Case "d"
|
|
StrategyParameter = New DoubleStrategyParameter()
|
|
DirectCast(StrategyParameter, DoubleStrategyParameter).SetValue(m_sValue)
|
|
If m_sMinUserLevel = 1 Then
|
|
DirectCast(StrategyParameter, DoubleStrategyParameter).SetbDoubleVisibility(True)
|
|
End If
|
|
Case "combo"
|
|
StrategyParameter = New ComboStrategyParameter()
|
|
For Each Choice In Choices
|
|
DirectCast(StrategyParameter, ComboStrategyParameter).ComboList.Add(Choice.Deserialize())
|
|
Next
|
|
DirectCast(StrategyParameter, ComboStrategyParameter).SetSelValue(m_sValue)
|
|
If m_sMinUserLevel = 1 Then
|
|
DirectCast(StrategyParameter, ComboStrategyParameter).SetbComboBoxVisibility(True)
|
|
End If
|
|
Case "tool"
|
|
StrategyParameter = New ListStrategyParameter(m_sSubType)
|
|
DirectCast(StrategyParameter, ListStrategyParameter).CreateToolsViews()
|
|
If m_sMinUserLevel = 1 Then
|
|
DirectCast(StrategyParameter, ListStrategyParameter).SetbListBoxVisibility(True)
|
|
End If
|
|
Case "s"
|
|
StrategyParameter = New StringStrategyParameter()
|
|
DirectCast(StrategyParameter, StringStrategyParameter).SetValue(m_sValue)
|
|
If m_sMinUserLevel = 1 Then
|
|
DirectCast(StrategyParameter, StringStrategyParameter).SetbStringVisibility(True)
|
|
End If
|
|
Case Else
|
|
If Not IsNothing(m_sType) Then EgtOutLog("Tipo: " & m_sType & " non presente")
|
|
Return Nothing
|
|
End Select
|
|
StrategyParameter.sName = m_sName
|
|
StrategyParameter.sNameNge = m_sNameNge
|
|
StrategyParameter.sSubType = m_sSubType
|
|
StrategyParameter.sDescriptionShort = m_sDescriptionShort
|
|
StrategyParameter.sDescriptionLong = m_sDescriptionLong
|
|
StrategyParameter.sMessageId = m_sMessageId
|
|
StrategyParameter.sMinUserLevel = m_sMinUserLevel
|
|
Return StrategyParameter
|
|
End Function
|
|
|
|
End Class
|
|
|
|
'----------- Classe che fa riferimento ai parametri delle Scelte nel file Json -----------
|
|
Public Class JsonDefaultComboParameter
|
|
Inherits VMBase
|
|
|
|
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_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_sMessageId As String
|
|
Public Property sMessageId As String
|
|
Get
|
|
Return m_sMessageId
|
|
End Get
|
|
Set(value As String)
|
|
m_sMessageId = value
|
|
NotifyPropertyChanged(NameOf(sMessageId))
|
|
End Set
|
|
End Property
|
|
|
|
#Region "CONSTRUCTOR"
|
|
|
|
<JsonConstructor>
|
|
Sub New(sValue As String, sDescriptionShort As String, sDescriptionLong As String, sMessageId As String)
|
|
m_sValue = sValue
|
|
m_sDescriptionShort = sDescriptionShort
|
|
m_sDescriptionLong = sDescriptionLong
|
|
m_sMessageId = sMessageId
|
|
End Sub
|
|
|
|
Sub New(ComboParameter As ComboParameter)
|
|
m_sValue = ComboParameter.sValue
|
|
m_sDescriptionShort = ComboParameter.sDescriptionShort
|
|
m_sDescriptionLong = ComboParameter.sDescriptionLong
|
|
m_sMessageId = ComboParameter.sMessageId
|
|
End Sub
|
|
|
|
#End Region ' Constructor
|
|
|
|
Friend Function Deserialize() As ComboParameter
|
|
Dim ComboParameter As New ComboParameter() With {.sValue = m_sValue,
|
|
.sDescriptionShort = m_sDescriptionShort,
|
|
.sDescriptionLong = m_sDescriptionLong,
|
|
.sMessageId = m_sMessageId}
|
|
Return ComboParameter
|
|
End Function
|
|
|
|
End Class
|