Files
egtbeamwall/EgtBEAMWALL.ViewerOptimizer/BlockedWnd/BlockedWndVM.vb
T
Demetrio Cassarino a12ab8f531 -pulizia codice
2024-06-13 17:36:10 +02:00

160 lines
4.9 KiB
VB.net

Imports System.Windows.Threading
Imports EgtBEAMWALL.Core
Imports EgtUILib
Imports EgtWPFLib5
Public Class BlockedWndVM
Inherits VMBase
#Region "FIELDS & PROPERTIES"
Friend Event m_CloseWindow(bDialogResult As Boolean)
Private m_Waiting_Timer As New DispatcherTimer
Private WaitingTimer_TickHandler As New EventHandler(AddressOf WaitingTimer_Tick)
Private m_Buttons_Visibility As Visibility = Visibility.Visible
Public ReadOnly Property Buttons_Visibility As Visibility
Get
Return m_Buttons_Visibility
End Get
End Property
Private m_nIndex As Integer = 0
#Region "Messages"
Private m_Msg_Text As String
Public ReadOnly Property Msg_Text As String
Get
Return m_Msg_Text
End Get
End Property
Public ReadOnly Property Save_Msg As String
Get
Return EgtMsg(61966)
End Get
End Property
Public ReadOnly Property DoNotSave_Msg As String
Get
Return EgtMsg(61967)
End Get
End Property
#End Region ' Messages
' Definizione comandi
Private m_cmdSave As ICommand
Private m_cmdDoNotSave As ICommand
#End Region ' FIELDS & PROPERTIES
Sub New()
If DbControllers.bNetwork Then
m_Buttons_Visibility = Visibility.Visible
m_Msg_Text = "Ottimizzatore bloccato per ricalcolo trave. Salvare le modifiche apportate al progetto?"
Else
m_Msg_Text = "In attesa del ricalcolo da parte del supervisore."
m_Buttons_Visibility = Visibility.Collapsed
Save()
End If
NotifyPropertyChanged(NameOf(Msg_Text))
NotifyPropertyChanged(NameOf(Buttons_Visibility))
' avvio contatore
m_Waiting_Timer.Interval = TimeSpan.FromMilliseconds(500)
AddHandler m_Waiting_Timer.Tick, WaitingTimer_TickHandler
m_Waiting_Timer.Start()
End Sub
Private Sub WaitingTimer_Tick()
' se notifica di chiusura da supervisor, esco
If Not SupervisorCommThread.bViewerOptimizerBlocked And Map.refMainWindowVM.m_ManagingSupervisorStop Then
If m_Waiting_Timer.IsEnabled Then
m_Waiting_Timer.Stop()
RemoveHandler m_Waiting_Timer.Tick, WaitingTimer_TickHandler
End If
' se mi viene passato un Id di MachGroup aggiunto
If SupervisorCommThread.m_AddedMachGroupId > 0 Then
' ricarico progetto
Dim sCurrFilePath As String = ""
EgtGetCurrFilePath(sCurrFilePath)
EgtOpenFile(sCurrFilePath)
' aggiungo a lista nuovo MachGroup
Map.refProjectVM.MachGroupPanelVM.AddMachGroupToList(SupervisorCommThread.m_AddedMachGroupId)
End If
Map.refMainWindowVM.m_ManagingSupervisorStop = False
RaiseEvent m_CloseWindow(True)
End If
' incremento contatore
m_nIndex += 1
' se passata attesa per risposta utente
If m_nIndex = 17 Then
' aggiorno finestra con attesa fine calcolo
m_Msg_Text = "In attesa del ricalcolo da parte del supervisore."
m_Buttons_Visibility = Visibility.Collapsed
NotifyPropertyChanged(NameOf(Buttons_Visibility))
NotifyPropertyChanged(NameOf(Msg_Text))
' mando messaggio di blocco avvenuto
DbControllers.m_StatusMapController.UpdateAction("", ProjectManagerVM.CurrProd.nProdId, ProjectManagerVM.CurrProd.nProdId, StatusMapItemType.Comm, StatusMapOpType.ViewOptimStoped, "")
End If
End Sub
#Region "COMMANDS"
#Region "Save"
''' <summary>
''' Returns a command that do Exec.
''' </summary>
Public ReadOnly Property Save_Command As ICommand
Get
If m_cmdSave Is Nothing Then
m_cmdSave = New Command(AddressOf Save)
End If
Return m_cmdSave
End Get
End Property
''' <summary>
''' Execute the Exec. This method is invoked by the ExecCommand.
''' </summary>
Public Sub Save()
' salvo progetto
Map.refProdManagerVM.Save()
' mando messaggio di blocco avvenuto
DbControllers.m_StatusMapController.UpdateAction("", ProjectManagerVM.CurrProd.nProdId, ProjectManagerVM.CurrProd.nProdId, StatusMapItemType.Comm, StatusMapOpType.ViewOptimStoped, "")
End Sub
#End Region ' Save
#Region "DoNotSave"
''' <summary>
''' Returns a command that do Exec.
''' </summary>
Public ReadOnly Property DoNotSave_Command As ICommand
Get
If m_cmdDoNotSave Is Nothing Then
m_cmdDoNotSave = New Command(AddressOf DoNotSave)
End If
Return m_cmdDoNotSave
End Get
End Property
''' <summary>
''' Execute the Exec. This method is invoked by the ExecCommand.
''' </summary>
Public Sub DoNotSave()
' mando messaggio di blocco avvenuto
DbControllers.m_StatusMapController.UpdateAction("", ProjectManagerVM.CurrProd.nProdId, ProjectManagerVM.CurrProd.nProdId, StatusMapItemType.Comm, StatusMapOpType.ViewOptimStoped, "")
End Sub
#End Region ' DoNotSave
#End Region ' COMMANDS
End Class