Files
icarus/Icarus/CurrMachiningPanel/CurrMachiningPanelVM.vb
T
Dario Sassi dd31c112a6 Icarus 3.1b2 :
- aggiunto parametro SpiralVaseLen (abilitato solo se SpiralVase lo è).
2026-02-16 11:33:16 +01:00

169 lines
5.4 KiB
VB.net

Imports EgtUILib
Imports EgtWPFLib5
Public Class CurrMachiningPanelVM
Inherits VMBase
#Region "FIELDS & PROPERTIES"
Private m_CurrMachining As CurrMachining
Public ReadOnly Property CurrMachining As CurrMachining
Get
Return m_CurrMachining
End Get
End Property
Friend Sub SetCurrMachining(CurrMachining As CurrMachining)
m_CurrMachining = CurrMachining
NotifyPropertyChanged(NameOf(CurrMachining))
Map.refTopPanelVM.UpdateCurrMachining()
End Sub
#Region "Tooltip"
Public ReadOnly Property SaveInDb_ToolTip As String
Get
Return "Save in Db"
End Get
End Property
#End Region ' Tooltip
' Definizione comandi
Private m_cmdOk As ICommand
Private m_cmdCancel As ICommand
Private m_cmdSaveInDb As ICommand
#End Region ' FIELDS & PROPERTIES
#Region "CONSTRUCTORS"
Sub New()
' Creo riferimento a questa classe in Map
Map.SetRefCurrMachiningPanelVM(Me)
End Sub
#End Region ' CONSTRUCTORS
Friend Sub ReadMachParamFromSelPart()
If IsNothing(Map.refTopPanelVM.SelPart) Then Return
Dim nData As Integer = 0
m_CurrMachining = New CurrMachining(Map.refTopPanelVM.SelPart.nPartId)
SetCurrMachining(m_CurrMachining)
' aggiorno parametri mostrati nella barra
NotifyPropertyChanged(NameOf(CurrMachining))
Map.refTopPanelVM.UpdateCurrMachining()
End Sub
#Region "COMMANDS"
#Region "Ok"
Public ReadOnly Property Ok_Command As ICommand
Get
If m_cmdOk Is Nothing Then
m_cmdOk = New Command(AddressOf Ok)
End If
Return m_cmdOk
End Get
End Property
Public Sub Ok()
' verifico se modificata tipologia Ribs
Dim bIsModifiedRibsType As Boolean = False
Dim RibsCathegory As MachiningCathegory = CurrMachining.CathegoryList.FirstOrDefault(Function(x) x.Type = MachiningCathegory.Cathegories.RIBS)
If Not IsNothing(RibsCathegory) Then
Dim RibsTypeParam As MachiningParam = RibsCathegory.MachiningParamList.FirstOrDefault(Function(y) y.Type = MachiningParam.Params.RIBSTYPE)
If Not IsNothing(RibsTypeParam) Then
bIsModifiedRibsType = RibsTypeParam.bIsModified
End If
End If
' scrivo i parametri modificati
m_CurrMachining.WriteCurrParamInPart(Map.refTopPanelVM.SelPart.nPartId)
m_CurrMachining.Save()
' se modificata tipologia Ribs, aggiorno posizione riferimento
If bIsModifiedRibsType Then
Map.refReferencePanelVM.UpdateFramePosition()
Map.refDispositionPanelVM.UpdateZPos()
Map.refSliceManagerVM.UpdateDimensions()
End If
' ripristino modalita' standard
Map.refTopPanelVM.SelPage = Pages.MODIFY
End Sub
#End Region ' Ok
#Region "Cancel"
Public ReadOnly Property Cancel_Command As ICommand
Get
If m_cmdCancel Is Nothing Then
m_cmdCancel = New Command(AddressOf Cancel)
End If
Return m_cmdCancel
End Get
End Property
Public Sub Cancel()
' ripristino i parametri modificati
m_CurrMachining.ResetModification()
' ripristino modalita' standard
Map.refTopPanelVM.SelPage = Pages.MODIFY
End Sub
#End Region ' Cancel
#Region "SaveInDb"
Public ReadOnly Property SaveInDb_Command As ICommand
Get
If m_cmdSaveInDb Is Nothing Then
m_cmdSaveInDb = New Command(AddressOf SaveInDb)
End If
Return m_cmdSaveInDb
End Get
End Property
Public Sub SaveInDb()
If IsNothing(m_CurrMachining) Then Return
' apro finestra di scelta nome
Dim SaveInDbWndVM As New MachSaveInDbWndVM(Map.refTopPanelVM.SelMachining.sName)
Dim SaveInDbWndV As New MachSaveInDbWndV(Application.Current.MainWindow, SaveInDbWndVM)
If SaveInDbWndV.ShowDialog Then
' recupero primo indice libero
Dim nIndex As Integer = 1
Dim sGUID As String = ""
While ReadMachiningParamString(nIndex, MAC_GUID, "", sGUID) > 0
nIndex += 1
End While
Dim sNewMachGUID As Guid = Guid.NewGuid()
WriteMachiningParam(nIndex, MAC_GUID, sNewMachGUID.ToString())
WriteMachiningParam(nIndex, MAC_NAME, SaveInDbWndVM.sName)
' creo categoria materiali con attivo materiale corrente
Dim MaterialCathegory As New MachiningCathegory(MachiningCathegory.Cathegories.MATERIALS, 0, m_CurrMachining)
Dim SelMaterialParam As MaterialMachiningParam = MaterialCathegory.MachiningParamList.FirstOrDefault(Function(x As MaterialMachiningParam) x.sGUID = Map.refTopPanelVM.SelMaterial.sGUID)
If Not IsNothing(SelMaterialParam) Then
SelMaterialParam.bValue = True
End If
' aggiungo categoria materiali a lavorazione corrente
m_CurrMachining.CathegoryList.Add(MaterialCathegory)
' scrivo parametri nuova lavorazione in Db
For Each Cathegory In m_CurrMachining.CathegoryList
Cathegory.WriteParamOnDb(nIndex)
Next
' ricarico lista lavorazioni top panel e db
Map.refTopPanelVM.InitMachiningsList()
Map.refMachiningDbVM.Init()
' seleziono quella appena creata
Map.refTopPanelVM.SelMachining = Map.refTopPanelVM.MachiningList.FirstOrDefault(Function(x) x.sGUID = sNewMachGUID)
Map.refTopPanelVM.NotifyPropertyChanged(NameOf(Map.refTopPanelVM.SelMachining))
End If
End Sub
#End Region ' SaveInDb
#End Region ' COMMANDS
End Class