Files
egtbeamwall/EgtBEAMWALL.ViewerOptimizer/MachGroupPanel/BeamVM.vb
T
Emmanuele Sassi 6c75191729 Modifiche per unificare VM di Supervisor ed optimizer
Correzione salvataggio numero pezzi aggiunti
Thread di comunicazione Supervisore
Bozza Thread di comunicazione su ottimizzatore
Migliorie e correzioni
2021-07-19 20:01:31 +02:00

101 lines
3.6 KiB
VB.net

Imports System.Collections.ObjectModel
Imports System.IO
Imports EgtBEAMWALL.Core
Imports EgtUILib
Imports EgtWPFLib5
Public Class BeamVM
Inherits Core.BeamVM
Public Overrides Property sOffset As String
Get
Return LenToString(m_BeamM.dOffset, 3)
End Get
Set(value As String)
Dim dValue As Double
If StringToLen(value, dValue) Then
Dim dOldValue As Double = m_BeamM.dOffset
m_BeamM.dOffset = dValue
' se prima trave della barra sostituisco valore anche a startoffset
Dim BeamMachGroup As BeamMachGroupVM = DirectCast(ParentMachGroupVM, BeamMachGroupVM)
If ParentMachGroupVM.PartVMList(0) Is Me Then
BeamMachGroup.dStartCut = dValue
End If
If Not BeamMachGroup.ReDrawBeamMachgroup() Then
' rispristino vecchio valore
m_BeamM.dOffset = dOldValue
BeamMachGroup.dStartCut = dOldValue
BeamMachGroup.ReDrawBeamMachgroup()
End If
' resetto validazione del pezzo
ResetCalcPart()
Else
NotifyPropertyChanged(NameOf(sOffset))
End If
End Set
End Property
Friend Sub ResetOffset()
m_BeamM.dOffset = RawPartConfiguration.dBeamDist
NotifyPropertyChanged(NameOf(sOffset))
End Sub
#Region "CONSTRUCTOR"
Sub New(BeamM As BeamM, ParentMachGroupVM As BeamMachGroupVM)
MyBase.New(BeamM, ParentMachGroupVM)
End Sub
#End Region ' CONSTRUCTOR
#Region "METHODS"
Protected Overrides Sub CreateBTLFeatureVMList()
Dim all As List(Of BTLFeatureVM) = (From BTLFeatureM In m_PartM.GetBTLFeatures()
Select New BTLFeatureVM(BTLFeatureM)).ToList()
For Each BTLFeatureVM As BTLFeatureVM In all
AddHandler BTLFeatureVM.PropertyChanged, AddressOf OnBTLFeatureVMPropertyChanged
Next
m_FeatureVMList = New ObservableCollection(Of Core.BTLFeatureVM)(all)
AddHandler m_FeatureVMList.CollectionChanged, AddressOf OnBTLFeatureVMListChanged
End Sub
#End Region ' METHODS
' Manage the MainWindow_Unloaded event. This method is invoked by the cmdMainWindow_Unloaded.
Public Overrides Sub DeletePart()
' elimino pezzo copia
EgtRemovePartFromRawPart(Me.nPartId)
' Recupero Id BTLPart originale
Dim BTLPart As BTLPartVM = BTLPartVM.RetrieveBTLPartFromPart(nPartId)
EgtErase(Me.nPartId)
' rimuovo dalla lista pezzi
Dim Index As Integer = ParentMachGroupVM.PartVMList.IndexOf(ParentMachGroupVM.PartVMList.FirstOrDefault(Function(x) x.nPartId = nPartId))
If Index = 0 Then
If ParentMachGroupVM.PartVMList.Count > 1 Then
ParentMachGroupVM.SelPart = ParentMachGroupVM.PartVMList(0)
Else
ParentMachGroupVM.SelPart = Nothing
End If
ElseIf Index = ParentMachGroupvm.PartvMList.Count - 1 Then
If ParentMachGroupVM.PartVMList.Count > 1 Then
ParentMachGroupVM.SelPart = ParentMachGroupVM.PartVMList(ParentMachGroupVM.PartVMList.Count - 2)
Else
ParentMachGroupVM.SelPart = Nothing
End If
Else
ParentMachGroupVM.SelPart = ParentMachGroupVM.PartVMList(Index - 1)
End If
ParentMachGroupVM.PartVMList.Remove(Me)
Dim BeamParentMachGroup As BeamMachGroupVM = DirectCast(ParentMachGroupVM, BeamMachGroupVM)
If Not IsNothing(BeamParentMachGroup) Then BeamParentMachGroup.ReDrawBeamMachgroup()
' aggiorno contatore pezzi usati in Prod
If Not IsNothing(BTLPart) Then BTLPart.RefreshPartInProd()
EgtDraw()
End Sub
End Class