33d18efcc2
- aggiunta strategy per btl - aggiunte ForcedStrategy su feature
1237 lines
38 KiB
VB.net
1237 lines
38 KiB
VB.net
Imports System.Collections.ObjectModel
|
|
Imports EgtWPFLib5
|
|
Imports Newtonsoft.Json
|
|
Imports System.IO
|
|
Imports EgtBEAMWALL.Core
|
|
Imports EgtUILib
|
|
Imports System.ComponentModel
|
|
Imports System.Globalization
|
|
|
|
Public Class StrategyManagerVM
|
|
Inherits VMBase
|
|
|
|
#Region "FIELDS & PROPERTIES"
|
|
|
|
Private m_StrategySetupList As New ObservableCollection(Of StrategySetup)
|
|
Public ReadOnly Property StrategySetupList As ObservableCollection(Of StrategySetup)
|
|
Get
|
|
Return m_StrategySetupList
|
|
End Get
|
|
End Property
|
|
|
|
Private m_SelStrategySetup As StrategySetup
|
|
Public Property SelStrategySetup As StrategySetup
|
|
Get
|
|
Return m_SelStrategySetup
|
|
End Get
|
|
Set(value As StrategySetup)
|
|
m_SelStrategySetup = value
|
|
m_SelStrategySetup.Read()
|
|
NotifyPropertyChanged(NameOf(SelStrategySetup))
|
|
End Set
|
|
End Property
|
|
|
|
' Permette di selezionare l'elemento dell'albero
|
|
Public m_SelTreeItem As Topology
|
|
Public Property SelTreeItem As Topology
|
|
Get
|
|
Return m_SelTreeItem
|
|
End Get
|
|
Set(value As Topology)
|
|
m_SelTreeItem = value
|
|
NotifyPropertyChanged(NameOf(SelTreeItem))
|
|
End Set
|
|
End Property
|
|
''' <summary>
|
|
''' Funzione che aggiorna la selezione dell'elemento dell'albero
|
|
''' </summary>
|
|
''' <param name="Item">Elemento dell'albero</param>
|
|
Friend Sub UpdateSelTreeItem(Item As Topology)
|
|
m_SelTreeItem = Item
|
|
NotifyPropertyChanged(NameOf(SelTreeItem))
|
|
End Sub
|
|
|
|
' Utilizzato per indicare che viene effettuata una modifica
|
|
Private m_bIsModifyStrategy As Boolean = False
|
|
Public ReadOnly Property bIsModifyStrategy As Boolean
|
|
Get
|
|
Return m_bIsModifyStrategy
|
|
End Get
|
|
End Property
|
|
Friend Sub SetbIsModifyStrategy(value As Boolean)
|
|
m_bIsModifyStrategy = value
|
|
If m_bIsModifyStrategy Then
|
|
SetSaveImage("pack://application:,,,/Resources/NewPage/SaveModify.png")
|
|
Else
|
|
SetSaveImage("pack://application:,,,/Resources/ProjectManager/Save.png")
|
|
End If
|
|
NotifyPropertyChanged(NameOf(bIsModifyStrategy))
|
|
End Sub
|
|
|
|
' Immagine SaveCommand
|
|
Private m_SaveImage As String = "pack://application:,,,/Resources/ProjectManager/Save.png"
|
|
Public ReadOnly Property SaveImage As String
|
|
Get
|
|
Return m_SaveImage
|
|
End Get
|
|
End Property
|
|
Friend Sub SetSaveImage(value As String)
|
|
m_SaveImage = value
|
|
NotifyPropertyChanged(NameOf(SaveImage))
|
|
End Sub
|
|
|
|
' Lista che contiene le strategie filtrate
|
|
Private m_StrategyProductionList As New ObservableCollection(Of Strategy)
|
|
Public Property StrategyProductionList As ObservableCollection(Of Strategy)
|
|
Get
|
|
Return m_StrategyProductionList
|
|
End Get
|
|
Set(value As ObservableCollection(Of Strategy))
|
|
m_StrategyProductionList = value
|
|
NotifyPropertyChanged(NameOf(StrategyProductionList))
|
|
End Set
|
|
End Property
|
|
|
|
Private m_StrategyProductionPath As String = String.Empty
|
|
Public ReadOnly Property StrategyProductionPath As String
|
|
Get
|
|
Return m_StrategyProductionPath
|
|
End Get
|
|
End Property
|
|
Friend Sub SetStrategyProductionPath(value As String)
|
|
m_StrategyProductionPath = value
|
|
NotifyPropertyChanged(NameOf(StrategyProductionPath))
|
|
End Sub
|
|
|
|
#Region "Messages"
|
|
|
|
Public ReadOnly Property SaveToolTip As String
|
|
Get
|
|
Return EgtMsg(62571)
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property SaveAsToolTip As String
|
|
Get
|
|
Return EgtMsg(62572)
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property NewToolTip As String
|
|
Get
|
|
Return EgtMsg(30501)
|
|
End Get
|
|
End Property
|
|
|
|
#End Region ' Messages
|
|
|
|
' Definizione Comandi
|
|
Private m_AddSelectedStrategyCommand As ICommand
|
|
Private m_RemoveSelectedStrategyCommand As ICommand
|
|
Private m_NewCommand As ICommand
|
|
Private m_OpenCommand As ICommand
|
|
Private m_SaveCommand As ICommand
|
|
Private m_OpenFileNameCustomConfigCommand As ICommand
|
|
Private m_MoveUpSelectedStrategyCommand As ICommand
|
|
Private m_MoveDownSelectedStrategyCommand As ICommand
|
|
Private m_cmdOk As ICommand
|
|
Private m_cmdCancel As ICommand
|
|
|
|
#End Region ' Field & Properties
|
|
|
|
#Region "CONSTRUCTOR"
|
|
|
|
Sub New()
|
|
' Setto riferimento
|
|
Map.SetRefStrategyManagerVM(Me)
|
|
' leggo cartella dei setup delle strategie
|
|
Dim AISetupDirPath As String = Map.refMainWindowVM.MainWindowM.GetAISetupDirPath()
|
|
Dim AISetupPaths As String() = Directory.GetFiles(AISetupDirPath)
|
|
For Each AiSetup In AISetupPaths
|
|
m_StrategySetupList.Add(New StrategySetup(Path.GetFileNameWithoutExtension(AiSetup)))
|
|
Next
|
|
If m_StrategySetupList.Count > 0 Then
|
|
SelStrategySetup = m_StrategySetupList(0)
|
|
End If
|
|
' Assegno riferimento funzione per aggiornare elemento selezionato dall'albero
|
|
Topology.refUpdateSelTreeItem = AddressOf UpdateSelTreeItem
|
|
End Sub
|
|
|
|
#End Region ' Constructor
|
|
|
|
#Region "METHODS"
|
|
|
|
''' <summary>
|
|
''' Funzione che salva il file customconfig se sono presenti modifiche
|
|
''' </summary>
|
|
Friend Sub SaveCustomConfigJson()
|
|
' Controlla se il file JSON è stato modificato
|
|
If Not m_bIsModifyStrategy Then Return
|
|
' Chiede conferma per il salvataggio
|
|
If MessageBox.Show("Il file Json è stato modificato. Vuoi salvarlo?", EgtMsg(15003), MessageBoxButton.YesNo, MessageBoxImage.Information) = MessageBoxResult.Yes Then
|
|
m_SelStrategySetup.Write()
|
|
End If
|
|
End Sub
|
|
|
|
''' <summary>
|
|
''' Funzione che recupera le strategie filtrate
|
|
''' </summary>
|
|
Friend Sub GetStrategyProduction()
|
|
' Pulisco la lista
|
|
m_StrategyProductionList.Clear()
|
|
' Recupero Feature selezionata
|
|
Dim selFeature As BTLFeatureVM = Map.refProjectVM.MachGroupPanelVM.SelectedMachGroup.SelPart.SelFeatureVM
|
|
' Popolo la lista con le strategie
|
|
Dim AvailableStrategyItem As StrategyFeature = m_SelStrategySetup.StrategyFeatureList.FirstOrDefault(Function(AvailableStrategy) selFeature.nPRC = AvailableStrategy.nPRC AndAlso selFeature.nSelGRP = AvailableStrategy.nGRP)
|
|
' Controllo se AvailableStrategyItem non è nullo
|
|
If Not IsNothing(AvailableStrategyItem) Then
|
|
' Se esiste, popola la lista con le strategie
|
|
m_StrategyProductionList = New ObservableCollection(Of Strategy)(AvailableStrategyItem.TopologyList.SelectMany(Function(topology) topology.StrategyList))
|
|
End If
|
|
NotifyPropertyChanged(NameOf(StrategyProductionList))
|
|
End Sub
|
|
|
|
#End Region ' Methods
|
|
|
|
#Region "COMMANDS"
|
|
|
|
#Region "AddSelectedStrategyCommand"
|
|
|
|
Public ReadOnly Property AddSelectedStrategyCommand As ICommand
|
|
Get
|
|
If m_AddSelectedStrategyCommand Is Nothing Then
|
|
m_AddSelectedStrategyCommand = New Command(AddressOf AddSelectedStrategyToActiveStrategy)
|
|
End If
|
|
Return m_AddSelectedStrategyCommand
|
|
End Get
|
|
End Property
|
|
|
|
''' <summary>
|
|
''' Funzione che permette di aggiungere la strategia da StrategyList a ActiveStrategyList
|
|
''' </summary>
|
|
Public Sub AddSelectedStrategyToActiveStrategy()
|
|
' Controllo se SelectedStrategy se è nullo esco
|
|
If IsNothing(m_SelTreeItem.SelAvailableStrategy) Then Return
|
|
' Setto a true booleano per modifica
|
|
SetbIsModifyStrategy(True)
|
|
' Setto indice per capire che la strategia è stata spostata in ActiveStrategyList
|
|
m_SelTreeItem.SelAvailableStrategy.nIndexInList = 0
|
|
' Aggiorno le liste
|
|
m_SelTreeItem.AvailableStrategyList_View.Refresh()
|
|
m_SelTreeItem.ActiveStrategyList_View.Refresh()
|
|
End Sub
|
|
|
|
#End Region ' AddSelectedStrategyCommand
|
|
|
|
#Region "RemoveSelectedStrategyCommand"
|
|
|
|
Public ReadOnly Property RemoveSelectedStrategyCommand As ICommand
|
|
Get
|
|
If m_RemoveSelectedStrategyCommand Is Nothing Then
|
|
m_RemoveSelectedStrategyCommand = New Command(AddressOf RemoveSelectedStrategyToActiveStrategy)
|
|
End If
|
|
Return m_RemoveSelectedStrategyCommand
|
|
End Get
|
|
End Property
|
|
|
|
''' <summary>
|
|
''' Funzione che rimuove la strategia da ActiveStrategyList e la riaggiunge a StrategyList
|
|
''' </summary>
|
|
Public Sub RemoveSelectedStrategyToActiveStrategy()
|
|
' Controllo se SelectedActiveStrategy se è nullo esco
|
|
If IsNothing(m_SelTreeItem.SelActiveStrategy) Then Return
|
|
' Setto a true booleano per modifica
|
|
SetbIsModifyStrategy(True)
|
|
' Setto indice per capire che la strategia è stata spostata in StrategyList
|
|
m_SelTreeItem.SelActiveStrategy.nIndexInList = -1
|
|
' Aggiorno le liste
|
|
m_SelTreeItem.AvailableStrategyList_View.Refresh()
|
|
m_SelTreeItem.ActiveStrategyList_View.Refresh()
|
|
End Sub
|
|
|
|
#End Region ' RemoveSelectedStrategyCommand
|
|
|
|
#Region "OpenFileNameCustomConfigCommand"
|
|
|
|
Public ReadOnly Property OpenFileNameCustomConfigCommand As ICommand
|
|
Get
|
|
If m_OpenFileNameCustomConfigCommand Is Nothing Then
|
|
m_OpenFileNameCustomConfigCommand = New Command(AddressOf OpenFileNameCustomConfig)
|
|
End If
|
|
Return m_OpenFileNameCustomConfigCommand
|
|
End Get
|
|
End Property
|
|
|
|
''' <summary>
|
|
''' Funzione che visualizza la textbox
|
|
''' </summary>
|
|
Public Sub OpenFileNameCustomConfig()
|
|
Dim SaveAsStrategyWnd As New SaveAsStrategyV With {
|
|
.DataContext = New SaveAsStrategyVM,
|
|
.Owner = Application.Current.MainWindow
|
|
}
|
|
SaveAsStrategyWnd.ShowDialog()
|
|
End Sub
|
|
|
|
#End Region ' OpenFileNameCustomConfigCommand
|
|
|
|
#Region "New"
|
|
|
|
Public ReadOnly Property New_Command As ICommand
|
|
Get
|
|
If m_NewCommand Is Nothing Then
|
|
m_NewCommand = New Command(AddressOf NewAiSetup)
|
|
End If
|
|
Return m_NewCommand
|
|
End Get
|
|
End Property
|
|
|
|
''' <summary>
|
|
''' Funzione che salva il file json CustomerConfig
|
|
''' </summary>
|
|
Public Sub NewAiSetup()
|
|
Dim sAISetupDirPath As String = Map.refMainWindowVM.MainWindowM.GetAISetupDirPath()
|
|
Dim sStrategyConfigurationFilePath As String = sAISetupDirPath & "\" & CUSTOMERCONFIG_FILE & ".json"
|
|
Dim NewStrategy As New StrategySetup(CUSTOMERCONFIG_FILE)
|
|
m_StrategySetupList.Add(NewStrategy)
|
|
SelStrategySetup = NewStrategy
|
|
NotifyPropertyChanged(NameOf(StrategySetupList))
|
|
End Sub
|
|
|
|
#End Region ' New
|
|
|
|
#Region "SaveCommand"
|
|
|
|
Public ReadOnly Property SaveCommand As ICommand
|
|
Get
|
|
If m_SaveCommand Is Nothing Then
|
|
m_SaveCommand = New Command(AddressOf Save)
|
|
End If
|
|
Return m_SaveCommand
|
|
End Get
|
|
End Property
|
|
|
|
''' <summary>
|
|
''' Funzione che salva il file json CustomerConfig
|
|
''' </summary>
|
|
Public Sub Save()
|
|
m_SelStrategySetup.Write()
|
|
SetbIsModifyStrategy(False)
|
|
End Sub
|
|
|
|
#End Region ' SaveCommand
|
|
|
|
#Region "MoveUpSelectedStrategyCommand"
|
|
|
|
Public ReadOnly Property MoveUpSelectedStrategyCommand As ICommand
|
|
Get
|
|
If m_MoveUpSelectedStrategyCommand Is Nothing Then
|
|
m_MoveUpSelectedStrategyCommand = New Command(AddressOf MoveUpSelectedStrategy)
|
|
End If
|
|
Return m_MoveUpSelectedStrategyCommand
|
|
End Get
|
|
End Property
|
|
|
|
''' <summary>
|
|
''' Funzione che permette di spostare in alto la strategia selezionata
|
|
''' </summary>
|
|
Public Sub MoveUpSelectedStrategy()
|
|
' Controllo se SelectedActiveStrategy se è nullo esco
|
|
If IsNothing(m_SelTreeItem.SelActiveStrategy) Then Return
|
|
' Recupero indice elemento selezionato in lista
|
|
Dim IndexActiveStrategy As Integer = m_SelTreeItem.StrategyList.IndexOf(m_SelTreeItem.SelActiveStrategy)
|
|
' Recupero indice elemento selezionato in lista
|
|
Dim NewIndexActiveStrategy As Integer = IndexActiveStrategy - 1
|
|
' Se l'indice è maggiore di 0
|
|
If IndexActiveStrategy > 0 Then
|
|
' Muovo l'elemento selezionato sopra di 1
|
|
m_SelTreeItem.StrategyList.Move(IndexActiveStrategy, NewIndexActiveStrategy)
|
|
End If
|
|
' Setto a true booleano per modifica
|
|
SetbIsModifyStrategy(True)
|
|
' Aggiorno la lista
|
|
m_SelTreeItem.ActiveStrategyList_View.Refresh()
|
|
End Sub
|
|
|
|
#End Region ' MoveUpSelectedStrategyCommand
|
|
|
|
#Region "MoveDownSelectedStrategyCommand"
|
|
|
|
Public ReadOnly Property MoveDownSelectedStrategyCommand As ICommand
|
|
Get
|
|
If m_MoveDownSelectedStrategyCommand Is Nothing Then
|
|
m_MoveDownSelectedStrategyCommand = New Command(AddressOf MoveDownSelectedStrategy)
|
|
End If
|
|
Return m_MoveDownSelectedStrategyCommand
|
|
End Get
|
|
End Property
|
|
|
|
''' <summary>
|
|
''' Funzione che permette di spostare in basso la strategia selezionata
|
|
''' </summary>
|
|
Public Sub MoveDownSelectedStrategy()
|
|
If IsNothing(m_SelTreeItem.SelActiveStrategy) Then Return
|
|
' Recupero indice elemento selezionato in lista
|
|
Dim IndexActiveStrategy As Integer = m_SelTreeItem.StrategyList.IndexOf(m_SelTreeItem.SelActiveStrategy)
|
|
' Recupero indice elemento selezionato in lista
|
|
Dim NewIndexActiveStrategy As Integer = IndexActiveStrategy + 1
|
|
' Se l'indice è maggiore di 0
|
|
If IndexActiveStrategy >= 0 Then
|
|
' Muovo l'elemento selezionato sopra di 1
|
|
m_SelTreeItem.StrategyList.Move(IndexActiveStrategy, NewIndexActiveStrategy)
|
|
End If
|
|
' Setto a true booleano per modifica
|
|
SetbIsModifyStrategy(True)
|
|
' Aggiorno la lista
|
|
m_SelTreeItem.ActiveStrategyList_View.Refresh()
|
|
End Sub
|
|
|
|
#End Region ' MoveDownSelectedStrategyCommand
|
|
|
|
#Region "Ok_Command"
|
|
|
|
Public ReadOnly Property Ok_Command As ICommand
|
|
Get
|
|
If m_cmdOk Is Nothing Then
|
|
m_cmdOk = New Command(AddressOf Ok)
|
|
End If
|
|
Return m_cmdOk
|
|
End Get
|
|
End Property
|
|
|
|
Public Sub Ok()
|
|
Map.refProjectVM.SetSelManagerTab(ProjectVM.StrategyManagerTab.RAWPARTMANAGER)
|
|
' Abilito LeftPanel
|
|
Map.refProjectVM.SetOnlyProdLeftPanel_IsEnabled(True)
|
|
Map.refProjectVM.SetOnlyProdLeftPanel_Opacity(1)
|
|
End Sub
|
|
|
|
#End Region ' Ok_Command
|
|
|
|
#Region "Cancel_Command"
|
|
|
|
Public ReadOnly Property Cancel_Command As ICommand
|
|
Get
|
|
If m_cmdCancel Is Nothing Then
|
|
m_cmdCancel = New Command(AddressOf Cancel)
|
|
End If
|
|
Return m_cmdCancel
|
|
End Get
|
|
End Property
|
|
|
|
Public Sub Cancel()
|
|
Map.refProjectVM.SetSelManagerTab(ProjectVM.StrategyManagerTab.RAWPARTMANAGER)
|
|
' Abilito LeftPanel
|
|
Map.refProjectVM.SetOnlyProdLeftPanel_IsEnabled(True)
|
|
Map.refProjectVM.SetOnlyProdLeftPanel_Opacity(1)
|
|
End Sub
|
|
|
|
#End Region ' Cancel_Command
|
|
|
|
#End Region ' Commands
|
|
|
|
End Class
|
|
|
|
'----------- Classe che rappresenta un file di setup delle strategie -----------
|
|
Public Class StrategySetup
|
|
Inherits VMBase
|
|
|
|
#Region "FIELDS & PROPERTIES"
|
|
|
|
Private m_sName As String
|
|
Public Property sName As String
|
|
Get
|
|
Return m_sName
|
|
End Get
|
|
Set(value As String)
|
|
m_sName = value
|
|
End Set
|
|
End Property
|
|
|
|
Private m_StrategyFeatureList As New ObservableCollection(Of StrategyFeature)
|
|
Public Property StrategyFeatureList As ObservableCollection(Of StrategyFeature)
|
|
Get
|
|
Return m_StrategyFeatureList
|
|
End Get
|
|
Set(value As ObservableCollection(Of StrategyFeature))
|
|
m_StrategyFeatureList = value
|
|
End Set
|
|
End Property
|
|
|
|
Private m_SelStrategyFeature As StrategyFeature
|
|
Public Property SelStrategyFeature As StrategyFeature
|
|
Get
|
|
Return m_SelStrategyFeature
|
|
End Get
|
|
Set(value As StrategyFeature)
|
|
m_SelStrategyFeature = value
|
|
NotifyPropertyChanged(NameOf(SelStrategyFeature))
|
|
End Set
|
|
End Property
|
|
|
|
#End Region ' Fields & Properties
|
|
|
|
#Region "CONSTRUCTOR"
|
|
|
|
Sub New(sName As String)
|
|
m_sName = sName
|
|
End Sub
|
|
|
|
#End Region ' Constructor
|
|
|
|
#Region "METHODS"
|
|
|
|
Friend Sub Read()
|
|
' carico default
|
|
Dim sStrategiesDirPath As String = Map.refMainWindowVM.MainWindowM.GetStrategiesDirPath()
|
|
Dim sAvailableStrategiesFilePath As String = sStrategiesDirPath & "\" & AVAILABLESTRATEGYLIST_FILE & ".json"
|
|
If File.Exists(sAvailableStrategiesFilePath) Then
|
|
Dim sReadedFile As String = File.ReadAllText(sAvailableStrategiesFilePath)
|
|
Dim JsonStrategyFeatureList As List(Of JsonAvailableStrategyFeature) = JsonConvert.DeserializeObject(Of List(Of JsonAvailableStrategyFeature))(sReadedFile)
|
|
m_StrategyFeatureList = New ObservableCollection(Of StrategyFeature)((From JsonStrategyFeature In JsonStrategyFeatureList
|
|
Select JsonStrategyFeature.Deserialize()).ToList())
|
|
|
|
End If
|
|
' carico custom
|
|
Dim sAISetupDirPath As String = Map.refMainWindowVM.MainWindowM.GetAISetupDirPath()
|
|
Dim sStrategyConfigurationFilePath As String = sAISetupDirPath & "\" & sName & ".json"
|
|
If File.Exists(sStrategyConfigurationFilePath) Then
|
|
Dim sReadedFile As String = File.ReadAllText(sStrategyConfigurationFilePath)
|
|
Dim JsonStrategyFeatureList As List(Of JsonStrategyFeature) = JsonConvert.DeserializeObject(Of List(Of JsonStrategyFeature))(sReadedFile)
|
|
For Each Feature In JsonStrategyFeatureList
|
|
Dim DefaultFeature As StrategyFeature = m_StrategyFeatureList.FirstOrDefault(Function(x) x.nPRC = Feature.nPRC AndAlso x.nGRP = Feature.nGRP)
|
|
' gestire caso non venga trovata perchè non esiste più in default??'
|
|
If Not IsNothing(DefaultFeature) Then
|
|
For Each Topology In Feature.TopologyList
|
|
Dim DefaultTopology As Topology = DefaultFeature.TopologyList.FirstOrDefault(Function(x) x.sName = Topology.sName)
|
|
' gestire caso non venga trovata perchè non esiste più in default??'
|
|
For Each Strategy In Topology.StrategyList
|
|
Dim DefaultStrategy As Strategy = DefaultTopology.StrategyList.FirstOrDefault(Function(x) x.sStrategyID = Strategy.sStrategyID)
|
|
If IsNothing(DefaultStrategy) Then
|
|
' DefaultTopology.StrategyList.Add(New Strategy(DefaultTopology, Strategy))
|
|
' verifico indici!!
|
|
Else
|
|
DefaultStrategy.ReadConfiguration(Strategy)
|
|
End If
|
|
Next
|
|
Next
|
|
End If
|
|
Next
|
|
End If
|
|
End Sub
|
|
|
|
Friend Sub Write()
|
|
Dim JsonFromStrategyManager As New List(Of JsonStrategyFeature)
|
|
For Each StrategyFeature In m_StrategyFeatureList
|
|
JsonFromStrategyManager.Add(StrategyFeature.Serialize())
|
|
Next
|
|
Dim JsonFromStrategy As String = JsonConvert.SerializeObject(JsonFromStrategyManager, Formatting.Indented)
|
|
Dim sAISetupDirPath As String = Map.refMainWindowVM.MainWindowM.GetAISetupDirPath()
|
|
Dim sStrategyConfigurationFilePath As String = sAISetupDirPath & "\" & sName & ".json"
|
|
File.WriteAllText(sStrategyConfigurationFilePath, JsonFromStrategy)
|
|
End Sub
|
|
|
|
#End Region ' Methods
|
|
|
|
End Class
|
|
|
|
'----------- Classe che fa riferimento alle Feature -----------
|
|
Public Class StrategyFeature
|
|
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 Topology)
|
|
Public Property TopologyList As ObservableCollection(Of Topology)
|
|
Get
|
|
Return m_TopologyList
|
|
End Get
|
|
Set(value As ObservableCollection(Of Topology))
|
|
m_TopologyList = value
|
|
NotifyPropertyChanged(NameOf(TopologyList))
|
|
End Set
|
|
End Property
|
|
|
|
#End Region ' Fields & Propeties
|
|
|
|
#Region "CONSTRUCTOR"
|
|
|
|
Sub New()
|
|
|
|
End Sub
|
|
|
|
Sub New(JsonStrategyFeature As JsonAvailableStrategyFeature)
|
|
If IsNothing(JsonStrategyFeature) Then Return
|
|
m_sName = JsonStrategyFeature.sName
|
|
m_nPRC = JsonStrategyFeature.nPRC
|
|
m_nGRP = JsonStrategyFeature.nGRP
|
|
m_TopologyList = New ObservableCollection(Of Topology)(JsonStrategyFeature.TopologyList.Select(Function(jsonTopology) New Topology(jsonTopology)))
|
|
NotifyPropertyChanged(NameOf(TopologyList))
|
|
End Sub
|
|
|
|
#End Region ' Constructor
|
|
|
|
#Region "METHODS"
|
|
|
|
Friend Function Serialize() As JsonStrategyFeature
|
|
Dim JsonStrategyFeature As New JsonStrategyFeature(m_sName, m_nPRC, m_nGRP)
|
|
For Each Topology In m_TopologyList
|
|
JsonStrategyFeature.TopologyList.Add(Topology.Serialize())
|
|
Next
|
|
Return JsonStrategyFeature
|
|
End Function
|
|
|
|
#End Region ' Methods
|
|
|
|
End Class
|
|
|
|
'----------- Classe che fa riferimento alle Topologie delle Feature -----------
|
|
Public Class Topology
|
|
Inherits VMBase
|
|
|
|
#Region "FIELDS & PROPETIES"
|
|
|
|
Friend Shared refUpdateSelTreeItem As Action(Of Topology)
|
|
|
|
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_bIsSelected As Boolean
|
|
Public Property IsSelected As Boolean
|
|
Get
|
|
Return m_bIsSelected
|
|
End Get
|
|
Set(value As Boolean)
|
|
m_bIsSelected = value
|
|
refUpdateSelTreeItem(Me)
|
|
If Not value Then
|
|
SelActiveStrategy = Nothing
|
|
SelAvailableStrategy = Nothing
|
|
End If
|
|
m_AvailableStrategyList_View.Refresh()
|
|
m_ActiveStrategyList_View.Refresh()
|
|
End Set
|
|
End Property
|
|
|
|
Private m_AvailableStrategyList_View As ICollectionView = Nothing
|
|
Public ReadOnly Property AvailableStrategyList_View As ICollectionView
|
|
Get
|
|
Return m_AvailableStrategyList_View
|
|
End Get
|
|
End Property
|
|
|
|
Private m_ActiveStrategyList_View As ICollectionView = Nothing
|
|
Public ReadOnly Property ActiveStrategyList_View As ICollectionView
|
|
Get
|
|
Return m_ActiveStrategyList_View
|
|
End Get
|
|
End Property
|
|
|
|
Private m_StrategyList As New ObservableCollection(Of Strategy)
|
|
Public Property StrategyList As ObservableCollection(Of Strategy)
|
|
Get
|
|
Return m_StrategyList
|
|
End Get
|
|
Set(value As ObservableCollection(Of Strategy))
|
|
m_StrategyList = value
|
|
NotifyPropertyChanged(NameOf(StrategyList))
|
|
End Set
|
|
End Property
|
|
|
|
Private m_SelActiveStrategy As Strategy
|
|
Public Property SelActiveStrategy As Strategy
|
|
Get
|
|
Return m_SelActiveStrategy
|
|
End Get
|
|
Set(value As Strategy)
|
|
m_SelActiveStrategy = value
|
|
SelParamStrategy = value
|
|
End Set
|
|
End Property
|
|
|
|
Private m_SelAvailableStrategy As Strategy
|
|
Public Property SelAvailableStrategy As Strategy
|
|
Get
|
|
Return m_SelAvailableStrategy
|
|
End Get
|
|
Set(value As Strategy)
|
|
m_SelAvailableStrategy = value
|
|
SelParamStrategy = value
|
|
End Set
|
|
End Property
|
|
|
|
Private m_SelParamStrategy As Strategy
|
|
Public Property SelParamStrategy As Strategy
|
|
Get
|
|
Return m_SelParamStrategy
|
|
End Get
|
|
Set(value As Strategy)
|
|
m_SelParamStrategy = value
|
|
NotifyPropertyChanged(NameOf(SelParamStrategy))
|
|
End Set
|
|
End Property
|
|
|
|
#End Region ' Fields & Propeties
|
|
|
|
#Region "CONSTRUCTOR"
|
|
|
|
Sub New()
|
|
|
|
End Sub
|
|
|
|
Sub New(JsonTopology As JsonAvailableTopology)
|
|
If IsNothing(JsonTopology) Then Return
|
|
m_sName = JsonTopology.sName
|
|
m_StrategyList = New ObservableCollection(Of Strategy)(JsonTopology.StrategyList.Select(Function(jsonStrategy) New Strategy(Me, jsonStrategy)))
|
|
m_AvailableStrategyList_View = New ListCollectionView(StrategyList)
|
|
m_AvailableStrategyList_View.Filter = AddressOf AvailableStrategyFilter
|
|
m_ActiveStrategyList_View = New ListCollectionView(StrategyList)
|
|
m_ActiveStrategyList_View.Filter = AddressOf ActiveStrategyFilter
|
|
NotifyPropertyChanged(NameOf(StrategyList))
|
|
End Sub
|
|
|
|
#End Region ' Constructor
|
|
|
|
#Region "METHODS"
|
|
|
|
Private Function AvailableStrategyFilter(Strategy As Object) As Boolean
|
|
Return DirectCast(Strategy, Strategy).nIndexInList < 0
|
|
End Function
|
|
|
|
Private Function ActiveStrategyFilter(Strategy As Object) As Boolean
|
|
Return DirectCast(Strategy, Strategy).nIndexInList >= 0
|
|
End Function
|
|
|
|
Friend Sub CreateStrategyViews()
|
|
m_AvailableStrategyList_View = New ListCollectionView(StrategyList)
|
|
m_AvailableStrategyList_View.Filter = AddressOf AvailableStrategyFilter
|
|
m_ActiveStrategyList_View = New ListCollectionView(StrategyList)
|
|
m_ActiveStrategyList_View.Filter = AddressOf ActiveStrategyFilter
|
|
End Sub
|
|
|
|
Friend Function Serialize() As JsonTopology
|
|
Dim JsonTopology As New JsonTopology(m_sName)
|
|
For Each Strategy In m_StrategyList
|
|
JsonTopology.StrategyList.Add(Strategy.serialize())
|
|
Next
|
|
Return JsonTopology
|
|
End Function
|
|
|
|
#End Region ' Methods
|
|
|
|
End Class
|
|
|
|
'----------- Classe che fa alle Strategie delle Topologie delle Feature -----------
|
|
Public Class Strategy
|
|
Inherits VMBase
|
|
|
|
#Region "FIELDS & PROPETIES"
|
|
|
|
Private m_ParentTopology As Topology
|
|
|
|
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
|
|
|
|
Private m_nIndexInList As Integer = -1
|
|
Public Property nIndexInList As Integer
|
|
Get
|
|
Return m_nIndexInList
|
|
End Get
|
|
Set(value As Integer)
|
|
m_nIndexInList = value
|
|
NotifyPropertyChanged(NameOf(nIndexInList))
|
|
End Set
|
|
End Property
|
|
Friend Sub SetIndexList(value As Integer)
|
|
m_nIndexInList = value
|
|
NotifyPropertyChanged(NameOf(nIndexInList))
|
|
End Sub
|
|
|
|
Private m_sImageStrategy As String = "pack://application:,,,/Resources/NewPage/LogoProvaStrategy.png"
|
|
Public Property sImageStrategy As String
|
|
Get
|
|
Return m_sImageStrategy
|
|
End Get
|
|
Set(value As String)
|
|
m_sImageStrategy = value
|
|
NotifyPropertyChanged(NameOf(sImageStrategy))
|
|
End Set
|
|
End Property
|
|
|
|
Private m_ParameterList As New ObservableCollection(Of StrategyParameter)
|
|
Public Property ParameterList As ObservableCollection(Of StrategyParameter)
|
|
Get
|
|
Return m_ParameterList
|
|
End Get
|
|
Set(value As ObservableCollection(Of StrategyParameter))
|
|
m_ParameterList = value
|
|
NotifyPropertyChanged(NameOf(ParameterList))
|
|
End Set
|
|
End Property
|
|
|
|
#End Region ' Fields & Propeties
|
|
|
|
#Region "CONSTRUCTOR"
|
|
|
|
Sub New()
|
|
|
|
End Sub
|
|
|
|
Sub New(ParentTopology As Topology, JsonStrategy As JsonAvailableStrategy)
|
|
m_ParentTopology = ParentTopology
|
|
If IsNothing(JsonStrategy) Then Return
|
|
m_sStrategyID = JsonStrategy.sStrategyID
|
|
ReadConfigurationStrategyJson()
|
|
End Sub
|
|
|
|
#End Region ' Constructor
|
|
|
|
#Region "METHODS"
|
|
|
|
''' <summary>
|
|
''' Funzione che legge il file json delle strategie
|
|
''' </summary>
|
|
Friend Sub ReadConfigurationStrategyJson()
|
|
' Recupero file StrategyJson
|
|
Dim StrategyPath As String = Map.refMainWindowVM.MainWindowM.GetStandardDirPath() & "\" & sStrategyID & "\" & sStrategyID & ".json"
|
|
' Controllo se il file esiste
|
|
If Not File.Exists(StrategyPath) Then Return
|
|
' Leggo il contenuto del file JSON e deserializzo
|
|
Dim StrategyJson As String = File.ReadAllText(StrategyPath)
|
|
Dim strategyConfig As JsonAvailableStrategy = JsonConvert.DeserializeObject(Of JsonAvailableStrategy)(StrategyJson)
|
|
End Sub
|
|
|
|
Friend Sub ReadConfiguration(ConfigurationStrategy As JsonStrategy)
|
|
m_nIndexInList = ConfigurationStrategy.nIndexInList
|
|
NotifyPropertyChanged(NameOf(nIndexInList))
|
|
For Each Parameter In ConfigurationStrategy.ParameterList
|
|
Dim DefaultParameter As StrategyParameter = m_ParameterList.FirstOrDefault(Function(x) x.sName = Parameter.sName)
|
|
If IsNothing(DefaultParameter) Then
|
|
' verifico indici!!
|
|
Else
|
|
Select Case DefaultParameter.GetType()
|
|
Case GetType(BooleanStrategyParameter)
|
|
DirectCast(DefaultParameter, BooleanStrategyParameter).SetValue(Parameter.sValue)
|
|
Case GetType(DoubleStrategyParameter)
|
|
DirectCast(DefaultParameter, DoubleStrategyParameter).SetValue(Parameter.sValue)
|
|
Case GetType(ComboStrategyParameter)
|
|
DirectCast(DefaultParameter, ComboStrategyParameter).SetSelValue(Parameter.sValue)
|
|
End Select
|
|
End If
|
|
Next
|
|
End Sub
|
|
|
|
Friend Function Serialize() As JsonStrategy
|
|
Dim JsonStrategy As New JsonStrategy(m_sStrategyID, m_nIndexInList)
|
|
For Each Parameter In m_ParameterList
|
|
JsonStrategy.ParameterList.Add(Parameter.Serialize())
|
|
Next
|
|
Return JsonStrategy
|
|
End Function
|
|
|
|
#End Region ' Methods
|
|
|
|
End Class
|
|
|
|
'----------- Classe che fa riferimento ai parametri delle Strategie -----------
|
|
Public MustInherit Class StrategyParameter
|
|
Inherits VMBase
|
|
|
|
#Region "FIELDS & PROPETIES"
|
|
|
|
Private m_ParentStrategy As Strategy
|
|
|
|
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_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
|
|
|
|
#End Region ' Fields & Propeties
|
|
|
|
#Region "CONSTRUCTOR"
|
|
|
|
Sub New()
|
|
|
|
End Sub
|
|
|
|
Sub New(JsonGenericParameter As JsonDefaultStrategyParameter)
|
|
If IsNothing(JsonGenericParameter) Then Return
|
|
m_sName = JsonGenericParameter.sName
|
|
m_sNameNge = JsonGenericParameter.sNameNge
|
|
m_sDescriptionShort = JsonGenericParameter.sDescriptionShort
|
|
m_sDescriptionLong = JsonGenericParameter.sDescriptionLong
|
|
m_sMessageId = JsonGenericParameter.sMessageId
|
|
m_sMinUserLevel = JsonGenericParameter.sMinUserLevel
|
|
End Sub
|
|
|
|
#End Region ' Constructor
|
|
|
|
#Region "METHODS"
|
|
|
|
Friend MustOverride Function Serialize() As JsonStrategyParameter
|
|
|
|
#End Region ' Methods
|
|
|
|
End Class
|
|
|
|
Public Class BooleanStrategyParameter
|
|
Inherits StrategyParameter
|
|
|
|
#Region "FIELDS & PROPERTIES"
|
|
|
|
Friend m_bValue As Boolean = False
|
|
Public Property bValue As Boolean
|
|
Get
|
|
Return m_bValue
|
|
End Get
|
|
Set(value As Boolean)
|
|
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
|
|
|
|
#End Region ' Fields & Properties
|
|
|
|
#Region "CONSTRUCTOR"
|
|
|
|
Sub New()
|
|
|
|
End Sub
|
|
|
|
Sub New(JsonGenericParameter As JsonDefaultStrategyParameter)
|
|
MyBase.New(JsonGenericParameter)
|
|
If IsNothing(JsonGenericParameter) Then Return
|
|
m_bValue = JsonGenericParameter.sValue.ToLower() = "true"
|
|
End Sub
|
|
|
|
#End Region ' Constructor
|
|
|
|
Friend Overrides Function Serialize() As JsonStrategyParameter
|
|
Dim sValue As String = "false"
|
|
If bValue Then
|
|
sValue = "true"
|
|
End If
|
|
Dim JsonStrategyParameter As New JsonStrategyParameter(sName, sNameNge, sValue, "b")
|
|
Return JsonStrategyParameter
|
|
End Function
|
|
|
|
End Class
|
|
|
|
Public Class DoubleStrategyParameter
|
|
Inherits StrategyParameter
|
|
|
|
#Region "FIELDS & PROPERTIES"
|
|
|
|
Private m_dValue As Double? = Nothing
|
|
Public 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
|
|
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
|
|
|
|
#End Region ' Fields & Properties
|
|
|
|
#Region "CONSTRUCTOR"
|
|
|
|
Sub New()
|
|
|
|
End Sub
|
|
|
|
Sub New(JsonGenericParameter As JsonDefaultStrategyParameter)
|
|
MyBase.New(JsonGenericParameter)
|
|
If IsNothing(JsonGenericParameter) Then Return
|
|
If Not StringToDouble(JsonGenericParameter.sValue, m_dValue) Then
|
|
EgtOutLog("Error reading DoubleStrategyParameter " & JsonGenericParameter.sValue)
|
|
End If
|
|
End Sub
|
|
|
|
#End Region ' Constructor
|
|
|
|
Friend Overrides Function Serialize() As JsonStrategyParameter
|
|
Dim JsonStrategyParameter As New JsonStrategyParameter(sName, sNameNge, sValue, "d")
|
|
Return JsonStrategyParameter
|
|
End Function
|
|
|
|
End Class
|
|
|
|
Public Class ComboStrategyParameter
|
|
Inherits StrategyParameter
|
|
|
|
#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)
|
|
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
|
|
|
|
#End Region ' Fields & Properties
|
|
|
|
#Region "CONSTRUCTOR"
|
|
|
|
Sub New()
|
|
|
|
End Sub
|
|
|
|
Sub New(JsonGenericParameter As JsonDefaultStrategyParameter)
|
|
MyBase.New(JsonGenericParameter)
|
|
If IsNothing(JsonGenericParameter) Then Return
|
|
ComboList = JsonGenericParameter.Choices.Select(Function(jsonChoice) New ComboParameter(jsonChoice)).ToList()
|
|
m_SelValue = m_ComboList.FirstOrDefault(Function(x) x.sValue = JsonGenericParameter.sValue)
|
|
End Sub
|
|
|
|
#End Region ' Constructor
|
|
|
|
Friend Overrides Function Serialize() As JsonStrategyParameter
|
|
Dim JsonStrategyParameter As New JsonStrategyParameter(sName, sNameNge, m_SelValue.sValue, "combo")
|
|
Return JsonStrategyParameter
|
|
End Function
|
|
|
|
End Class
|
|
|
|
'----------- Classe che fa riferimento ai parametri delle Scelte -----------
|
|
Public Class ComboParameter
|
|
Inherits VMBase
|
|
|
|
#Region "FIELD & PROPERTIES"
|
|
|
|
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
|
|
|
|
#End Region ' Fields & Properties
|
|
|
|
#Region "CONSTRUCTOR"
|
|
|
|
Sub New()
|
|
|
|
End Sub
|
|
|
|
Sub New(JsonChoiceParameter As JsonDefaultComboParameter)
|
|
If Not IsNothing(JsonChoiceParameter) Then
|
|
m_sValue = JsonChoiceParameter.sValue
|
|
m_sDescriptionShort = JsonChoiceParameter.sDescriptionShort
|
|
m_sDescriptionLong = JsonChoiceParameter.sDescriptionLong
|
|
m_sMessageId = JsonChoiceParameter.sMessageId
|
|
End If
|
|
End Sub
|
|
|
|
#End Region ' Constructor
|
|
|
|
End Class
|
|
|
|
Public Class StrategyTypeToFocusableConverter
|
|
Implements IValueConverter
|
|
|
|
Public Function Convert(value As Object, targetType As Type, parameter As Object, culture As CultureInfo) As Object Implements IValueConverter.Convert
|
|
If TypeOf value IsNot TreeViewItem Then Return True
|
|
Select Case DirectCast(value, TreeViewItem).DataContext.GetType()
|
|
Case GetType(Topology)
|
|
Return True
|
|
Case Else ' GetType(StrategyFeature)
|
|
Return False
|
|
End Select
|
|
End Function
|
|
|
|
Public Function ConvertBack(value As Object, targetType As Type, parameter As Object, culture As CultureInfo) As Object Implements IValueConverter.ConvertBack
|
|
Throw New NotImplementedException()
|
|
End Function
|
|
|
|
End Class |