133 lines
4.6 KiB
VB.net
133 lines
4.6 KiB
VB.net
Imports System.Collections.ObjectModel
|
|
Imports EgtBEAMWALL.Core
|
|
Imports EgtUILib
|
|
Imports EgtWPFLib5
|
|
|
|
Public Class MyMachGroupPanelVM
|
|
Inherits Core.MyMachGroupPanelVM
|
|
|
|
#Region "FIELDS & PROPERTIES"
|
|
|
|
Public Shadows Property SelectedMachGroup As MachGroupVM
|
|
Get
|
|
Return m_SelectedMachGroup
|
|
End Get
|
|
Set(value As MachGroupVM)
|
|
m_SelectedMachGroup = value
|
|
If Not IsNothing(value) Then
|
|
OnPreSetCurrMachGroup()
|
|
EgtSetCurrMachGroup(value.Id)
|
|
OnPostSetCurrMachGroup()
|
|
End If
|
|
' aggiorno stato bottoni in LeftPanel
|
|
Map.refLeftPanelVM.UpdateButtonIsEnabledState()
|
|
NotifyPropertyChanged(NameOf(SelectedMachGroup))
|
|
End Set
|
|
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)
|
|
' verifico se volume grezzi calcolato
|
|
For Each MachGroup As MyMachGroupVM In m_MachGroupVMList
|
|
Dim bIsCalculated As Boolean = False
|
|
For Each Part In MachGroup.PartVMList
|
|
If Part.dVolume > 0 Then Continue For
|
|
Part.PartM.ReadVolume()
|
|
bIsCalculated = True
|
|
Next
|
|
If bIsCalculated Then
|
|
MachGroup.UpdateUsage()
|
|
End If
|
|
Next
|
|
End Sub
|
|
|
|
#End Region ' CONSTRUCTOR
|
|
|
|
#Region "METHODS"
|
|
|
|
Protected Overrides Sub CreateMachGroupVMList()
|
|
Dim all As New List(Of MachGroupVM)
|
|
For Each MachGroupM In m_MachGroupPanelM.GetMachGroups()
|
|
all.Add(New MyMachGroupVM(MachGroupM))
|
|
Next
|
|
|
|
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
|
|
|
|
Protected Overrides Sub OnMachGroupAdded(sender As Object, e As MachGroupAddedEventArgs)
|
|
Dim MachGroupVM As MachGroupVM = Nothing
|
|
Select Case DirectCast(e.NewMachGroupM, MyMachGroupM).nType
|
|
Case Core.ConstBeam.MachineType.BEAM, Core.ConstBeam.MachineType.WALL
|
|
MachGroupVM = New MyMachGroupVM(e.NewMachGroupM)
|
|
Case Core.ConstBeam.MachineType.NULL
|
|
Return
|
|
End Select
|
|
MachGroupVMList.Add(MachGroupVM)
|
|
NotifyPropertyChanged(NameOf(MachGroupVMList))
|
|
End Sub
|
|
|
|
Public Overrides Function OnPostSetCurrMachGroup() As Boolean
|
|
' resetto eventuale selezione pezzo
|
|
Dim SelMachGroup As MyMachGroupVM = DirectCast(SelectedMachGroup, MyMachGroupVM)
|
|
' resetto eventuale selezione pezzo
|
|
SelMachGroup.SelPart = Nothing
|
|
' Imposto vista solo tavola
|
|
EgtSetMachineLook(MCH_LOOK.TAB)
|
|
Map.refFeatureInPartInRawPartListVM.SetFeatureListVisibility(SelMachGroup.bResetWhileCutting)
|
|
Core.ViewPanelVM.BWSetView(If(Core.ViewPanelVM.Type = BWType.BEAM, VT.ISO_SW, VT.TOP), False)
|
|
EgtZoom(ZM.ALL)
|
|
Return True
|
|
End Function
|
|
|
|
Public Function FirstNotToBeProducedIndex() As Integer
|
|
Return MachGroupVMList.IndexOf(MachGroupVMList.FirstOrDefault(Function(x) DirectCast(x, MyMachGroupVM).bToBeProduced = False))
|
|
End Function
|
|
|
|
Friend Sub ResetAllMachGroups()
|
|
For Each Machgroup As MyMachGroupVM In MachGroupVMList
|
|
' se iniziato ma non finito
|
|
If Machgroup.dtStartTime <> DateTime.MinValue AndAlso Machgroup.dtEndTime = DateTime.MinValue Then
|
|
' segno come resettato
|
|
Machgroup.SetResetWhileCutting(True)
|
|
End If
|
|
Machgroup.ResetProduce()
|
|
Machgroup.NotifyPropertyChanged(NameOf(Machgroup.Produce_IsEnabled))
|
|
Next
|
|
End Sub
|
|
|
|
Public Overrides Sub AddMachGroup()
|
|
Dim SelMyMachine As MyMachine = Map.refMachinePanelVM.SelectedMachine
|
|
Dim MyMachGroupM As MyMachGroupM = m_MyMachGroupPanelM.NewMyMachGroup(SelMyMachine.Name, SelMyMachine.nType)
|
|
If Not IsNothing(MyMachGroupM) Then Return
|
|
' e lo seleziono
|
|
SelectedMachGroup = MachGroupVMList.FirstOrDefault(Function(x) x.MachGroupM Is MyMachGroupM)
|
|
End Sub
|
|
|
|
' 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
|
|
ManageBTLParts.HideAll()
|
|
End If
|
|
End Sub
|
|
|
|
#End Region ' METHODS
|
|
|
|
End Class
|