Files
omagoffice/MainWindow/MainWindowVM.vb
T
Dario Sassi 70dca8e466 OmagOFFICE :
- aggiornamenti per conservazione pezzi nestati in modifica grezzo
- aggiunta gestione materiale per ogni gruppo di lavoro
- CsvM trasformato in modulo.
2017-05-09 11:02:42 +00:00

158 lines
5.1 KiB
VB.net

Imports EgtUILib
Imports EgtWPFLib5
Imports System.IO
Public Class MainWindowVM
Inherits VMBase
' Riferimento al Model della MainWindow
Private m_MainWindowM As MainWindowM
Friend ReadOnly Property MainWindowM As MainWindowM
Get
Return m_MainWindowM
End Get
End Property
' Variabile che indica che il programma è stato avviato correttamente (sia la mappa che l'ambiente Egt)
Private m_bInitStatus As Boolean
Friend ReadOnly Property bInitStatus As Boolean
Get
Return m_bInitStatus
End Get
End Property
' Titolo
Private m_Title As String
Public ReadOnly Property Title As String
Get
Return m_Title
End Get
End Property
' Finestra per VeinMatching
Private m_VeinMatchingWnd As VeinMatchingWindow = Nothing
Friend ReadOnly Property VeinMatchingWnd As VeinMatchingWindow
Get
Return m_VeinMatchingWnd
End Get
End Property
' definizione comandi
Private m_cmdAboutBox As ICommand
Private m_cmdCloseApplication As ICommand
#Region "CONSTRUCTOR"
Sub New()
' Avvio l'inizializzazione della mappa passandogli il riferimento al MainWindowVM
OmagOFFICEMap.BeginInit(Me)
' Creo Model della MainWindow
m_MainWindowM = New MainWindowM
End Sub
#End Region ' CONSTRUCTOR
#Region "METHODS"
Friend Sub SetTitle(sTitle As String)
m_Title = sTitle
NotifyPropertyChanged("Title")
End Sub
Friend Sub ContentRendered()
' Verifico che l'inizializzazione di tutte le parti del programma sia andata a buon fine
If OmagOFFICEMap.EndInit() Then
m_bInitStatus = True
Else
'altrimenti chiudo il programma
m_bInitStatus = False
End If
' Se abilitato e richiesto carico finestra per VeinMatching
If OmagOFFICEMap.refMainWindowVM.MainWindowM.GetKeyOption(KEY_OPT.VM_MULTI) And
GetMainPrivateProfileInt(S_VEINMATCHING, K_VEINMA_ENABLE, 0) <> 0 And
IsNothing(m_VeinMatchingWnd) Then
m_VeinMatchingWnd = New VeinMatchingWindow
m_VeinMatchingWnd.Owner = Application.Current.MainWindow
m_VeinMatchingWnd.Show()
m_VeinMatchingWnd.Hide()
VeinMatching.m_nVeinCtx = m_VeinMatchingWnd.VeinMatchingScene.GetCtx()
EgtSetCurrentContext(OmagOFFICEMap.refSceneHostV.OmagOFFICEScene.GetCtx())
End If
' Aggiorno visualizzazione unità di misura
OmagOFFICEMap.refStatusBarVM.SetMeasureUnit(If(EgtUiUnitsAreMM(), MeasureUnitOpt.MM, MeasureUnitOpt.INCH))
' Verifico se aprire ultimo progetto
If GetMainPrivateProfileInt(S_GENERAL, K_AUTOLOADLASTPROJ, 0) = 1 Then
Dim sLastProjectPath As String = String.Empty
GetMainPrivateProfileString(S_GENERAL, K_LASTPROJ, String.Empty, sLastProjectPath)
If Not String.IsNullOrWhiteSpace(sLastProjectPath) AndAlso File.Exists(sLastProjectPath) Then
OmagOFFICEMap.refTopCommandBarVM.OpenProject(sLastProjectPath)
Else
' Nuovo progetto
OmagOFFICEMap.refTopCommandBarVM.NewCmd()
End If
Else
' Nuovo progetto
OmagOFFICEMap.refTopCommandBarVM.NewCmd()
End If
' Inizializzo gestore CSV
InitCsvM()
End Sub
#End Region ' METHODS
#Region "COMMANDS"
#Region "AboutBoxCommand"
' Returns a command that manage the MainWindow_Unloaded command
Public ReadOnly Property AboutBoxCommand() As ICommand
Get
If m_cmdAboutBox Is Nothing Then
m_cmdAboutBox = New Command(AddressOf AboutBox)
End If
Return m_cmdAboutBox
End Get
End Property
' Manage the MainWindow_Unloaded event. This method is invoked by the cmdMainWindow_Unloaded.
Public Sub AboutBox(ByVal param As Object)
Dim AboutBoxWindow As New AboutBoxV
AboutBoxWindow.Owner = Application.Current.MainWindow
AboutBoxWindow.ShowDialog()
End Sub
#End Region ' AboutBoxCommand
#Region "CloseApplicationCommand"
' Returns a command that manage the MainWindow_Unloaded command
Public ReadOnly Property CloseApplicationCommand() As ICommand
Get
If m_cmdCloseApplication Is Nothing Then
m_cmdCloseApplication = New Command(AddressOf CloseApplication)
End If
Return m_cmdCloseApplication
End Get
End Property
' Manage the MainWindow_Unloaded event. This method is invoked by the cmdMainWindow_Unloaded.
Public Sub CloseApplication(ByVal param As Object)
If OmagOFFICEMap.refOptionPanelVM.SelItem = OptionPanelVM.Tabs.SIMUL Then
OmagOFFICEMap.refSimulTabVM.ResetSimulation()
End If
' Gestisco eventuale file corrente modificato
Dim bAllowClose As Boolean = OmagOFFICEMap.refSceneHostV.Controller.ManageModified()
' Se non confermata chiusura, esco
If Not bAllowClose Then Return
' Termino il Model
m_MainWindowM.Close()
' Termino il programma
Application.Current.Shutdown()
End Sub
#End Region ' CloseApplicationCommand
#End Region ' COMMANDS
End Class