Imports System.Collections.ObjectModel Imports EgtWPFLib5 Public Class DimensioningPanelVM Inherits VMBase Public ReadOnly Property DimensionMsg As String Get Return "Dimension" End Get End Property ' lista degli hardware presenti nella porta corrente Private m_HardwareDimensionList As New ObservableCollection(Of HardwareDimension) Public Property HardwareDimensionList As ObservableCollection(Of HardwareDimension) Get Return m_HardwareDimensionList End Get Set(value As ObservableCollection(Of HardwareDimension)) m_HardwareDimensionList = value End Set End Property Private m_DimensioningPanel_Visibility As Visibility Public ReadOnly Property DimensioningPanel_Visibility As Visibility Get Return m_DimensioningPanel_Visibility End Get End Property Friend Sub SetDimensioningPanel_Visibility(IsVisible As Boolean) If IsVisible Then m_DimensioningPanel_Visibility = Visibility.Visible Else m_DimensioningPanel_Visibility = Visibility.Collapsed End If NotifyPropertyChanged("DimensioningPanel_Visibility") End Sub Public Function LoadHardwareDimList() As Boolean ' Se lista vuota If m_HardwareDimensionList.Count = 0 Then ' carico la lista Dim LocalHardware As New HardwareDimension LocalHardware.NameHardware = "Door" LocalHardware.NameLayer = "DIM_DOOR" LocalHardware.SetSelectedLayer(GetMainPrivateProfileInt("Dimensions", LocalHardware.NameHardware, 0) <> 0) HardwareDimensionList.Add(LocalHardware) For Each CompoType In Map.refCompoPanelHardwareVM.CompoTypeList Dim CurrNameLayer As String = String.Empty GetPrivateProfileLayerName(ConstCompo.S_LAYER, ConstCompo.K_LAYER_NAME, CurrNameLayer, CompoType.Path & "\" & CONFIGINI_FILE_NAME) If Not String.IsNullOrWhiteSpace(CurrNameLayer) Then LocalHardware = New HardwareDimension LocalHardware.NameHardware = CompoType.Name LocalHardware.NameLayer = CurrNameLayer LocalHardware.SetSelectedLayer(GetMainPrivateProfileInt("Dimensions", LocalHardware.NameHardware, 0) <> 0) HardwareDimensionList.Add(LocalHardware) End If Next End If ' Abilito solo i tipi di hardware presenti nella porta corrente Dim CurrDoor As Part = Map.refPartPageVM.CurrPart If CurrDoor.CompoList.Count < 1 Then Return False ' disattivo tutti gli hardware nella lista For Each HardwareDimension In m_HardwareDimensionList If HardwareDimension.NameLayer <> "DIM_DOOR" Then HardwareDimension.IsActive = False End If Next ' Ciclo sugli hardware presenti nella porta corrente For DoorCompoIndex = 0 To CurrDoor.CompoList.Count - 1 ' verifico se il tipo di hardware è diverso dal precedente If DoorCompoIndex = 0 OrElse (Not DoorCompoIndex = 0 AndAlso CurrDoor.CompoList(DoorCompoIndex).CompoType.Name <> CurrDoor.CompoList(DoorCompoIndex - 1).CompoType.Name) Then ' lo cerco nella lista delle dimensioni dell'hardware For Each HardwareDimension In m_HardwareDimensionList If CurrDoor.CompoList(DoorCompoIndex).CompoType.Name = HardwareDimension.NameHardware Then HardwareDimension.IsActive = True Exit For End If Next End If Next Return True End Function Sub New() Map.SetRefDimensioningPanelVM(Me) End Sub End Class