diff --git a/Icarus/CurrMachiningPanel/CurrMachining.vb b/Icarus/CurrMachiningPanel/CurrMachining.vb index e4971a2..55bf365 100644 --- a/Icarus/CurrMachiningPanel/CurrMachining.vb +++ b/Icarus/CurrMachiningPanel/CurrMachining.vb @@ -6,12 +6,12 @@ Imports EgtWPFLib5 Public Class CurrMachining Inherits Machining - Private m_sCurrGUID As String = "" - Public Property sCurrGUID As String + Private m_sCurrGUID As Guid = Guid.Empty + Public Property sCurrGUID As Guid Get Return m_sCurrGUID End Get - Set(value As String) + Set(value As Guid) m_sCurrGUID = value End Set End Property @@ -84,11 +84,12 @@ Public Class CurrMachining Sub New(nPartId As Integer) ' ricavo lavorazione da lista Dim sMacIniFilePath As String = Map.refMainWindowVM.MainWindowM.sMachiningsDir & "/Machinings.ini" - EgtGetInfo(nPartId, MAC_GUID, m_sCurrGUID) - If Not String.IsNullOrWhiteSpace(m_sCurrGUID) Then + Dim sCurrGuid As String = "" + EgtGetInfo(nPartId, MAC_GUID, sCurrGuid) + If Guid.TryParse(sCurrGuid, m_sCurrGUID) Then Dim CurrMachiningInDb As MachiningIndex = Map.refTopPanelVM.MachiningList.FirstOrDefault(Function(x) x.sGUID = m_sCurrGUID) If IsNothing(CurrMachiningInDb) Then - MessageBox.Show("Machining not found in Db!", "Error", MessageBoxButton.OK, MessageBoxImage.Error) + MessageBox.Show("Machining not found in Db!", "Warning", MessageBoxButton.OK, MessageBoxImage.Warning) m_nIndex = 0 Else m_nIndex = CurrMachiningInDb.nIndex @@ -163,7 +164,7 @@ Public Class CurrMachining End Sub Friend Sub WriteCurrParamInPart(nPartId As Integer) - EgtSetInfo(nPartId, MAC_GUID, m_sCurrGUID) + EgtSetInfo(nPartId, MAC_GUID, m_sCurrGUID.ToString()) For Each Cathegory As CurrMachiningCathegory In m_CathegoryList Cathegory.WriteCurrParamInPart(nPartId) Next @@ -301,7 +302,7 @@ Public Class CurrNumericMachiningParam Public ReadOnly Property bIsModifiedFromDb As Boolean Get - Return m_dValue <> m_DbParam.dOrigValue + Return If(Map.refTopPanelVM.SelMachining.sGUID <> Guid.Empty, m_dValue <> m_DbParam.dOrigValue, False) End Get End Property @@ -681,7 +682,7 @@ Public Class CurrComboMachiningParam Public ReadOnly Property bIsModifiedFromDb As Boolean Get - Return m_SelValue.Id <> m_DbParam.OrigSelValue.Id + Return If(Map.refTopPanelVM.SelMachining.sGUID <> Guid.Empty, m_SelValue.Id <> m_DbParam.OrigSelValue.Id, False) End Get End Property @@ -845,7 +846,7 @@ Public Class CurrCheckMachiningParam Public ReadOnly Property bIsModifiedFromDb As Boolean Get - Return m_bValue <> m_DbParam.bOrigValue + Return If(Map.refTopPanelVM.SelMachining.sGUID <> Guid.Empty, m_bValue <> m_DbParam.bOrigValue, False) End Get End Property diff --git a/Icarus/CurrMachiningPanel/CurrMachiningPanelVM.vb b/Icarus/CurrMachiningPanel/CurrMachiningPanelVM.vb index ad60544..dea2dc4 100644 --- a/Icarus/CurrMachiningPanel/CurrMachiningPanelVM.vb +++ b/Icarus/CurrMachiningPanel/CurrMachiningPanelVM.vb @@ -110,8 +110,8 @@ Public Class CurrMachiningPanelVM nIndex += 1 End While Dim sMacIniFilePath As String = Map.refMainWindowVM.MainWindowM.sMachiningsDir & "/Machinings.ini" - Dim sNewMachGUID As String = Guid.NewGuid.ToString() - WritePrivateProfileString(nIndex, MAC_GUID, sNewMachGUID, sMacIniFilePath) + Dim sNewMachGUID As Guid = Guid.NewGuid() + WritePrivateProfileString(nIndex, MAC_GUID, sNewMachGUID.ToString(), sMacIniFilePath) WritePrivateProfileString(nIndex, MAC_NAME, SaveInDbWndVM.sName, sMacIniFilePath) ' creo categoria materiali con attivo materiale corrente Dim MaterialCathegory As New MachiningCathegory(MachiningCathegory.Cathegories.MATERIALS, 0) diff --git a/Icarus/MachiningDb/Machining.vb b/Icarus/MachiningDb/Machining.vb index e57f029..931ec22 100644 --- a/Icarus/MachiningDb/Machining.vb +++ b/Icarus/MachiningDb/Machining.vb @@ -229,6 +229,8 @@ End Class Public Class MachiningIndex Inherits VMBase + Private Shared m_Empty As New MachiningIndex(-1, Guid.Empty, "None") + Private m_nIndex As Integer Public ReadOnly Property nIndex As Integer Get @@ -236,8 +238,8 @@ Public Class MachiningIndex End Get End Property - Private m_sGUID As String - Public ReadOnly Property sGUID As String + Private m_sGUID As Guid + Public ReadOnly Property sGUID As Guid Get Return m_sGUID End Get @@ -250,12 +252,16 @@ Public Class MachiningIndex End Get End Property - Sub New(nIndex As Integer, sGUID As String, sName As String) + Sub New(nIndex As Integer, GUID As Guid, sName As String) m_nIndex = nIndex - m_sGUID = sGUID + m_sGUID = GUID m_sName = sName End Sub + Friend Shared Function Empty() As MachiningIndex + Return m_Empty + End Function + End Class Public Class MachiningCathegory diff --git a/Icarus/SliderManager/SliderManagerVM.vb b/Icarus/SliderManager/SliderManagerVM.vb index a768b02..8706eaf 100644 --- a/Icarus/SliderManager/SliderManagerVM.vb +++ b/Icarus/SliderManager/SliderManagerVM.vb @@ -314,6 +314,9 @@ Public Class SliderManagerVM End If Next End Select + ' mostro/nascondo slider orizzontale + m_LayerAdvancement_Visibility = If(m_nSelViewSlider = ViewSliderType.ONLY_SELECTED, Visibility.Visible, Visibility.Collapsed) + NotifyPropertyChanged(NameOf(LayerAdvancement_Visibility)) EgtDraw() End Set End Property @@ -341,9 +344,7 @@ Public Class SliderManagerVM Friend Sub SetSliderVisibility(bValue As Boolean) Dim Visibility As Visibility = If(bValue, Visibility.Visible, Visibility.Collapsed) m_LayerIndex_Visibility = Visibility - m_LayerAdvancement_Visibility = Visibility NotifyPropertyChanged(NameOf(LayerIndex_Visibility)) - NotifyPropertyChanged(NameOf(LayerAdvancement_Visibility)) End Sub Friend Sub RefreshSlider(nMin As Integer, nMax As Integer) diff --git a/Icarus/TopPanel/TopPanelVM.vb b/Icarus/TopPanel/TopPanelVM.vb index 7c5a2dc..cf5989f 100644 --- a/Icarus/TopPanel/TopPanelVM.vb +++ b/Icarus/TopPanel/TopPanelVM.vb @@ -172,7 +172,9 @@ Public Class TopPanelVM EgtDraw() ' imposto lavorazione e materiale del pezzo selezionato Map.refCurrMachiningPanelVM.ReadMachParamFromSelPart() - SetSelMachining(MachiningList.FirstOrDefault(Function(x) x.sGUID = Map.refCurrMachiningPanelVM.CurrMachining.sCurrGUID)) + Dim DbMachining As MachiningIndex = MachiningList.FirstOrDefault(Function(x) x.sGUID = Map.refCurrMachiningPanelVM.CurrMachining.sCurrGUID) + If IsNothing(DbMachining) Then DbMachining = MachiningIndex.Empty() + SetSelMachining(DbMachining) ' notifico posizione pezzo Map.refDispositionPanelVM.RefreshPos() End If @@ -222,7 +224,7 @@ Public Class TopPanelVM Set(value As MachiningIndex) ' verifico se vecchia modificata e chiedo se salvare? If Not IsNothing(value) Then - WriteMainPrivateProfileString(S_PRINTING3D, K_CURRMACHINING, value.sGUID) + WriteMainPrivateProfileString(S_PRINTING3D, K_CURRMACHINING, value.sGUID.ToString()) ' imposto selezionata come corrente If Not IsNothing(m_SelPart) AndAlso (IsNothing(m_SelMachining) OrElse value.sGUID <> m_SelMachining.sGUID) Then Map.refCurrMachiningPanelVM.SetCurrMachining(New CurrMachining(m_SelPart.nPartId, value.nIndex)) @@ -314,23 +316,30 @@ Public Class TopPanelVM Friend Sub InitMachiningsList() If IsNothing(m_SelMaterial) Then Return MachiningList.Clear() + ' aggiungo lavorazione vuota + MachiningList.Add(MachiningIndex.Empty()) + ' leggo ed aggiungo le altre Dim nIndex As Integer = 1 Dim sGUID As String = "" Dim sName As String = "" Dim sMaterials As String = "" While GetPrivateProfileString(nIndex, MAC_GUID, "", sGUID, Map.refMainWindowVM.MainWindowM.sMachiningsDir & "/Machinings.ini") > 0 + Dim Guid As Guid = Guid.Empty + Guid.TryParse(sGUID, Guid) GetPrivateProfileString(nIndex, MAC_NAME, "", sName, Map.refMainWindowVM.MainWindowM.sMachiningsDir & "/Machinings.ini") ' leggo materiali che usa GetPrivateProfileString(nIndex, MAC_MATERIALS, "", sMaterials, Map.refMainWindowVM.MainWindowM.sMachiningsDir & "/Machinings.ini") Dim MacMaterials() As String = sMaterials.Split(";"c) If MacMaterials.Contains(SelMaterial.sGUID) Then - MachiningList.Add(New MachiningIndex(nIndex, sGUID, sName)) + MachiningList.Add(New MachiningIndex(nIndex, Guid, sName)) End If nIndex += 1 End While Dim sCurrMachining As String = "" GetMainPrivateProfileString(S_PRINTING3D, K_CURRMACHINING, "", sCurrMachining) - SelMachining = MachiningList.FirstOrDefault(Function(x) x.sGUID = sCurrMachining) + Dim CurrMachining As Guid + Guid.TryParse(sCurrMachining, CurrMachining) + SelMachining = MachiningList.FirstOrDefault(Function(x) x.sGUID = CurrMachining) End Sub Friend Function GetSelMachining() As Machining