From e3f863a16d9c79a7b46a32d139786d507a406ce9 Mon Sep 17 00:00:00 2001 From: Emmanuele Sassi Date: Thu, 20 Oct 2016 14:36:28 +0000 Subject: [PATCH] =?UTF-8?q?EgtCAM5=20:=20-=20Miglioramenti=20gestione=20pi?= =?UTF-8?q?=C3=B9=20macchine=20nelle=20tabelle=20per=20Doors.=20-=20Gestit?= =?UTF-8?q?a=20aggiunta=20operazione=20di=20lavorazione=20successiva=20a?= =?UTF-8?q?=20quella=20selezionata=20e=20sempre=20nella=20stessa=20fase.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- MTableDb/MTableDbViewModel.vb | 10 +- MTableDb/MTableListBox.vb | 232 ++++++++++++------ MTableDb/TableUtility.vb | 4 +- My Project/AssemblyInfo.vb | 4 +- .../MachiningTreeExpanderViewModel.vb | 10 + .../OperationExpanderViewModel.vb | 4 +- .../SimulationExpanderViewModel.vb | 16 +- 7 files changed, 184 insertions(+), 96 deletions(-) diff --git a/MTableDb/MTableDbViewModel.vb b/MTableDb/MTableDbViewModel.vb index 50a5c42..9adf472 100644 --- a/MTableDb/MTableDbViewModel.vb +++ b/MTableDb/MTableDbViewModel.vb @@ -9,6 +9,8 @@ Namespace EgtCAM5 Public Class MTableDbViewModel Inherits TabViewModel + Private m_sPreviousActiveMachine As String + Private m_TablesList As New ObservableCollection(Of MTableListBoxItem) Public Property TablesList As ObservableCollection(Of MTableListBoxItem) Get @@ -132,7 +134,6 @@ Namespace EgtCAM5 #End Region - #Region "ToolTip" 'Proprietà ToolTip @@ -175,6 +176,7 @@ Namespace EgtCAM5 #Region "CONSTRUCTOR" Sub New() + EgtGetCurrMachineName(m_sPreviousActiveMachine) UpdateTables() If m_TablesList.Count > 0 Then m_TablesList(0).IsSelected = True @@ -445,8 +447,8 @@ Namespace EgtCAM5 Dim SelectedMTable As MTableListBoxItem = DirectCast(param, MTableListBoxItem) If Not IsNothing(SelectedMTable) AndAlso Not IsNothing(SelectedMTable.SelectedAssociation) Then Dim SelectedIndex As Integer = SelectedMTable.AssociationList.IndexOf(SelectedMTable.SelectedAssociation) - Dim NewEmptyRow As MTableAssociationGridBoxItem = New MTableAssociationGridBoxItem(False, String.Empty, 1, 0, String.Empty, String.Empty, String.Empty, String.Empty) - SelectedMTable.AssociationList.Insert(SelectedIndex, NewEmptyRow) + Dim NewEmptyRow As MTableAssociationGridBoxItem = New MTableAssociationGridBoxItem(False, String.Empty, 1, 0, String.Empty, String.Empty, String.Empty, String.Empty, SelectedMTable.ActiveMachinesList) + SelectedMTable.AssociationList.Insert(SelectedIndex + 1, NewEmptyRow) SelectedMTable.SelectedAssociation = NewEmptyRow SelectedMTable.NotifyPropertyChanged("SelectedAssociation") End If @@ -567,6 +569,8 @@ Namespace EgtCAM5 SaveTable(SelectedMTable) End If End If + ' ripristino la macchina selezionata all'apertura della finestra + EgtSetCurrMachine(m_sPreviousActiveMachine) ' Chiusura finestra For Each Window In Application.Current.Windows If TypeOf Window Is MTableDbView Then diff --git a/MTableDb/MTableListBox.vb b/MTableDb/MTableListBox.vb index 77e4e55..af2d9a4 100644 --- a/MTableDb/MTableListBox.vb +++ b/MTableDb/MTableListBox.vb @@ -115,7 +115,7 @@ Public Class MTableListBoxItem SharedMachIndex += 1 ActiveMachinesList.Add(New MTableMachineListBoxItem(String.Empty, False, False, SharedMachIndex)) m_MachIdList.Add(SharedMachIndex) - AssociationList.Add(New MTableAssociationGridBoxItem(False, String.Empty, Nothing, 0, String.Empty, String.Empty, String.Empty, String.Empty)) + AssociationList.Add(New MTableAssociationGridBoxItem(False, String.Empty, Nothing, 0, String.Empty, String.Empty, String.Empty, String.Empty, ActiveMachinesList)) Return End If ' resetto indici macchine impostati in tabella @@ -274,6 +274,9 @@ Public Class MTableAssociationGridBoxItem ' Variabile che indica se questo oggetto è stato modificato Friend m_IsModified As Boolean = False + ' Riferimento alla lista di macchine attive per la tabella a cui appartiene questa associazione + Private m_ActiveMachinesList As ObservableCollection(Of MTableMachineListBoxItem) + Private m_OnPar As Boolean Public Property OnPar As Boolean Get @@ -339,8 +342,52 @@ Public Class MTableAssociationGridBoxItem Return m_MachId End Get Set(value As Integer) - m_IsModified = True - m_MachId = value + If value <> m_MachId Then + m_IsModified = True + m_MachId = value + ' Riverifico che il numero di macchine non sia cambiato + If m_MachId > 1 Then + If m_DrillingList.Count <> m_ActiveMachinesList.Count Then + For Index As Integer = m_DrillingList.Count To m_ActiveMachinesList.Count - 1 + m_DrillingList.Add(New List(Of String)) + m_SawingList.Add(New List(Of String)) + m_MillingList.Add(New List(Of String)) + m_PocketingList.Add(New List(Of String)) + m_MortisingList.Add(New List(Of String)) + m_SawRoughingList.Add(New List(Of String)) + m_SawFinishingList.Add(New List(Of String)) + Next + End If + End If + ' Assegno alla lista delle lavorazioni della riga selezionata la lista di quelle del suo tipo + If IsNothing(m_SelectedMachType) Then + MachList = Nothing + Else + UpdateMachiningLists() + End If + ' Verifico se i nomi già presenti per Mach, MachUp e MachDw sono validi per la nuova macchina + EgtSetCurrMachine(m_ActiveMachinesList(value - 1).SelectedMachine) + Dim nMachType As Integer = GDB_ID.NULL + If Not String.IsNullOrEmpty(m_Mach) Then + EgtMdbSetCurrMachining(m_Mach) + If Not EgtMdbSetCurrMachining(m_Mach) Then + Mach = String.Empty + NotifyPropertyChanged("Mach") + End If + End If + If Not String.IsNullOrEmpty(m_MachUp) Then + If Not EgtMdbSetCurrMachining(m_MachUp) Then + MachUp = String.Empty + NotifyPropertyChanged("MachUp") + End If + End If + If Not String.IsNullOrEmpty(m_MachDw) Then + If Not EgtMdbSetCurrMachining(m_MachDw) Then + MachDw = String.Empty + NotifyPropertyChanged("MachDw") + End If + End If + End If End Set End Property @@ -378,77 +425,14 @@ Public Class MTableAssociationGridBoxItem Return m_SelectedMachType End Get Set(value As MachineModel.MachiningsType) - If value IsNot m_SelectedMachType Then + If Not IsNothing(value) Then m_SelectedMachType = value ' Assegno alla lista delle lavorazioni della riga selezionata la lista di quelle del suo tipo If IsNothing(m_SelectedMachType) Then MachList = Nothing + Else + UpdateMachiningLists() End If - Select Case m_SelectedMachType.TypeId - Case MCH_MY.DRILLING - ' se la lista è vuota devo caricarla - If IsNothing(m_DrillingList) Then - m_DrillingList = New List(Of String) - LoadMachiningListByType(m_DrillingList, MCH_MY.DRILLING) - ' aggiungo elemento vuoto per poter non impostare alcuna lavorazione - m_DrillingList.Insert(0, String.Empty) - End If - MachList = New ObservableCollection(Of String)(m_DrillingList) - Case MCH_MY.SAWING - ' se la lista è vuota devo caricarla - If IsNothing(m_SawingList) Then - m_SawingList = New List(Of String) - LoadMachiningListByType(m_SawingList, MCH_MY.SAWING) - ' aggiungo elemento vuoto per poter non impostare alcuna lavorazione - m_SawingList.Insert(0, String.Empty) - End If - MachList = New ObservableCollection(Of String)(m_SawingList) - Case MCH_MY.MILLING - ' se la lista è vuota devo caricarla - If IsNothing(m_MillingList) Then - m_MillingList = New List(Of String) - LoadMachiningListByType(m_MillingList, MCH_MY.MILLING) - ' aggiungo elemento vuoto per poter non impostare alcuna lavorazione - m_MillingList.Insert(0, String.Empty) - End If - MachList = New ObservableCollection(Of String)(m_MillingList) - Case MCH_MY.POCKETING - ' se la lista è vuota devo caricarla - If IsNothing(m_PocketingList) Then - m_PocketingList = New List(Of String) - LoadMachiningListByType(m_PocketingList, MCH_MY.POCKETING) - ' aggiungo elemento vuoto per poter non impostare alcuna lavorazione - m_PocketingList.Insert(0, String.Empty) - End If - MachList = New ObservableCollection(Of String)(m_PocketingList) - Case MCH_MY.MORTISING - ' se la lista è vuota devo caricarla - If IsNothing(m_MortisingList) Then - m_MortisingList = New List(Of String) - LoadMachiningListByType(m_MortisingList, MCH_MY.MORTISING) - ' aggiungo elemento vuoto per poter non impostare alcuna lavorazione - m_MortisingList.Insert(0, String.Empty) - End If - MachList = New ObservableCollection(Of String)(m_MortisingList) - Case MCH_MY.SAWROUGHING - ' se la lista è vuota devo caricarla - If IsNothing(m_SawRoughingList) Then - m_SawRoughingList = New List(Of String) - LoadMachiningListByType(m_SawRoughingList, MCH_MY.SAWROUGHING) - ' aggiungo elemento vuoto per poter non impostare alcuna lavorazione - m_SawRoughingList.Insert(0, String.Empty) - End If - MachList = New ObservableCollection(Of String)(m_SawRoughingList) - Case MCH_MY.SAWFINISHING - ' se la lista è vuota devo caricarla - If IsNothing(m_SawFinishingList) Then - m_SawFinishingList = New List(Of String) - LoadMachiningListByType(m_SawFinishingList, MCH_MY.SAWFINISHING) - ' aggiungo elemento vuoto per poter non impostare alcuna lavorazione - m_SawFinishingList.Insert(0, String.Empty) - End If - MachList = New ObservableCollection(Of String)(m_SawFinishingList) - End Select ' Annullo i valori di Mach, MachUp e MachDw Mach = String.Empty NotifyPropertyChanged("Mach") @@ -460,6 +444,82 @@ Public Class MTableAssociationGridBoxItem End Set End Property + ' Funzione che in base al tipo di lavorazione e alla macchina selezionati, imposta la lista delle lavorazioni per le combo + Private Sub UpdateMachiningLists() + Select Case m_SelectedMachType.TypeId + Case MCH_MY.DRILLING + ' se la lista è vuota devo caricarla + If m_DrillingList(m_MachId - 1).Count = 0 Then + m_DrillingList(m_MachId - 1) = New List(Of String) + EgtSetCurrMachine(m_ActiveMachinesList(m_MachId - 1).SelectedMachine) + LoadMachiningListByType(m_DrillingList(m_MachId - 1), MCH_MY.DRILLING) + ' aggiungo elemento vuoto per poter non impostare alcuna lavorazione + m_DrillingList(m_MachId - 1).Insert(0, String.Empty) + End If + MachList = New ObservableCollection(Of String)(m_DrillingList(m_MachId - 1)) + Case MCH_MY.SAWING + ' se la lista è vuota devo caricarla + If m_SawingList(m_MachId - 1).Count = 0 Then + m_SawingList(m_MachId - 1) = New List(Of String) + EgtSetCurrMachine(m_ActiveMachinesList(m_MachId - 1).SelectedMachine) + LoadMachiningListByType(m_SawingList(m_MachId - 1), MCH_MY.SAWING) + ' aggiungo elemento vuoto per poter non impostare alcuna lavorazione + m_SawingList(m_MachId - 1).Insert(0, String.Empty) + End If + MachList = New ObservableCollection(Of String)(m_SawingList(m_MachId - 1)) + Case MCH_MY.MILLING + ' se la lista è vuota devo caricarla + If m_MillingList(m_MachId - 1).Count = 0 Then + m_MillingList(m_MachId - 1) = New List(Of String) + EgtSetCurrMachine(m_ActiveMachinesList(m_MachId - 1).SelectedMachine) + LoadMachiningListByType(m_MillingList(m_MachId - 1), MCH_MY.MILLING) + ' aggiungo elemento vuoto per poter non impostare alcuna lavorazione + m_MillingList(m_MachId - 1).Insert(0, String.Empty) + End If + MachList = New ObservableCollection(Of String)(m_MillingList(m_MachId - 1)) + Case MCH_MY.POCKETING + ' se la lista è vuota devo caricarla + If m_PocketingList(m_MachId - 1).Count = 0 Then + m_PocketingList(m_MachId - 1) = New List(Of String) + EgtSetCurrMachine(m_ActiveMachinesList(m_MachId - 1).SelectedMachine) + LoadMachiningListByType(m_PocketingList(m_MachId - 1), MCH_MY.POCKETING) + ' aggiungo elemento vuoto per poter non impostare alcuna lavorazione + m_PocketingList(m_MachId - 1).Insert(0, String.Empty) + End If + MachList = New ObservableCollection(Of String)(m_PocketingList(m_MachId - 1)) + Case MCH_MY.MORTISING + ' se la lista è vuota devo caricarla + If m_MortisingList(m_MachId - 1).Count = 0 Then + m_MortisingList(m_MachId - 1) = New List(Of String) + EgtSetCurrMachine(m_ActiveMachinesList(m_MachId - 1).SelectedMachine) + LoadMachiningListByType(m_MortisingList(m_MachId - 1), MCH_MY.MORTISING) + ' aggiungo elemento vuoto per poter non impostare alcuna lavorazione + m_MortisingList(m_MachId - 1).Insert(0, String.Empty) + End If + MachList = New ObservableCollection(Of String)(m_MortisingList(m_MachId - 1)) + Case MCH_MY.SAWROUGHING + ' se la lista è vuota devo caricarla + If m_SawRoughingList(m_MachId - 1).Count = 0 Then + m_SawRoughingList(m_MachId - 1) = New List(Of String) + EgtSetCurrMachine(m_ActiveMachinesList(m_MachId - 1).SelectedMachine) + LoadMachiningListByType(m_SawRoughingList(m_MachId - 1), MCH_MY.SAWROUGHING) + ' aggiungo elemento vuoto per poter non impostare alcuna lavorazione + m_SawRoughingList(m_MachId - 1).Insert(0, String.Empty) + End If + MachList = New ObservableCollection(Of String)(m_SawRoughingList(m_MachId - 1)) + Case MCH_MY.SAWFINISHING + ' se la lista è vuota devo caricarla + If m_SawFinishingList(m_MachId - 1).Count = 0 Then + m_SawFinishingList(m_MachId - 1) = New List(Of String) + EgtSetCurrMachine(m_ActiveMachinesList(m_MachId - 1).SelectedMachine) + LoadMachiningListByType(m_SawFinishingList(m_MachId - 1), MCH_MY.SAWFINISHING) + ' aggiungo elemento vuoto per poter non impostare alcuna lavorazione + m_SawFinishingList(m_MachId - 1).Insert(0, String.Empty) + End If + MachList = New ObservableCollection(Of String)(m_SawFinishingList(m_MachId - 1)) + End Select + End Sub + Private m_MachList As ObservableCollection(Of String) Public Property MachList As ObservableCollection(Of String) Get @@ -506,15 +566,27 @@ Public Class MTableAssociationGridBoxItem End Property ' Liste per le lavorazioni - Private m_DrillingList As List(Of String) - Private m_SawingList As List(Of String) - Private m_MillingList As List(Of String) - Private m_PocketingList As List(Of String) - Private m_MortisingList As List(Of String) - Private m_SawRoughingList As List(Of String) - Private m_SawFinishingList As List(Of String) + Private m_DrillingList As New List(Of List(Of String)) + Private m_SawingList As New List(Of List(Of String)) + Private m_MillingList As New List(Of List(Of String)) + Private m_PocketingList As New List(Of List(Of String)) + Private m_MortisingList As New List(Of List(Of String)) + Private m_SawRoughingList As New List(Of List(Of String)) + Private m_SawFinishingList As New List(Of List(Of String)) - Sub New(bOn As Boolean, sName As String, nMachId As Integer, nShift As Integer, sOper As String, sMach As String, sMachUp As String, sMachDw As String) + Sub New(bOn As Boolean, sName As String, nMachId As Integer, nShift As Integer, sOper As String, sMach As String, sMachUp As String, sMachDw As String, ByRef ActiveMachinesList As ObservableCollection(Of MTableMachineListBoxItem)) + ' Inizializzo la lista delle lavorazioni solo la prima volta + If m_DrillingList.Count = 0 Then + For Index As Integer = 0 To ActiveMachinesList.Count - 1 + m_DrillingList.Add(New List(Of String)) + m_SawingList.Add(New List(Of String)) + m_MillingList.Add(New List(Of String)) + m_PocketingList.Add(New List(Of String)) + m_MortisingList.Add(New List(Of String)) + m_SawRoughingList.Add(New List(Of String)) + m_SawFinishingList.Add(New List(Of String)) + Next + End If OnPar = bOn ' Inizializzo la lista dei nomi solo la prima volta If IsNothing(m_NamesList) Then @@ -530,7 +602,9 @@ Public Class MTableAssociationGridBoxItem NamesList = New ObservableCollection(Of String)(TempNameList) End If Name = sName - ' Verifico che il valore di MachId sia valido altrimento lo metto a nothing + 'Imposto il riferimento alla lista di macchine di questa tabella + m_ActiveMachinesList = ActiveMachinesList + ' Verifico che il valore di MachId sia valido altrimento imposto la prima macchina If nMachId = 0 Then MachId = 1 Else @@ -564,6 +638,8 @@ Public Class MTableAssociationGridBoxItem ' aggiungo elemento stringa vuota(come primo elemento) per dare la possibilità di non selezionarne nessuna operazione MachTypeList.Insert(0, New MachiningsType() With {.TypeId = MCH_MY.NONE, .TypeName = String.Empty}) End If + ' dall'MId recupero la macchina a cui si riferisce questa associazione e la imposto come corrente + EgtSetCurrMachine(m_ActiveMachinesList(m_MachId - 1).SelectedMachine) ' Imposto MachType selezionato cercando il tipo delle lavorazioni If EgtMdbSetCurrMachining(sMach) OrElse EgtMdbSetCurrMachining(sMachUp) OrElse EgtMdbSetCurrMachining(sMachDw) Then Dim nMachType As Integer = GDB_ID.NULL diff --git a/MTableDb/TableUtility.vb b/MTableDb/TableUtility.vb index b92847d..4fc1bf7 100644 --- a/MTableDb/TableUtility.vb +++ b/MTableDb/TableUtility.vb @@ -94,7 +94,7 @@ Module TableUtility If nMachId > Table.m_MachIdList.Count Then nMachId = 0 End If - Table.AssociationList.Add(New MTableAssociationGridBoxItem(bOn, sName, nMachId, nShift, sOper, sMach, sMachUp, sMachDw)) + Table.AssociationList.Add(New MTableAssociationGridBoxItem(bOn, sName, nMachId, nShift, sOper, sMach, sMachUp, sMachDw, Table.ActiveMachinesList)) End If End If @@ -108,7 +108,7 @@ Module TableUtility End If ' se nessuna lavorazione, ne aggiungo una vuota If Table.AssociationList.Count = 0 Then - Table.AssociationList.Add(New MTableAssociationGridBoxItem(False, String.Empty, 0, 0, String.Empty, String.Empty, String.Empty, String.Empty)) + Table.AssociationList.Add(New MTableAssociationGridBoxItem(False, String.Empty, 0, 0, String.Empty, String.Empty, String.Empty, String.Empty, Table.ActiveMachinesList)) End If End Sub diff --git a/My Project/AssemblyInfo.vb b/My Project/AssemblyInfo.vb index dad013f..f3c6564 100644 --- a/My Project/AssemblyInfo.vb +++ b/My Project/AssemblyInfo.vb @@ -70,5 +70,5 @@ Imports System.Windows ' by using the '*' as shown below: ' - - + + diff --git a/ProjectPage/OptionPanel/MachiningOptionPanel/MachiningsTreeViewExpander/MachiningTreeExpanderViewModel.vb b/ProjectPage/OptionPanel/MachiningOptionPanel/MachiningsTreeViewExpander/MachiningTreeExpanderViewModel.vb index 47386d2..1d39999 100644 --- a/ProjectPage/OptionPanel/MachiningOptionPanel/MachiningsTreeViewExpander/MachiningTreeExpanderViewModel.vb +++ b/ProjectPage/OptionPanel/MachiningOptionPanel/MachiningsTreeViewExpander/MachiningTreeExpanderViewModel.vb @@ -37,6 +37,9 @@ Namespace EgtCAM5 End Set End Property + ' Operazione correntemente selezionata, che permette di aggiungere al posto giusto quella nuova + Private m_nSelectedOperationId As Integer = -1 + ' Definizione comandi Private m_cmdTreeViewDoubleClick As ICommand Private m_cmdCancelNew As ICommand @@ -57,6 +60,9 @@ Namespace EgtCAM5 m_CodeCommand = True IsEnabled = bValue End Sub) + Application.Msn.Register(Application.SELECTEDOPERATION, Sub(SelectedOperation As OperationListBoxItem) + m_nSelectedOperationId = SelectedOperation.Id + End Sub) End Sub #End Region @@ -85,6 +91,8 @@ Namespace EgtCAM5 Dim Machining As MachiningTreeViewExpanderItem = DirectCast(param, MachiningTreeViewExpanderItem) ' Creo nuova lavorazione(operazione) con la lavorazione selezionata Dim MachiningId As Integer = EgtAddMachining(MachiningTypeToString(Machining.Type) & "_1", Machining.Name) + ' Sposto la lavorazione aggiunta subito dopo quella appena selezionata + EgtRelocate(MachiningId, m_nSelectedOperationId, GDB_POS.AFTER) ' Recupero geometria correntemente selezionata e la metto in un vettore Dim SelectedEntities As New List(Of Integer) Dim EntityId As Integer = EgtGetFirstSelectedObj() @@ -98,6 +106,8 @@ Namespace EgtCAM5 EgtSetMachiningGeometry(SelectedEntities.ToArray) ' Calcolo la lavorazione con la nuova geometria EgtApplyMachining(True) + 'Aggiorno le lavorazioni successive a quella corrente che appartengono alla fase corrente + EgtDraw() ' Ricarico la lista operazioni per avere quella nuova Application.Msn.NotifyColleagues(Application.LOADOPERATIONLIST, MachiningId) diff --git a/ProjectPage/OptionPanel/MachiningOptionPanel/OperationExpander/OperationExpanderViewModel.vb b/ProjectPage/OptionPanel/MachiningOptionPanel/OperationExpander/OperationExpanderViewModel.vb index 24659cc..b71424e 100644 --- a/ProjectPage/OptionPanel/MachiningOptionPanel/OperationExpander/OperationExpanderViewModel.vb +++ b/ProjectPage/OptionPanel/MachiningOptionPanel/OperationExpander/OperationExpanderViewModel.vb @@ -224,9 +224,9 @@ Namespace EgtCAM5 End While ' La salvo come ultima operazione selezionata m_LastMarkedOperationId = value.Id - ' Notifico l'operazione selezionata all'expander dei parametri operazione - Application.Msn.NotifyColleagues(Application.SELECTEDOPERATION, value) End If + ' Notifico l'operazione selezionata all'expander con l'albero delle lavorazioni aggiungibili + Application.Msn.NotifyColleagues(Application.SELECTEDOPERATION, value) ' Aggiorno visualizzazione EgtDraw() End If diff --git a/ProjectPage/OptionPanel/MachiningOptionPanel/SimulationExpander/SimulationExpanderViewModel.vb b/ProjectPage/OptionPanel/MachiningOptionPanel/SimulationExpander/SimulationExpanderViewModel.vb index 8e96060..6c3e53f 100644 --- a/ProjectPage/OptionPanel/MachiningOptionPanel/SimulationExpander/SimulationExpanderViewModel.vb +++ b/ProjectPage/OptionPanel/MachiningOptionPanel/SimulationExpander/SimulationExpanderViewModel.vb @@ -452,7 +452,7 @@ Namespace EgtCAM5 Public ReadOnly Property GenerateCommand As ICommand Get If m_cmdGenerate Is Nothing Then - m_cmdGenerate = New RelayCommand(AddressOf Generate, AddressOf CanGenerate) + m_cmdGenerate = New RelayCommand(AddressOf Generate) End If Return m_cmdGenerate End Get @@ -462,21 +462,19 @@ Namespace EgtCAM5 ''' Creata the new tool. This method is invoked by the NewCommand. ''' Public Sub Generate(ByVal param As Object) - Dim sInfo As String = "EgtCAM5" Dim sCurrFilePath As String = String.Empty EgtGetCurrFilePath(sCurrFilePath) + If String.IsNullOrEmpty(sCurrFilePath) Then + MessageBox.Show(EgtMsg(MSG_SIMULATION + 31), EgtMsg(MSG_SIMULATION + 5), MessageBoxButton.OK, MessageBoxImage.Stop) + End If + Dim sInfo As String = "EgtCAM5 - " & sCurrFilePath If Not EgtGenerate(Path.ChangeExtension(sCurrFilePath, ".cnc"), sInfo) Then MessageBox.Show(EgtMsg(MSG_SIMULATION + 6), EgtMsg(MSG_SIMULATION + 5), MessageBoxButton.OK, MessageBoxImage.Stop) + Else + Application.Msn.NotifyColleagues(Application.NOTIFYSTATUSOUTPUT, EgtMsg(MSG_SIMULATION + 32)) End If End Sub - ''' - ''' Returns true if the selected treeviewitem is valid for new tool creation. - ''' - Private Function CanGenerate(ByVal param As Object) As Boolean - Return True - End Function - #End Region ' GenerateCommand #End Region