5106b8ef80
- aggiunta finestra ImportDxf - gestione unità di misura - gestione cambio lingua - varie migliorie.
387 lines
13 KiB
VB.net
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
|