a02663d88e
- è stato aggiunto il comando "template" che permette di salvare la porta corrente come porta template (con estensione .ddt); - durante la creazione di una nuova porta è possibile caricare un file .ddt come nuova porta; - la creazione di un file .ddt in qualsiasi momento non influenza la creazione del file .ddf corrente.
555 lines
22 KiB
VB.net
555 lines
22 KiB
VB.net
Imports System.Collections.ObjectModel
|
|
Imports System.ComponentModel
|
|
Imports System.IO
|
|
Imports EgtUILib
|
|
Imports Ionic.zip
|
|
|
|
Public Class ProjectManagerViewModel
|
|
Implements INotifyPropertyChanged
|
|
|
|
#Region "FIELDS & PROPERTIES"
|
|
|
|
' Riferimento al MainWindowViewModel
|
|
Private m_rfMainWindowViewModel As MainWindowViewModel
|
|
|
|
Friend m_CurrProject As Project
|
|
|
|
'Public ReadOnly Property MruFileNames As ObservableCollection(Of String)
|
|
' Get
|
|
' Return IniFile.m_MruFiles.m_FileNames
|
|
' End Get
|
|
'End Property
|
|
|
|
' Definizione comandi
|
|
Private m_cmdNew As ICommand
|
|
Private m_cmdOpen As ICommand
|
|
'Private Shared m_cmdOpenMruFile As ICommand
|
|
Private m_cmdSave As ICommand
|
|
Private m_cmdSaveAs As ICommand
|
|
Private m_cmdInsert As ICommand
|
|
Private m_cmdImport As ICommand
|
|
Private m_cmdExport As ICommand
|
|
Private m_cmdOptions As ICommand
|
|
Private m_CmdLastProject As ICommand
|
|
Private m_cmdSendFeedback As ICommand
|
|
Private m_CmdCreateTemplate As ICommand
|
|
|
|
#Region "ToolTip"
|
|
|
|
'Proprietà ToolTip
|
|
Public ReadOnly Property NewToolTip As String
|
|
Get
|
|
Return EgtMsg(MSG_TOPCOMMANDBAR + 1)
|
|
End Get
|
|
End Property
|
|
Public ReadOnly Property OpenToolTip As String
|
|
Get
|
|
Return EgtMsg(MSG_TOPCOMMANDBAR + 2)
|
|
End Get
|
|
End Property
|
|
Public ReadOnly Property SaveToolTip As String
|
|
Get
|
|
Return EgtMsg(MSG_TOPCOMMANDBAR + 3)
|
|
End Get
|
|
End Property
|
|
Public ReadOnly Property SaveAsToolTip As String
|
|
Get
|
|
Return EgtMsg(MSG_TOPCOMMANDBAR + 4)
|
|
End Get
|
|
End Property
|
|
Public ReadOnly Property InsertToolTip As String
|
|
Get
|
|
Return EgtMsg(MSG_TOPCOMMANDBAR + 5)
|
|
End Get
|
|
End Property
|
|
Public ReadOnly Property ImportToolTip As String
|
|
Get
|
|
Return EgtMsg(MSG_TOPCOMMANDBAR + 6)
|
|
End Get
|
|
End Property
|
|
Public ReadOnly Property SendFeedbackToolTip As String
|
|
Get
|
|
Return EgtMsg(50046)
|
|
End Get
|
|
End Property
|
|
Public ReadOnly Property OptionsToolTip As String
|
|
Get
|
|
Return EgtMsg(MSG_MAINWINDOW + 209)
|
|
End Get
|
|
End Property
|
|
|
|
#End Region ' ToolTip
|
|
|
|
#End Region ' Fields & Properties
|
|
|
|
#Region "CONSTRUCTOR"
|
|
|
|
Sub New(ByRef MainWindowViewModel As MainWindowViewModel)
|
|
m_rfMainWindowViewModel = MainWindowViewModel
|
|
' controllo che la selezione di avvio sia settata sull'apertura dell'ultimo progetto
|
|
'If OptionModule.m_SelectedOptionLauncher = "Last Project" Then
|
|
' ' richiamo la funzione che già esiste per l'apertura dell'ultimo proegetto
|
|
' Dim LauncherViewModel As LauncherViewModel = DirectCast(m_rfMainWindowViewModel.Launcher.DataContext, LauncherViewModel)
|
|
' ' LauncherViewModel.OpenLastProject()
|
|
'End If
|
|
''Dim DoorManagerViewModel As DoorManagerViewModel = DirectCast(m_rfMainWindowViewModel.DoorManager.DataContext, DoorManagerViewModel)
|
|
''Dim CurrProject As Project = DoorManagerViewModel.CurrProject
|
|
' '' salvo il riferimento al progetto corrente
|
|
''m_CurrProject = CurrProject
|
|
' '' '' salvo path progetto
|
|
'' ''CurrProject.Name = LastProject
|
|
' '' '' Ripulisco lista porte
|
|
'' ''CurrProject.DoorList.Clear()
|
|
' '' '' Aggiungo porte trovate nella cartella ad un vettore
|
|
'' ''Dim DDFFileArray() As String = Directory.GetFiles(LastProject)
|
|
' '' '' ripulisco il nome della porta (cancello tutto il percorso del file lasciando solo il nome del file)
|
|
'' ''For DDFIndex = 0 To DDFFileArray.Count - 1
|
|
'' '' If Path.GetExtension(DDFFileArray(DDFIndex)).ToLower = ".ddf" Then
|
|
'' '' ' lo aggiungo alla lista delle porte
|
|
'' '' CurrProject.DoorList.Add(DDFFileArray(DDFIndex))
|
|
'' '' End If
|
|
'' ''Next
|
|
' '' Notifico aggiornamento DoorList e Name per aggiornare la grafica
|
|
''CurrProject.NotifyPropertyChanged("Name")
|
|
''CurrProject.NotifyPropertyChanged("DoorList")
|
|
' '' Se c'è almeno una porta la visualizzo
|
|
''If CurrProject.DoorList.Count > 0 Then
|
|
'' DoorManagerViewModel.SelectedDoor = CurrProject.DoorList(0)
|
|
''End If
|
|
End Sub
|
|
|
|
#End Region ' Constructor
|
|
|
|
#Region "COMMANDS"
|
|
|
|
#Region "NewCommand"
|
|
|
|
''' <summary>
|
|
''' Returns a command that do New.
|
|
''' </summary>
|
|
Public ReadOnly Property NewCommand As ICommand
|
|
Get
|
|
If m_cmdNew Is Nothing Then
|
|
m_cmdNew = New Command(AddressOf NewCmd)
|
|
End If
|
|
Return m_cmdNew
|
|
End Get
|
|
End Property
|
|
|
|
''' <summary>
|
|
''' Execute the New. This method is invoked by the NewCommand.
|
|
''' </summary>
|
|
Public Sub NewCmd()
|
|
Dim SaveFileDialog As New EgtWPFLib5.EgtSaveFileDialog
|
|
SaveFileDialog.Title = EgtMsg(50304)
|
|
SaveFileDialog.Directory = IniFile.m_MyProjectDir & "\"
|
|
SaveFileDialog.Extension = "\"
|
|
If Not SaveFileDialog.EgtShowDialog Then
|
|
Return
|
|
End If
|
|
Directory.CreateDirectory(SaveFileDialog.FileName)
|
|
Dim DoorManagerViewModel As DoorManagerViewModel = DirectCast(m_rfMainWindowViewModel.DoorManager.DataContext, DoorManagerViewModel)
|
|
Dim CurrProject As Project = DoorManagerViewModel.CurrProject
|
|
' salvo il riferimento al progetto corrente
|
|
m_CurrProject = CurrProject
|
|
' salvo path progetto
|
|
CurrProject.Name = SaveFileDialog.FileName
|
|
' Ripulisco lista porte
|
|
CurrProject.DoorList.Clear()
|
|
' se una porta è già aperta
|
|
If Not String.IsNullOrWhiteSpace(DirectCast(m_rfMainWindowViewModel.DoorManager.DataContext, DoorManagerViewModel).SelectedDoor) Then
|
|
DirectCast(m_rfMainWindowViewModel.DoorParameters.DataContext, DoorParametersViewModel).CurrDoor = Nothing
|
|
' assegno all'inidirizzo della porta uno spazio vuoto
|
|
DirectCast(m_rfMainWindowViewModel.DoorManager.DataContext, DoorManagerViewModel).SelectedDoor = Nothing
|
|
End If
|
|
EgtNewFile()
|
|
EgtZoom(ZM.ALL)
|
|
' Notifico aggiornamento DoorList e Name per aggiornare la grafica
|
|
CurrProject.NotifyPropertyChanged("Name")
|
|
CurrProject.NotifyPropertyChanged("DoorList")
|
|
m_rfMainWindowViewModel.ProjectNameMsg = m_rfMainWindowViewModel.SetTitle(m_CurrProject.Name)
|
|
m_rfMainWindowViewModel.ModifyTitle(True)
|
|
'm_rfMainWindowViewModel.ProjectNameMsg = m_CurrProject.Name
|
|
End Sub
|
|
|
|
#End Region ' NewCommand
|
|
|
|
#Region "OpenCommand"
|
|
|
|
''' <summary>
|
|
''' Returns a command that do Open.
|
|
''' </summary>
|
|
Public ReadOnly Property OpenCommand As ICommand
|
|
Get
|
|
If m_cmdOpen Is Nothing Then
|
|
m_cmdOpen = New Command(AddressOf Open)
|
|
End If
|
|
Return m_cmdOpen
|
|
End Get
|
|
End Property
|
|
|
|
''' <summary>
|
|
''' Execute the Open. This method is invoked by the OpenCommand.
|
|
''' </summary>
|
|
Public Sub Open()
|
|
Dim FolderBrowserDialog As New System.Windows.Forms.FolderBrowserDialog
|
|
FolderBrowserDialog.SelectedPath = IniFile.m_MyProjectDir
|
|
' mostriamo la finestra di dialogo aperta fino alla directory MyProjects
|
|
If FolderBrowserDialog.ShowDialog <> Forms.DialogResult.OK Then
|
|
' se la risposta è diversa da OK esce
|
|
Return
|
|
End If
|
|
Dim DoorManagerViewModel As DoorManagerViewModel = DirectCast(m_rfMainWindowViewModel.DoorManager.DataContext, DoorManagerViewModel)
|
|
Dim CurrProject As Project = DoorManagerViewModel.CurrProject
|
|
' salvo il riferimento al progetto corrente
|
|
m_CurrProject = CurrProject
|
|
' salvo path progetto
|
|
CurrProject.Name = FolderBrowserDialog.SelectedPath
|
|
' Ripulisco lista porte
|
|
CurrProject.DoorList.Clear()
|
|
' Aggiungo porte trovate nella cartella ad un vettore
|
|
Dim DDFFileArray() As String = Directory.GetFiles(FolderBrowserDialog.SelectedPath)
|
|
' ripulisco il nome della porta (cancello tutto il percorso del file lasciando solo il nome del file)
|
|
For DDFIndex = 0 To DDFFileArray.Count - 1
|
|
If Path.GetExtension(DDFFileArray(DDFIndex)).ToLower = ".ddf" Then
|
|
' lo aggiungo alla lista delle porte
|
|
CurrProject.DoorList.Add(DDFFileArray(DDFIndex))
|
|
End If
|
|
Next
|
|
' Notifico aggiornamento DoorList e Name per aggiornare la grafica
|
|
CurrProject.NotifyPropertyChanged("Name")
|
|
CurrProject.NotifyPropertyChanged("DoorList")
|
|
' Se c'è almeno una porta la visualizzo
|
|
If CurrProject.DoorList.Count > 0 Then
|
|
DoorManagerViewModel.SelectedDoor = CurrProject.DoorList(0)
|
|
Else
|
|
DirectCast(m_rfMainWindowViewModel.DoorParameters.DataContext, DoorParametersViewModel).CurrDoor = Nothing
|
|
EgtNewFile()
|
|
EgtZoom(ZM.ALL)
|
|
End If
|
|
m_rfMainWindowViewModel.ProjectNameMsg = CurrProject.Name
|
|
|
|
End Sub
|
|
|
|
#End Region ' OpenCommand
|
|
|
|
'#Region "OpenMruFileCommand"
|
|
|
|
' ''' <summary>
|
|
' ''' Returns a command that do Open.
|
|
' ''' </summary>
|
|
' Public Shared ReadOnly Property OpenMruFileCommand As ICommand
|
|
' Get
|
|
' If m_cmdOpenMruFile Is Nothing Then
|
|
' m_cmdOpenMruFile = New RelayCommand(AddressOf OpenMruFile)
|
|
' End If
|
|
' Return m_cmdOpenMruFile
|
|
' End Get
|
|
' End Property
|
|
|
|
' ''' <summary>
|
|
' ''' Execute the Open. This method is invoked by the OpenCommand.
|
|
' ''' </summary>
|
|
' Public Shared Sub OpenMruFile(ByVal param As Object)
|
|
' Application.Msn.NotifyColleagues(Application.OPENPROJECT, DirectCast(param, String).Replace("__", "_"))
|
|
' End Sub
|
|
|
|
'#End Region ' OpenMruFileCommand
|
|
|
|
#Region "SaveCommand"
|
|
|
|
''' <summary>
|
|
''' Returns a command that do Save.
|
|
''' </summary>
|
|
Public ReadOnly Property SaveCommand As ICommand
|
|
Get
|
|
If m_cmdSave Is Nothing Then
|
|
m_cmdSave = New Command(AddressOf Save)
|
|
End If
|
|
Return m_cmdSave
|
|
End Get
|
|
End Property
|
|
|
|
''' <summary>
|
|
''' Execute the Save. This method is invoked by the SaveCommand.
|
|
''' </summary>
|
|
Public Sub Save()
|
|
Dim SetTitle As String
|
|
Dim CurrDoor As Door = DirectCast(m_rfMainWindowViewModel.DoorParameters.DataContext, DoorParametersViewModel).CurrDoor
|
|
Dim DoorManagerViewModel As DoorManagerViewModel = DirectCast(m_rfMainWindowViewModel.DoorManager.DataContext, DoorManagerViewModel)
|
|
If Not String.IsNullOrWhiteSpace(DoorManagerViewModel.SelectedDoor) Then
|
|
DoorManagerViewModel.DeleteNewDoor = 1
|
|
If Not IsNothing(CurrDoor) Then
|
|
SetTitle = DoorManagerViewModel.CurrProject.Name
|
|
DdfFile.WriteDDF(CurrDoor, DoorManagerViewModel.SelectedDoor, True)
|
|
CurrDoor.m_IsModifyDoor = False
|
|
DirectCast(m_rfMainWindowViewModel.DoorParameters.DataContext, DoorParametersViewModel).bSetChange = False
|
|
m_rfMainWindowViewModel.ProjectNameMsg = SetTitle
|
|
Else
|
|
MessageBox.Show(EgtMsg(50128), EgtMsg(50101), MessageBoxButton.OK, MessageBoxImage.Exclamation)
|
|
End If
|
|
|
|
Else
|
|
MessageBox.Show(EgtMsg(50128), EgtMsg(50101), MessageBoxButton.OK, MessageBoxImage.Exclamation)
|
|
End If
|
|
End Sub
|
|
|
|
#End Region ' SaveCommand
|
|
|
|
'#Region "SaveAsCommand"
|
|
|
|
' ''' <summary>
|
|
' ''' Returns a command that do SaveAs.
|
|
' ''' </summary>
|
|
' Public ReadOnly Property SaveAsCommand As ICommand
|
|
' Get
|
|
' If m_cmdSaveAs Is Nothing Then
|
|
' m_cmdSaveAs = New RelayCommand(AddressOf SaveAs)
|
|
' End If
|
|
' Return m_cmdSaveAs
|
|
' End Get
|
|
' End Property
|
|
|
|
' ''' <summary>
|
|
' ''' Execute the SaveAs. This method is invoked by the SaveAsCommand.
|
|
' ''' </summary>
|
|
' Public Sub SaveAs(ByVal param As Object)
|
|
' Application.Msn.NotifyColleagues(Application.SAVEASPROJECT)
|
|
' End Sub
|
|
|
|
'#End Region ' SaveAsCommand
|
|
|
|
#Region "OptionsCommand"
|
|
|
|
''' <summary>
|
|
''' Returns a command that do Export.
|
|
''' </summary>
|
|
Public ReadOnly Property OptionsCommand As ICommand
|
|
Get
|
|
If m_cmdOptions Is Nothing Then
|
|
m_cmdOptions = New Command(AddressOf Options)
|
|
End If
|
|
Return m_cmdOptions
|
|
End Get
|
|
End Property
|
|
|
|
''' <summary>
|
|
''' Execute the Export. This method is invoked by the ExportCommand.
|
|
''' </summary>
|
|
Public Sub Options(ByVal param As Object)
|
|
Dim OptionsWindow As New OptionsView
|
|
OptionsWindow.Height = 550
|
|
OptionsWindow.Width = 550
|
|
|
|
OptionsWindow.DataContext = New OptionsViewModel(DirectCast(m_rfMainWindowViewModel.DoorParameters.DataContext, DoorParametersViewModel).CurrDoor)
|
|
OptionsWindow.Owner = Application.Current.MainWindow
|
|
OptionsWindow.ShowDialog()
|
|
End Sub
|
|
|
|
#End Region ' OptionsCommand
|
|
|
|
#Region "LastProject"
|
|
|
|
Public ReadOnly Property LastProjectCommand As ICommand
|
|
Get
|
|
If m_CmdLastProject Is Nothing Then
|
|
m_CmdLastProject = New Command(AddressOf OpenLastProject)
|
|
End If
|
|
Return m_CmdLastProject
|
|
End Get
|
|
End Property
|
|
|
|
Public Sub OpenLastProject()
|
|
' Apro l'ultimo progetto
|
|
Dim DoorManagerViewModel As DoorManagerViewModel = DirectCast(m_rfMainWindowViewModel.DoorManager.DataContext, DoorManagerViewModel)
|
|
Dim CurrProject As Project = DoorManagerViewModel.CurrProject
|
|
' carico il percorso dell'ultimo progetto salvato (sul file Config.ini)
|
|
CurrProject.Name = OptionModule.m_sLastProject
|
|
' ripulisco la lista di porte
|
|
CurrProject.DoorList.Clear()
|
|
' verifico che esista la cartella
|
|
If Directory.Exists(CurrProject.Name) Then
|
|
' Aggiungo porte trovate nella cartella ad un vettore
|
|
Dim DDFFileArray() As String = Directory.GetFiles(CurrProject.Name)
|
|
' ripulisco il nome della porta (cancello tutto il percorso del file lasciando solo il nome del file)
|
|
For DDFIndex = 0 To DDFFileArray.Count - 1
|
|
If Path.GetExtension(DDFFileArray(DDFIndex)).ToLower = ".ddf" Then
|
|
' lo aggiungo alla lista delle porte
|
|
CurrProject.DoorList.Add(DDFFileArray(DDFIndex))
|
|
End If
|
|
Next
|
|
' Notifico aggiornamento DoorList e Name per aggiornare la grafica
|
|
CurrProject.NotifyPropertyChanged("Name")
|
|
CurrProject.NotifyPropertyChanged("DoorList")
|
|
' Se c'è almeno una porta la visualizzo
|
|
If CurrProject.DoorList.Count > 0 Then
|
|
DoorManagerViewModel.SelectedDoor = CurrProject.DoorList(0)
|
|
End If
|
|
m_rfMainWindowViewModel.ProjectNameMsg = CurrProject.Name
|
|
End If
|
|
End Sub
|
|
|
|
#End Region ' LastProject
|
|
|
|
#Region "SendFeedbackCommand"
|
|
|
|
''' <summary>
|
|
''' Returns a command that do SendFeedback.
|
|
''' </summary>
|
|
Public ReadOnly Property SendFeedbackCommand As ICommand
|
|
Get
|
|
If m_cmdSendFeedback Is Nothing Then
|
|
m_cmdSendFeedback = New Command(AddressOf SendFeedback)
|
|
End If
|
|
Return m_cmdSendFeedback
|
|
End Get
|
|
End Property
|
|
|
|
''' <summary>
|
|
''' Execute the SendFeedback. This method is invoked by the SendFeedbackCommand.
|
|
''' </summary>
|
|
Public Sub SendFeedback()
|
|
' Recupero indirizzo a cui spedire la mail
|
|
Dim sSupportAddress As String = String.Empty
|
|
GetPrivateProfileString(S_GENERAL, K_SUPPORT, "support@egaltech.com", sSupportAddress)
|
|
' se vuoto do messaggio di errore ed esco
|
|
If String.IsNullOrWhiteSpace(sSupportAddress) Then
|
|
MessageBox.Show(EgtMsg(MSG_TOPCOMMANDBAR + 10), EgtMsg(50101), MessageBoxButton.OK, MessageBoxImage.Error)
|
|
Return
|
|
End If
|
|
' Recupero numero chiave
|
|
Dim sKey As String = String.Empty
|
|
EgtGetKeyInfo(sKey)
|
|
' Recupero file del progetto corrente (tipo file .nge)
|
|
Dim sCurrProject As String = String.Empty
|
|
EgtGetCurrFilePath(sCurrProject)
|
|
' se nome file vuoto, chiedo se si vuole salvare (file .nge)
|
|
If String.IsNullOrWhiteSpace(sCurrProject) Then
|
|
If MessageBox.Show(EgtMsg(MSG_TOPCOMMANDBAR + 11), "", MessageBoxButton.YesNo, MessageBoxImage.Question) = MessageBoxResult.Yes Then
|
|
Save()
|
|
End If
|
|
EgtGetCurrFilePath(sCurrProject)
|
|
' se modificato, chiedo se si vuole salvare
|
|
Else
|
|
If EgtGetModified() Then
|
|
If MessageBox.Show(EgtMsg(MSG_TOPCOMMANDBAR + 11), "", MessageBoxButton.YesNo, MessageBoxImage.Question) = MessageBoxResult.Yes Then
|
|
Save()
|
|
End If
|
|
End If
|
|
End If
|
|
' recuro il file DDF associato al file .nge
|
|
Dim sCurrProjectDDF As String = String.Empty
|
|
sCurrProjectDDF = IniFile.m_sTempDir & "\CurrDoor.ddf"
|
|
' recupero il file di log
|
|
Dim sFileLog As String = String.Empty
|
|
sFileLog = IniFile.m_sTempDir & "\EgtDOORCreatorLog1.txt"
|
|
|
|
' Creo zip file da allegare
|
|
Dim sZipToCreate As String = IniFile.m_sTempDir & "\Feedback.zip"
|
|
If File.Exists(sZipToCreate) Then
|
|
File.Delete(sZipToCreate)
|
|
End If
|
|
Try
|
|
Using zip As New Ionic.Zip.ZipFile(sZipToCreate, Console.Out)
|
|
' aggiungo progetto corrente .nge
|
|
If Not String.IsNullOrWhiteSpace(sCurrProject) Then
|
|
zip.AddItem(sCurrProject, "")
|
|
End If
|
|
' aggiungo progetto corrente .ddf
|
|
If Not String.IsNullOrWhiteSpace(sCurrProjectDDF) Then
|
|
zip.AddItem(sCurrProjectDDF, "")
|
|
End If
|
|
' aggiungo file log
|
|
If Not String.IsNullOrWhiteSpace(sFileLog) Then
|
|
zip.AddItem(sFileLog, "")
|
|
End If
|
|
' aggiungo la cartella Doors
|
|
If Directory.Exists(IniFile.m_sDoorsDirPath) Then
|
|
zip.AddItem(IniFile.m_sDoorsDirPath, "Doors")
|
|
End If
|
|
zip.Save()
|
|
End Using
|
|
Catch ex1 As Exception
|
|
EgtOutLog("Exception in zip: " & ex1.ToString())
|
|
End Try
|
|
|
|
' preparo la mail per il supporto
|
|
Dim bEx As Boolean = False
|
|
Try
|
|
Dim SendFeedbackWindow As New EgtWPFLib5.MapiMailMessage("EgtDOORCreator Feedback - " & sKey)
|
|
SendFeedbackWindow.Recipients.Add(sSupportAddress)
|
|
If Not String.IsNullOrWhiteSpace(sZipToCreate) AndAlso File.Exists(sZipToCreate) Then
|
|
SendFeedbackWindow.Files.Add(IniFile.m_sTempDir & "\Feedback.zip")
|
|
End If
|
|
SendFeedbackWindow.ShowDialog()
|
|
Catch ex As Exception
|
|
EgtOutLog("Feedback exception: " & ex.ToString)
|
|
bEx = True
|
|
End Try
|
|
If bEx OrElse EgtWPFLib5.MapiMailMessage.m_ErrorCode <> 0 Then
|
|
MessageBox.Show(String.Format(EgtMsg(MSG_TOPCOMMANDBAR + 12), sSupportAddress, sZipToCreate), EgtMsg(MSG_EGTDOORCREATOR + 118), MessageBoxButton.OK, MessageBoxImage.Information)
|
|
Dim rfStatusBarView As StatusBarView = DirectCast(m_rfMainWindowViewModel.SceneManager.DataContext, SceneManagerViewModel).StatusBar
|
|
Dim rfStatusBarViewModel As StatusBarViewModel = DirectCast(rfStatusBarView.DataContext, StatusBarViewModel)
|
|
' stampo il messaggio nella StatusBar
|
|
rfStatusBarViewModel.StatusOutput = EgtMsg(MSG_TOPCOMMANDBAR + 14)
|
|
Else
|
|
Dim rfStatusBarView As StatusBarView = DirectCast(m_rfMainWindowViewModel.SceneManager.DataContext, SceneManagerViewModel).StatusBar
|
|
Dim rfStatusBarViewModel As StatusBarViewModel = DirectCast(rfStatusBarView.DataContext, StatusBarViewModel)
|
|
' stampo il messaggio nella StatusBar
|
|
rfStatusBarViewModel.StatusOutput = EgtMsg(MSG_TOPCOMMANDBAR + 14)
|
|
End If
|
|
End Sub
|
|
|
|
#End Region ' SendFeedbackCommand
|
|
|
|
#Region "CreateTemplate"
|
|
Public ReadOnly Property CreateTemplateCommand As ICommand
|
|
Get
|
|
If m_CmdCreateTemplate Is Nothing Then
|
|
m_CmdCreateTemplate = New Command(AddressOf CreateTemplate)
|
|
End If
|
|
Return m_CmdCreateTemplate
|
|
End Get
|
|
End Property
|
|
|
|
Public Sub CreateTemplate()
|
|
' se esite una porta, allora rendo possibile la creazione di un template della porta corrente
|
|
If Not IsNothing(DirectCast(m_rfMainWindowViewModel.DoorParameters.DataContext, DoorParametersViewModel).CurrDoor) Then
|
|
Dim rfCurrDoor As Door = DirectCast(m_rfMainWindowViewModel.DoorParameters.DataContext, DoorParametersViewModel).CurrDoor
|
|
' Stampo il file correte nella cartella Template
|
|
|
|
Dim SaveFileDialog As New EgtWPFLib5.EgtSaveFileDialog
|
|
SaveFileDialog.Title = K_NEWTEMPLATE
|
|
SaveFileDialog.Directory = IniFile.m_TemplateDir & "\"
|
|
SaveFileDialog.Extension = K_DDTEXTENSION
|
|
'SaveFileDialog.FileName = m_CurrProject.Name & "\"
|
|
' se decido di chiuedere la finestra
|
|
If Not SaveFileDialog.EgtShowDialog Then
|
|
Return
|
|
End If
|
|
' Controllo se ha estensione il nome della porta
|
|
If Path.HasExtension(SaveFileDialog.FileName) Then
|
|
Dim sExtension As String = Path.GetExtension(SaveFileDialog.FileName)
|
|
If Not sExtension.ToLower = K_DDTEXTENSION Then
|
|
SaveFileDialog.FileName = SaveFileDialog.FileName.Replace(sExtension, K_DDTEXTENSION)
|
|
End If
|
|
Else
|
|
SaveFileDialog.FileName &= K_DDTEXTENSION
|
|
End If
|
|
DdfFile.WriteDDF(rfCurrDoor, SaveFileDialog.FileName, False)
|
|
Else
|
|
MessageBox.Show("Impossible to create a template if there is not a door!", "Error", MessageBoxButton.OK, MessageBoxImage.Exclamation)
|
|
End If
|
|
End Sub
|
|
|
|
#End Region ' CreateTemplate
|
|
|
|
#End Region ' Commands
|
|
|
|
Public Event PropertyChanged As PropertyChangedEventHandler Implements INotifyPropertyChanged.PropertyChanged
|
|
|
|
Public Sub NotifyPropertyChanged(propName As String)
|
|
RaiseEvent PropertyChanged(Me, New PropertyChangedEventArgs(propName))
|
|
End Sub
|
|
|
|
End Class |