Imports EgtUILib Imports EgtWPFLib5 Public Class SelMachGroupWndVM Inherits VMBase #Region "FIELDS & PROPERTIES" Public Enum MGroupType As Integer CHOOSEMGROUP = 1 NEWMGROUP = 2 End Enum Private m_MachGroupType As MGroupType Public ReadOnly Property MachGroupType As MGroupType Get Return m_MachGroupType End Get End Property Private m_ChooseGroup_IsChecked As Boolean = Nothing Public Property ChooseGroup_IsChecked As Boolean Get Return m_ChooseGroup_IsChecked End Get Set(value As Boolean) m_ChooseGroup_IsChecked = value If m_ChooseGroup_IsChecked Then MachGroup_Visibility = Visibility.Visible m_MachGroupType = MGroupType.CHOOSEMGROUP End If End Set End Property Private m_NewGroup_IsChecked As Boolean = Nothing Public Property NewGroup_IsChecked As Boolean Get Return m_NewGroup_IsChecked End Get Set(value As Boolean) m_NewGroup_IsChecked = value If m_NewGroup_IsChecked Then MachGroup_Visibility = Visibility.Collapsed m_MachGroupType = MGroupType.NEWMGROUP End If End Set End Property Private m_ChooseGroup_Visibility As Visibility = Visibility.Collapsed Public Property ChooseGroup_Visibility As Visibility Get Return m_ChooseGroup_Visibility End Get Set(value As Visibility) m_ChooseGroup_Visibility = value End Set End Property Private m_Name As String = Nothing Public Property Name As String Get Return m_Name End Get Set(value As String) m_Name = value End Set End Property Private m_Name_Visibility As Visibility = Visibility.Collapsed Public Property Name_Visibility As Visibility Get Return m_Name_Visibility End Get Set(value As Visibility) m_Name_Visibility = value End Set End Property ' Lista delle macchine disponibili Private m_MachineList As List(Of Machine) = Nothing Public Property MachineList As List(Of Machine) Get Return m_MachineList End Get Set(value As List(Of Machine)) m_MachineList = value End Set End Property ' Macchina correntemente selezionata e quindi attiva Private m_SelectedMachine As Machine = Nothing Public Property SelectedMachine As Machine Get Return m_SelectedMachine End Get Set(value As Machine) If value IsNot m_SelectedMachine Then m_SelectedMachine = value NotifyPropertyChanged("SelectedMachine") End If End Set End Property Private m_Machine_Visibility As Visibility = Visibility.Collapsed Public Property Machine_Visibility As Visibility Get Return m_Machine_Visibility End Get Set(value As Visibility) m_Machine_Visibility = value End Set End Property ' Lista delle macchine disponibili Private m_MachGroupList As New List(Of String) Public Property MachGroupList As List(Of String) Get Return m_MachGroupList End Get Set(value As List(Of String)) m_MachGroupList = value End Set End Property ' Gruppo di lavorazione Private m_SelMachGroupId As Integer Public ReadOnly Property SelMachGroupId As Integer Get Return m_SelMachGroupId End Get End Property Private m_SelMachGroup As String = Nothing Public Property SelMachGroup As String Get Return m_SelMachGroup End Get Set(value As String) If value IsNot m_SelectedMachine Then m_SelMachGroup = value NotifyPropertyChanged("SelMachGroup") End If End Set End Property Private m_MachGroup_Visibility As Visibility = Visibility.Collapsed Public Property MachGroup_Visibility As Visibility Get Return m_MachGroup_Visibility End Get Set(value As Visibility) m_MachGroup_Visibility = value NotifyPropertyChanged("MachGroup_Visibility") End Set End Property Private m_IsClosable As Boolean = True Public Property IsClosable As Boolean Get Return m_IsClosable End Get Set(value As Boolean) m_IsClosable = value End Set End Property #Region "Messages" Public ReadOnly Property TitleMsg As String Get Return EgtMsg(MSG_EGTWPFLIB5 + 900 + 1) End Get End Property Public ReadOnly Property ChooseGroupMsg As String Get Return "Choose MGroup" End Get End Property Public ReadOnly Property NewGroupMsg As String Get Return "New MGroup" End Get End Property Public ReadOnly Property NameMsg As String Get Return EgtMsg(MSG_EGTWPFLIB5 + 900 + 2) End Get End Property Public ReadOnly Property MachineMsg As String Get Return EgtMsg(MSG_EGTWPFLIB5 + 900 + 3) End Get End Property Public ReadOnly Property MachGroupMsg As String Get Return "MachGroup" End Get End Property #End Region ' Messages ' Definizione comandi Private m_cmdOk As ICommand Private m_cmdCancel As ICommand #End Region 'FIELDS & PROPERTIES #Region "CONSTRUCTOR" Sub New(sName As String) ChooseGroup_Visibility = Visibility.Collapsed MachGroup_Visibility = Visibility.Collapsed Name_Visibility = Visibility.Visible Machine_Visibility = Visibility.Collapsed m_Name = sName End Sub Sub New(sSelectedMachine As String, MachineList As List(Of Machine)) ChooseGroup_Visibility = Visibility.Collapsed MachGroup_Visibility = Visibility.Collapsed Name_Visibility = Visibility.Collapsed Machine_Visibility = Visibility.Visible m_MachineList = MachineList If Not Machine.SearchMachine(sSelectedMachine, m_MachineList, m_SelectedMachine) Then m_SelectedMachine = m_MachineList(0) End If End Sub Sub New(sName As String, sSelectedMachine As String, MachineList As List(Of Machine)) ChooseGroup_Visibility = Visibility.Collapsed MachGroup_Visibility = Visibility.Collapsed Name_Visibility = Visibility.Visible Machine_Visibility = Visibility.Visible m_Name = sName m_MachineList = MachineList If Not Machine.SearchMachine(sSelectedMachine, m_MachineList, m_SelectedMachine) Then m_SelectedMachine = m_MachineList(0) End If End Sub Sub New(MachGroupList As List(Of Integer)) ChooseGroup_Visibility = Visibility.Visible MachGroup_Visibility = Visibility.Visible Name_Visibility = Visibility.Collapsed Machine_Visibility = Visibility.Collapsed ChooseGroup_IsChecked = True Dim MachGroupName As String = String.Empty For Each MachGroupId In MachGroupList EgtGetMachGroupName(MachGroupId, MachGroupName) m_MachGroupList.Add(MachGroupName) Next If m_MachGroupList.Count > 0 Then m_SelMachGroup = m_MachGroupList(0) End If End Sub #End Region ' CONSTRUCTOR #Region "METHODS" Friend Function IsValid() As Boolean Dim bOk As Boolean If m_Name_Visibility = Visibility.Visible Then bOk = If(Not String.IsNullOrWhiteSpace(m_Name), True, False) Else bOk = True End If If m_Machine_Visibility = Visibility.Visible Then bOk = If(Not IsNothing(m_SelectedMachine), True, False) Else bOk = True End If m_SelMachGroupId = EgtGetMachGroupId(m_SelMachGroup) Return bOk End Function #End Region ' METHODS End Class