From 8302ff6392fd1c049a1cd880d0d5155c4dd37216 Mon Sep 17 00:00:00 2001 From: Nicola Pievani Date: Wed, 17 Jan 2018 16:25:28 +0000 Subject: [PATCH] EgtDOORCreator 1.9a1 : Sostituzione della lista EdgeType. --- DoorParameters/Part.vb | 158 ++++++++++++++++----------- DoorParameters/PartPageV.xaml | 6 +- OptionsWindow/OptionModule.vb | 24 ++--- OptionsWindow/OptionsV.xaml | 6 +- OptionsWindow/OptionsViewModel.vb | 174 ++++++++++++------------------ 5 files changed, 183 insertions(+), 185 deletions(-) diff --git a/DoorParameters/Part.vb b/DoorParameters/Part.vb index 725fd72..b76a402 100644 --- a/DoorParameters/Part.vb +++ b/DoorParameters/Part.vb @@ -327,24 +327,60 @@ Public Class Part #Region "TypeEdge" + Friend Shared m_LockEdgeTypeList As New ObservableCollection(Of EdgeType) + Friend Shared m_HingeEdgeTypeList As New ObservableCollection(Of EdgeType) + Friend Shared m_BottomEdgeTypeList As New ObservableCollection(Of EdgeType) Friend Shared m_TopEdgeTypeList As New ObservableCollection(Of EdgeType) - Friend Shared m_EdgeTypeList As New ObservableCollection(Of EdgeType) - Public Property EdgeTypeList As ObservableCollection(Of EdgeType) + 'Friend Shared m_EdgeTypeList As New ObservableCollection(Of EdgeType) + 'Public Property EdgeTypeList As ObservableCollection(Of EdgeType) + ' Get + ' ' restituisco il valore della lista che è stato creato all'avvio + ' If m_TypePart.Contains("DO_") Then + ' Return m_EdgeTypeList + ' Else ' se stiamo leggendo un frame carico la lista dei bevel dei frame + ' Return Assembly.m_FrameEdgeTypeList + ' End If + ' End Get + ' Set(value As ObservableCollection(Of EdgeType)) + ' m_EdgeTypeList = value + ' Map.refAssemblyPageVM.CurrAssembly.NotifyPropertyChanged("EdgeTypeList") + ' Map.refAssemblyPageVM.CurrAssembly.NotifyPropertyChanged("TopEdgeTypeList") + ' Map.refAssemblyManagerVM.CurrProject.SelAssemblyName.IsModified = True + ' End Set + 'End Property + + Public ReadOnly Property LockEdgeTypeList As ObservableCollection(Of EdgeType) Get ' restituisco il valore della lista che è stato creato all'avvio If m_TypePart.Contains("DO_") Then - Return m_EdgeTypeList + Return m_LockEdgeTypeList + Else ' se stiamo leggendo un frame carico la lista dei bevel dei frame + Return Assembly.m_FrameEdgeTypeList + End If + End Get + End Property + + Public ReadOnly Property HingeEdgeTypeList As ObservableCollection(Of EdgeType) + Get + ' restituisco il valore della lista che è stato creato all'avvio + If m_TypePart.Contains("DO_") Then + Return m_HingeEdgeTypeList + Else ' se stiamo leggendo un frame carico la lista dei bevel dei frame + Return Assembly.m_FrameEdgeTypeList + End If + End Get + End Property + + Public ReadOnly Property BottomEdgeTypeList As ObservableCollection(Of EdgeType) + Get + ' restituisco il valore della lista che è stato creato all'avvio + If m_TypePart.Contains("DO_") Then + Return m_BottomEdgeTypeList Else ' se stiamo leggendo un frame carico la lista dei bevel dei frame Return Assembly.m_FrameEdgeTypeList End If End Get - Set(value As ObservableCollection(Of EdgeType)) - m_EdgeTypeList = value - Map.refAssemblyPageVM.CurrAssembly.NotifyPropertyChanged("EdgeTypeList") - Map.refAssemblyPageVM.CurrAssembly.NotifyPropertyChanged("TopEdgeTypeList") - Map.refAssemblyManagerVM.CurrProject.SelAssemblyName.IsModified = True - End Set End Property Public ReadOnly Property TopEdgeTypeList As ObservableCollection(Of EdgeType) @@ -999,7 +1035,7 @@ Public Class Part ReadDoor = Nothing Exit While End If - Case S_SECURE + Case S_SECURE ' creo l'oggetto OptionPage nella Mappa LineIndex = ReadDoor.GetSecure(LineIndex) Case S_PROFILES LineIndex = ReadDoor.GetProfiles(ReadDoor.NextIndex(LineIndex), ReadDoor.TypePart) @@ -1030,7 +1066,7 @@ Public Class Part ' Aggiorno If Not IsNothing(ReadDoor) Then Map.refPartPageVM.CurrPart = ReadDoor - Map.refOptionsVM.RefreshEdgeTypeList() + 'Map.refOptionsVM.RefreshEdgeTypeList() ' Sarebbe buona norma inserire qui la stringa con i messaggi di errore e avvertimento (dopo aver caricato i bevel corretti) If ReadDoor.bModifyBevel Then MessageBox.Show("Door dispositiopn has been modify.", EgtMsg(50115), MessageBoxButton.OK, MessageBoxImage.Asterisk, MessageBoxResult.No) @@ -1346,10 +1382,10 @@ Public Class Part Dim sBevelTop As String = String.Empty Dim sBevelBottom As String = String.Empty ' se almeno un profilo è di tipo bevel - If m_LockEdgeType.Name = "BV" OrElse m_LockEdgeType.Name = "BU" OrElse m_LockEdgeType.Name = "BD" Then sBevelLock = m_LockEdgeType.BevelDDF - If m_HingeEdgeType.Name = "BV" OrElse m_HingeEdgeType.Name = "BU" OrElse m_HingeEdgeType.Name = "BD" Then sBevelHinge = m_HingeEdgeType.BevelDDF - If m_TopType.Name = "BV" OrElse m_TopType.Name = "BU" OrElse m_TopType.Name = "BD" Then sBevelTop = m_TopType.BevelDDF - If m_BottomType.Name = "BV" OrElse m_BottomType.Name = "BU" OrElse m_BottomType.Name = "BD" Then sBevelBottom = m_BottomType.BevelDDF + If m_LockEdgeType.Name = "BV" Then sBevelLock = m_LockEdgeType.BevelDDF + If m_HingeEdgeType.Name = "BV" Then sBevelHinge = m_HingeEdgeType.BevelDDF + If m_TopType.Name = "BV" Then sBevelTop = m_TopType.BevelDDF + If m_BottomType.Name = "BV" Then sBevelBottom = m_BottomType.BevelDDF ' controllo che i bevel siano tutti uguali nello stesso Part Bevel = ControlBevel(sBevelLock, sBevelHinge, sBevelTop, sBevelBottom) ' nel caso di nessuna disposizione fissata da Config.ini @@ -1358,24 +1394,14 @@ Public Class Part SetDispositionItem(m_DispositionList(1)) ' modifico il bevel da BU a BD Modifybevel(Bevel, "BU") - ' la visibilità serve ad aggiornre la lista dei bevel nel caso siamo in presenza della vecchia configurazione - OptionModule.m_bBevelDown = Visibility.Visible - OptionModule.m_bBevelUp = Visibility.Collapsed - EdgeTypeCpntrol(m_LockEdgeType) - EdgeTypeCpntrol(m_HingeEdgeType) - EdgeTypeCpntrol(m_TopType) - EdgeTypeCpntrol(m_BottomType) + 'OptionModule.m_bBevelDown = Visibility.Visible + 'OptionModule.m_bBevelUp = Visibility.Collapsed Case "BU" SetDispositionItem(m_DispositionList(0)) Modifybevel(Bevel, "BD") ' la visibilità serve ad aggiornre la lista dei bevel nel caso siamo in presenza della vecchia configurazione - OptionModule.m_bBevelUp = Visibility.Visible - OptionModule.m_bBevelDown = Visibility.Collapsed - ' nel caso che sia stata aperta una vecchia configurazione (BU e BD presenti nell'elenco dei bevel) - EdgeTypeCpntrol(m_LockEdgeType) - EdgeTypeCpntrol(m_HingeEdgeType) - EdgeTypeCpntrol(m_TopType) - EdgeTypeCpntrol(m_BottomType) + 'OptionModule.m_bBevelUp = Visibility.Visible + 'OptionModule.m_bBevelDown = Visibility.Collapsed Case Else ' BySwing If Not String.IsNullOrEmpty(Bevel) Then Try @@ -1384,7 +1410,10 @@ Public Class Part If Bevel = "BU" Then OptionModule.m_bBevelUp = Visibility.Visible If Bevel = "BD" Then OptionModule.m_bBevelDown = Visibility.Visible ' questo caso il secure segue le solite regole di calcolo - Catch ex As Exception + Catch ex As Exception ' se il bevel passato è BV devo calcolare il corretto bevel + SetDispositionItem(m_DispositionList.First(Function(x) x.Name = "BySwing")) + bModifyBevel = True + Part.FirstReadingEdge = True End Try Else ' Bevel SQ If m_Swing.Contains("HR") Then @@ -1420,11 +1449,13 @@ Public Class Part ' Leggo i dati dei profili Private Function GetProfiles(Index As Integer, TypePart As String) As Integer + ' ricalcolo la lista da mostrare a video + Map.refOptionsVM.RefreshEdgeTypeList() Dim bError As Boolean = False ' Lock If Index > FileContent.Count() - 1 Then Return -1 Dim sLine As String = RemoveComment(FileContent(Index)) - m_LockEdgeType = m_EdgeTypeList(0) + m_LockEdgeType = m_LockEdgeTypeList(0) Dim LockEdgeType As String = GetValueWithKey(sLine, K_LOCKEDGE) If String.IsNullOrWhiteSpace(LockEdgeType) Then ' se non c'è la parola chiave allora esco con errore @@ -1433,13 +1464,14 @@ Public Class Part ' se valore nella lista 'If EdgeTypeControl(LockEdgeType) Then Try - m_LockEdgeType = EdgeTypeList.First(Function(x) x.Name = LockEdgeType) + ' cerco il valre nella lista + m_LockEdgeType = LockEdgeTypeList.First(Function(x) x.Name = LockEdgeType) ' segno il bevel che è stato letto nel ddf per il calcolo del secure m_LockEdgeType.BevelDDF = LockEdgeType - Catch ex As Exception + Catch ex As Exception ' se il valore cercato non è nella lista If Trim(LockEdgeType) = "BU" Or Trim(LockEdgeType) = "BD" Then Try - m_LockEdgeType = EdgeTypeList.First(Function(x) x.Name = "BV") + m_LockEdgeType = LockEdgeTypeList.First(Function(x) x.Name = "BV") ' segno il bevel che è stato letto nel ddf per il calcolo del secure m_LockEdgeType.BevelDDF = LockEdgeType Catch ex2 As Exception @@ -1472,7 +1504,7 @@ Public Class Part ' Hinge If Index > FileContent.Count() - 1 Then Return -1 sLine = RemoveComment(FileContent(Index)) - m_HingeEdgeType = m_EdgeTypeList(0) + m_HingeEdgeType = m_HingeEdgeTypeList(0) Dim HingeEdgeType As String = GetValueWithKey(sLine, K_HINGEEDGE) If String.IsNullOrWhiteSpace(HingeEdgeType) Then ' se non c'è la parola chiave allora esco con errore @@ -1481,12 +1513,14 @@ Public Class Part ' se valore nella lista 'If EdgeTypeControl(HingeEdgeType) Then Try - m_HingeEdgeType = EdgeTypeList.First(Function(x) x.Name = HingeEdgeType) + m_HingeEdgeType = HingeEdgeTypeList.First(Function(x) x.Name = HingeEdgeType) + ' segno il bevel che è stato letto nel ddf per il calcolo del secure m_HingeEdgeType.BevelDDF = HingeEdgeType - Catch ex As Exception + Catch ex As Exception ' se il valore cercato non è nella lista If Trim(HingeEdgeType) = "BU" Or Trim(HingeEdgeType) = "BD" Then Try - m_HingeEdgeType = EdgeTypeList.First(Function(x) x.Name = "BV") + m_HingeEdgeType = HingeEdgeTypeList.First(Function(x) x.Name = "BV") + ' segno il bevel che è stato letto nel ddf per il calcolo del secure m_HingeEdgeType.BevelDDF = HingeEdgeType Catch ex2 As Exception End Try @@ -1518,7 +1552,7 @@ Public Class Part ' Top If Index > FileContent.Count() - 1 Then Return -1 sLine = RemoveComment(FileContent(Index)) - m_TopType = m_EdgeTypeList(0) + m_TopType = m_TopEdgeTypeList(0) Dim TopType As String = GetValueWithKey(sLine, K_TOP) If String.IsNullOrWhiteSpace(TopType) Then If Not SearchKey(sLine, K_TOP) Then Return -1 @@ -1527,11 +1561,13 @@ Public Class Part 'If EdgeTypeControl(TopType) Then Try m_TopType = TopEdgeTypeList.First(Function(x) x.Name = TopType) + ' segno il bevel che è stato letto nel ddf per il calcolo del secure m_TopType.BevelDDF = TopType - Catch ex As Exception + Catch ex As Exception ' se il valore cercato non è nella lista If Trim(TopType) = "BU" Or Trim(TopType) = "BD" Then Try m_TopType = TopEdgeTypeList.First(Function(x) x.Name = "BV") + ' segno il bevel che è stato letto nel ddf per il calcolo del secure m_TopType.BevelDDF = TopType Catch ex2 As Exception End Try @@ -1563,7 +1599,7 @@ Public Class Part ' Bottom If Index > FileContent.Count() - 1 Then Return -1 sLine = RemoveComment(FileContent(Index)) - m_BottomType = m_EdgeTypeList(0) + m_BottomType = m_BottomEdgeTypeList(0) Dim BottomType As String = GetValueWithKey(sLine, K_BOTTOM) If String.IsNullOrWhiteSpace(BottomType) Then If Not SearchKey(sLine, K_BOTTOM) Then Return -1 @@ -1571,13 +1607,14 @@ Public Class Part ' se valore nella lista 'If EdgeTypeControl(BottomType) Then Try - m_BottomType = TopEdgeTypeList.First(Function(x) x.Name = BottomType) + m_BottomType = BottomEdgeTypeList.First(Function(x) x.Name = BottomType) + ' segno il bevel che è stato letto nel ddf per il calcolo del secure m_BottomType.BevelDDF = BottomType - Catch ex As Exception + Catch ex As Exception ' se il valore cercato non è nella lista If Trim(BottomType) = "BU" Or Trim(BottomType) = "BD" Then Try - m_BottomType = TopEdgeTypeList.First(Function(x) x.Name = "BV") - ' in questo punto avviene la conversione del profilo Lock, non so il perchè + m_BottomType = BottomEdgeTypeList.First(Function(x) x.Name = "BV") + ' segno il bevel che è stato letto nel ddf per il calcolo del secure m_BottomType.BevelDDF = BottomType Catch ex2 As Exception End Try @@ -1937,39 +1974,38 @@ Public Class Part ' restituisce il messaggio di modifica del bevel Private Sub Modifybevel(Bevel As String, OppositeBevel As String) + If Bevel = "BV" Then : bModifyBevel = True : Part.FirstReadingEdge = True : End If If Bevel = OppositeBevel Then - 'MessageBox.Show("Door dispositiopn has been modify.", EgtMsg(50115), MessageBoxButton.OK, MessageBoxImage.Asterisk, MessageBoxResult.No) + ' "Door dispositiopn has been modify." bModifyBevel = True Part.FirstReadingEdge = True End If ' Modifico il secure (diverso da zero) If String.IsNullOrEmpty(Bevel) AndAlso m_Secure <> "0" AndAlso m_Secure <> DdfFile.SetSecure(m_Swing, m_DispositionItem.Name, m_Secure) Then - 'MessageBox.Show("Door dispositiopn has been modify.", EgtMsg(50115), MessageBoxButton.OK, MessageBoxImage.Asterisk, MessageBoxResult.No) bModifyBevel = True Part.FirstReadingEdge = True ' per mantere attivo l'asterisco di modifica End If ' caso speciale If String.IsNullOrEmpty(Bevel) AndAlso m_Secure = "0" AndAlso DdfFile.SetSecure(m_Swing, m_DispositionItem.Name, m_Secure) = "UP" Then - 'MessageBox.Show("Door dispositiopn has been modify.", EgtMsg(50115), MessageBoxButton.OK, MessageBoxImage.Asterisk, MessageBoxResult.No) bModifyBevel = True Part.FirstReadingEdge = True ' per mantere attivo l'asterisco di modifica End If End Sub ' per mantenere la configuarbilità con la precedente versione devo riaggiornare le liste dei - Private Sub EdgeTypeCpntrol(ByRef CurrEdgeType As EdgeType) - If CurrEdgeType.Name = "BU" And OptionModule.m_sDisposition = "BD" Then - Try - CurrEdgeType = EdgeTypeList.First(Function(x) x.Name = "BD") - Catch ex As Exception - End Try - ElseIf CurrEdgeType.Name = "BD" And OptionModule.m_sDisposition = "BU" Then - Try - CurrEdgeType = EdgeTypeList.First(Function(x) x.Name = "BU") - Catch ex As Exception - End Try - End If - End Sub + 'Private Sub EdgeTypeCpntrol(ByRef CurrEdgeType As EdgeType) + ' If CurrEdgeType.Name = "BU" And OptionModule.m_sDisposition = "BD" Then + ' Try + ' CurrEdgeType = EdgeTypeList.First(Function(x) x.Name = "BD") + ' Catch ex As Exception + ' End Try + ' ElseIf CurrEdgeType.Name = "BD" And OptionModule.m_sDisposition = "BU" Then + ' Try + ' CurrEdgeType = EdgeTypeList.First(Function(x) x.Name = "BU") + ' Catch ex As Exception + ' End Try + ' End If + 'End Sub #End Region ' Lettura ddf diff --git a/DoorParameters/PartPageV.xaml b/DoorParameters/PartPageV.xaml index 1dd4289..9d25f01 100644 --- a/DoorParameters/PartPageV.xaml +++ b/DoorParameters/PartPageV.xaml @@ -126,7 +126,7 @@ Style="{StaticResource DoorParamsTxBl}" Margin="20,2,0,2"/> @@ -141,7 +141,7 @@ diff --git a/OptionsWindow/OptionsViewModel.vb b/OptionsWindow/OptionsViewModel.vb index fd3fb5a..95888d2 100644 --- a/OptionsWindow/OptionsViewModel.vb +++ b/OptionsWindow/OptionsViewModel.vb @@ -222,9 +222,21 @@ Public Class OptionsVM End Set End Property - Public Shared ReadOnly Property EdgeTypeList As ObservableCollection(Of EdgeType) + 'Public Shared ReadOnly Property EdgeTypeList As ObservableCollection(Of EdgeType) + ' Get + ' Return Part.m_EdgeTypeList + ' End Get + 'End Property + + Public Shared ReadOnly Property LockEdgeTypeList As ObservableCollection(Of EdgeType) Get - Return Part.m_EdgeTypeList + Return Part.m_LockEdgeTypeList + End Get + End Property + + Public Shared ReadOnly Property HingeEdgeTypeList As ObservableCollection(Of EdgeType) + Get + Return Part.m_HingeEdgeTypeList End Get End Property @@ -234,6 +246,12 @@ Public Class OptionsVM End Get End Property + Public Shared ReadOnly Property BottomEdgeTypeList As ObservableCollection(Of EdgeType) + Get + Return Part.m_BottomEdgeTypeList + End Get + End Property + Public Shared ReadOnly Property FrameEdgeTypeList As ObservableCollection(Of EdgeType) Get Return Assembly.m_FrameEdgeTypeList @@ -244,7 +262,7 @@ Public Class OptionsVM Public Property LockEdgeType As EdgeType Get If m_LockEdgeType.IsActive = Visibility.Collapsed Then - m_LockEdgeType = EdgeTypeList(0) + m_LockEdgeType = LockEdgeTypeList(0) End If Return m_LockEdgeType End Get @@ -257,7 +275,7 @@ Public Class OptionsVM Public Property HingeEdgeType As EdgeType Get If m_HingeEdgeType.IsActive = Visibility.Collapsed Then - m_HingeEdgeType = EdgeTypeList(0) + m_HingeEdgeType = HingeEdgeTypeList(0) End If Return m_HingeEdgeType End Get @@ -289,12 +307,12 @@ Public Class OptionsVM Public Property BottomType As EdgeType Get If m_BottomType.IsActive = Visibility.Collapsed Then - m_BottomType = TopEdgeTypeList(0) + m_BottomType = BottomEdgeTypeList(0) Else Try - m_BottomType = TopEdgeTypeList.First(Function(x) x.Name = m_BottomType.Name) + m_BottomType = BottomEdgeTypeList.First(Function(x) x.Name = m_BottomType.Name) Catch ex As Exception - m_BottomType = TopEdgeTypeList(0) + m_BottomType = BottomEdgeTypeList(0) End Try End If Return m_BottomType @@ -581,7 +599,7 @@ Public Class OptionsVM Public Property LockEdgeTypeAssembly As EdgeType Get If m_LockEdgeTypeAssembly.IsActive = Visibility.Collapsed Then - OptionModule.m_LockEdgeTypeAssembly = EdgeTypeList(0) + OptionModule.m_LockEdgeTypeAssembly = FrameEdgeTypeList(0) End If Return OptionModule.m_LockEdgeTypeAssembly End Get @@ -594,7 +612,7 @@ Public Class OptionsVM Public Property HingeEdgeTypeAssembly As EdgeType Get If m_HingeEdgeTypeAssembly.IsActive = Visibility.Collapsed Then - OptionModule.m_HingeEdgeTypeAssembly = EdgeTypeList(0) + OptionModule.m_HingeEdgeTypeAssembly = FrameEdgeTypeList(0) End If Return OptionModule.m_HingeEdgeTypeAssembly End Get @@ -607,7 +625,7 @@ Public Class OptionsVM Public Property TopTypeAssembly As EdgeType Get If m_TopTypeAssembly.IsActive = Visibility.Collapsed Then - OptionModule.m_TopTypeAssembly = EdgeTypeList(0) + OptionModule.m_TopTypeAssembly = FrameEdgeTypeList(0) End If Return OptionModule.m_TopTypeAssembly End Get @@ -620,7 +638,7 @@ Public Class OptionsVM Public Property BottomTypeAssembly As EdgeType Get If m_BottomTypeAssembly.IsActive = Visibility.Collapsed Then - OptionModule.m_BottomTypeAssembly = EdgeTypeList(0) + OptionModule.m_BottomTypeAssembly = FrameEdgeTypeList(0) End If Return OptionModule.m_BottomTypeAssembly End Get @@ -1117,56 +1135,8 @@ Public Class OptionsVM ' aggiorno la visibilità dei bevel Up e Down Public Sub RefreshEdgeTypeList() - '--------------------------------------------------------------------------------------------------------------------------------------------------------------- - ' mantenendo la compatibilità con la precedente confinìgurazione - If OptionModule.m_sDisposition <> "BySwing" Then - ' applico un ciclo for perchè non conosco a priori la posizione all'interno della lista dei bevel BU e BD - For IndexBevelEdgeTypeList As Integer = 0 To Part.m_EdgeTypeList.Count - 1 - If Part.m_EdgeTypeList(IndexBevelEdgeTypeList).Name = "BU" Then Part.m_EdgeTypeList(IndexBevelEdgeTypeList).IsActive = m_bBevelUp - If Part.m_EdgeTypeList(IndexBevelEdgeTypeList).Name = "BD" Then Part.m_EdgeTypeList(IndexBevelEdgeTypeList).IsActive = m_bBevelDown - Next - For IndexTopBevelEdgeTypeList As Integer = 0 To Part.m_TopEdgeTypeList.Count - 1 - If Part.m_TopEdgeTypeList(IndexTopBevelEdgeTypeList).Name = "BU" Then Part.m_TopEdgeTypeList(IndexTopBevelEdgeTypeList).IsActive = m_bBevelUp - If Part.m_TopEdgeTypeList(IndexTopBevelEdgeTypeList).Name = "BD" Then Part.m_TopEdgeTypeList(IndexTopBevelEdgeTypeList).IsActive = m_bBevelDown - Next - Else ' sono nella configurazione BySwing in cui devo sostituire i Bevel BU e BD con BV - ' devo eliminare temporaneamente dalla lista i Bevel BU e i Bevel BD - Dim IndexBV As Integer = -1 - ' nascondo tutti i bevel della lista - For IndexBevelEdgeTypeList As Integer = 0 To Part.m_EdgeTypeList.Count - 1 - If Part.m_EdgeTypeList(IndexBevelEdgeTypeList).Name = "BU" Then Part.m_EdgeTypeList(IndexBevelEdgeTypeList).IsActive = Visibility.Collapsed - If Part.m_EdgeTypeList(IndexBevelEdgeTypeList).Name = "BD" Then - Part.m_EdgeTypeList(IndexBevelEdgeTypeList).IsActive = Visibility.Collapsed - IndexBV = IndexBevelEdgeTypeList - End If - Next - Dim BVEdge As New EdgeType("BV", Visibility.Visible) - Dim ThereIsBV As Integer = -1 - ' cerco l'indice del bevel BV, se non lo trovo carico il valore dell'inidce a -1 - For Index As Integer = 0 To Part.m_EdgeTypeList.Count - 1 - If Part.m_EdgeTypeList(Index).Name = "BV" Then - ThereIsBV = Index - Exit For - End If - Next - ' inserisco il bevel BV se sono nella vecchia configurazione - If IndexBV <> -1 AndAlso IndexBV < Part.m_EdgeTypeList.Count - 1 AndAlso ThereIsBV = -1 Then - Part.m_EdgeTypeList.Insert(IndexBV, BVEdge) - Part.m_TopEdgeTypeList.Insert(IndexBV, BVEdge) - End If - If ThereIsBV <> -1 Then IndexBV = ThereIsBV - ' se sono nella vecchia configurazione sostutuisci BU/BD con BV - If IsNothing(Map.refPartPageVM.CurrPart) Then - If Map.refPartPageVM.CurrPart.LockEdgeType.Name = "BU" OrElse Map.refPartPageVM.CurrPart.LockEdgeType.Name = "BD" Then Map.refPartPageVM.CurrPart.SetLockEdgeType(Part.m_EdgeTypeList(IndexBV)) - If Map.refPartPageVM.CurrPart.HingeEdgeType.Name = "BU" OrElse Map.refPartPageVM.CurrPart.HingeEdgeType.Name = "BD" Then Map.refPartPageVM.CurrPart.SetHingeEdgeType(Part.m_EdgeTypeList(IndexBV)) - If Map.refPartPageVM.CurrPart.TopType.Name = "BU" OrElse Map.refPartPageVM.CurrPart.TopType.Name = "BD" Then Map.refPartPageVM.CurrPart.SetTopType(Part.m_EdgeTypeList(IndexBV)) - If Map.refPartPageVM.CurrPart.BottomType.Name = "BU" OrElse Map.refPartPageVM.CurrPart.BottomType.Name = "BD" Then Map.refPartPageVM.CurrPart.SetBottomType(Part.m_EdgeTypeList(IndexBV)) - Map.refPartPageVM.CurrPart.NotifyPropertyChanged("EdegTypeList") - End If - End If - '--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ' aggiorno la lista + ' aggiorno la lista delle disposizioni For IndexBeveDisp As Integer = 0 To Part.m_DispositionList.Count - 1 If Part.m_DispositionList(IndexBeveDisp).Name = "BU" Then Part.m_DispositionList(IndexBeveDisp).IsActive = OptionModule.m_bBevelUp @@ -1180,60 +1150,21 @@ Public Class OptionsVM If Not IsNothing(Map.refPartPageVM.CurrPart) Then If Map.refPartPageVM.CurrPart.DispositionItem.IsActive = Visibility.Collapsed Then Map.refPartPageVM.CurrPart.DispositionItem = Part.m_DispositionList(2) End If - If Not IsNothing(Map.refAssemblyPageVM.CurrAssembly) Then - Map.refAssemblyPageVM.CurrAssembly.NotifyPropertyChanged("EdgeTypeList") - End If End Sub ' creo le liste dei bevel e delle siposizioni Public Shared Sub CreateEdgeTypeList() '---------------------------------------------------------------------------------------------------------- ' carico la lista dei bevel da mostrare sugli spigoli Lock, Hinge - For Index = 0 To m_StaticEdgeTypeList.Count - 1 - If m_StaticEdgeTypeList(Index) = "BU" AndAlso OptionModule.m_sDisposition = m_StaticEdgeTypeList(Index) Then - m_bBevelUp = Visibility.Visible - m_bBevelDown = Visibility.Collapsed - ElseIf m_StaticEdgeTypeList(Index) = "BD" AndAlso OptionModule.m_sDisposition = m_StaticEdgeTypeList(Index) Then - m_bBevelUp = Visibility.Collapsed - m_bBevelDown = Visibility.Visible - End If - Part.m_EdgeTypeList.Add(New EdgeType(m_StaticEdgeTypeList(Index), Visibility.Visible)) - Next + LockHingeEdge(Part.m_LockEdgeTypeList) + LockHingeEdge(Part.m_HingeEdgeTypeList) '---------------------------------------------------------------------------------------------------------- - ' caricare gli spigoli top e bottom facendo attenzione al tipo di configurazione! - Part.m_TopEdgeTypeList.Add(New EdgeType("SQ", Visibility.Visible)) - Try - ' controllo che nella configurazione sia presente il Bevel BV - Part.m_TopEdgeTypeList.Add(Part.m_EdgeTypeList.First(Function(x) x.Name = "BV")) - Catch ex As Exception - Try - Part.m_TopEdgeTypeList.Add(Part.m_EdgeTypeList.First(Function(x) x.Name = "BU")) - Catch ex2 As Exception - End Try - Try - Part.m_TopEdgeTypeList.Add(Part.m_EdgeTypeList.First(Function(x) x.Name = "BD")) - Catch ex2 As Exception - End Try - End Try - '---------------------------------------------------------------------------------------------------------- - ' dopo la creazione delle liste modifico la visibilità dei bevel - For IndexBevelEdgeTypeList As Integer = 0 To Part.m_EdgeTypeList.Count - 1 - If Part.m_EdgeTypeList(IndexBevelEdgeTypeList).Name = "BU" Then Part.m_EdgeTypeList(IndexBevelEdgeTypeList).IsActive = m_bBevelUp - If Part.m_EdgeTypeList(IndexBevelEdgeTypeList).Name = "BD" Then Part.m_EdgeTypeList(IndexBevelEdgeTypeList).IsActive = m_bBevelDown - Next - For IndexTopBevelEdgeTypeList As Integer = 0 To Part.m_TopEdgeTypeList.Count - 1 - If Part.m_TopEdgeTypeList(IndexTopBevelEdgeTypeList).Name = "BU" Then Part.m_TopEdgeTypeList(IndexTopBevelEdgeTypeList).IsActive = m_bBevelUp - If Part.m_TopEdgeTypeList(IndexTopBevelEdgeTypeList).Name = "BD" Then Part.m_TopEdgeTypeList(IndexTopBevelEdgeTypeList).IsActive = m_bBevelDown - Next + ' caricare gli spigoli top e bottom + TopBottomEdge(Part.m_TopEdgeTypeList) + TopBottomEdge(Part.m_BottomEdgeTypeList) '---------------------------------------------------------------------------------------------------------- ' caricare gli spigoli dei frame - Assembly.m_FrameEdgeTypeList.Add(New EdgeType("SQ", Visibility.Visible)) - Try - ' controllo che nella configurazione sia presente il Bevel BV - Assembly.m_FrameEdgeTypeList.Add(Part.m_EdgeTypeList.First(Function(x) x.Name = "BV")) - Catch ex As Exception - Assembly.m_FrameEdgeTypeList.Add(New EdgeType("BV", Visibility.Visible)) - End Try + TopBottomEdge(Assembly.m_FrameEdgeTypeList) '---------------------------------------------------------------------------------------------------------- ' carico la lista che contiene la disposizione in macchina Part.m_DispositionList.Add(New EdgeType("BU", OptionModule.m_bBevelUp)) @@ -1247,6 +1178,37 @@ Public Class OptionsVM End If End Sub + ' carica la lista con tutte le lavorazioni legate agli spigoli Lock e Hinge + Public Shared Sub LockHingeEdge(ByVal EdgeList As ObservableCollection(Of EdgeType)) + For Index = 0 To m_StaticEdgeTypeList.Count - 1 + If m_StaticEdgeTypeList(Index) = "BU" OrElse + m_StaticEdgeTypeList(Index) = "BD" OrElse + m_StaticEdgeTypeList(Index) = "BV" OrElse + m_StaticEdgeTypeList(Index) = "SQ" Then + Else + EdgeList.Add(New EdgeType(m_StaticEdgeTypeList(Index), Visibility.Visible)) + End If + Next + EdgeList.Insert(0, New EdgeType("SQ", Visibility.Visible)) + EdgeList.Insert(0, New EdgeType("BV", Visibility.Visible)) + End Sub + + ' carica la lista con tutte le lavorazioni legate agli spigoli Top e Bottom e Frame + Public Shared Sub TopBottomEdge(ByVal EdgeList As ObservableCollection(Of EdgeType)) + Try + ' controllo che nella configurazione sia presente il Bevel BV + EdgeList.Add(EdgeList.First(Function(x) x.Name = "SQ")) + Catch ex As Exception + EdgeList.Add(New EdgeType("SQ", Visibility.Visible)) + End Try + Try + ' controllo che nella configurazione sia presente il Bevel BV + EdgeList.Add(EdgeList.First(Function(x) x.Name = "BV")) + Catch ex As Exception + EdgeList.Add(New EdgeType("BV", Visibility.Visible)) + End Try + End Sub + Sub New() Map.SetRefOptionsVM(Me) End Sub @@ -1375,7 +1337,7 @@ Public Class EdgeType End Set End Property - Private m_BevelDDF As String = String.Empty + Private m_BevelDDF As String Public Property BevelDDF As String Get Return m_BevelDDF