diff --git a/EgtStoneLib/CurrentMachine.vb b/EgtStoneLib/CurrentMachine.vb index c95557d..1efb345 100644 --- a/EgtStoneLib/CurrentMachine.vb +++ b/EgtStoneLib/CurrentMachine.vb @@ -1415,6 +1415,16 @@ Friend Property sCurrMillNoTip As String OmagOFFICEMap.refMachinePanelVM.NotifyPropertyChanged(NameOf(OmagOFFICEMap.refMachinePanelVM.WjDb_Visibility)) End Sub + ' recupro dalla lista delle macchine l'oggetto associato al nome indicato + Public Sub GetMachineClass(sMachineName As String) + For Each Item In OmagOFFICEMap.refMachinePanelVM.MachineList + If Item.Name = sMachineName Then + OmagOFFICEMap.refMachinePanelVM.SelectedMachine = Item + Exit For + End If + Next + End Sub + Public Sub LoadWJMaterial(Optional bIsStart As Boolean = False) Dim TempCurrMat As Material = CurrMat ' Svuoto l'attuale lista di materiali e delle qualità diff --git a/MachinePanel/MyMachinePanelVM.vb b/MachinePanel/MyMachinePanelVM.vb index 959b536..4d44963 100644 --- a/MachinePanel/MyMachinePanelVM.vb +++ b/MachinePanel/MyMachinePanelVM.vb @@ -95,8 +95,18 @@ Public Class MyMachinePanelVM OmagOFFICEMap.SetRefMachinePanelVM(Me) ' recupero cartella radice delle macchine m_sMachinesRoot = OmagOFFICEMap.refMainWindowVM.MainWindowM.sMachinesRoot - ' Carica macchine da cartella delle macchine - Machine.MachineListInit(m_sMachinesRoot, MachineList) + ' trasformo l'elenco dei direttori macchina in una stringa del tipo "..\Dir1\Example01|..\Dir2\|Example02" + Dim sMchRoots As String = m_sMachinesRoot + + '' Carica macchine da cartella delle macchine + 'For Each MachDir In OmagOFFICEMap.refMainWindowVM.MainWindowM.sMachinesRootList + ' sMchRoots &= MachDir & "|" + 'Next + '' rimuovo dalla stringa l'ultimo carattere inserito + 'sMchRoots = sMchRoots.Remove(sMchRoots.Length - 1, 1) + + ' procedo ad inizializzare la classe → carico la lista "MachineList" che visualizzo per l'inserimento di nuvoi MachGroup + Machine.MachineListInit(sMchRoots, MachineList) ' Inizializzo valori visibilità parametri Db utensili e lavorazioni OmagOFFICETMDbParamVisibility.Init() End Sub diff --git a/MainWindow/MainWindowM.vb b/MainWindow/MainWindowM.vb index cd6d1c4..4a26a99 100644 --- a/MainWindow/MainWindowM.vb +++ b/MainWindow/MainWindowM.vb @@ -86,13 +86,29 @@ Public Class MainWindowM Return m_sTempDir End Get End Property + + '------------------INIZIO Gestione elenco direttori macchine ------------------ + + Private m_sMachinesRootList As New List(Of String) + Friend ReadOnly Property sMachinesRootList As List(Of String) + Get + Return m_sMachinesRootList + End Get + End Property + + '------------------FINE Gestione elenco direttori macchine ------------------ + Private m_sMachinesRoot As String - Friend ReadOnly Property sMachinesRoot As String + Friend Property sMachinesRoot As String Get Return m_sMachinesRoot End Get + Set(value As String) + m_sMachinesRoot = value + End Set End Property Private m_sToolMakersDir As String + Friend ReadOnly Property sToolMakersDir As String Get Return m_sToolMakersDir @@ -172,6 +188,18 @@ Public Class MainWindowM If GetMainPrivateProfileString(S_MACH, K_MACHINESDIR, "", m_sMachinesRoot) = 0 Then m_sMachinesRoot = m_sDataRoot & "\" & MACHINES_DFL_DIR End If + + ' carico eleco dei direttori + If Not String.IsNullOrEmpty(m_sMachinesRoot) Then m_sMachinesRootList.Add(m_sMachinesRoot) + Dim nIndexDir As Integer = 1 + Dim sCurrMachineDir As String = String.Empty + While GetMainPrivateProfileString(S_MACH, K_MACHINESDIR & nIndexDir.ToString, "", sCurrMachineDir) <> 0 + If VerifyMachineIsUnique(sCurrMachineDir) Then + m_sMachinesRootList.Add(sCurrMachineDir) + End If + nIndexDir += 1 + End While + ' Impostazione direttorio per toolmakers If GetMainPrivateProfileString(S_MACH, K_TOOLMAKERSDIR, "", m_sToolMakersDir) = 0 Then m_sToolMakersDir = m_sDataRoot & "\" & TOOLMAKERS_DFL_DIR @@ -279,6 +307,16 @@ Public Class MainWindowM EgtPHOTOLib.MainData.SetKey(sIdKey) End Sub + ' verifico che il nome da inserire non esista già in elenco + Private Function VerifyMachineIsUnique(sMachDir As String) As Boolean + For Each sDir As String In m_sMachinesRootList + If sDir.ToLower.Trim = sMachDir.ToLower.Trim Then + Return False + End If + Next + Return True + End Function + Private Sub ManageInstance() Dim bCreated As Boolean Try diff --git a/MyMachGroupPanel/MyMachGroupPanelVM.vb b/MyMachGroupPanel/MyMachGroupPanelVM.vb index 9ba82b1..0606597 100644 --- a/MyMachGroupPanel/MyMachGroupPanelVM.vb +++ b/MyMachGroupPanel/MyMachGroupPanelVM.vb @@ -38,8 +38,7 @@ Public Class MyMachGroupPanelVM GetMainPrivateProfileString(S_MACH, K_CURRMACH, "", sDefaultMachine) ' Creo riferimento a questa classe in OmagOFFICEMap OmagOFFICEMap.SetRefMachGroupPanelVM(Me) - InitMachGroupPanel(True, OmagOFFICEMap.refMachinePanelVM.MachineList.ToList(), - sDefaultMachine, BASE_MACH_GROUP & "1") + InitMachGroupPanel(True, OmagOFFICEMap.refMachinePanelVM.MachineList.ToList(), sDefaultMachine, BASE_MACH_GROUP & "1") End Sub #End Region ' CONSTRUCTOR @@ -99,6 +98,8 @@ Public Class MyMachGroupPanelVM ' Salvo macchina del gruppo come nuovo default Dim sCurrMachName As String = String.Empty EgtGetCurrMachineName(sCurrMachName) + CurrentMachine.GetMachineClass(sCurrMachName) + OmagOFFICEMap.refMainWindowVM.MainWindowM.sMachinesRoot = Path.GetDirectoryName(OmagOFFICEMap.refMachinePanelVM.SelectedMachine.DirPath) WriteMainPrivateProfileString(S_MACH, K_CURRMACH, sCurrMachName) ' Ricarico la macchina corrente InitCurrentMachine(OmagOFFICEMap.refMainWindowVM.MainWindowM.sMachinesRoot, sCurrMachName, @@ -152,6 +153,8 @@ Public Class MyMachGroupPanelVM Public Overrides Function OnPostSetCurrMachGroup() As Boolean ' Imposto vista solo tavola EgtSetMachineLook(MCH_LOOK.TAB) + CurrentMachine.GetMachineClass(SelectedMachGroup.Machine) + OmagOFFICEMap.refMainWindowVM.MainWindowM.sMachinesRoot = Path.GetDirectoryName(OmagOFFICEMap.refMachinePanelVM.SelectedMachine.DirPath) ' Ricarico la macchina corrente InitCurrentMachine(OmagOFFICEMap.refMainWindowVM.MainWindowM.sMachinesRoot, SelectedMachGroup.Machine, OmagOFFICEMap.refMainWindowVM.MainWindowM.GetKeyOption(KEY_OPT.PRODUCTION_LINE), diff --git a/MySceneHost/MySceneHostVM.vb b/MySceneHost/MySceneHostVM.vb index 3509ecc..e71e47a 100644 --- a/MySceneHost/MySceneHostVM.vb +++ b/MySceneHost/MySceneHostVM.vb @@ -314,6 +314,8 @@ Public Class MySceneHostVM Dim sMachine As String = String.Empty EgtGetInfo(nMchGrpId, "Machine", sMachine) If Not String.IsNullOrEmpty(sMachine) Then + CurrentMachine.GetMachineClass(sMachine) + OmagOFFICEMap.refMainWindowVM.MainWindowM.sMachinesRoot = Path.GetDirectoryName(OmagOFFICEMap.refMachinePanelVM.SelectedMachine.DirPath) InitCurrentMachine(OmagOFFICEMap.refMainWindowVM.MainWindowM.sMachinesRoot, sMachine, OmagOFFICEMap.refMainWindowVM.MainWindowM.GetKeyOption(KEY_OPT.PRODUCTION_LINE), OmagOFFICEMap.refMainWindowVM.MainWindowM.GetKeyOption(KEY_OPT.ENABLE_MILL), @@ -347,6 +349,8 @@ Public Class MySceneHostVM ' Salvo il file If Not EgtSaveFile(sFileDest, NGE.CMPTEXT) Then bOk = False Next + CurrentMachine.GetMachineClass(CurrentSelectedMachGroup) + OmagOFFICEMap.refMainWindowVM.MainWindowM.sMachinesRoot = Path.GetDirectoryName(OmagOFFICEMap.refMachinePanelVM.SelectedMachine.DirPath) ' reimposto la macchina corrente InitCurrentMachine(OmagOFFICEMap.refMainWindowVM.MainWindowM.sMachinesRoot, CurrentSelectedMachGroup, OmagOFFICEMap.refMainWindowVM.MainWindowM.GetKeyOption(KEY_OPT.PRODUCTION_LINE),