Files
omagoffice/TopCommandBar/TopCommandBarVM.vb
T
Emmanuele Sassi 5106b8ef80 OmagOFFICE :
- aggiunta finestra ImportDxf
- gestione unità di misura
- gestione cambio lingua
- varie migliorie.
2017-04-15 18:31:02 +00:00

387 lines
13 KiB
VB.net

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"
''' <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>
Friend Sub NewCmd()
OmagOFFICEMap.refSceneHostV.NewProject()
OmagOFFICEMap.refMachGroupPanelVM.LoadMachGroups()
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>
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"
' ''' <summary>
' ''' Returns a command that do Open.
' ''' </summary>
' 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
' ''' <summary>
' ''' Execute the Open. This method is invoked by the OpenCommand.
' ''' </summary>
' Public Sub OpenMruFile(ByVal param As Object)
' 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(ByVal param As Object)
OmagOFFICEMap.refSceneHostV.SaveProject()
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 Command(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)
OmagOFFICEMap.refSceneHostV.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 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"
' ''' <summary>
' ''' Returns a command that do SendFeedback.
' ''' </summary>
' 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
' ''' <summary>
' ''' Execute the SendFeedback. This method is invoked by the SendFeedbackCommand.
' ''' </summary>
' 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