diff --git a/EgtBEAMWALL.Optimizer/EgtBEAMWALL.Optimizer.vbproj b/EgtBEAMWALL.Optimizer/EgtBEAMWALL.Optimizer.vbproj index d944e534..cf7e04a3 100644 --- a/EgtBEAMWALL.Optimizer/EgtBEAMWALL.Optimizer.vbproj +++ b/EgtBEAMWALL.Optimizer/EgtBEAMWALL.Optimizer.vbproj @@ -233,12 +233,8 @@ StatusBarV.xaml - - ActiveStrategyListBoxV.xaml - - - DeactivateStrategyListBoxV.xaml - + + ParameterStrategyV.xaml @@ -725,14 +721,6 @@ MSBuild:Compile Designer - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - Designer MSBuild:Compile diff --git a/EgtBEAMWALL.Optimizer/SaveAsStrategyWnd/SaveAsStrategyVM.vb b/EgtBEAMWALL.Optimizer/SaveAsStrategyWnd/SaveAsStrategyVM.vb index e7003abf..4de08b36 100644 --- a/EgtBEAMWALL.Optimizer/SaveAsStrategyWnd/SaveAsStrategyVM.vb +++ b/EgtBEAMWALL.Optimizer/SaveAsStrategyWnd/SaveAsStrategyVM.vb @@ -133,7 +133,7 @@ Public Class SaveAsStrategyVM ' Controllo se il file non è vuoto Dim sFileNameCustomConfig As String = If(String.IsNullOrEmpty(m_sFileNameCustomConfig), CUSTOMERCONFIG_FILE, m_sFileNameCustomConfig) ' Crea il file JSON - Map.refStrategyManagerVM.CreateCustumerConfigJsonFile(sFileNameCustomConfig) + 'Map.refStrategyManagerVM.CreateCustumerConfigJsonFile(sFileNameCustomConfig) ' Se il file ha un nome valido, aggiorna la configurazione If Not String.IsNullOrEmpty(m_sFileNameCustomConfig) Then ' Aggiungo nuovo file a combobox elenco file diff --git a/EgtBEAMWALL.Optimizer/StrategyManager/JsonAvailableStrategyHelper.vb b/EgtBEAMWALL.Optimizer/StrategyManager/JsonAvailableStrategyHelper.vb new file mode 100644 index 00000000..2a66e8e2 --- /dev/null +++ b/EgtBEAMWALL.Optimizer/StrategyManager/JsonAvailableStrategyHelper.vb @@ -0,0 +1,373 @@ +Imports EgtWPFLib5 +Imports Newtonsoft.Json +Imports System.Collections.ObjectModel + +'----------- 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 + + + 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 + +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_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 + + + Sub New(sName As String) + m_sName = sName + End Sub + + Sub New(Topology As Topology) + m_sName = Topology.sName + For Each Strategy In Topology.StrategyList + m_StrategyList.Add(New JsonAvailableStrategy(Strategy)) + Next + End Sub + +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 + + 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 + + Private m_bActive As Boolean + Public Property bActive As Boolean + Get + Return m_bActive + End Get + Set(value As Boolean) + m_bActive = value + NotifyPropertyChanged(NameOf(bActive)) + End Set + End Property + + Private m_ParameterList As New ObservableCollection(Of JsonAvailableGenericParameter) + Public Property ParameterList As ObservableCollection(Of JsonAvailableGenericParameter) + Get + Return m_ParameterList + End Get + Set(value As ObservableCollection(Of JsonAvailableGenericParameter)) + m_ParameterList = value + NotifyPropertyChanged(NameOf(ParameterList)) + End Set + End Property + +#End Region ' Fields & Propeties + + + Sub New(sStrategyID As String, nIndexInList As Integer) + m_sStrategyID = sStrategyID + m_nIndexInList = nIndexInList + End Sub + + Sub New(Strategy As Strategy) + m_sStrategyID = Strategy.sStrategyID + m_nIndexInList = Strategy.nIndexInList + For Each Parameter In Strategy.ParameterList + m_ParameterList.Add(New JsonAvailableGenericParameter(Parameter)) + Next + End Sub + +End Class + +'----------- Classe che fa riferimento ai parametri delle Strategie nel file Json ----------- +Public Class JsonAvailableGenericParameter + 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_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 JsonAvailableChoiceParameter) + Public Property Choices As ObservableCollection(Of JsonAvailableChoiceParameter) + Get + Return m_Choices + End Get + Set(value As ObservableCollection(Of JsonAvailableChoiceParameter)) + m_Choices = value + NotifyPropertyChanged(NameOf(Choices)) + End Set + End Property + +#End Region ' Fields & Propeties + + + Sub New(sName As String, sNameNge As String, sValue As String, sDescriptionShort As String, sDescriptionLong As String, sType 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_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 + End Select + m_sDescriptionShort = StrategyParameter.sDescriptionShort + m_sDescriptionLong = StrategyParameter.sDescriptionLong + m_sMessageId = StrategyParameter.sMessageId + m_sMinUserLevel = StrategyParameter.sMinUserLevel + End Sub + +End Class + +'----------- Classe che fa riferimento ai parametri delle Scelte nel file Json ----------- +Public Class JsonAvailableChoiceParameter + 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 + +End Class diff --git a/EgtBEAMWALL.Optimizer/StrategyManager/JsonStrategyHelper.vb b/EgtBEAMWALL.Optimizer/StrategyManager/JsonStrategyHelper.vb new file mode 100644 index 00000000..6fff8d43 --- /dev/null +++ b/EgtBEAMWALL.Optimizer/StrategyManager/JsonStrategyHelper.vb @@ -0,0 +1,3 @@ +Public Class JsonStrategyHelper + +End Class diff --git a/EgtBEAMWALL.Optimizer/StrategyManager/ParameterStrategyV.xaml b/EgtBEAMWALL.Optimizer/StrategyManager/ParameterStrategyV.xaml index 6a358b28..330b426b 100644 --- a/EgtBEAMWALL.Optimizer/StrategyManager/ParameterStrategyV.xaml +++ b/EgtBEAMWALL.Optimizer/StrategyManager/ParameterStrategyV.xaml @@ -8,44 +8,45 @@ - + + Margin="5,2,5,0"> - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + diff --git a/EgtBEAMWALL.Optimizer/StrategyManager/StrategyManagerV.xaml b/EgtBEAMWALL.Optimizer/StrategyManager/StrategyManagerV.xaml index 7e168450..9a8b9976 100644 --- a/EgtBEAMWALL.Optimizer/StrategyManager/StrategyManagerV.xaml +++ b/EgtBEAMWALL.Optimizer/StrategyManager/StrategyManagerV.xaml @@ -16,6 +16,12 @@ SelectedItem="{Binding SelStrategySetup}" DisplayMemberPath="sName" Style="{StaticResource Strategy_ComboBox}"/> +