Imports EgtUILib
Public Class TopCommandBarVM
Inherits VMBase
#Region "FIELDS & PROPERTIES"
'Public ReadOnly Property MruFileNames As ObservableCollection(Of String)
' Get
' Return IniFile.m_MruFiles.m_FileNames
' End Get
'End Property
Private m_IsEnabled As Boolean
Public Property IsEnabled As Boolean
Get
Return m_IsEnabled
End Get
Set(value As Boolean)
If value <> m_IsEnabled Then
m_IsEnabled = value
NotifyPropertyChanged("IsEnabled")
End If
End Set
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_cmdOptions As ICommand
Private m_cmdSendFeedback 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 ExportToolTip As String
Get
'Return EgtMsg(MSG_TOPCOMMANDBAR + 7)
End Get
End Property
Public ReadOnly Property OptionsToolTip As String
Get
' Return EgtMsg(MSG_TOPCOMMANDBAR + 9)
End Get
End Property
Public ReadOnly Property SendFeedbackToolTip As String
Get
'Return EgtMsg(MSG_TOPCOMMANDBAR + 13)
End Get
End Property
#End Region ' ToolTip
#End Region ' Fields & Properties
#Region "CONSTRUCTOR"
Sub New()
' Creo riferimento a questa classe in OmagOFFICEMap
OmagOFFICEMap.SetRefTopCommandBarVM(Me)
End Sub
#End Region ' CONSTRUCTOR
#Region "COMMANDS"
#Region "NewCommand"
'''
''' Returns a command that do New.
'''
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
'''
''' Execute the New. This method is invoked by the NewCommand.
'''
Friend Sub NewCmd()
OmagOFFICEMap.refSceneHostV.NewProject()
OmagOFFICEMap.refMachGroupPanelVM.LoadMachGroups()
End Sub
#End Region ' NewCommand
#Region "OpenCommand"
'''
''' Returns a command that do Open.
'''
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
'''
''' Execute the Open. This method is invoked by the OpenCommand.
'''
Friend Sub Open()
OpenProject(String.Empty)
End Sub
Friend Sub OpenProject(sFilePath As String)
OmagOFFICEMap.refSceneHostV.OpenProject(sFilePath)
OmagOFFICEMap.refMachGroupPanelVM.LoadMachGroups()
End Sub
#End Region ' OpenCommand
'#Region "OpenMruFileCommand"
' '''
' ''' Returns a command that do Open.
' '''
' Public 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
' '''
' ''' Execute the Open. This method is invoked by the OpenCommand.
' '''
' Public Sub OpenMruFile(ByVal param As Object)
' OpenProject(DirectCast(param, String).Replace("__", "_"))
' End Sub
'#End Region ' OpenMruFileCommand
#Region "SaveCommand"
'''
''' Returns a command that do Save.
'''
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
'''
''' Execute the Save. This method is invoked by the SaveCommand.
'''
Public Sub Save(ByVal param As Object)
OmagOFFICEMap.refSceneHostV.SaveProject()
End Sub
#End Region ' SaveCommand
#Region "SaveAsCommand"
'''
''' Returns a command that do SaveAs.
'''
Public ReadOnly Property SaveAsCommand As ICommand
Get
If m_cmdSaveAs Is Nothing Then
m_cmdSaveAs = New Command(AddressOf SaveAs)
End If
Return m_cmdSaveAs
End Get
End Property
'''
''' Execute the SaveAs. This method is invoked by the SaveAsCommand.
'''
Public Sub SaveAs(ByVal param As Object)
OmagOFFICEMap.refSceneHostV.SaveAsProject()
End Sub
#End Region ' SaveAsCommand
#Region "OptionsCommand"
'''
''' Returns a command that do Export.
'''
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
'''
''' Execute the Export. This method is invoked by the ExportCommand.
'''
Public Sub Options(ByVal param As Object)
Dim OptionsWindow As New OptionWindowV
'OptionsWindow.Height = 614
'OptionsWindow.Width = 1024
OptionsWindow.DataContext = New OptionWindowVM
OptionsWindow.Owner = Application.Current.MainWindow
OptionsWindow.ShowDialog()
End Sub
#End Region ' OptionsCommand
'#Region "SendFeedbackCommand"
' '''
' ''' Returns a command that do SendFeedback.
' '''
' Public ReadOnly Property SendFeedbackCommand As ICommand
' Get
' If m_cmdSendFeedback Is Nothing Then
' m_cmdSendFeedback = New RelayCommand(AddressOf SendFeedback)
' End If
' Return m_cmdSendFeedback
' End Get
' End Property
' '''
' ''' Execute the SendFeedback. This method is invoked by the SendFeedbackCommand.
' '''
' Public Sub SendFeedback(ByVal param As Object)
' ' 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(MSG_MESSAGEBOX + 1), MessageBoxButton.OK, MessageBoxImage.Error)
' Return
' End If
' ' Recupero numero chiave
' Dim sKey As String = String.Empty
' EgtGetKeyInfo(sKey)
' ' Recupero file del progetto corrente
' Dim sCurrProject As String = String.Empty
' EgtGetCurrFilePath(sCurrProject)
' ' se nome file vuoto, chiedo se si vuole salvare
' If String.IsNullOrWhiteSpace(sCurrProject) Then
' If MessageBox.Show(EgtMsg(MSG_TOPCOMMANDBAR + 11), "", MessageBoxButton.YesNo, MessageBoxImage.Question) = MessageBoxResult.Yes Then
' Application.Msn.NotifyColleagues(Application.SAVEPROJECT)
' 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
' Application.Msn.NotifyColleagues(Application.SAVEPROJECT)
' End If
' End If
' End If
' ' Verifico se il progetto corrente è una porta
' Dim nPartId As Integer = EgtGetFirstPart()
' If nPartId = GDB_ID.NULL Then
' nPartId = EgtGetFirstPartInRawPart(EgtGetFirstRawPart())
' End If
' Dim sPartName As String = String.Empty
' EgtGetName(nPartId, sPartName)
' Dim bPrjIsDoor As Boolean = (String.Compare(sPartName, "DOOR") = 0)
' ' Recupero macchine dei gruppi di lavoro del progetto
' Dim Machines As New List(Of String)
' Dim nMchGrpId As Integer = EgtGetFirstMachGroup()
' While nMchGrpId <> GDB_ID.NULL
' Dim sMachineName As String = String.Empty
' EgtGetMachGroupMachineName(nMchGrpId, sMachineName)
' If Not String.IsNullOrWhiteSpace(sMachineName) Then
' Machines.Add(sMachineName)
' End If
' nMchGrpId = EgtGetNextMachGroup(nMchGrpId)
' End While
' ' Recupero altri file con lo stesso nome del progetto
' Dim OtherFiles As New List(Of String)
' If Not String.IsNullOrWhiteSpace(sCurrProject) Then
' Dim sCurrProjectDir As String = Path.GetDirectoryName(sCurrProject)
' If Not String.IsNullOrWhiteSpace(sCurrProjectDir) Then
' Dim TempFiles() As String = Directory.GetFiles(sCurrProjectDir)
' For FileIndex = 0 To TempFiles.Count - 1
' If Path.GetFileNameWithoutExtension(TempFiles(FileIndex)).Contains(Path.GetFileNameWithoutExtension(sCurrProject)) AndAlso TempFiles(FileIndex) <> sCurrProject Then
' OtherFiles.Add(TempFiles(FileIndex))
' End If
' Next
' End If
' End If
' ' 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 file macchine
' For Each sMachineName As String In Machines
' Dim sMachineDir As String = IniFile.m_sMachinesRoot & "\" & sMachineName
' If Directory.Exists(sMachineDir) Then
' zip.AddItem(sMachineDir, sMachineName)
' End If
' Next
' ' aggiungo progetto corrente
' If Not String.IsNullOrWhiteSpace(sCurrProject) Then
' zip.AddItem(sCurrProject, "")
' End If
' ' aggiungo file log
' zip.AddItem(IniFile.m_sLogFile, "")
' ' aggiungo file ausiliari
' For Each sOther As String In OtherFiles
' zip.AddItem(sOther, "")
' Next
' ' se door attivo, progetto corrente è una porta e definito direttorio base di Doors
' If IniFile.IsActiveDoors And bPrjIsDoor And Directory.Exists(IniFile.m_sDoorsDirPath) Then
' ' aggiungo Doors completo
' zip.AddItem(IniFile.m_sDoorsDirPath, "Doors")
' End If
' ' salvo lo zip
' 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("EgtCAM5 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_MESSAGEBOX + 3), MessageBoxButton.OK, MessageBoxImage.Information)
' Else
' Application.Msn.NotifyColleagues(Application.NOTIFYSTATUSOUTPUT, EgtMsg(MSG_TOPCOMMANDBAR + 14))
' End If
' End Sub
'#End Region ' SendFeedbackCommand
#End Region ' Commands
End Class