Imports System.ComponentModel Imports System.Collections.ObjectModel Imports EgtUILib Imports System.IO Public Class CompoPanelVM Implements INotifyPropertyChanged Public ReadOnly Property GoToAssembly As String Get Return "GoToAssembly" End Get End Property Private Shared m_CompoTypeList As New ObservableCollection(Of CompoType) Public Shared ReadOnly Property CompoTypeList As ObservableCollection(Of CompoType) Get Return m_CompoTypeList End Get End Property Private m_IsVisible As Visibility Public Property IsVisible As Visibility Get Return m_IsVisible End Get Set(value As Visibility) m_IsVisible = value NotifyPropertyChanged("IsVisible") End Set End Property Private m_GoBackVisibility As Visibility = Visibility.Visible Public Property GoBackVisibility As Visibility Get Return m_GoBackVisibility End Get Set(value As Visibility) m_GoBackVisibility = value NotifyPropertyChanged("GoBackVisibility") End Set End Property ' Definizione comando Private m_CmdCompoBtn As ICommand Private m_CmdGoToAssemblyBtn As ICommand ' definizione comando Private m_EnterRefreshCmd As ICommand Sub New() Map.SetRefCompoPanelVM(Me) Dim IndexCompoOrder = 0 Dim CompoPanelList As List(Of String) = OptionModule.m_CompoPaneOrder ' Lettura file ini per generare bottoni Dim Index As Integer = 1 Dim CompoName As String = String.Empty Dim CompoNameDDF As String = String.Empty Dim Side As String = String.Empty ' Carico un vettore con il nome delle Path delle componenti If Not Directory.Exists(IniFile.m_CompoDir) Then EgtOutLog("CompoDir not found : " & IniFile.m_CompoDir) Return End If Dim CompoArray() As String = Directory.GetDirectories(IniFile.m_CompoDir) ' carico i valori dei bottoni con un preciso ordine For IndexCompoOrder = 0 To DdfFile.CompoListOrder.Count - 1 For Index = 0 To CompoArray.Count - 1 ' apro ogni directory e cerco un file di testo di nome Config.ini Dim CurrCompoPath As String = CompoArray(Index) & "\" & ConstCompo.CONFIGINI_FILE_NAME If File.Exists(CurrCompoPath) Then GetPrivateProfileCompoName(ConstCompo.S_COMPO, ConstCompo.K_NAME, CompoNameDDF, CompoName, CurrCompoPath) GetPrivateProfileJambSide("PositionSide", "Side", Side, CurrCompoPath) If CompoPanelList(IndexCompoOrder) = CompoNameDDF Then m_CompoTypeList.Add(New CompoType(CompoName, CompoNameDDF, CompoArray(Index), Side)) Exit For End If End If Next Next End Sub #Region "COMMANDS" #Region "CompoBtnCommand" ''' ''' Returns a command that do Exec. ''' Public ReadOnly Property CompoBtnCommand As ICommand Get If m_CmdCompoBtn Is Nothing Then m_CmdCompoBtn = New Command(AddressOf CompoBtn) End If Return m_CmdCompoBtn End Get End Property ''' ''' Execute the Exec. This method is invoked by the ExecCommand. ''' ''' Public Sub CompoBtn(param As Object) Dim m_CurrCompoType As CompoType = DirectCast(param, CompoType) If Not IsNothing(Map.refPartPageVM.CurrPart) Then Dim NewCompo As Compo = Map.refPartPageVM.CurrPart.AddNewCompo(m_CurrCompoType) '' appena aggiungo una componente nuova calcolo le sue componenti correttamente modificate If Not IsNothing(NewCompo.refJambCompo) Then If Not LoadCompoParam(NewCompo) Then Return Map.refAssemblyPageVM.CurrAssembly.UpDateCurrCompoJamb(NewCompo) ResetCompoParam() End If Else MessageBox.Show(EgtMsg(50108), EgtMsg(50101), MessageBoxButton.OK, MessageBoxImage.Exclamation) End If End Sub #End Region ' CompoBtnCommand #Region "GoToAssemblyBtnCommand" ''' ''' Returns a command that do Exec. ''' Public ReadOnly Property GoToAssemblyBtnCommand As ICommand Get If m_CmdGoToAssemblyBtn Is Nothing Then m_CmdGoToAssemblyBtn = New Command(AddressOf GoToAssemblyBtn) End If Return m_CmdGoToAssemblyBtn End Get End Property ''' ''' Execute the Exec. This method is invoked by the ExecCommand. ''' ''' Public Sub GoToAssemblyBtn(param As Object) Map.refMainWindowVM.SelectedPage = MainWindowVM.ListPageEnum.nAssemblyPage Map.refSceneManagerVM.RefreshBtn() End Sub #End Region ' GoToAssemblyBtnCommand #Region "ENTERREFRESH" ''' ''' Returns a command that do Refresh. ''' Public ReadOnly Property RefreshCmd As ICommand Get If m_EnterRefreshCmd Is Nothing Then m_EnterRefreshCmd = New Command(AddressOf EnterRefresh) End If Return m_EnterRefreshCmd End Get End Property Public Sub EnterRefresh() Map.refSceneManagerVM.RefreshBtn() End Sub #End Region ' EnterRefresh #End Region 'Commands Public Event PropertyChanged As PropertyChangedEventHandler Implements INotifyPropertyChanged.PropertyChanged Public Sub NotifyPropertyChanged(propName As String) RaiseEvent PropertyChanged(Me, New PropertyChangedEventArgs(propName)) End Sub End Class