From 19f0ed75a42e1a9f5229d73bb570d5cc8e162de7 Mon Sep 17 00:00:00 2001 From: Demetrio Cassarino Date: Fri, 12 Apr 2024 17:28:26 +0200 Subject: [PATCH] -modifiche su proj nuova pagina --- .../BTLPartManager/BTLPartManagerVM.vb | 3 +- .../BTLViewModel/BTLPartVM.vb | 2 +- .../CALCPanel/CALCPanelVM.vb | 12 ++++---- .../OnlyProdManager/OnlyProdManagerVM.vb | 18 +++++------ .../ProdManager/ProdManagerVM.vb | 3 +- .../ProjManager/ProjManagerVM.vb | 30 ++++++++++--------- .../ProjectManager/ProjectManagerVM.vb | 11 +++++++ .../SceneHost/MySceneHostVM.vb | 24 ++++++++++----- 8 files changed, 62 insertions(+), 41 deletions(-) diff --git a/EgtBEAMWALL.ViewerOptimizer/BTLPartManager/BTLPartManagerVM.vb b/EgtBEAMWALL.ViewerOptimizer/BTLPartManager/BTLPartManagerVM.vb index 1798a601..990234ce 100644 --- a/EgtBEAMWALL.ViewerOptimizer/BTLPartManager/BTLPartManagerVM.vb +++ b/EgtBEAMWALL.ViewerOptimizer/BTLPartManager/BTLPartManagerVM.vb @@ -952,7 +952,7 @@ Public Class BTLPartManagerVM ''' Public Sub AddPart(ByVal param As Object) If IsNothing(ProjectManagerVM.CurrProj) Then Return - If IsNothing(ProjectManagerVM.CurrProj) Then Return + If IsNothing(ProjectManagerVM.CurrProd) Then Return ' apro finestra di definizione nuovo part Dim AddPartWndVM As New AddPartWndVM() Dim AddPartWnd As Object = Nothing @@ -966,7 +966,6 @@ Public Class BTLPartManagerVM Dim nNewPartId As Integer = EgtBeamCreatePart() ' scrivo info proj EgtSetInfo(nNewPartId, BTL_PRT_PROJ, ProjectManagerVM.CurrProj.nProjId) - EgtSetInfo(nNewPartId, BTL_PRT_PROJ, ProjectManagerVM.CurrProj.nProjId) EgtBeamSetPartProdNbr(AddPartWndVM.nPDN) If Not IsNothing(AddPartWndVM.sNAM) Then EgtBeamSetPartName(AddPartWndVM.sNAM) EgtBeamSetPartCount(AddPartWndVM.nCNT) diff --git a/EgtBEAMWALL.ViewerOptimizer/BTLViewModel/BTLPartVM.vb b/EgtBEAMWALL.ViewerOptimizer/BTLViewModel/BTLPartVM.vb index 2e4c4cf0..3371dbb1 100644 --- a/EgtBEAMWALL.ViewerOptimizer/BTLViewModel/BTLPartVM.vb +++ b/EgtBEAMWALL.ViewerOptimizer/BTLViewModel/BTLPartVM.vb @@ -1835,7 +1835,7 @@ Public Class BTLPartVM If Map.refMainMenuVM.SelPage = Pages.VIEW AndAlso Not IsNothing(Map.refProjManagerVM) Then EgtSetInfo(nNewPartId, BTL_PRT_PROJ, ProjectManagerVM.CurrProj.nProjId) ElseIf Map.refMainMenuVM.SelPage = Pages.ONLYPRODPAGE AndAlso Not IsNothing(Map.refOnlyProdManagerVM) Then - EgtSetInfo(nNewPartId, BTL_PRT_PROJ, Map.refOnlyProdManagerVM.CurrProd.nProdId) + EgtSetInfo(nNewPartId, BTL_PRT_PROJ, Map.refOnlyProdManagerVM.CurrProd.nProjIdList(0)) End If EgtBeamSetPartProdNbr(m_BTLStructureM.NewPDN()) EgtBeamSetPartName(m_BTLPartM.sNAM) diff --git a/EgtBEAMWALL.ViewerOptimizer/CALCPanel/CALCPanelVM.vb b/EgtBEAMWALL.ViewerOptimizer/CALCPanel/CALCPanelVM.vb index df776a4b..47cc04e2 100644 --- a/EgtBEAMWALL.ViewerOptimizer/CALCPanel/CALCPanelVM.vb +++ b/EgtBEAMWALL.ViewerOptimizer/CALCPanel/CALCPanelVM.vb @@ -1169,7 +1169,11 @@ Public Class CALCPanelVM Dim nPartProjId As Integer 'Dim TempList As New List(Of BTLPartM) Dim nPartId As Integer = EgtGetFirstPart() - ProjId = ProjectManagerVM.CurrProj.nProjId + If Map.refMainMenuVM.SelPage = Pages.ONLYPRODPAGE Then + ProjId = ProjectManagerVM.CurrProd.nProjIdList(0) + Else + ProjId = ProjectManagerVM.CurrProj.nProjId + End If EgtGetInfo(nPartId, BTL_PRT_PROJ, nPartProjId) While nPartId <> GDB_ID.NULL ' se devo filtrare un progetto @@ -1222,11 +1226,7 @@ Public Class CALCPanelVM End If End If ' rigenero struttura BTL - If Map.refMainMenuVM.SelPage = Pages.ONLYPRODPAGE Then - Map.refProjectVM.BTLStructureVM = New BTLStructureVM(BTLStructureM.CreateBTLStructure(nPartProjId)) - Else - Map.refProjectVM.BTLStructureVM = New BTLStructureVM(BTLStructureM.CreateBTLStructure(ProjId)) - End If + Map.refProjectVM.BTLStructureVM = New BTLStructureVM(BTLStructureM.CreateBTLStructure(ProjId)) End Sub #End Region ' Ok diff --git a/EgtBEAMWALL.ViewerOptimizer/OnlyProdManager/OnlyProdManagerVM.vb b/EgtBEAMWALL.ViewerOptimizer/OnlyProdManager/OnlyProdManagerVM.vb index bfa454b3..07680513 100644 --- a/EgtBEAMWALL.ViewerOptimizer/OnlyProdManager/OnlyProdManagerVM.vb +++ b/EgtBEAMWALL.ViewerOptimizer/OnlyProdManager/OnlyProdManagerVM.vb @@ -58,12 +58,12 @@ Public Class OnlyProdManagerVM End Property ' indice progetto in caricamento - Private m_nLoadingProjId As Integer = 0 - Public ReadOnly Property nLoadingProjId As Integer - Get - Return m_nLoadingProjId - End Get - End Property + 'Private m_nLoadingProjId As Integer = 0 + 'Public ReadOnly Property nLoadingProjId As Integer + ' Get + ' Return m_nLoadingProjId + ' End Get + 'End Property Friend m_MruFiles As New MruList Public ReadOnly Property MruFileNames As ObservableCollection(Of String) @@ -483,7 +483,7 @@ Public Class OnlyProdManagerVM Map.refCALCPanelVM.LoadMachineList() Dim sProjFileName As String = sProjDir & "\" & nProjId.ToString("0000") & ".nge" ' imposto ProjId di caricamento - m_nLoadingProjId = nProjId + ProjectManagerVM.nLoadingProjId = nProjId ' creo gruppo BTLinfo Dim nBTLInfoLayer As Integer = EgtCreateGroup(GDB_ID.ROOT) EgtSetName(nBTLInfoLayer, BTLINFO) @@ -795,7 +795,7 @@ Public Class OnlyProdManagerVM ' carico lista macchine e macchina del progetto per il pulsante Reset Macchina del CALCPanel Map.refCALCPanelVM.LoadMachineList() ' imposto ProjId di caricamento - m_nLoadingProjId = nProjId + ProjectManagerVM.nLoadingProjId = nProjId ' copio file BTL Dim sBtlCopyPath As String = sProjDir & "\" & Path.GetFileName(sFile) Dim bOk = False @@ -1613,7 +1613,7 @@ Public Class OnlyProdManagerVM InitNewProj(nNewProjId, sNewProjDir, nType, Machine) NewProjIdList.Add(nNewProjId) ' imposto ProjId di caricamento - m_nLoadingProjId = nImportProjId + ProjectManagerVM.nLoadingProjId = nImportProjId ' costruisco BTLStructure del proj Map.refProjectVM.BTLStructureVM = New BTLStructureVM(BTLStructureM.CreateBTLStructure(nImportProjId)) ' scrivo info proj su tutti i pezzi di questo progetto diff --git a/EgtBEAMWALL.ViewerOptimizer/ProdManager/ProdManagerVM.vb b/EgtBEAMWALL.ViewerOptimizer/ProdManager/ProdManagerVM.vb index 07c2dc45..9a058c4f 100644 --- a/EgtBEAMWALL.ViewerOptimizer/ProdManager/ProdManagerVM.vb +++ b/EgtBEAMWALL.ViewerOptimizer/ProdManager/ProdManagerVM.vb @@ -587,7 +587,8 @@ Public Class ProdManagerVM ' apro progetto proj Map.refProjManagerVM.SetCurrProj(nProjId) ' ricarico progetto se il prod e' nullo (quindi e' stato cancellato) - ProjectManagerVM.CurrProj.SetReloadProject(IsNothing(CurrProd) OrElse VerifyResult = MessageBoxResult.No) + 'ProjectManagerVM.CurrProj.SetReloadProject(IsNothing(CurrProd) OrElse VerifyResult = MessageBoxResult.No) + ProjectManagerVM.CurrProj.SetReloadProject(IsNothing(CurrProd) OrElse VerifyResult = MessageBoxResult.No OrElse VerifyResult = MessageBoxResult.None) ' vado in pagina proj Map.refMainMenuVM.SetSelPage(Pages.VIEW, False) LoadingWndHelper.CloseLoadingWnd(ActiveIds.GOTOPROJ) diff --git a/EgtBEAMWALL.ViewerOptimizer/ProjManager/ProjManagerVM.vb b/EgtBEAMWALL.ViewerOptimizer/ProjManager/ProjManagerVM.vb index 61815d3a..8896ac8f 100644 --- a/EgtBEAMWALL.ViewerOptimizer/ProjManager/ProjManagerVM.vb +++ b/EgtBEAMWALL.ViewerOptimizer/ProjManager/ProjManagerVM.vb @@ -67,12 +67,12 @@ Public Class ProjManagerVM End Property ' indice progetto in caricamento - Private m_nLoadingProjId As Integer = 0 - Public ReadOnly Property nLoadingProjId As Integer - Get - Return m_nLoadingProjId - End Get - End Property + 'Private m_nLoadingProjId As Integer = 0 + 'Public ReadOnly Property nLoadingProjId As Integer + ' Get + ' Return m_nLoadingProjId + ' End Get + 'End Property Friend m_MruFiles As New MruList Public ReadOnly Property MruFileNames As ObservableCollection(Of String) @@ -374,7 +374,7 @@ Public Class ProjManagerVM Map.refCALCPanelVM.LoadMachineList() Dim sProjFileName As String = sProjDir & "\" & nProjId.ToString("0000") & ".nge" ' imposto ProjId di caricamento - m_nLoadingProjId = nProjId + ProjectManagerVM.nLoadingProjId = nProjId ' creo gruppo BTLinfo Dim nBTLInfoLayer As Integer = EgtCreateGroup(GDB_ID.ROOT) EgtSetName(nBTLInfoLayer, BTLINFO) @@ -465,7 +465,8 @@ Public Class ProjManagerVM End If LoadingWndHelper.OpenLoadingWnd(ActiveIds.OPENPROJ, 3, EgtMsg(63000), EgtMsg(63001), 50) ' Project opening ' Loading project geometries ' imposto ProjId di caricamento - m_nLoadingProjId = TempCurrProj.nProjId + 'm_nLoadingProjId = TempCurrProj.nProjId + ProjectManagerVM.nLoadingProjId = TempCurrProj.nProjId ' se esiste prod prendo quello, altrimenti proj Dim sFilePath As String = "" If Not IsNothing(TempCurrProj.nProdId) AndAlso TempCurrProj.nProdId > 0 Then @@ -482,7 +483,7 @@ Public Class ProjManagerVM ' se la macchina del progetto in apertura non รจ tra le macchine disponibili lo segnalo e apro un progetto vuoto If IsNothing(Map.refMachinePanelVM.MachineList.FirstOrDefault(Function(x) x.Name = Map.refProjManagerVM.TempCurrProj.sMachine)) Then ' rimuovo il file in apertura dalla lista degli MRU - Dim ProjId As Integer = Map.refProjManagerVM.nLoadingProjId + Dim ProjId As Integer = ProjectManagerVM.nLoadingProjId Dim PjFileVM As ProjFileVM If Not IsNothing(ProjId) AndAlso ProjId <> 0 Then PjFileVM = New ProjFileVM(DbControllers.m_ProjController.FindByProjIdConv(ProjId)) @@ -564,7 +565,7 @@ Public Class ProjManagerVM ' se vista tutti i pezzi Configuration.ShowAllPieces(bShowBuilding, bShowSolid, True, False) ' imposto ProjId di caricamento - m_nLoadingProjId = CurrProj.nProjId + ProjectManagerVM.nLoadingProjId = CurrProj.nProjId Map.refSceneHostVM.SaveProject() Map.refMainWindowVM.SetTitle(CurrProj.nProjId.ToString("0000") & " - " & CurrProj.sBTLFileName & " - EgtBEAMWALL") ' aggiorno BTLParts su DB @@ -690,7 +691,7 @@ Public Class ProjManagerVM ' carico lista macchine e macchina del progetto per il pulsante Reset Macchina del CALCPanel Map.refCALCPanelVM.LoadMachineList() ' imposto ProjId di caricamento - m_nLoadingProjId = nProjId + ProjectManagerVM.nLoadingProjId = nProjId ' copio file BTL Dim sBtlCopyPath As String = sProjDir & "\" & Path.GetFileName(sFile) Dim bOk = False @@ -1519,7 +1520,7 @@ Public Class ProjManagerVM InitNewProject(nNewProjId, sNewProjDir, nType, Machine) NewProjIdList.Add(nNewProjId) ' imposto ProjId di caricamento - m_nLoadingProjId = nImportProjId + ProjectManagerVM.nLoadingProjId = nImportProjId ' costruisco BTLStructure del proj Map.refProjectVM.BTLStructureVM = New BTLStructureVM(BTLStructureM.CreateBTLStructure(nImportProjId)) ' scrivo info proj su tutti i pezzi di questo progetto @@ -1756,8 +1757,9 @@ Public Class ProjManagerVM Dim nProdId As Integer = ProjectManagerVM.CurrProj.nProdId If nProdId > 0 Then - Map.refProdManagerVM.SetCurrProd(nProdId) - ProjectManagerVM.CurrProd.SetReloadProject(Not bSaved) + ProjectManagerVM.SetCurrProd(nProdId) + 'ProjectManagerVM.CurrProd.SetReloadProject(Not bSaved) + ProjectManagerVM.CurrProd.SetReloadProject(bSaved) Else 'creo nuova ottimizzazione da progetto corrente NewProdFromProj() diff --git a/EgtBEAMWALL.ViewerOptimizer/ProjectManager/ProjectManagerVM.vb b/EgtBEAMWALL.ViewerOptimizer/ProjectManager/ProjectManagerVM.vb index 7cb36366..79add1f0 100644 --- a/EgtBEAMWALL.ViewerOptimizer/ProjectManager/ProjectManagerVM.vb +++ b/EgtBEAMWALL.ViewerOptimizer/ProjectManager/ProjectManagerVM.vb @@ -23,6 +23,17 @@ Module ProjectManagerVM End Set End Property + ' indice progetto in caricamento + Private m_nLoadingProjId As Integer = 0 + Friend Property nLoadingProjId As Integer + Get + Return m_nLoadingProjId + End Get + Set(value As Integer) + m_nLoadingProjId = value + End Set + End Property + Public Function SetCurrProj(nProjId As Integer) As Boolean Dim CurrProjM As ProjFileM = DbControllers.m_ProjController.FindByProjIdConv(nProjId) If IsNothing(CurrProjM) Then Return False diff --git a/EgtBEAMWALL.ViewerOptimizer/SceneHost/MySceneHostVM.vb b/EgtBEAMWALL.ViewerOptimizer/SceneHost/MySceneHostVM.vb index f5348545..21e909a4 100644 --- a/EgtBEAMWALL.ViewerOptimizer/SceneHost/MySceneHostVM.vb +++ b/EgtBEAMWALL.ViewerOptimizer/SceneHost/MySceneHostVM.vb @@ -519,7 +519,15 @@ Public Class MySceneHostVM Private Sub OnOpenProject(sender As Object, sFile As String, bOk As Boolean) Dim ProjectType As ProjectType = If(Map.refMainMenuVM.SelPage = Pages.VIEW, ProjectType.PROJ, ProjectType.PROD) - Dim ProjId As Integer = If(ProjectType = ProjectType.PROJ, Map.refProjManagerVM.nLoadingProjId, 0) + Dim ProjId As Integer = If(ProjectType = ProjectType.PROJ, ProjectManagerVM.nLoadingProjId, 0) + 'Dim ProjId As Integer = 0 + 'If ProjectType = ProjectType.PROJ Then + ' ProjId = ProjectManagerVM.nLoadingProjId + 'ElseIf Map.refMainMenuVM.SelPage = Pages.ONLYPRODPAGE Then + ' ProjId = ProjectManagerVM.CurrProd.nProjIdList(0) + 'Else + ' ProjId = 0 + 'End If Dim CurrProd As ProdFileVM = Nothing ' Procedo a seconda del risultato If bOk Then @@ -667,7 +675,7 @@ Public Class MySceneHostVM Private Sub OnSavedProject(ByVal sender As Object, ByVal sFile As String, ByVal bOk As Boolean) Dim ProjectType As ProjectType = If(Map.refMainMenuVM.SelPage = Pages.VIEW, ProjectType.PROJ, ProjectType.PROD) - Dim ProjId As Integer = If(ProjectType = ProjectType.PROJ, Map.refProjManagerVM.nLoadingProjId, 0) + Dim ProjId As Integer = If(ProjectType = ProjectType.PROJ, ProjectManagerVM.nLoadingProjId, 0) ' Se salvataggio non riuscito, esco subito If Not bOk Then ' in base al tipo progetto rimuovo il file in salvataggio dalla lista degli MRU @@ -728,9 +736,9 @@ Public Class MySceneHostVM While nPartId <> GDB_ID.NULL ' scrivo in ogni pezzo ProjId If Not IsNothing(Map.refProjManagerVM) Then - EgtSetInfo(nPartId, BTL_PRT_PROJ, Map.refProjManagerVM.nLoadingProjId) + EgtSetInfo(nPartId, BTL_PRT_PROJ, ProjectManagerVM.nLoadingProjId) ElseIf Not IsNothing(Map.refOnlyProdManagerVM) Then - EgtSetInfo(nPartId, BTL_PRT_PROJ, Map.refOnlyProdManagerVM.nLoadingProjId) + EgtSetInfo(nPartId, BTL_PRT_PROJ, ProjectManagerVM.nLoadingProjId) End If nPartId = EgtGetNextPart(nPartId) ' scrivo Id negli outline @@ -751,18 +759,18 @@ Public Class MySceneHostVM ' scrivo info proj e type su layer BtlInfo Dim nBTLInfoLayer As Integer = EgtGetFirstNameInGroup(GDB_ID.ROOT, BTLINFO) If Not IsNothing(Map.refProjManagerVM) AndAlso Not IsNothing(ProjectManagerVM.CurrProj) Then - EgtSetInfo(nBTLInfoLayer, BTL_PRT_PROJ, Map.refProjManagerVM.nLoadingProjId) + EgtSetInfo(nBTLInfoLayer, BTL_PRT_PROJ, ProjectManagerVM.nLoadingProjId) EgtSetInfo(nBTLInfoLayer, BTL_GEN_PROJTYPE, ProjectManagerVM.CurrProj.nType) ElseIf Not IsNothing(Map.refOnlyProdManagerVM) AndAlso Not IsNothing(Map.refOnlyProdManagerVM.CurrProj) Then - EgtSetInfo(nBTLInfoLayer, BTL_PRT_PROJ, Map.refOnlyProdManagerVM.nLoadingProjId) + EgtSetInfo(nBTLInfoLayer, BTL_PRT_PROJ, ProjectManagerVM.nLoadingProjId) EgtSetInfo(nBTLInfoLayer, BTL_GEN_PROJTYPE, Map.refOnlyProdManagerVM.CurrProd.nType) End If ' scrivo info proj su layer AsseBase Dim nAsseBaseLayer As Integer = EgtGetFirstNameInGroup(GDB_ID.ROOT, ASSEBASE) If Not IsNothing(Map.refProjManagerVM) AndAlso Not IsNothing(ProjectManagerVM.CurrProj) Then - EgtSetInfo(nAsseBaseLayer, BTL_PRT_PROJ, Map.refProjManagerVM.nLoadingProjId) + EgtSetInfo(nAsseBaseLayer, BTL_PRT_PROJ, ProjectManagerVM.nLoadingProjId) ElseIf Not IsNothing(Map.refOnlyProdManagerVM) AndAlso Not IsNothing(Map.refOnlyProdManagerVM.CurrProj) Then - EgtSetInfo(nAsseBaseLayer, BTL_PRT_PROJ, Map.refOnlyProdManagerVM.nLoadingProjId) + EgtSetInfo(nAsseBaseLayer, BTL_PRT_PROJ, ProjectManagerVM.nLoadingProjId) End If Else Dim sMsg As String = EgtMsg(10006) & " '" & sFile & "'" 'Error importing file