EgtCAM5 :

- modifiche al passaggio Disegna->Lavora, ora creazione gruppi di lavoro richiedono selezione pezzi e presenza script opportuno.
This commit is contained in:
Dario Sassi
2018-05-07 13:28:48 +00:00
parent 666b4432f0
commit cc317f5f54
5 changed files with 569 additions and 40 deletions
+8
View File
@@ -151,6 +151,10 @@
<Compile Include="Constants\ConstIni.vb" />
<Compile Include="Constants\ConstMachIni.vb" />
<Compile Include="Constants\ConstMsg.vb" />
<Compile Include="SelMachGroupWnd\SelMachGroupWndV.xaml.vb">
<DependentUpon>SelMachGroupWndV.xaml</DependentUpon>
</Compile>
<Compile Include="SelMachGroupWnd\SelMachGroupWndVM.vb" />
<Compile Include="Utility\Map.vb" />
<Compile Include="Internals\MruList.vb" />
<Compile Include="Utility\MachineModel.vb" />
@@ -357,6 +361,10 @@
<DependentUpon>MainWindowV.xaml</DependentUpon>
<SubType>Code</SubType>
</Compile>
<Page Include="SelMachGroupWnd\SelMachGroupWndV.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="Utility\Dictionary.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
+175 -40
View File
@@ -64,26 +64,177 @@ Public Class MachGroupPanelVM
#Region "METHODS"
Private Sub InitializeMachGroups()
' calcolo bbox di tutti i pezzi disegnati
'Dim bboxAllParts As New BBox3d
'CalculateAllPartsBbox(bboxAllParts)
Dim bOk As Boolean = False
Dim nId = EgtGetLastMachGroup()
If nId <> GDB_ID.NULL Then
bOk = EgtSetCurrMachGroup(nId)
Else
bOk = AddNewMachGroup()
End If
Dim nGroupId As Integer = GDB_ID.NULL
bOk = ManageDisposition(nGroupId)
If bOk Then
'CalculatePartsTranslationVt(bboxAllParts)
'TraslateParts()
LoadMachGroups()
SelectedMachGroup = MachGroupList(MachGroupList.Count() - 1)
Dim MachGroupName As String = ""
EgtGetMachGroupName(nGroupId, MachGroupName)
SelectedMachGroup = MachGroupList(MachGroupList.IndexOf(MachGroupName))
End If
If IniFile.m_bShowOnlyTable Then EgtShowOnlyTable(True)
Application.Msn.NotifyColleagues(Application.MACHGROUPSRESULT, bOk)
End Sub
Private Function ManageDisposition(ByRef nGroupId As Integer) As Boolean
' Ricerca pezzi selezionati
Dim bSelPart As Boolean = False
Dim vPart As New List(Of Integer)
Dim nId As Integer = EgtGetFirstSelectedObj()
While nId <> GDB_ID.NULL
Dim nPartId As Integer = EgtGetParent(EgtGetParent(nId))
If nPartId <> GDB_ID.NULL Then
If Not vPart.Contains(nPartId) Then
vPart.Add(nPartId)
End If
End If
nId = EgtGetNextSelectedObj()
End While
bSelPart = vPart.Count > 0
EgtDeselectAll()
' Verifica esistenza gruppi di lavorazione
Dim bMachGroup As Boolean = (EgtGetMachGroupCount() > 0)
' Se ci sono pezzi selezionati
If bSelPart Then
' se ci sono gruppi di lavorazione
If bMachGroup Then
' Creo lista dei gruppi di lavorazione
Dim MachGroupList As New List(Of Integer)
Dim GrpId As Integer = EgtGetFirstMachGroup()
While GrpId <> GDB_ID.NULL
MachGroupList.Add(GrpId)
GrpId = EgtGetNextMachGroup(GrpId)
End While
' Elimino gruppi che contengono già un pezzo selezionato
For Index = MachGroupList.Count - 1 To 0 Step -1
If PartsInMachGroup(vPart, MachGroupList(Index)) Then MachGroupList.Remove(MachGroupList(Index))
Next
' se la lista gruppi è vuota creo un nuovo gruppo
If MachGroupList.Count = 0 Then
AddNewMachGroup(nGroupId, vPart)
Return True
End If
' altrimenti creo dialogo per scelta gruppi esistenti o nuovo gruppo
Dim SelMachGroupWndVM As New SelMachGroupWndVM(MachGroupList)
Dim SelMachGroupWndV As New SelMachGroupWndV(Application.Current.MainWindow, SelMachGroupWndVM)
If SelMachGroupWndV.ShowDialog() = False Then Return False
' Verifico selezione in dialogo
Dim bOk As Boolean = False
Select Case SelMachGroupWndVM.MachGroupType
Case EgtCAM5.SelMachGroupWndVM.MGroupType.CHOOSEMGROUP
nGroupId = SelMachGroupWndVM.SelMachGroupId
bOk = AddToMachGroup(nGroupId, vPart)
Case EgtCAM5.SelMachGroupWndVM.MGroupType.NEWMGROUP
bOk = AddNewMachGroup(nGroupId, vPart)
End Select
Return bOk
' altrimenti creo il primo gruppo
Else
Return AddNewMachGroup(nGroupId, vPart)
End If
' Se non ci sono pezzi selezionati
Else
' se ci sono gruppi di lavorazione
If bMachGroup Then
nGroupId = EgtGetLastMachGroup()
Return EgtSetCurrMachGroup(nGroupId)
' altrimenti esco
Else
Return False
End If
End If
End Function
Private Function ExecScript(sScriptPath As String, nGroupId As Integer, nPartId As Integer) As Boolean
EgtLuaCreateGlobTable("DISP")
EgtLuaSetGlobIntVar("DISP.GROUPID", nGroupId)
EgtLuaSetGlobIntVar("DISP.PARTID", nPartId)
If Not EgtLuaExecFile(sScriptPath) Then
EgtOutLog("Error executing disposition init script " & sScriptPath)
MessageBox.Show(EgtMsg(MSG_DISPOSITIONERRORS + 2) & " " & sScriptPath, EgtMsg(MSG_DISPOSITIONERRORS + 1), MessageBoxButton.OK, MessageBoxImage.Exclamation)
Return False
End If
Dim nErr As Integer = 999
EgtLuaGetGlobIntVar("DISP.ERR", nErr)
EgtLuaResetGlobVar("DISP")
Return nErr = 0
End Function
Private Function PartsInMachGroup(SelPartList As List(Of Integer), nGroupId As Integer) As Boolean
If Not EgtSetCurrMachGroup(nGroupId) Then Return False
Dim nRawId As Integer = EgtGetFirstRawPart()
While nRawId <> GDB_ID.NULL
Dim nPartId As Integer = EgtGetFirstPartInRawPart(nRawId)
While nPartId <> GDB_ID.NULL
If SelPartList.Contains(nPartId) Then
EgtResetCurrMachGroup()
Return True
End If
nPartId = EgtGetNextPartInRawPart(nPartId)
End While
nRawId = EgtGetNextRawPart(nRawId)
End While
EgtResetCurrMachGroup()
Return False
End Function
Private Function AddToMachGroup(ByRef nGroupId As Integer, PartList As List(Of Integer)) As Boolean
' leggo nome script di disposizione automatica
Dim bWithScript As Boolean = False
Dim sInitScriptPath As String = String.Empty
EgtUILib.GetPrivateProfileString(S_DISPOSITION, K_INITSCRIPT, "", sInitScriptPath, IniFile.m_sCurrMachIniFilePath)
' se è attivo, uso lo script di disposizione
If OptionModule.m_bUseDispositionScript And Not String.IsNullOrEmpty(sInitScriptPath) Then
sInitScriptPath = IniFile.m_sCurrMachScriptsDirPath & "\" & sInitScriptPath
bWithScript = File.Exists(sInitScriptPath)
End If
If bWithScript Then
' Rendo corrente il gruppo di lavoro
EgtSetCurrMachGroup(nGroupId)
' Creo grezzo e posiziono i pezzi
For Each Part In PartList
ExecScript(sInitScriptPath, nGroupId, Part)
Next
Else
EgtOutLog("Machine without InitDisp script.")
Return False
End If
Return True
End Function
Private Function AddNewMachGroup(ByRef nGroupId As Integer, PartList As List(Of Integer)) As Boolean
' leggo nome script di disposizione automatica
Dim bWithScript As Boolean = False
Dim sInitScriptPath As String = String.Empty
EgtUILib.GetPrivateProfileString(S_DISPOSITION, K_INITSCRIPT, "", sInitScriptPath, IniFile.m_sCurrMachIniFilePath)
' se è attivo, uso lo script di disposizione
If OptionModule.m_bUseDispositionScript And Not String.IsNullOrEmpty(sInitScriptPath) Then
sInitScriptPath = IniFile.m_sCurrMachScriptsDirPath & "\" & sInitScriptPath
bWithScript = File.Exists(sInitScriptPath)
End If
If bWithScript Then
Dim sMgName As String = "Mach_1"
EgtGetMachGroupNewName(sMgName)
nGroupId = EgtAddMachGroup(sMgName)
If nGroupId = GDB_ID.NULL Then
EgtOutLog("Errore nella creazione del gruppo di lavoro " & sMgName)
MessageBox.Show("Errore nella creazione del gruppo di lavoro", "Lavora", MessageBoxButton.OK, MessageBoxImage.Error)
Return False
End If
' Creo grezzo e posiziono i pezzi
For Each Part In PartList
ExecScript(sInitScriptPath, nGroupId, Part)
Next
Else
EgtOutLog("Machine without InitDisp script.")
Return False
End If
' Gestisco eventuale attrezzaggio di default
ManageDefaultSetUp()
Return True
End Function
Private Sub CalculateAllPartsBbox(ByRef bboxAllParts As BBox3d)
Dim nPart As Integer = EgtGetFirstPart()
While nPart <> GDB_ID.NULL
@@ -128,34 +279,18 @@ Public Class MachGroupPanelVM
End While
End Sub
Private Function AddNewMachGroup() As Boolean
' Creazione nuovo gruppo di lavorazione
Dim sNewMachName As String = "Mach_1"
EgtGetMachGroupNewName(sNewMachName)
Dim bOk As Boolean = (EgtAddMachGroup(sNewMachName) <> GDB_ID.NULL)
' leggo nome script di disposizione automatica
Dim sInitScriptPath As String = String.Empty
EgtUILib.GetPrivateProfileString(S_DISPOSITION, K_INITSCRIPT, "", sInitScriptPath, IniFile.m_sCurrMachIniFilePath)
' se è attivo, uso lo script di disposizione
If bOk AndAlso OptionModule.m_bUseDispositionScript And Not String.IsNullOrEmpty(sInitScriptPath) Then
sInitScriptPath = IniFile.m_sCurrMachScriptsDirPath & "\" & sInitScriptPath
If Not File.Exists(sInitScriptPath) OrElse Not EgtLuaExecFile(sInitScriptPath) Then
EgtOutLog("Error executing disposition init script " & sInitScriptPath)
MessageBox.Show(EgtMsg(MSG_DISPOSITIONERRORS + 2) & " " & sInitScriptPath, EgtMsg(MSG_DISPOSITIONERRORS + 1), MessageBoxButton.OK, MessageBoxImage.Exclamation)
End If
End If
Private Sub ManageDefaultSetUp()
' leggo nome attrezzaggio di default
Dim sDefaultSetUpName As String = String.Empty
EgtUILib.GetPrivateProfileString(S_SETUP, K_DEFAULT, "", sDefaultSetUpName, IniFile.m_sCurrMachIniFilePath)
' se è attiva l'opzione, rendo corrente l'attrezzaggio di default
If bOk And Not String.IsNullOrEmpty(sDefaultSetUpName) Then
If Not String.IsNullOrEmpty(sDefaultSetUpName) Then
If Not EgtImportSetup(String.Empty) Then
EgtOutLog("Error loading default setup " & sDefaultSetUpName)
MessageBox.Show(EgtMsg(MSG_SETUPERRORS + 9) & " " & sDefaultSetUpName, EgtMsg(MSG_MESSAGEBOX + 1), MessageBoxButton.OK, MessageBoxImage.Exclamation)
End If
End If
Return bOk
End Function
End Sub
#End Region
@@ -200,15 +335,15 @@ Public Class MachGroupPanelVM
End Property
Public Sub AddMachGroup()
If AddNewMachGroup() Then
Dim sMachName As String = String.Empty
EgtGetMachGroupName(EgtGetCurrMachGroup(), sMachName)
MachGroupList.Add(sMachName)
SelectedMachGroup = sMachName
EgtDraw()
Application.Msn.NotifyColleagues(Application.LOADOPERATIONLIST, -1)
Application.Msn.NotifyColleagues(Application.UPDATECURRENTMACHINE)
End If
'If AddNewMachGroup() Then
' Dim sMachName As String = String.Empty
' EgtGetMachGroupName(EgtGetCurrMachGroup(), sMachName)
' MachGroupList.Add(sMachName)
' SelectedMachGroup = sMachName
' EgtDraw()
' Application.Msn.NotifyColleagues(Application.LOADOPERATIONLIST, -1)
' Application.Msn.NotifyColleagues(Application.UPDATECURRENTMACHINE)
'End If
End Sub
#End Region ' AddMachGroupCommand
+86
View File
@@ -0,0 +1,86 @@
<EgtWPFLib5:EgtCustomWindow x:Class="SelMachGroupWndV"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:EgtWPFLib5="clr-namespace:EgtWPFLib5;assembly=EgtWPFLib5"
Title="{Binding TitleMsg}"
Style="{DynamicResource {x:Type EgtWPFLib5:EgtCustomWindow}}"
WindowStyle="None" ResizeMode="NoResize" TitleBarHeight="32" Width="290"
IsResizable="False"
IsMinimizable="False" WindowStartupLocation="CenterOwner" ShowInTaskbar="False"
IsClosable="{Binding IsClosable}" SizeToContent="Height">
<StackPanel Margin="0,5,0,0">
<UniformGrid Columns="2" Visibility="{Binding ChooseGroup_Visibility}"
Margin="5,0,5,5">
<RadioButton Content="{Binding ChooseGroupMsg}"
IsChecked="{Binding ChooseGroup_IsChecked}"
Style="{StaticResource {x:Type ToggleButton}}"
Margin="0,0,2.5,0"/>
<RadioButton Content="{Binding NewGroupMsg}"
IsChecked="{Binding NewGroup_IsChecked}"
Style="{StaticResource {x:Type ToggleButton}}"
Margin="2.5,0,0,0"/>
</UniformGrid>
<Grid Margin="5,0,5,5" Visibility="{Binding Name_Visibility}">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="{Binding Width, ElementName=MachineColumn}"/>
<ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>
<TextBlock Text="{Binding NameMsg}"
VerticalAlignment="Center"
Margin="0,0,5,0"/>
<TextBox Text="{Binding Name}"
Grid.Column="1"/>
</Grid>
<Grid Margin="5,0,5,5" Visibility="{Binding Machine_Visibility}">
<Grid.ColumnDefinitions>
<ColumnDefinition Name="MachineColumn" Width="Auto"/>
<ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>
<TextBlock Text="{Binding MachineMsg}"
Grid.Row="1"
VerticalAlignment="Center"
Margin="0,0,5,0"/>
<ComboBox Text="{Binding Machine}"
ItemsSource="{Binding MachineList}"
DisplayMemberPath="Name"
SelectedValuePath="Name"
SelectedItem="{Binding SelectedMachine}"
Grid.Row="1" Grid.Column="1"/>
</Grid>
<Grid Margin="5,0,5,5" Visibility="{Binding MachGroup_Visibility}">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="{Binding Width, ElementName=MachineColumn}"/>
<ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>
<TextBlock Text="{Binding MachGroupMsg}"
Grid.Row="1"
VerticalAlignment="Center"
Margin="0,0,5,0"/>
<ComboBox ItemsSource="{Binding MachGroupList}"
SelectedItem="{Binding SelMachGroup}"
Grid.Row="1" Grid.Column="1"/>
</Grid>
<Grid Margin="5,0,5,5">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="1*" MinWidth="5"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<Button Name="OkBtn" Content="Ok" Width="60" IsDefault="True"/>
<Button Content="Annulla" Width="60" Grid.Column="2" IsCancel="True"
IsEnabled="{Binding IsClosable}"/>
</Grid>
</StackPanel>
</EgtWPFLib5:EgtCustomWindow>
+24
View File
@@ -0,0 +1,24 @@
Public Class SelMachGroupWndV
Private m_SelMachGroupWndVM As SelMachGroupWndVM
#Region "CONSTRUCTOR"
Sub New(Owner As Window, SelMachGroupWndVM As SelMachGroupWndVM)
' Funzione che interpreta l'xaml
InitializeComponent()
Me.Owner = Owner
Me.DataContext = SelMachGroupWndVM
' Assegno al riferimento locale al VM il VM preso dal DataContext
m_SelMachGroupWndVM = SelMachGroupWndVM
End Sub
#End Region ' CONSTRUCTOR
Private Sub OkBtn_Click(sender As Object, e As RoutedEventArgs) Handles OkBtn.Click
If m_SelMachGroupWndVM.IsValid Then
DialogResult = True
End If
End Sub
End Class
+276
View File
@@ -0,0 +1,276 @@
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