7b4f8529c3
-cambiato gestione SetVisibility -aggiunto su veriifica singolo pezzo disabilita intera riga
1150 lines
35 KiB
VB.net
1150 lines
35 KiB
VB.net
Imports System.Collections.ObjectModel
|
|
Imports System.ComponentModel
|
|
Imports System.Globalization
|
|
Imports System.IO
|
|
Imports System.Reflection
|
|
Imports EgtBEAMWALL.Core
|
|
Imports EgtBEAMWALL.Optimizer.MainMenuVM
|
|
Imports EgtUILib
|
|
Imports EgtWPFLib5
|
|
Imports Newtonsoft.Json
|
|
|
|
Public Class GeneralParametersStrategyVM
|
|
Inherits VMBase
|
|
|
|
#Region "FIELDS & PROPERTIES"
|
|
|
|
Private PADLOCK_IMAGE As String = "pack://application:,,,/Resources/NewPage/padlock.png"
|
|
|
|
' Evento per chiusura finestra
|
|
Public 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
|
|
End Set
|
|
End Property
|
|
|
|
' Definizione Comandi
|
|
Private m_cmdOk_Command As ICommand
|
|
Private m_cmdCloseCommand As ICommand
|
|
|
|
#Region "Messages"
|
|
|
|
Public ReadOnly Property UserMsg As String
|
|
Get
|
|
Return EgtMsg(61748)
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property AdvanceMsg As String
|
|
Get
|
|
Return EgtMsg(61749)
|
|
End Get
|
|
End Property
|
|
|
|
#End Region ' Messages
|
|
|
|
#End Region ' Fields & Properties
|
|
|
|
#Region "CONSTRUCTOR"
|
|
|
|
Sub New()
|
|
Map.SetRefGeneralParametersStrategyVM(Me)
|
|
Read()
|
|
End Sub
|
|
|
|
#End Region ' Constructor
|
|
|
|
#Region "METHODS"
|
|
|
|
Friend Sub Read()
|
|
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, 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
|
|
|
|
Dim sAISetupDirPath As String = Map.refMainWindowVM.MainWindowM.GetAISetupDirPath(Map.refStrategyManagerVM.SelStrategyType.Id, False)
|
|
|
|
If Not IsNothing(Map.refStrategyManagerVM.SelStrategySetup) Then
|
|
Dim sStrategyConfigurationFilePath As String = sAISetupDirPath & "\" & Map.refStrategyManagerVM.SelStrategySetup.sName & ".json"
|
|
If File.Exists(sStrategyConfigurationFilePath) Then
|
|
Dim sReadedFile As String = File.ReadAllText(sStrategyConfigurationFilePath)
|
|
|
|
Dim JsonRoot As CustomJsonRoot = Nothing
|
|
Try
|
|
JsonRoot = JsonConvert.DeserializeObject(Of CustomJsonRoot)(sReadedFile)
|
|
Catch ex As Exception
|
|
JsonRoot = Nothing
|
|
Return
|
|
End Try
|
|
|
|
For Each ProjectItem In JsonRoot.GENERAL
|
|
Dim DefaultProject As ProjectParameters = m_GeneralParametersList.FirstOrDefault(Function(x) x.sName = ProjectItem.sName)
|
|
If Not IsNothing(DefaultProject) Then
|
|
DefaultProject.ReadConfiguration(ProjectItem, m_GeneralParametersList)
|
|
Else
|
|
EgtOutLog("Parametro Generale: " & ProjectItem.sName & " non presente")
|
|
End If
|
|
Next
|
|
End If
|
|
End If
|
|
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()
|
|
For Each ProjectItem As ProjectParameters In m_GeneralParametersList
|
|
Select Case ProjectItem.GetType()
|
|
Case GetType(BooleanGenericParameter)
|
|
ProjectItem.sValue = If(DirectCast(ProjectItem, BooleanGenericParameter).bValue, "true", "false")
|
|
Case GetType(DoubleGenericParameter)
|
|
ProjectItem.sValue = DirectCast(ProjectItem, DoubleGenericParameter).sValue
|
|
Case GetType(ComboGenericParameter)
|
|
ProjectItem.sValue = DirectCast(ProjectItem, ComboGenericParameter).SelValue.sValue
|
|
Case GetType(StringGenericParameter)
|
|
ProjectItem.sValue = DirectCast(ProjectItem, StringGenericParameter).sValue
|
|
Case GetType(ListGenericParameter)
|
|
ProjectItem.sValue = DirectCast(ProjectItem, ListGenericParameter).SelValue.sName
|
|
End Select
|
|
Next
|
|
Map.refStrategyManagerVM.Save(m_GeneralParametersList)
|
|
Map.refStrategyManagerVM.SetbIsModifyStrategy(True)
|
|
' Chiudo finestra
|
|
RaiseEvent m_CloseWindow(True)
|
|
End Sub
|
|
|
|
#End Region ' Ok_Command
|
|
|
|
#Region "CloseCommand"
|
|
|
|
Public ReadOnly Property CloseCommand As ICommand
|
|
Get
|
|
If m_cmdCloseCommand Is Nothing Then
|
|
m_cmdCloseCommand = New Command(AddressOf Close)
|
|
End If
|
|
Return m_cmdCloseCommand
|
|
End Get
|
|
End Property
|
|
|
|
Public Sub Close()
|
|
' Chiudo finestra senza fare niente
|
|
RaiseEvent m_CloseWindow(False)
|
|
End Sub
|
|
|
|
#End Region ' CloseCommand
|
|
|
|
#End Region ' Commands
|
|
|
|
End Class
|
|
|
|
Public Class ParametersProject
|
|
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_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"
|
|
|
|
Sub New()
|
|
|
|
End Sub
|
|
|
|
Sub New(JsonProjectParameters As JsonProjectParameters)
|
|
If IsNothing(JsonProjectParameters) Then Return
|
|
m_sName = JsonProjectParameters.sName
|
|
m_sNameNge = JsonProjectParameters.sNameNge
|
|
End Sub
|
|
|
|
#End Region ' Constructor
|
|
|
|
#Region "METHODS"
|
|
|
|
Friend Function Serialize() As JsonParameters
|
|
Dim JsonParameters As New JsonParameters(m_sName, m_sNameNge, m_sValue)
|
|
Return JsonParameters
|
|
End Function
|
|
|
|
#End Region ' Methods
|
|
|
|
End Class
|
|
|
|
Public MustInherit Class ProjectParameters
|
|
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_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"
|
|
|
|
Sub New()
|
|
|
|
End Sub
|
|
|
|
Sub New(JsonProjectParameters As JsonProjectParameters)
|
|
If IsNothing(JsonProjectParameters) Then Return
|
|
m_sName = JsonProjectParameters.sName
|
|
m_sNameNge = JsonProjectParameters.sNameNge
|
|
End Sub
|
|
|
|
#End Region ' Constructor
|
|
|
|
#Region "METHODS"
|
|
|
|
Friend MustOverride Function Serialize() As JsonParametersHelper
|
|
|
|
Friend Sub ReadConfiguration(ProjectParameters As JsonParameters, GeneralParametersList As ObservableCollection(Of ProjectParameters))
|
|
Dim DefaultProject As ProjectParameters = GeneralParametersList.FirstOrDefault(Function(x) x.sName = ProjectParameters.sName)
|
|
If IsNothing(DefaultProject) Then
|
|
' verifico indici!!
|
|
Else
|
|
Select Case DefaultProject.GetType()
|
|
Case GetType(BooleanGenericParameter)
|
|
DirectCast(DefaultProject, BooleanGenericParameter).SetValue(ProjectParameters.sValue)
|
|
If m_sMinUserLevel = 1 Then
|
|
DirectCast(DefaultProject, BooleanGenericParameter).SetbBooleanVisibility(True)
|
|
End If
|
|
Case GetType(DoubleGenericParameter)
|
|
DirectCast(DefaultProject, DoubleGenericParameter).SetValue(ProjectParameters.sValue)
|
|
If m_sMinUserLevel = 1 Then
|
|
DirectCast(DefaultProject, DoubleGenericParameter).SetbDoubleVisibility(True)
|
|
End If
|
|
Case GetType(ComboGenericParameter)
|
|
DirectCast(DefaultProject, ComboGenericParameter).SetSelValue(ProjectParameters.sValue)
|
|
If m_sMinUserLevel = 1 Then
|
|
DirectCast(DefaultProject, ComboGenericParameter).SetbComboBoxVisibility(True)
|
|
End If
|
|
Case GetType(StringGenericParameter)
|
|
DirectCast(DefaultProject, StringGenericParameter).SetValue(ProjectParameters.sValue)
|
|
If m_sMinUserLevel = 1 Then
|
|
DirectCast(DefaultProject, StringGenericParameter).SetbStringVisibility(True)
|
|
End If
|
|
Case GetType(ListGenericParameter)
|
|
DirectCast(DefaultProject, ListGenericParameter).SetSelValue(ProjectParameters.sValue)
|
|
DirectCast(DefaultProject, ListGenericParameter).CreateToolsViews()
|
|
DirectCast(DefaultProject, ListGenericParameter).ToolView()
|
|
If DefaultProject.sMinUserLevel = 1 Then
|
|
DirectCast(DefaultProject, ListGenericParameter).SetbListBoxVisibility(True)
|
|
End If
|
|
End Select
|
|
End If
|
|
End Sub
|
|
#End Region ' Methods
|
|
|
|
End Class
|
|
|
|
Public Class BooleanGenericParameter
|
|
Inherits ProjectParameters
|
|
|
|
#Region "FIELDS & PROPERTIES"
|
|
|
|
Friend m_bValue As Boolean = False
|
|
Public Property bValue As Boolean
|
|
Get
|
|
Return m_bValue
|
|
End Get
|
|
Set(value As Boolean)
|
|
If m_bValue <> value Then
|
|
If Not Map.refBTLDataWndVM.IsBTLDataWnd Then Map.refStrategyManagerVM.SetbIsModifyStrategy(True)
|
|
SetbIsBooleanModify(True)
|
|
End If
|
|
m_bValue = value
|
|
End Set
|
|
End Property
|
|
Friend Sub SetValue(bValue As Boolean)
|
|
m_bValue = bValue
|
|
End Sub
|
|
Friend Sub SetValue(sValue As String)
|
|
m_bValue = sValue.ToLower() = "true"
|
|
End Sub
|
|
|
|
Private m_bBooleanVisibility As Visibility = Visibility.Collapsed
|
|
Public ReadOnly Property bBooleanVisibility As Visibility
|
|
Get
|
|
Return m_bBooleanVisibility
|
|
End Get
|
|
End Property
|
|
Friend Sub SetbBooleanVisibility(value As Boolean)
|
|
m_bBooleanVisibility = If(value, Visibility.Visible, Visibility.Collapsed)
|
|
NotifyPropertyChanged(NameOf(bBooleanVisibility))
|
|
End Sub
|
|
|
|
Private m_bIsBooleanModify As Boolean = False
|
|
Public ReadOnly Property bIsBooleanModify As Boolean
|
|
Get
|
|
Return m_bIsBooleanModify
|
|
End Get
|
|
End Property
|
|
Friend Sub SetbIsBooleanModify(value As Boolean)
|
|
m_bIsBooleanModify = value
|
|
If m_bIsBooleanModify AndAlso Not IsNothing(Map.refProjectVM.BTLStructureVM.SelBTLPart) AndAlso Map.refProjectVM.bSaveGeneralParameters Then
|
|
Map.refProjectVM.BTLStructureVM.SelBTLPart.SetStrategyModify_Visibility(True)
|
|
End If
|
|
NotifyPropertyChanged(NameOf(bIsBooleanModify))
|
|
End Sub
|
|
|
|
#End Region ' Fields & Properties
|
|
|
|
#Region "CONSTRUCTOR"
|
|
|
|
Sub New()
|
|
|
|
End Sub
|
|
|
|
Sub New(JsonProjectParameters As JsonProjectParameters)
|
|
MyBase.New(JsonProjectParameters)
|
|
If IsNothing(JsonProjectParameters) Then Return
|
|
m_bValue = JsonProjectParameters.sValue.ToLower() = "true"
|
|
End Sub
|
|
|
|
#End Region ' Constructor
|
|
|
|
#Region "METHODS"
|
|
|
|
Friend Overrides Function Serialize() As JsonParametersHelper
|
|
Dim sValue As String = If(bValue, "true", "false")
|
|
Dim JsonParametersHelper As New JsonParametersHelper(sName, sNameNge, sValue, "b")
|
|
Return JsonParametersHelper
|
|
End Function
|
|
|
|
#End Region ' Methods
|
|
|
|
End Class
|
|
|
|
Public Class DoubleGenericParameter
|
|
Inherits ProjectParameters
|
|
|
|
#Region "FIELDS & PROPERTIES"
|
|
|
|
Private m_dValue As Double? = Nothing
|
|
Public Overloads Property sValue As String
|
|
Get
|
|
Return If(Not IsNothing(m_dValue), DoubleToString(m_dValue, 2), "")
|
|
End Get
|
|
Set(value As String)
|
|
Dim dValue As Double
|
|
If String.IsNullOrWhiteSpace(value) Then
|
|
m_dValue = Nothing
|
|
ElseIf StringToDouble(value, dValue) Then
|
|
If m_dValue <> dValue Then
|
|
If Not Map.refBTLDataWndVM.IsBTLDataWnd Then Map.refStrategyManagerVM.SetbIsModifyStrategy(True)
|
|
SetbIsDoubleModify(True)
|
|
End If
|
|
m_dValue = dValue
|
|
Else
|
|
NotifyPropertyChanged(NameOf(sValue))
|
|
End If
|
|
End Set
|
|
End Property
|
|
Friend Sub SetValue(dValue As Double)
|
|
m_dValue = dValue
|
|
End Sub
|
|
Friend Sub SetValue(sValue As String)
|
|
Dim dValue As Double
|
|
If String.IsNullOrWhiteSpace(sValue) Then
|
|
m_dValue = Nothing
|
|
ElseIf StringToDouble(sValue, dValue) Then
|
|
m_dValue = dValue
|
|
Else
|
|
NotifyPropertyChanged(NameOf(sValue))
|
|
EgtOutLog("Error reading DoubleStrategyParameter " & sValue)
|
|
End If
|
|
End Sub
|
|
|
|
Private m_bDoubleVisibility As Visibility = Visibility.Collapsed
|
|
Public ReadOnly Property bDoubleVisibility As Visibility
|
|
Get
|
|
Return m_bDoubleVisibility
|
|
End Get
|
|
End Property
|
|
Friend Sub SetbDoubleVisibility(value As Boolean)
|
|
m_bDoubleVisibility = If(value, Visibility.Visible, Visibility.Collapsed)
|
|
NotifyPropertyChanged(NameOf(bDoubleVisibility))
|
|
End Sub
|
|
|
|
Private m_bIsDoubleModify As Boolean = False
|
|
Public ReadOnly Property bIsDoubleModify As Boolean
|
|
Get
|
|
Return m_bIsDoubleModify
|
|
End Get
|
|
End Property
|
|
Friend Sub SetbIsDoubleModify(value As Boolean)
|
|
m_bIsDoubleModify = value
|
|
If m_bIsDoubleModify AndAlso Not IsNothing(Map.refProjectVM.BTLStructureVM.SelBTLPart) AndAlso Map.refProjectVM.bSaveGeneralParameters Then
|
|
Map.refProjectVM.BTLStructureVM.SelBTLPart.SetStrategyModify_Visibility(True)
|
|
End If
|
|
NotifyPropertyChanged(NameOf(bIsDoubleModify))
|
|
End Sub
|
|
|
|
#End Region ' Fields & Properties
|
|
|
|
#Region "CONSTRUCTOR"
|
|
|
|
Sub New()
|
|
|
|
End Sub
|
|
|
|
Sub New(JsonProjectParameters As JsonProjectParameters)
|
|
MyBase.New(JsonProjectParameters)
|
|
If IsNothing(JsonProjectParameters) Then Return
|
|
If Not StringToDouble(JsonProjectParameters.sValue, m_dValue) Then
|
|
EgtOutLog("Error reading DoubleStrategyParameter " & JsonProjectParameters.sValue)
|
|
End If
|
|
End Sub
|
|
|
|
#End Region ' Constructor
|
|
|
|
#Region "METHODS"
|
|
|
|
Friend Overrides Function Serialize() As JsonParametersHelper
|
|
Dim JsonParametersHelper As New JsonParametersHelper(sName, sNameNge, sValue, "d")
|
|
Return JsonParametersHelper
|
|
End Function
|
|
|
|
#End Region ' Methods
|
|
|
|
End Class
|
|
|
|
Public Class StringGenericParameter
|
|
Inherits ProjectParameters
|
|
|
|
#Region "FIELDS & PROPERTIES"
|
|
|
|
Private m_sValue As String = String.Empty
|
|
Public Overloads Property sValue As String
|
|
Get
|
|
Return m_sValue
|
|
End Get
|
|
Set(value As String)
|
|
If m_sValue <> value Then
|
|
If Not Map.refBTLDataWndVM.IsBTLDataWnd Then Map.refStrategyManagerVM.SetbIsModifyStrategy(True)
|
|
SetbIsStringModify(True)
|
|
End If
|
|
m_sValue = value
|
|
End Set
|
|
End Property
|
|
Friend Sub SetValue(dValue As String)
|
|
m_sValue = dValue
|
|
End Sub
|
|
|
|
Private m_bStringVisibility As Visibility = Visibility.Collapsed
|
|
Public ReadOnly Property bStringVisibility As Visibility
|
|
Get
|
|
Return m_bStringVisibility
|
|
End Get
|
|
End Property
|
|
Friend Sub SetbStringVisibility(value As Boolean)
|
|
m_bStringVisibility = If(value, Visibility.Visible, Visibility.Collapsed)
|
|
NotifyPropertyChanged(NameOf(bStringVisibility))
|
|
End Sub
|
|
|
|
Private m_bIsStringModify As Boolean = False
|
|
Public ReadOnly Property bIsStringModify As Boolean
|
|
Get
|
|
Return m_bIsStringModify
|
|
End Get
|
|
End Property
|
|
Friend Sub SetbIsStringModify(value As Boolean)
|
|
m_bIsStringModify = value
|
|
If m_bIsStringModify AndAlso Not IsNothing(Map.refProjectVM.BTLStructureVM.SelBTLPart) AndAlso Map.refProjectVM.bSaveGeneralParameters Then
|
|
Map.refProjectVM.BTLStructureVM.SelBTLPart.SetStrategyModify_Visibility(True)
|
|
End If
|
|
NotifyPropertyChanged(NameOf(bIsStringModify))
|
|
End Sub
|
|
|
|
#End Region ' Fields & Properties
|
|
|
|
#Region "CONSTRUCTOR"
|
|
|
|
Sub New()
|
|
|
|
End Sub
|
|
|
|
Sub New(JsonProjectParameters As JsonProjectParameters)
|
|
MyBase.New(JsonProjectParameters)
|
|
If IsNothing(JsonProjectParameters) Then Return
|
|
If Not StringToDouble(JsonProjectParameters.sValue, m_sValue) Then
|
|
EgtOutLog("Error reading StringStrategyParameter " & JsonProjectParameters.sValue)
|
|
End If
|
|
End Sub
|
|
|
|
#End Region ' Constructor
|
|
|
|
#Region "METHODS"
|
|
|
|
Friend Overrides Function Serialize() As JsonParametersHelper
|
|
Dim JsonParametersHelper As New JsonParametersHelper(sName, sNameNge, sValue, "s")
|
|
Return JsonParametersHelper
|
|
End Function
|
|
|
|
#End Region ' Methods
|
|
|
|
End Class
|
|
|
|
Public Class ComboGenericParameter
|
|
Inherits ProjectParameters
|
|
|
|
#Region "FIELDS & PROPERTIES"
|
|
|
|
Private m_ComboList As New List(Of ComboParameter)
|
|
Public Property ComboList As List(Of ComboParameter)
|
|
Get
|
|
Return m_ComboList
|
|
End Get
|
|
Set(value As List(Of ComboParameter))
|
|
m_ComboList = value
|
|
End Set
|
|
End Property
|
|
|
|
' Seleziona elemento nella combobox Choices
|
|
Private m_SelValue As ComboParameter
|
|
Public Property SelValue As ComboParameter
|
|
Get
|
|
Return m_SelValue
|
|
End Get
|
|
Set(value As ComboParameter)
|
|
If Not IsNothing(value) AndAlso Not IsNothing(m_SelValue) Then
|
|
If m_SelValue.sValue <> value.sValue Then
|
|
If Not Map.refBTLDataWndVM.IsBTLDataWnd Then Map.refStrategyManagerVM.SetbIsModifyStrategy(True)
|
|
SetbIsComboBoxModify(True)
|
|
End If
|
|
End If
|
|
m_SelValue = value
|
|
End Set
|
|
End Property
|
|
Friend Sub SetSelValue(sValue As String)
|
|
m_SelValue = m_ComboList.FirstOrDefault(Function(x) x.sValue = sValue)
|
|
End Sub
|
|
|
|
Private m_bComboBoxVisibility As Visibility = Visibility.Collapsed
|
|
Public ReadOnly Property bComboBoxVisibility As Visibility
|
|
Get
|
|
Return m_bComboBoxVisibility
|
|
End Get
|
|
End Property
|
|
Friend Sub SetbComboBoxVisibility(value As Boolean)
|
|
m_bComboBoxVisibility = If(value, Visibility.Visible, Visibility.Collapsed)
|
|
NotifyPropertyChanged(NameOf(bComboBoxVisibility))
|
|
End Sub
|
|
|
|
Private m_bIsComboBoxModify As Boolean = False
|
|
Public ReadOnly Property bIsComboBoxModify As Boolean
|
|
Get
|
|
Return m_bIsComboBoxModify
|
|
End Get
|
|
End Property
|
|
Friend Sub SetbIsComboBoxModify(value As Boolean)
|
|
m_bIsComboBoxModify = value
|
|
If m_bIsComboBoxModify AndAlso Not IsNothing(Map.refProjectVM.BTLStructureVM.SelBTLPart) AndAlso Map.refProjectVM.bSaveGeneralParameters Then
|
|
Map.refProjectVM.BTLStructureVM.SelBTLPart.SetStrategyModify_Visibility(True)
|
|
End If
|
|
NotifyPropertyChanged(NameOf(bIsComboBoxModify))
|
|
End Sub
|
|
|
|
#End Region ' Fields & Properties
|
|
|
|
#Region "CONSTRUCTOR"
|
|
|
|
Sub New()
|
|
|
|
End Sub
|
|
|
|
Sub New(JsonProjectParameters As JsonProjectParameters)
|
|
MyBase.New(JsonProjectParameters)
|
|
If IsNothing(JsonProjectParameters) Then Return
|
|
ComboList = JsonProjectParameters.Choices.Select(Function(jsonChoice) New ComboParameter(jsonChoice)).ToList()
|
|
SelValue = ComboList.FirstOrDefault(Function(x) x.sValue = JsonProjectParameters.sValue)
|
|
End Sub
|
|
|
|
#End Region ' Constructor
|
|
|
|
#Region "METHODS"
|
|
|
|
Friend Overrides Function Serialize() As JsonParametersHelper
|
|
Dim JsonParametersHelper As New JsonParametersHelper(sName, sNameNge, m_SelValue.sValue, "combo")
|
|
Return JsonParametersHelper
|
|
End Function
|
|
|
|
#End Region ' Methods
|
|
|
|
End Class
|
|
|
|
Public Class ListGenericParameter
|
|
Inherits ProjectParameters
|
|
|
|
#Region "FIELDS & PROPERTIES"
|
|
|
|
Private m_ListValue As New List(Of ToolParameter)
|
|
Public Property ListValue As List(Of ToolParameter)
|
|
Get
|
|
Return m_ListValue
|
|
End Get
|
|
Set(value As List(Of ToolParameter))
|
|
m_ListValue = value
|
|
End Set
|
|
End Property
|
|
|
|
Private m_SelValue As ToolParameter
|
|
Public Property SelValue As ToolParameter
|
|
Get
|
|
Return m_SelValue
|
|
End Get
|
|
Set(value As ToolParameter)
|
|
If Not IsNothing(value) AndAlso Not IsNothing(m_SelValue) Then
|
|
If m_SelValue.sUUID <> value.sUUID Then
|
|
If Not Map.refBTLDataWndVM.IsBTLDataWnd Then Map.refStrategyManagerVM.SetbIsModifyStrategy(True)
|
|
SetbIsListModify(True)
|
|
End If
|
|
End If
|
|
m_SelValue = value
|
|
NotifyPropertyChanged(NameOf(SelValue))
|
|
End Set
|
|
End Property
|
|
Friend Sub SetSelValue(sValue As String)
|
|
Dim sTrimValue As String = sValue.TrimEnd(";"c)
|
|
Dim sTmpValue As String() = sTrimValue.Split(";"c)
|
|
Dim sSplitValue As String()
|
|
For Each ItemValue As String In sTmpValue
|
|
sSplitValue = ItemValue.Split(","c)
|
|
For Each ItemTool As ToolParameter In m_ListValue
|
|
If sSplitValue(0) = ItemTool.sUUID AndAlso sSplitValue(1) = ItemTool.sName Then
|
|
ItemTool.bIsActive = True
|
|
End If
|
|
Next
|
|
Next
|
|
End Sub
|
|
|
|
Private m_AvailableToolList_View As ICollectionView = Nothing
|
|
Public ReadOnly Property AvailableToolList_View As ICollectionView
|
|
Get
|
|
Return m_AvailableToolList_View
|
|
End Get
|
|
End Property
|
|
|
|
Private m_ActiveToolList_View As ICollectionView = Nothing
|
|
Public ReadOnly Property ActiveToolList_View As ICollectionView
|
|
Get
|
|
Return m_ActiveToolList_View
|
|
End Get
|
|
End Property
|
|
|
|
Private m_bAvailableToolListVisibility As Visibility = Visibility.Collapsed
|
|
Public ReadOnly Property AvailableToolListVisibility As Visibility
|
|
Get
|
|
Return m_bAvailableToolListVisibility
|
|
End Get
|
|
End Property
|
|
Friend Sub SetAvailableToolListVisibility(value As Boolean)
|
|
m_bAvailableToolListVisibility = If(value, Visibility.Visible, Visibility.Collapsed)
|
|
NotifyPropertyChanged(NameOf(AvailableToolListVisibility))
|
|
End Sub
|
|
|
|
Private m_bOpenToolListIsEnable As Boolean = True
|
|
Public ReadOnly Property OpenToolListIsEnable As Boolean
|
|
Get
|
|
Return m_bOpenToolListIsEnable
|
|
End Get
|
|
End Property
|
|
Friend Sub SetOpenToolListIsEnable(value As Boolean)
|
|
m_bOpenToolListIsEnable = value
|
|
NotifyPropertyChanged(NameOf(OpenToolListIsEnable))
|
|
End Sub
|
|
|
|
Private m_bActiveToolListIsEnable As Boolean
|
|
Public ReadOnly Property ActiveToolListIsEnable As Boolean
|
|
Get
|
|
Return m_bActiveToolListIsEnable
|
|
End Get
|
|
End Property
|
|
Friend Sub SetActiveToolListIsEnable(value As Boolean)
|
|
m_bActiveToolListIsEnable = value
|
|
NotifyPropertyChanged(NameOf(ActiveToolListIsEnable))
|
|
End Sub
|
|
|
|
Private m_bAvailableToolListIsEnable As Boolean
|
|
Public ReadOnly Property AvailableToolListIsEnable As Boolean
|
|
Get
|
|
Return m_bAvailableToolListIsEnable
|
|
End Get
|
|
End Property
|
|
Friend Sub SetAvailableToolListIsEnable(value As Boolean)
|
|
m_bAvailableToolListIsEnable = value
|
|
NotifyPropertyChanged(NameOf(AvailableToolListIsEnable))
|
|
End Sub
|
|
|
|
Private m_bListBoxVisibility As Visibility = Visibility.Collapsed
|
|
Public ReadOnly Property bListBoxVisibility As Visibility
|
|
Get
|
|
Return m_bListBoxVisibility
|
|
End Get
|
|
End Property
|
|
Friend Sub SetbListBoxVisibility(value As Boolean)
|
|
m_bListBoxVisibility = If(value, Visibility.Visible, Visibility.Collapsed)
|
|
NotifyPropertyChanged(NameOf(bListBoxVisibility))
|
|
End Sub
|
|
|
|
Private m_bIsListModify As Boolean = False
|
|
Public ReadOnly Property bIsListModify As Boolean
|
|
Get
|
|
Return m_bIsListModify
|
|
End Get
|
|
End Property
|
|
Friend Sub SetbIsListModify(value As Boolean)
|
|
m_bIsListModify = value
|
|
If m_bIsListModify AndAlso Not IsNothing(Map.refProjectVM.BTLStructureVM.SelBTLPart) AndAlso Map.refProjectVM.bSaveGeneralParameters Then
|
|
Map.refProjectVM.BTLStructureVM.SelBTLPart.SetStrategyModify_Visibility(True)
|
|
End If
|
|
NotifyPropertyChanged(NameOf(bIsListModify))
|
|
End Sub
|
|
|
|
#Region "Messages"
|
|
|
|
Public ReadOnly Property SelectAllToolTip As String
|
|
Get
|
|
Return EgtMsg(63034)
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property DeselectAllToolTip As String
|
|
Get
|
|
Return EgtMsg(63035)
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property OpenToolListToolTip As String
|
|
Get
|
|
Return EgtMsg(63036)
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property CloseToolListToolTip As String
|
|
Get
|
|
Return EgtMsg(63037)
|
|
End Get
|
|
End Property
|
|
|
|
#End Region ' Messages
|
|
|
|
' Definizione comandi
|
|
Private m_cmdDeselectAll As ICommand
|
|
Private m_cmdSelectAll As ICommand
|
|
Private m_cmdOpenToolList As ICommand
|
|
Private m_cmdCloseToolList As ICommand
|
|
|
|
#End Region ' Fields & Properties
|
|
|
|
#Region "CONSTRUCTOR"
|
|
|
|
Sub New(sSubType As String)
|
|
' Recupero lista utensili per sottotipo
|
|
Dim nSubType As Integer = 0
|
|
Dim nType As Integer = 0
|
|
Dim sName As String = String.Empty
|
|
Dim sUUID As String = String.Empty
|
|
Dim sInfo As String = String.Empty
|
|
|
|
StringToInt(sSubType, nSubType)
|
|
Dim bNext As Boolean = EgtTdbGetFirstTool(nSubType, sName, nType)
|
|
While bNext
|
|
EgtTdbSetCurrTool(sName)
|
|
EgtTdbGetCurrToolParam(MCH_TP.UUID, sUUID)
|
|
'm_ListValue.Add(New ToolParameter(sUUID, sName, Me))
|
|
bNext = EgtTdbGetNextTool(nSubType, sName, nType)
|
|
End While
|
|
End Sub
|
|
|
|
#End Region ' Constructor
|
|
|
|
#Region "METHODS"
|
|
|
|
Friend Overrides Function Serialize() As JsonParametersHelper
|
|
Dim sInfo As String = String.Empty
|
|
'If Not IsNothing(sSubType) Then
|
|
' For Each ItemTool As ToolParameter In m_ListValue
|
|
' If ItemTool.bIsActive Then
|
|
' sInfo &= ItemTool.sUUID & "," & ItemTool.sName & ";"
|
|
' End If
|
|
' Next
|
|
'End If
|
|
Dim JsonParametersHelper As New JsonParametersHelper(sName, sNameNge, sInfo, "tool")
|
|
Return JsonParametersHelper
|
|
End Function
|
|
|
|
Friend Function AvailableToolFilter(Strategy As Object) As Boolean
|
|
Return DirectCast(Strategy, ToolParameter).bIsActive = False
|
|
End Function
|
|
|
|
Friend Function ActiveToolFilter(Strategy As Object) As Boolean
|
|
Return DirectCast(Strategy, ToolParameter).bIsActive = True
|
|
End Function
|
|
|
|
Friend Sub CreateToolsViews()
|
|
m_AvailableToolList_View = New ListCollectionView(m_ListValue)
|
|
m_AvailableToolList_View.Filter = AddressOf AvailableToolFilter
|
|
m_ActiveToolList_View = New ListCollectionView(m_ListValue)
|
|
m_ActiveToolList_View.Filter = AddressOf ActiveToolFilter
|
|
End Sub
|
|
|
|
''' <summary>
|
|
''' Funzione per visualizzare le liste available e active tool
|
|
''' </summary>
|
|
Friend Sub ToolView()
|
|
SetActiveToolListIsEnable(If(m_ActiveToolList_View.IsEmpty, False, True))
|
|
SetAvailableToolListIsEnable(If(m_AvailableToolList_View.IsEmpty, False, True))
|
|
End Sub
|
|
#End Region ' Methods
|
|
|
|
#Region "COMMANDS"
|
|
|
|
#Region "OpenToolListCommand"
|
|
|
|
Public ReadOnly Property OpenToolListCommand As ICommand
|
|
Get
|
|
If m_cmdOpenToolList Is Nothing Then
|
|
m_cmdOpenToolList = New Command(AddressOf OpenToolList)
|
|
End If
|
|
Return m_cmdOpenToolList
|
|
End Get
|
|
End Property
|
|
|
|
Friend Sub OpenToolList()
|
|
SetAvailableToolListVisibility(True)
|
|
SetOpenToolListIsEnable(False)
|
|
End Sub
|
|
|
|
#End Region ' OpenToolListCommand
|
|
|
|
#Region "CloseToolListCommand"
|
|
|
|
Public ReadOnly Property CloseToolListCommand As ICommand
|
|
Get
|
|
If m_cmdCloseToolList Is Nothing Then
|
|
m_cmdCloseToolList = New Command(AddressOf CloseToolList)
|
|
End If
|
|
Return m_cmdCloseToolList
|
|
End Get
|
|
End Property
|
|
|
|
Friend Sub CloseToolList()
|
|
SetAvailableToolListVisibility(False)
|
|
SetOpenToolListIsEnable(True)
|
|
End Sub
|
|
|
|
#End Region ' CloseToolListCommand
|
|
|
|
#Region "SelectAllCommand"
|
|
|
|
Public ReadOnly Property SelectAllCommand As ICommand
|
|
Get
|
|
If m_cmdSelectAll Is Nothing Then
|
|
m_cmdSelectAll = New Command(AddressOf SelectAll)
|
|
End If
|
|
Return m_cmdSelectAll
|
|
End Get
|
|
End Property
|
|
|
|
Friend Sub SelectAll()
|
|
'If Not IsNothing(sSubType) Then
|
|
' For Each ItemTool As ToolParameter In m_ListValue
|
|
' ItemTool.bIsActive = True
|
|
' Next
|
|
'End If
|
|
SetAvailableToolListIsEnable(False)
|
|
Map.refStrategyManagerVM.SetbIsModifyStrategy(True)
|
|
End Sub
|
|
|
|
#End Region ' SelectAllCommand
|
|
|
|
#Region "DeselectAllCommand"
|
|
|
|
Public ReadOnly Property DeselectAllCommand As ICommand
|
|
Get
|
|
If m_cmdDeselectAll Is Nothing Then
|
|
m_cmdDeselectAll = New Command(AddressOf DeselectAll)
|
|
End If
|
|
Return m_cmdDeselectAll
|
|
End Get
|
|
End Property
|
|
|
|
Friend Sub DeselectAll()
|
|
'If Not IsNothing(sSubType) Then
|
|
' For Each ItemTool As ToolParameter In m_ListValue
|
|
' ItemTool.bIsActive = False
|
|
' Next
|
|
'End If
|
|
SetActiveToolListIsEnable(False)
|
|
Map.refStrategyManagerVM.SetbIsModifyStrategy(True)
|
|
End Sub
|
|
|
|
#End Region ' DeselectAllCommand
|
|
|
|
#End Region ' Commands
|
|
|
|
End Class
|
|
|
|
Class GroupVisibilityConverter
|
|
Implements IMultiValueConverter
|
|
|
|
Public Function Convert(values() As Object, targetType As Type, parameter As Object, culture As CultureInfo) As Object Implements IMultiValueConverter.Convert
|
|
Dim items = TryCast(values(0), ReadOnlyObservableCollection(Of Object))
|
|
|
|
If IsNothing(items) OrElse items.Count = 0 Then
|
|
Return Visibility.Collapsed
|
|
End If
|
|
|
|
For Each item In items
|
|
Dim prop As PropertyInfo = item.GetType().GetProperty("sMinUserLevel")
|
|
If Not IsNothing(prop) Then
|
|
Dim levelObj = prop.GetValue(item)
|
|
Dim level As Integer = 0
|
|
If Not IsNothing(levelObj) AndAlso Integer.TryParse(levelObj.ToString(), level) AndAlso level <> 5 AndAlso level <> 10 Then
|
|
Return Visibility.Visible
|
|
ElseIf Map.refMainMenuVM.UserAdmin_IsChecked Then
|
|
Return Visibility.Visible
|
|
End If
|
|
End If
|
|
Next
|
|
|
|
Return Visibility.Collapsed
|
|
End Function
|
|
|
|
Public Function ConvertBack(value As Object, targetTypes() As Type, parameter As Object, culture As CultureInfo) As Object() Implements IMultiValueConverter.ConvertBack
|
|
Throw New NotImplementedException()
|
|
End Function
|
|
End Class |