Imports System.Windows.Forms.Integration Imports System.Collections.ObjectModel Imports System.IO Imports EgtUILib Imports EgtWPFLib5 Public Class MyMachiningDbWindowVM Inherits MachiningDbWindowVM #Region "MESSAGES" 'Definizione dei messaggi della pagina Public ReadOnly Property MaterialMsg As String Get Return EgtMsg(MSG_MYMACHININGDBWINDOW + 1) End Get End Property Public ReadOnly Property MinThicknessMsg As String Get Return EgtMsg(MSG_MYMACHININGDBWINDOW + 2) End Get End Property Public ReadOnly Property MaxThicknessMsg As String Get Return EgtMsg(MSG_MYMACHININGDBWINDOW + 3) End Get End Property #End Region #Region "CONSTRUCTOR" Sub New(sMachineIniPath As String, ProjectSceneContext As Integer) MyBase.New(sMachineIniPath, ProjectSceneContext) End Sub #End Region ' Constructor #Region "METHODS" ''' ''' Method that search the machines in the correct folder and add to the MachinesList those valid. ''' Public Overrides Sub LoadSelectedMachineMachinings() EgtSetCurrentContext(OmagOFFICEMap.refSceneHostVM.MainScene.GetCtx()) Dim ActiveMachiningsTypes() As MachiningsType = MachineUtility.ReadMachiningFamilies(CurrentMachine.sMachIniFile) For Each MachiningsType In ActiveMachiningsTypes Dim FamilyTreeView As New FamilyMachiningTreeViewItem(MachiningsType.Name, MachiningsType.Id, Nothing) MachiningsList.Add(FamilyTreeView) Dim MachiningName As String = String.Empty EgtMdbGetFirstMachining(MachiningsType.Id, MachiningName) While Not String.IsNullOrWhiteSpace(MachiningName) ' recupero tuuid EgtMdbSetCurrMachining(MachiningName) Dim sCurrMachTUUID As String = String.Empty EgtMdbGetCurrMachiningParam(MCH_MP.TUUID, sCurrMachTUUID) FamilyTreeView.Items.Add(New MyMachiningTreeViewItem(MachiningName, MachiningsType.Id, ToolDbUtility.IsToolInDb(sCurrMachTUUID), FamilyTreeView)) EgtMdbGetNextMachining(MachiningsType.Id, MachiningName) End While FamilyTreeView.VerifyMachiningValidity() Next ' Se esiste almeno una famiglia di lavorazioni, la seleziono If MachiningsList.Count > 0 Then MachiningsList(0).IsSelected = True MachiningsList(0).NotifyPropertyChanged("IsSelected") End If End Sub Public Overrides Sub NewPar(ByVal param As Object) ' Verifico se sia selezionata una famiglia Dim NewMachiningItem As MachiningTreeViewItem If TypeOf param Is FamilyMachiningTreeViewItem Then Dim MachiningFamily As FamilyMachiningTreeViewItem = DirectCast(param, FamilyMachiningTreeViewItem) Dim NewName As String = MachiningFamily.Name EgtMdbGetMachiningNewName(NewName) If EgtMdbAddMachining(NewName, MachiningFamily.MachiningType) Then NewMachiningItem = New MyMachiningTreeViewItem(NewName, MachiningFamily.MachiningType, False, MachiningFamily) MachiningFamily.Items.Add(NewMachiningItem) EgtMdbSaveCurrMachining() NewMachiningItem.NewMachining = True If Not MachiningFamily.IsExpanded Then MachiningFamily.IsExpanded = True NewMachiningItem.IsSelected = True NewMachiningItem.NotifyPropertyChanged("IsSelected") End If ' Verifico se sia selezionata una lavorazione ElseIf TypeOf param Is MachiningTreeViewItem Then Dim MachiningCopied As MachiningTreeViewItem = DirectCast(param, MachiningTreeViewItem) Dim NewName As String = MachiningCopied.Name EgtMdbGetMachiningNewName(NewName) If EgtMdbCopyMachining(MachiningCopied.Name, NewName) Then Dim CurrType As Integer EgtMdbGetCurrMachiningParam(MCH_MP.TYPE, CurrType) For Each MachiningFamily In MachiningsList If (MachiningFamily.MachiningType And CurrType) <> 0 Then NewMachiningItem = New MyMachiningTreeViewItem(NewName, MachiningFamily.MachiningType, False, MachiningFamily) MachiningFamily.Items.Add(NewMachiningItem) EgtMdbSaveCurrMachining() NewMachiningItem.NewMachining = True ' Reimposto la lavorazione vecchia nel Db per deselezionarla e fare le verifiche correttamente EgtMdbSetCurrMachining(MachiningCopied.Name) MachiningCopied.IsSelected = False MachiningCopied.NotifyPropertyChanged("IsSelected") NewMachiningItem.IsSelected = True Exit For End If Next End If End If End Sub #End Region ' Methods End Class