Imports EgtBEAMWALL.Core Imports EgtUILib Public Class TopPanelVM Inherits VMBase #Region "FIELDS & PROPERTIES" Friend Enum Tabs As Integer OPTIMIZATION = 0 STATISTICS = 1 End Enum Private m_SelTab As Tabs = Tabs.OPTIMIZATION Public Property SelTab As Integer Get Return m_SelTab End Get Set(value As Integer) m_SelTab = value End Set End Property Friend Sub SetSelTab(SelTab As Tabs) If m_SelTab = Tabs.STATISTICS Then Map.refInstrumentPanelVM.SetStatisticsIsChecked(False) End If m_SelTab = SelTab NotifyPropertyChanged(NameOf(SelTab)) End Sub Private m_TopPanel_IsEnabled As Boolean = True Public ReadOnly Property TopPanel_IsEnabled As Boolean Get Return m_TopPanel_IsEnabled End Get End Property ' Definizione comandi Private m_cmdProduceAllRawPart As ICommand Private m_cmdProduceRawPart As ICommand Private m_cmdResetCALCRawPart As ICommand Private m_cmdCopyRawPart As ICommand Private m_cmdRemoveRawPart As ICommand Private m_cmdRemovePart As ICommand Private m_cmdMoveUpPart As ICommand Private m_cmdMoveDownPart As ICommand Private m_cmdReOrderPart As ICommand Public ReadOnly Property MovePart_Visibility As Visibility Get If Not IsNothing(Map.refMachinePanelVM.SelectedMachine) Then Return If(Map.refMachinePanelVM.SelectedMachine.nType = MachineType.BEAM, Visibility.Visible, Visibility.Collapsed) End If Return Visibility.Collapsed End Get End Property #Region "Messages" Public ReadOnly Property ProduceRawPart_ToolTip As String Get Return EgtMsg(61912) End Get End Property Public ReadOnly Property ResetCALCRawPart_ToolTip As String Get Return EgtMsg(61924) End Get End Property Public ReadOnly Property ProduceAllRawPart_ToolTip As String Get Return EgtMsg(61913) End Get End Property Public ReadOnly Property CopyRawPart_ToolTip As String Get Return EgtMsg(61914) End Get End Property Public ReadOnly Property RemoveRawPart_ToolTip As String Get Return EgtMsg(61915) End Get End Property Public ReadOnly Property ReOrderPart_ToolTip As String Get Return EgtMsg(61916) End Get End Property Public ReadOnly Property MoveUpPart_ToolTip As String Get Return EgtMsg(61917) End Get End Property Public ReadOnly Property MoveDownPart_ToolTip As String Get Return EgtMsg(61918) End Get End Property Public ReadOnly Property RemovePart_ToolTip As String Get Return EgtMsg(61919) End Get End Property #End Region ' Messages #End Region 'FIELDS & PROPERTIES Sub New() ' imposto riferimento su mappa Map.SetRefTopPanelVM(Me) End Sub #Region "METHODS" Friend Sub SetTopPanelIsEnabled(bIsEnabled As Boolean) m_TopPanel_IsEnabled = bIsEnabled NotifyPropertyChanged(NameOf(TopPanel_IsEnabled)) End Sub #End Region ' METHODS #Region "COMMANDS" #Region "ProduceRawPart" ''' ''' Returns a command that do Exec. ''' Public ReadOnly Property ProduceRawPart_Command As ICommand Get If m_cmdProduceRawPart Is Nothing Then m_cmdProduceRawPart = New Command(AddressOf ProduceRawPart) End If Return m_cmdProduceRawPart End Get End Property ''' ''' Execute the Exec. This method is invoked by the ExecCommand. ''' Public Sub ProduceRawPart() If IsNothing(Map.refProdManagerVM.CurrProd) Then Return Dim SelMachGroup As MyMachGroupVM = Map.refMachGroupPanelVM.SelectedMachGroup If IsNothing(SelMachGroup) Then Return If SelMachGroup.nGlobalState = CalcStates.OK Or SelMachGroup.nGlobalState = CalcStates.INFO Then DbControllers.m_MachGroupController.UpdateSupervisor(Map.refProdManagerVM.CurrProd.nProdId, SelMachGroup.Id, DbControllers.m_SupervisorId) DbControllers.m_MachGroupController.UpdateOrder(Map.refProdManagerVM.CurrProd.nProdId, SelMachGroup.Id, 10000) Else MessageBox.Show("Impossibile mandarlo in produzione perche' non lavorabile!") End If End Sub #End Region ' ProduceRawPart #Region "ProduceAllRawPart" ''' ''' Returns a command that do Exec. ''' Public ReadOnly Property ProduceAllRawPart_Command As ICommand Get If m_cmdProduceAllRawPart Is Nothing Then m_cmdProduceAllRawPart = New Command(AddressOf ProduceAllRawPart) End If Return m_cmdProduceAllRawPart End Get End Property ''' ''' Execute the Exec. This method is invoked by the ExecCommand. ''' Public Sub ProduceAllRawPart() If IsNothing(Map.refProdManagerVM.CurrProd) Then Return If Map.refMachGroupPanelVM.MachGroupVMList.Count > 0 Then For Each Machgroup In Map.refMachGroupPanelVM.MachGroupVMList DbControllers.m_MachGroupController.UpdateSupervisor(Map.refProdManagerVM.CurrProd.nProdId, Machgroup.Id, DbControllers.m_SupervisorId) Next End If End Sub #End Region ' ProduceAllRawPart #Region "ResetCALCRawPart" ''' ''' Returns a command that do Exec. ''' Public ReadOnly Property ResetCALCRawPart_Command As ICommand Get If m_cmdResetCALCRawPart Is Nothing Then m_cmdResetCALCRawPart = New Command(AddressOf ResetCALCRawPart) End If Return m_cmdResetCALCRawPart End Get End Property ''' ''' Execute the Exec. This method is invoked by the ExecCommand. ''' Public Sub ResetCALCRawPart() If IsNothing(Map.refProdManagerVM.CurrProd) Then Return Dim SelMachGroup As MyMachGroupVM = Map.refMachGroupPanelVM.SelectedMachGroup If IsNothing(SelMachGroup) Then Return If SelMachGroup.nGlobalState <> CalcStates.NOTCALCULATED Then SelMachGroup.ResetCalcMachGroup() End If End Sub #End Region ' ResetCALCRawPart #Region "CopyRawPart" ''' ''' Returns a command that do Exec. ''' Public ReadOnly Property CopyRawPart_Command As ICommand Get If m_cmdCopyRawPart Is Nothing Then m_cmdCopyRawPart = New Command(AddressOf CopyRawPart) End If Return m_cmdCopyRawPart End Get End Property ''' ''' Execute the Exec. This method is invoked by the ExecCommand. ''' Public Sub CopyRawPart() If IsNothing(Map.refProdManagerVM.CurrProd) Then Return Dim SelMachGroup As MyMachGroupVM = Map.refMachGroupPanelVM.SelectedMachGroup If IsNothing(SelMachGroup) Then Return ' creo copia Dim NewMachGroup As MyMachGroupVM = SelMachGroup.Copy() If Not IsNothing(NewMachGroup) Then ' lo seleziono Map.refProjectVM.MachGroupPanelVM.SelectedMachGroup = NewMachGroup End If End Sub #End Region ' CopyRawPart #Region "RemoveRawPart" ''' ''' Returns a command that do Exec. ''' Public ReadOnly Property RemoveRawPart_Command As ICommand Get If m_cmdRemoveRawPart Is Nothing Then m_cmdRemoveRawPart = New Command(AddressOf RemoveRawPart) End If Return m_cmdRemoveRawPart End Get End Property ''' ''' Execute the Exec. This method is invoked by the ExecCommand. ''' Public Sub RemoveRawPart() If IsNothing(Map.refProdManagerVM.CurrProd) Then Return Dim SelMachGroup As MyMachGroupVM = refMachGroupPanelVM.SelectedMachGroup If IsNothing(SelMachGroup) Then Return SelMachGroup.DeleteMachGroup() End Sub #End Region ' RemoveRawPart #Region "RemovePart" ''' ''' Returns a command that do Exec. ''' Public ReadOnly Property RemovePart_Command As ICommand Get If m_cmdRemovePart Is Nothing Then m_cmdRemovePart = New Command(AddressOf RemovePart) End If Return m_cmdRemovePart End Get End Property ''' ''' Execute the Exec. This method is invoked by the ExecCommand. ''' Public Sub RemovePart() If IsNothing(Map.refProdManagerVM.CurrProd) Then Return Dim SelMachGroup As MyMachGroupVM = Map.refMachGroupPanelVM.SelectedMachGroup If IsNothing(SelMachGroup) Then Return Dim SelPart As PartVM = SelMachGroup.SelPart If IsNothing(SelPart) Then Return SelPart.DeletePart() SelMachGroup.ResetCalcMachGroup() End Sub #End Region ' RemovePart #Region "MoveUpPart" ''' ''' Returns a command that do Exec. ''' Public ReadOnly Property MoveUpPart_Command As ICommand Get If m_cmdMoveUpPart Is Nothing Then m_cmdMoveUpPart = New Command(AddressOf MoveUpPart) End If Return m_cmdMoveUpPart End Get End Property ''' ''' Execute the Exec. This method is invoked by the ExecCommand. ''' Public Sub MoveUpPart() If IsNothing(Map.refProdManagerVM.CurrProd) Then Return Dim SelMachGroup As MyMachGroupVM = Map.refMachGroupPanelVM.SelectedMachGroup If IsNothing(SelMachGroup) Then Return Dim SelPart As PartVM = SelMachGroup.SelPart If IsNothing(SelPart) Then Return If SelMachGroup.nMachineType = MachineType.BEAM Then Dim BeamMachGroup As BeamMachGroupVM = DirectCast(SelMachGroup, BeamMachGroupVM) BeamMachGroup.MoveBeam(SelPart, MoveDirections.UP) EgtDraw() ' riseleziono trave SelMachGroup.SelPart = SelPart End If SelMachGroup.ResetCalcMachGroup() End Sub #End Region ' MoveUpPart #Region "MoveDownPart" ''' ''' Returns a command that do Exec. ''' Public ReadOnly Property MoveDownPart_Command As ICommand Get If m_cmdMoveDownPart Is Nothing Then m_cmdMoveDownPart = New Command(AddressOf MoveDownPart) End If Return m_cmdMoveDownPart End Get End Property ''' ''' Execute the Exec. This method is invoked by the ExecCommand. ''' Public Sub MoveDownPart() If IsNothing(Map.refProdManagerVM.CurrProd) Then Return Dim SelMachGroup As MyMachGroupVM = Map.refMachGroupPanelVM.SelectedMachGroup If IsNothing(SelMachGroup) Then Return Dim SelPart As PartVM = SelMachGroup.SelPart If IsNothing(SelPart) Then Return If SelMachGroup.nMachineType = MachineType.BEAM Then Dim BeamMachGroup As BeamMachGroupVM = DirectCast(SelMachGroup, BeamMachGroupVM) BeamMachGroup.MoveBeam(SelPart, MoveDirections.DOWN) EgtDraw() ' riseleziono trave SelMachGroup.SelPart = SelPart End If SelMachGroup.ResetCalcMachGroup() End Sub #End Region ' MoveDownPart #Region "ReOrderPart" ''' ''' Returns a command that do Exec. ''' Public ReadOnly Property ReOrderPart_Command As ICommand Get If m_cmdReOrderPart Is Nothing Then m_cmdReOrderPart = New Command(AddressOf ReOrderPart) End If Return m_cmdReOrderPart End Get End Property ''' ''' Execute the Exec. This method is invoked by the ExecCommand. ''' Public Sub ReOrderPart() If IsNothing(Map.refProdManagerVM.CurrProd) Then Return Dim SelMachGroup As MyMachGroupVM = Map.refMachGroupPanelVM.SelectedMachGroup If IsNothing(SelMachGroup) Then Return Dim SelPart As PartVM = SelMachGroup.SelPart If IsNothing(SelPart) Then Return If SelMachGroup.nMachineType = MachineType.BEAM Then Dim BeamMachGroup As BeamMachGroupVM = DirectCast(SelMachGroup, BeamMachGroupVM) BeamMachGroup.ReorderBeam() ' riseleziono trave If Not IsNothing(SelPart) AndAlso (IsNothing(SelMachGroup.SelPart) OrElse SelPart.nPartId <> SelMachGroup.SelPart.nPartId) Then SelMachGroup.SelPart = SelPart End If End If SelMachGroup.ResetCalcMachGroup() End Sub #End Region ' ReOrderPart #End Region ' COMMANDS End Class