Files
EgtCAM5/SelMachGroupWnd/SelMachGroupWndVM.vb
Dario Sassi cc317f5f54 EgtCAM5 :
- modifiche al passaggio Disegna->Lavora, ora creazione gruppi di lavoro richiedono selezione pezzi e presenza script opportuno.
2018-05-07 13:28:48 +00:00

277 lines
7.9 KiB
VB.net

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