d3e9474417
- correzzioni varie
281 lines
11 KiB
VB.net
281 lines
11 KiB
VB.net
Imports EgtUILib
|
|
Imports EgtWPFLib5
|
|
Imports System.IO
|
|
Imports System.Threading
|
|
Imports System.Windows.Threading
|
|
|
|
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
|
|
|
|
' Funzioni di callback per output in interfaccia da LUA
|
|
Private m_ProcEventsCallback As New ProcessEventsCallback(AddressOf ProcessEvents)
|
|
|
|
' 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
|
|
Public ReadOnly Property sTitle As String
|
|
Get
|
|
Return "EgtWindowMaker"
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property sProjectName As String
|
|
Get
|
|
Dim sFilePath As String = ""
|
|
EgtGetCurrFilePath(sFilePath)
|
|
If String.IsNullOrEmpty(sFilePath) Then
|
|
sFilePath = EgtMsg(MSG_TOPCOMMANDBAR + 1) & Map.refMainWindowVM.MainWindowM.nInstance.ToString()
|
|
Return sFilePath
|
|
Else
|
|
Return Path.GetFileNameWithoutExtension(sFilePath) & If(EgtGetModified(), "*", "")
|
|
End If
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property sProjectPath As String
|
|
Get
|
|
Dim sFilePath As String = ""
|
|
EgtGetCurrFilePath(sFilePath)
|
|
If String.IsNullOrEmpty(sFilePath) Then
|
|
sFilePath = EgtMsg(MSG_TOPCOMMANDBAR + 1) & Map.refMainWindowVM.MainWindowM.nInstance.ToString()
|
|
End If
|
|
Return sFilePath
|
|
End Get
|
|
End Property
|
|
|
|
Private m_MachinePanelVM As MachinePanelVM
|
|
Public ReadOnly Property MachinePanelVM As MachinePanelVM
|
|
Get
|
|
Return m_MachinePanelVM
|
|
End Get
|
|
End Property
|
|
|
|
Private m_SelPage As Pages
|
|
Public Property SelPage As Integer
|
|
Get
|
|
Return m_SelPage
|
|
End Get
|
|
Set(value As Integer)
|
|
SetSelPage(value)
|
|
End Set
|
|
End Property
|
|
Friend Sub SetSelPage(Page As Pages)
|
|
Dim bOk As Boolean = True
|
|
' Esco dallo stato corrente
|
|
Select Case m_SelPage
|
|
Case Pages.HOME
|
|
'bOk = ExitHOME()
|
|
Case Pages.ESTIMATING
|
|
'bOk = ExitESTIMATING()
|
|
Case Pages.PRODUCING
|
|
' bOk = ExitPRODUCING()
|
|
Case Pages.DESIGNING
|
|
'bOk = ExitDESIGNING()
|
|
End Select
|
|
If bOk Then
|
|
' Entro nel nuovo stato
|
|
m_SelPage = Page
|
|
Select Case m_SelPage
|
|
Case Pages.HOME
|
|
'bOk = InitHOME()
|
|
Case Pages.ESTIMATING
|
|
'bOk = InitESTIMATING()
|
|
bOk = Map.refCRMPageVM.InitCRMPage()
|
|
Case Pages.PRODUCING
|
|
'bOk = InitPRODUCING()
|
|
Case Pages.DESIGNING
|
|
'bOk = InitDESIGNING()
|
|
End Select
|
|
End If
|
|
NotifyPropertyChanged(NameOf(SelPage))
|
|
End Sub
|
|
|
|
' 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
|
|
Map.BeginInit(Me)
|
|
' Creo Model della MainWindow
|
|
m_MainWindowM = New MainWindowM
|
|
' inizializzo machine panel
|
|
m_MachinePanelVM = New MachinePanelVM
|
|
' Installo funzione gestione eventi per lua
|
|
EgtSetProcessEvents(m_ProcEventsCallback)
|
|
End Sub
|
|
|
|
#End Region ' CONSTRUCTOR
|
|
|
|
'#Region "METHODS"
|
|
|
|
Friend Sub ContentRendered()
|
|
|
|
End Sub
|
|
|
|
Friend Sub KeyDown(PressedKey As Key)
|
|
' ' Con ESC esco dall'azione corrente
|
|
' If PressedKey = Key.Escape Then
|
|
' ' resetto sempre input box a meno che non sia nelle ribs e stia creando il percorso
|
|
' If Not (Not IsNothing(Map.refTopPanelVM.SelPage) AndAlso Map.refTopPanelVM.SelPage = Pages.MODIFY AndAlso
|
|
' Not IsNothing(Map.refTopPanelVM.SelModifyMode) AndAlso
|
|
' ((Map.refTopPanelVM.SelModifyMode.ModifyMode = ModifyModes.RIBS AndAlso Map.refRibPanelVM.bIsCreatingPath) OrElse
|
|
' (Map.refTopPanelVM.SelModifyMode.ModifyMode = ModifyModes.SHELLNUMBER AndAlso Map.refShellNumberPanelVM.bIsCreatingPath))) Then
|
|
' Map.refControllerInputPanelVM.ResetInputBox()
|
|
' End If
|
|
' If Not IsNothing(Map.refTopPanelVM.SelPage) AndAlso Map.refTopPanelVM.SelPage = Pages.MODIFY AndAlso
|
|
' Not IsNothing(Map.refTopPanelVM.SelModifyMode) Then
|
|
' Dim nNewExtrusionLayerId As Integer = GDB_ID.NULL
|
|
' If Map.refTopPanelVM.SelModifyMode.ModifyMode = ModifyModes.RIBS Then
|
|
' ' cancello eventuali layer di modifica
|
|
' If Not IsNothing(Map.refTopPanelVM.SelPart) AndAlso Not Map.refRibPanelVM.bIsCreatingPath Then
|
|
' nNewExtrusionLayerId = EgtGetFirstNameInGroup(Map.refTopPanelVM.SelPart.nPartId, LAY_NEWEXTRUSION)
|
|
' If nNewExtrusionLayerId <> GDB_ID.NULL Then
|
|
' EgtErase(nNewExtrusionLayerId)
|
|
' End If
|
|
' Dim nNewRibLayerId As Integer = EgtGetFirstNameInGroup(Map.refTopPanelVM.SelPart.nPartId, LAY_NEWRIB)
|
|
' If nNewRibLayerId <> GDB_ID.NULL Then
|
|
' EgtErase(nNewRibLayerId)
|
|
' End If
|
|
' End If
|
|
' ' annullo trasparenza attivata durante edit rib
|
|
' If Not IsNothing(Map.refRibPanelVM.SelRib) Then
|
|
' 'EgtSetAlpha(Map.refRibPanelVM.SelRib.nExtrusionId, 100)
|
|
' End If
|
|
' ElseIf Map.refTopPanelVM.SelModifyMode.ModifyMode = ModifyModes.SHELLNUMBER Then
|
|
' ' cancello eventuali layer di modifica
|
|
' If Not IsNothing(Map.refTopPanelVM.SelPart) AndAlso Not Map.refShellNumberPanelVM.bIsCreatingPath Then
|
|
' nNewExtrusionLayerId = EgtGetFirstNameInGroup(Map.refTopPanelVM.SelPart.nPartId, LAY_NEWEXTRUSION)
|
|
' If nNewExtrusionLayerId <> GDB_ID.NULL Then
|
|
' EgtErase(nNewExtrusionLayerId)
|
|
' End If
|
|
' Dim nNewRibLayerId As Integer = EgtGetFirstNameInGroup(Map.refTopPanelVM.SelPart.nPartId, LAY_NEWRIB)
|
|
' If nNewRibLayerId <> GDB_ID.NULL Then
|
|
' EgtErase(nNewRibLayerId)
|
|
' End If
|
|
' End If
|
|
' ' annullo trasparenza attivata durante edit rib
|
|
' If Not IsNothing(Map.refShellNumberPanelVM.SelShellNumber) Then
|
|
' 'EgtSetAlpha(Map.refShellNumberPanelVM.SelShellNumber.nExtrusionId, 100)
|
|
' End If
|
|
' End If
|
|
' End If
|
|
' ' reset Azione corrente
|
|
' Map.refSceneHostVM.MainController.ResetStatus()
|
|
' ' se misura attiva, la disattivo
|
|
' If Map.refInstrumentPanelVM.GetDistIsChecked Then
|
|
' Map.refInstrumentPanelVM.SetGetDistance_IsChecked(False)
|
|
' End If
|
|
' ' pulisco output
|
|
' Map.refMyStatusBarVM.ClearOutputMessage()
|
|
' End If
|
|
End Sub
|
|
|
|
Private Function ProcessEvents(ByVal nProg As Integer, ByVal nPause As Integer) As Integer
|
|
' If Map.refSliceManagerVM.bCalculating OrElse Map.refSliceManagerVM.bCalcSolid Then
|
|
' Map.refSliceManagerVM.ProcessEvents(nProg, nPause)
|
|
' End If
|
|
' If Not IsNothing(Map.refImportLoadingWndVM) Then
|
|
' Map.refImportLoadingWndVM.ProcessEvents(nProg, nPause)
|
|
' End If
|
|
' Map.refMyStatusBarVM.ProcessEvents(nProg, nPause)
|
|
' Return 0
|
|
End Function
|
|
|
|
Friend Sub CloseApplication()
|
|
If (Keyboard.Modifiers And ModifierKeys.Alt) = ModifierKeys.Alt OrElse Keyboard.IsKeyDown(Key.F4) Then
|
|
Return
|
|
End If
|
|
'' gestisco la chiusura della simulazione
|
|
'If Map.refRightPanelVM.SelPanel = RightPanelVM.Panels.SIMULATION AndAlso Not IsNothing(Map.refSimulationPanelVM) Then
|
|
' Map.refSimulationPanelVM.MySimul.ResetSimulation()
|
|
'End If
|
|
' Gestisco eventuale file corrente modificato
|
|
Dim bOk As Boolean = True
|
|
'bOk = ProjFileVM.VerifyProjectModification(Map.refProjManagerVM.CurrProj, ProjectType.PROJ)
|
|
' se salvataggio annullato, rimango
|
|
If Not bOk Then Return
|
|
Dim bAllowClose As Boolean = Map.refSceneHostVM.MainController.ManageModified()
|
|
' Salvo impostazione macchina corrente
|
|
'Map.refMachinePanelVM.SaveCurrentMachine()
|
|
' Se non confermata chiusura, esco
|
|
If Not bAllowClose Then Return
|
|
' salvo modo di visualizzazione
|
|
WriteMainPrivateProfileString(S_SCENE, K_SHOWMODE, EgtGetShowMode().ToString())
|
|
' Salvo stato visualizzazione direzione curve
|
|
WriteMainPrivateProfileString(S_SCENE, K_CURVEDIR, If(EgtGetShowCurveDirection(), "1", "0"))
|
|
'' Salvo stato visualizzazione griglia
|
|
'WriteMainPrivateProfileString(S_GRID, K_SHOWGRID, If(Map.refMyStatusBarVM.bGridVisibility, "1", "0"))
|
|
' Termino il Model
|
|
m_MainWindowM.Close()
|
|
' Termino il programma
|
|
Application.Current.Shutdown()
|
|
End Sub
|
|
|
|
#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 Map.refSliceManagerVM.bCalculating Then
|
|
' MessageBox.Show("Impossible closing software! Wait end of calculation!", "Error", MessageBoxButton.OK, MessageBoxImage.Error)
|
|
' Return
|
|
'End If
|
|
CloseApplication()
|
|
End Sub
|
|
|
|
#End Region ' CloseApplicationCommand
|
|
|
|
#End Region ' COMMANDS
|
|
|
|
End Class
|