Imports System.ComponentModel
Imports System.Collections.ObjectModel
Imports EgtUILib
Imports System.IO
Public Class CompoPanelViewModel
Implements INotifyPropertyChanged
Private m_rfMainWindowViewModel As MainWindowViewModel
Private m_rfDoorParametersViewModel As DoorParametersViewModel
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
' Definizione comando
Private m_CmdCompoBtn As ICommand
Sub New(MainWindowViewModel As MainWindowViewModel)
m_rfMainWindowViewModel = MainWindowViewModel
m_rfDoorParametersViewModel = DirectCast(m_rfMainWindowViewModel.DoorParameters.DataContext, DoorParametersViewModel)
' Lettura file ini per generare bottoni
Dim Index As Integer = 1
Dim CompoName As String = String.Empty
Dim CompoNameDDF As String = String.Empty
' Carico un vettore con il nome delle Path delle componenti
Dim CompoArray() As String = Directory.GetDirectories("c:\EgtData\Doors\Compo")
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)
m_CompoTypeList.Add(New CompoType(CompoName, CompoNameDDF, CompoArray(Index)))
End If
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 CurrCompoType As CompoType = DirectCast(param, CompoType)
m_rfDoorParametersViewModel.CurrDoor.AddNewCompo(CurrCompoType)
End Sub
#End Region ' CompoBtnCommand
#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