161 lines
5.7 KiB
VB.net
161 lines
5.7 KiB
VB.net
Imports System.Collections.ObjectModel
|
|
Imports System.ComponentModel
|
|
Imports System.IO
|
|
Imports EgtBEAMWALL.Core
|
|
Imports EgtUILib
|
|
Imports EgtWPFLib5
|
|
|
|
Public Class MyMachGroupPanelVM
|
|
Inherits NewMachGroupPanelVM
|
|
|
|
#Region "FIELDS & PROPERTIES"
|
|
|
|
Public ReadOnly Property m_MyMachGroupPanelM As MyMachGroupPanelM
|
|
Get
|
|
Return m_MachGroupPanelM
|
|
End Get
|
|
End Property
|
|
|
|
#End Region ' FIELDS & PROPERTIES
|
|
|
|
#Region "CONSTRUCTOR"
|
|
|
|
Sub New(MachGroupPanelM As MachGroupPanelM)
|
|
MyBase.New(MachGroupPanelM)
|
|
' Recupero la macchina di default
|
|
Dim sDefaultMachine As String = String.Empty
|
|
GetMainPrivateProfileString(S_MACH, K_CURRMACH, "", sDefaultMachine)
|
|
' Creo riferimento a questa classe in Map
|
|
Map.SetRefMachGroupPanelVM(Me)
|
|
'''InitMachGroupPanel(True, Map.refMachinePanelVM.MachineList.ToList(), sDefaultMachine)
|
|
End Sub
|
|
|
|
#End Region ' CONSTRUCTOR
|
|
|
|
#Region "METHODS"
|
|
|
|
Protected Overrides Sub CreateMachGroupVMList()
|
|
Dim all As List(Of MachGroupVM) = (From MachGroupM In m_MachGroupPanelM.GetMachGroups()
|
|
Select If(DirectCast(MachGroupM, MyMachGroupM).nMachineType = MachineType.BEAM, New BeamMachGroupVM(MachGroupM), New MachGroupVM(MachGroupM))).ToList()
|
|
|
|
For Each MachGroupvM As MachGroupVM In all
|
|
AddHandler MachGroupvM.PropertyChanged, AddressOf OnMachGroupVMPropertyChanged
|
|
Next
|
|
|
|
MachGroupVMList = New ObservableCollection(Of MachGroupVM)(all)
|
|
AddHandler MachGroupVMList.CollectionChanged, AddressOf OnMachGroupVMListChanged
|
|
End Sub
|
|
|
|
Public Overrides Function InitMachGroupList(Optional bUseDefaults As Boolean = False) As Boolean
|
|
' Svuoto precedente lista di MachGroup
|
|
MachGroupVMList.Clear()
|
|
' aggiorno copie
|
|
m_MyMachGroupPanelM.UpdateDuplo()
|
|
' verifico se esistono già gruppi di lavorazione o se devo creare il primo
|
|
Dim bOk As Boolean = False
|
|
Dim nId = EgtGetFirstMachGroup()
|
|
If nId <> GDB_ID.NULL Then
|
|
bOk = EgtSetCurrMachGroup(nId)
|
|
End If
|
|
If Not bOk Then Return True
|
|
' carico lista dei gruppi di lavorazione
|
|
m_MachGroupPanelM.MachGroupMList = MyMachGroupPanelM.LoadMyMachGroups(Map.refMachinePanelVM.MachineList.ToList())
|
|
' elimino copie da cancellare
|
|
m_MyMachGroupPanelM.DeleteDuplo()
|
|
If bOk Then SelectedMachGroup = MachGroupVMList(0)
|
|
EgtZoom(ZM.ALL)
|
|
Return True
|
|
End Function
|
|
|
|
Public Function RefreshMachGroupList() As Boolean
|
|
|
|
End Function
|
|
|
|
|
|
Public Overrides Sub AddMachGroup()
|
|
Dim SelMyMachine As MyMachine = Map.refMachinePanelVM.SelectedMachine
|
|
Dim MyMachGroupM As MyMachGroupM = m_MyMachGroupPanelM.NewMyMachGroup(SelMyMachine.Name, SelMyMachine.nType)
|
|
'' creo oggetto gruppo creato
|
|
'Dim sNewMachGroupName As String = String.Empty
|
|
'Dim sNewMachGroupMachineName As String = String.Empty
|
|
'EgtGetMachGroupName(nNewMachGroupID, sNewMachGroupName)
|
|
'EgtGetMachGroupMachineName(nNewMachGroupID, sNewMachGroupMachineName)
|
|
'Dim MyMachGroup As MyMachGroupM
|
|
'If Map.refMachinePanelVM.SelectedMachine.nType = MachineType.BEAM Then
|
|
' MyMachGroup = New BeamMachGroupVM(nNewMachGroupID, sNewMachGroupName, sNewMachGroupMachineName)
|
|
'Else
|
|
' MyMachGroup = New WallMachGroup(nNewMachGroupID, sNewMachGroupName, sNewMachGroupMachineName)
|
|
'End If
|
|
'' lo aggiungo alla lista
|
|
'MachGroupList.Add(MyMachGroup)
|
|
' e lo seleziono
|
|
SelectedMachGroup = MachGroupVMList.FirstOrDefault(Function(x) x.MachGroupM Is MyMachGroupM)
|
|
End Sub
|
|
|
|
Public Overrides Function OnPreSetCurrMachGroup() As Boolean
|
|
EgtSetCurrentContext(Map.refSceneHostVM.MainScene.GetCtx())
|
|
Return True
|
|
End Function
|
|
|
|
Public Overrides Function OnPostSetCurrMachGroup() As Boolean
|
|
' Imposto vista solo tavola
|
|
EgtSetMachineLook(MCH_LOOK.TAB)
|
|
EgtSetView(VT.ISO_SW, False)
|
|
EgtZoom(ZM.ALL)
|
|
Return True
|
|
End Function
|
|
|
|
' funzione che seleziona primo gruppo
|
|
Friend Sub SelFirstMachGroup()
|
|
If Not IsNothing(Me) AndAlso Not IsNothing(MachGroupVMList) AndAlso MachGroupVMList.Count > 0 Then
|
|
SelectedMachGroup = MachGroupVMList(0)
|
|
Else
|
|
SelectedMachGroup = Nothing
|
|
EgtResetCurrMachGroup()
|
|
' nascondo tutti i pezzi
|
|
Map.refProjectVM.BTLStructureVM.HideAll()
|
|
End If
|
|
End Sub
|
|
|
|
' funzione che seleziona ultimo gruppo
|
|
Friend Sub SelLastMachGroup()
|
|
If Not IsNothing(Me) AndAlso Not IsNothing(MachGroupVMList) AndAlso MachGroupVMList.Count > 0 Then
|
|
SelectedMachGroup = MachGroupVMList(MachGroupVMList.Count - 1)
|
|
End If
|
|
End Sub
|
|
|
|
Friend Function GetLastMachGroup() As MachGroupVM
|
|
If Not IsNothing(Me) AndAlso Not IsNothing(MachGroupVMList) AndAlso MachGroupVMList.Count > 0 Then
|
|
Return MachGroupVMList(MachGroupVMList.Count - 1)
|
|
End If
|
|
Return Nothing
|
|
End Function
|
|
|
|
#End Region ' METHODS
|
|
|
|
#Region "EVENTS"
|
|
|
|
Protected Overrides Sub OnMachGroupAdded(sender As Object, e As MachGroupAddedEventArgs)
|
|
Dim MachGroupVM As MachGroupVM = Nothing
|
|
Select Case DirectCast(e.NewMachGroupM, MyMachGroupM).nMachineType
|
|
Case Core.ConstBeam.MachineType.BEAM
|
|
MachGroupVM = New BeamMachGroupVM(e.NewMachGroupM)
|
|
Case Core.ConstBeam.MachineType.WALL
|
|
'MachGroupVM = New wallMachGroupVM(e.NewMachGroupM)
|
|
Case Core.ConstBeam.MachineType.NULL
|
|
Return
|
|
End Select
|
|
MachGroupVMList.Add(MachGroupVM)
|
|
NotifyPropertyChanged(NameOf(MachGroupVMList))
|
|
End Sub
|
|
|
|
Protected Overrides Sub OnMachGroupVMPropertyChanged(sender As Object, e As PropertyChangedEventArgs)
|
|
Select Case e.PropertyName
|
|
'Case nameof(sender.sMATERIAL)
|
|
End Select
|
|
End Sub
|
|
|
|
#End Region ' EVENTS
|
|
|
|
End Class
|