170 lines
5.1 KiB
VB.net
170 lines
5.1 KiB
VB.net
Imports EgtWPFLib5
|
|
Imports EgtBEAMWALL.Core
|
|
Imports System.Windows.Forms
|
|
Imports System.Collections.ObjectModel
|
|
|
|
Public Class SaveAsStrategyVM
|
|
Inherits VMBase
|
|
|
|
#Region "FIELDS & PROPERTIES"
|
|
|
|
' Evento per chiusura finestra
|
|
Public Event m_CloseWindow(bDialogResult As DialogResult)
|
|
|
|
' Nome file json customconfig
|
|
Private m_sFileNameCustomConfig As String
|
|
Public Property sFileNameCustomConfig As String
|
|
Get
|
|
Return m_sFileNameCustomConfig
|
|
End Get
|
|
Set(value As String)
|
|
m_sFileNameCustomConfig = value
|
|
CheckJsonFile()
|
|
NotifyPropertyChanged(NameOf(sFileNameCustomConfig))
|
|
End Set
|
|
End Property
|
|
|
|
' Usato per gestire il fatto di non sovrascrivere il file
|
|
Private m_bSaveAsIsEnable As Boolean = True
|
|
Public ReadOnly Property bSaveAsIsEnable As Boolean
|
|
Get
|
|
Return m_bSaveAsIsEnable
|
|
End Get
|
|
End Property
|
|
Friend Sub SetSaveAsIsEnable(value As Boolean)
|
|
m_bSaveAsIsEnable = value
|
|
NotifyPropertyChanged(NameOf(bSaveAsIsEnable))
|
|
End Sub
|
|
|
|
' Usato per visualizzare messaggio di errore
|
|
Private m_ErrorMsgVisibility As Visibility = Visibility.Collapsed
|
|
Public ReadOnly Property ErrorMsgVisibility As Visibility
|
|
Get
|
|
Return m_ErrorMsgVisibility
|
|
End Get
|
|
End Property
|
|
Friend Sub SetErrorMsgVisibility(value As Visibility)
|
|
m_ErrorMsgVisibility = value
|
|
NotifyPropertyChanged(NameOf(ErrorMsgVisibility))
|
|
End Sub
|
|
|
|
' Messaggio di errore
|
|
Private m_sErrorMsg As String = String.Empty
|
|
Public ReadOnly Property sErrorMsg As String
|
|
Get
|
|
Return m_sErrorMsg
|
|
End Get
|
|
End Property
|
|
Friend Sub SetErrorMsg(value As String)
|
|
m_sErrorMsg = value
|
|
NotifyPropertyChanged(NameOf(sErrorMsg))
|
|
End Sub
|
|
|
|
' Lista dei file json presenti nella cartella AISetUp
|
|
Public ReadOnly Property StrategySetupList As ObservableCollection(Of StrategySetup)
|
|
Get
|
|
Return Map.refStrategyManagerVM.StrategySetupList
|
|
End Get
|
|
End Property
|
|
|
|
' File selezionato dalla lista AISetUpList
|
|
Private m_sSelectedAISetUp As StrategySetup
|
|
Public Property sSelectedAISetUp As StrategySetup
|
|
Get
|
|
Return m_sSelectedAISetUp
|
|
End Get
|
|
Set(value As StrategySetup)
|
|
m_sSelectedAISetUp = value
|
|
If Not IsNothing(m_sSelectedAISetUp) Then
|
|
m_sFileNameCustomConfig = m_sSelectedAISetUp.sName
|
|
CheckJsonFile()
|
|
End If
|
|
NotifyPropertyChanged(NameOf(sSelectedAISetUp))
|
|
NotifyPropertyChanged(NameOf(sFileNameCustomConfig))
|
|
End Set
|
|
End Property
|
|
|
|
' Definizione Comandi
|
|
Private m_SaveAsCommand As ICommand
|
|
Private m_cmdCloseCommand As ICommand
|
|
|
|
#End Region ' Fields & Properties
|
|
|
|
#Region "METHODS"
|
|
|
|
''' <summary>
|
|
''' Funzione che controlla se il file json è già presente
|
|
''' </summary>
|
|
Private Sub CheckJsonFile()
|
|
' Controllo se il nome del file è stato scritto
|
|
Dim fileExists As Boolean = False
|
|
For Each ItemSetUp As StrategySetup In StrategySetupList
|
|
If ItemSetUp.sName = m_sFileNameCustomConfig Then
|
|
fileExists = True
|
|
End If
|
|
Next
|
|
' Imposta il messaggio di errore e la visibilità in base alla presenza del file
|
|
SetErrorMsg(If(fileExists, "FILE GIA' PRESENTE", String.Empty))
|
|
' Abilito o Disabilito pulsante saveas
|
|
SetSaveAsIsEnable(Not fileExists)
|
|
' Rendo visibile o invisibile textblock messaggio
|
|
SetErrorMsgVisibility(If(fileExists, Visibility.Visible, Visibility.Collapsed))
|
|
End Sub
|
|
|
|
#End Region ' Methods
|
|
|
|
#Region "COMMANDS"
|
|
|
|
#Region "SaveAsCommand"
|
|
|
|
Public ReadOnly Property SaveAsCommand As ICommand
|
|
Get
|
|
If m_SaveAsCommand Is Nothing Then
|
|
m_SaveAsCommand = New Command(AddressOf SaveAs)
|
|
End If
|
|
Return m_SaveAsCommand
|
|
End Get
|
|
End Property
|
|
|
|
''' <summary>
|
|
''' Funzione che salva il file json CustomerConfig
|
|
''' </summary>
|
|
Public Sub SaveAs()
|
|
' 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)
|
|
' Se il file ha un nome valido, aggiorna la configurazione
|
|
If Not String.IsNullOrEmpty(m_sFileNameCustomConfig) Then
|
|
' Aggiungo nuovo file a combobox elenco file
|
|
Map.refStrategyManagerVM.SelStrategySetup.sName = sFileNameCustomConfig
|
|
'' Aggiungo alla lista nuovo file
|
|
'Map.refStrategyManagerVM.StrategySetupList.Add(sFileNameCustomConfig)
|
|
End If
|
|
RaiseEvent m_CloseWindow(DialogResult.Cancel)
|
|
End Sub
|
|
|
|
#End Region ' SaveAsCommand
|
|
|
|
#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(DialogResult.Cancel)
|
|
End Sub
|
|
|
|
#End Region ' CloseCommand
|
|
|
|
#End Region ' Commands
|
|
|
|
End Class
|