From 7599503601553ceaaefdb70b2d4f5a56991b2fe2 Mon Sep 17 00:00:00 2001 From: Emmanuele Sassi Date: Thu, 15 Apr 2021 15:21:48 +0200 Subject: [PATCH] Correzioni rimozione elementi in liste --- .../MachGroup Model/BeamMachGroupM.vb | 4 +- .../MachGroup Model/MyMachGroupM.vb | 18 ++++ EgtBEAMWALL.Core/PartM.vb | 12 +++ .../LeftPanel/LeftPanelVM.vb | 10 +-- .../MachGroupPanel/BeamMachGroupVM.vb | 5 ++ .../MachGroupPanel/MyMachGroupPanelVM.vb | 5 ++ .../MainMenu/MainMenuVM.vb | 10 ++- .../MainWindow/MainWindowVM.vb | 6 ++ .../ProdManager/ProdManagerVM.vb | 23 +++-- .../ProjManager/ProjManagerVM.vb | 85 +++++-------------- .../ProjectManager/ProjectFileVM.vb | 10 +++ 11 files changed, 108 insertions(+), 80 deletions(-) diff --git a/EgtBEAMWALL.Core/MachGroup Model/BeamMachGroupM.vb b/EgtBEAMWALL.Core/MachGroup Model/BeamMachGroupM.vb index 4b14204c..4c8c3edc 100644 --- a/EgtBEAMWALL.Core/MachGroup Model/BeamMachGroupM.vb +++ b/EgtBEAMWALL.Core/MachGroup Model/BeamMachGroupM.vb @@ -90,13 +90,13 @@ Public Class BeamMachGroupM m_dStartCut = 0 End If ' aggiorno lista pezzi - PartMList.Clear() + RemoveAllParts() Dim nRawPartId As Integer = EgtGetFirstRawPart() While nRawPartId <> GDB_ID.NULL Dim nPartId As Integer = EgtGetFirstPartInRawPart(nRawPartId) If nPartId <> GDB_ID.NULL Then Dim NewBeam As BeamM = BeamM.CreateBeam(Me, nPartId, nRawPartId) - PartMList.Add(NewBeam) + AddPart(NewBeam) NewBeam.UpdateOffset() End If nRawPartId = EgtGetNextRawPart(nRawPartId) diff --git a/EgtBEAMWALL.Core/MachGroup Model/MyMachGroupM.vb b/EgtBEAMWALL.Core/MachGroup Model/MyMachGroupM.vb index a85370d3..45ca0d0c 100644 --- a/EgtBEAMWALL.Core/MachGroup Model/MyMachGroupM.vb +++ b/EgtBEAMWALL.Core/MachGroup Model/MyMachGroupM.vb @@ -132,6 +132,7 @@ Public MustInherit Class MyMachGroupM #Region "METHODS" Public Event PartAdded As EventHandler(Of PartAddedEventArgs) + Public Event PartRemoved As EventHandler(Of PartAddedEventArgs) Public Sub AddPart(PartM As PartM) If IsNothing(PartM) Then Return @@ -141,6 +142,23 @@ Public MustInherit Class MyMachGroupM End If End Sub + Public Sub RemovePart(PartM As PartM) + If IsNothing(PartM) Then Return + If m_PartMList.Contains(PartM) AndAlso m_PartMList.Remove(PartM) Then + RaiseEvent PartRemoved(Me, New PartAddedEventArgs(PartM)) + End If + End Sub + + Public Sub RemoveAllParts() + If IsNothing(m_PartMList) Then Return + For PartIndex = m_PartMList.Count - 1 To 0 Step -1 + Dim PartM As PartM = m_PartMList(PartIndex) + If m_PartMList.Remove(PartM) Then + RaiseEvent PartRemoved(Me, New PartAddedEventArgs(PartM)) + End If + Next + End Sub + Public Function GetParts() As List(Of PartM) Return New List(Of PartM)(m_PartMList) End Function diff --git a/EgtBEAMWALL.Core/PartM.vb b/EgtBEAMWALL.Core/PartM.vb index 6f78714a..af643b29 100644 --- a/EgtBEAMWALL.Core/PartM.vb +++ b/EgtBEAMWALL.Core/PartM.vb @@ -236,6 +236,13 @@ Public MustInherit Class PartM End Set End Property + Protected m_nBTLPartId As Integer + Public ReadOnly Property nBTLPartId As Integer + Get + Return m_nBTLPartId + End Get + End Property + #End Region ' FIELDS & PROPERTIES #Region "CONSTRUCTOR" @@ -243,6 +250,11 @@ Public MustInherit Class PartM Sub New(nParentMachGroup As MyMachGroupM, nPartId As Integer) m_ParentMachGroup = nParentMachGroup SetPartId(nPartId) + ' imposto BtlPart da cui deriva questo Duplo + Dim c As Integer = EgtGetCurrMachGroup() + EgtResetCurrMachGroup() + m_nBTLPartId = EgtDuploGetOriginal(nPartId) + EgtSetCurrMachGroup(c) End Sub #End Region ' CONSTRUCTOR diff --git a/EgtBEAMWALL.ViewerOptimizer/LeftPanel/LeftPanelVM.vb b/EgtBEAMWALL.ViewerOptimizer/LeftPanel/LeftPanelVM.vb index 8f03c828..0e01a120 100644 --- a/EgtBEAMWALL.ViewerOptimizer/LeftPanel/LeftPanelVM.vb +++ b/EgtBEAMWALL.ViewerOptimizer/LeftPanel/LeftPanelVM.vb @@ -96,8 +96,8 @@ Public Class LeftPanelVM Return End If 'aggiorno lista pezzi - BeamMachGroup.RefreshPartList() - BeamMachGroup.RefreshGroupData() + BeamMachGroup.m_BeamMachGroupM.RefreshPartList() + BeamMachGroup.m_BeamMachGroupM.RefreshGroupData() ' aggiorno dati ultilizzo barra BeamMachGroup.UpdateUsage() ElseIf Map.refMachinePanelVM.SelectedMachine.nType = MachineType.WALL Then @@ -280,7 +280,7 @@ Public Class LeftPanelVM Return False End If ' aggiorno lista pezzi - BeamMachGroup.RefreshPartList() + BeamMachGroup.m_BeamMachGroupM.RefreshPartList() ' seleziono pezzo aggiunto If BeamMachGroup.PartVMList.Count > nInsertIndex Then BeamMachGroup.SelPart = BeamMachGroup.PartVMList(nInsertIndex) Return True @@ -352,7 +352,7 @@ Public Class LeftPanelVM Dim NewPart As BTLPartM = BTLPartM.CreateBTLPart(nNewPartId) ' aggiungo pezzo alla lista Map.refProjectVM.BTLStructureVM.BTLStructureM.AddBTLPart(NewPart) - Map.refProjectVM.BTLStructureVM.SelBTLPart = Map.refProjectVM.BTLStructureVM.BTLPartVMList.Where(Function(x) x.BTLPartM Is NewPart) + Map.refProjectVM.BTLStructureVM.SelBTLPart = Map.refProjectVM.BTLStructureVM.BTLPartVMList.FirstOrDefault(Function(x) x.BTLPartM Is NewPart) End If End Sub @@ -428,7 +428,7 @@ Public Class LeftPanelVM ' creo copia Dim NewFeature = SelFeature.Copy() If Not IsNothing(NewFeature) Then - Map.refProjectVM.BTLStructureVM.SelBTLPart.SelBTLFeatureVM = Map.refProjectVM.BTLStructureVM.SelBTLPart.BTLFeatureVMList.Where(Function(x) x.BTLFeatureM Is NewFeature) + Map.refProjectVM.BTLStructureVM.SelBTLPart.SelBTLFeatureVM = Map.refProjectVM.BTLStructureVM.SelBTLPart.BTLFeatureVMList.FirstOrDefault(Function(x) x.BTLFeatureM Is NewFeature) End If End Sub diff --git a/EgtBEAMWALL.ViewerOptimizer/MachGroupPanel/BeamMachGroupVM.vb b/EgtBEAMWALL.ViewerOptimizer/MachGroupPanel/BeamMachGroupVM.vb index 534ceafb..c5974d29 100644 --- a/EgtBEAMWALL.ViewerOptimizer/MachGroupPanel/BeamMachGroupVM.vb +++ b/EgtBEAMWALL.ViewerOptimizer/MachGroupPanel/BeamMachGroupVM.vb @@ -65,6 +65,7 @@ Public Class BeamMachGroupVM Sub New(BeamMachGroupM As BeamMachGroupM) MyBase.New(BeamMachGroupM) AddHandler m_BeamMachGroupM.PartAdded, AddressOf OnBeamAdded + AddHandler m_BeamMachGroupM.PartRemoved, AddressOf OnBeamRemoved CreateBeamVMList() End Sub @@ -254,6 +255,10 @@ Public Class BeamMachGroupVM Dim BeamVM As BeamVM = New BeamVM(e.NewPart) PartVMList.Add(BeamVM) End Sub + Private Sub OnBeamRemoved(sender As Object, e As PartAddedEventArgs) + Dim BeamVM As BeamVM = PartVMList.FirstOrDefault(Function(x) x.PartM Is e.m_NewPart) + If Not IsNothing(BeamVM) Then PartVMList.Remove(BeamVM) + End Sub Private Sub OnBeamVMListChanged(sender As Object, e As NotifyCollectionChangedEventArgs) If Not IsNothing(e.NewItems) AndAlso e.NewItems.Count > 0 Then diff --git a/EgtBEAMWALL.ViewerOptimizer/MachGroupPanel/MyMachGroupPanelVM.vb b/EgtBEAMWALL.ViewerOptimizer/MachGroupPanel/MyMachGroupPanelVM.vb index 017c89c8..cfe0b9da 100644 --- a/EgtBEAMWALL.ViewerOptimizer/MachGroupPanel/MyMachGroupPanelVM.vb +++ b/EgtBEAMWALL.ViewerOptimizer/MachGroupPanel/MyMachGroupPanelVM.vb @@ -67,6 +67,11 @@ Public Class MyMachGroupPanelVM Return True End Function + Public Function RefreshMachGroupList() As Boolean + + End Function + + Public Overrides Sub AddMachGroup() Dim SelMyMachine As MyMachine = Map.refMachinePanelVM.SelectedMachine Dim MyMachGroupM As MyMachGroupM = m_MyMachGroupPanelM.NewMyMachGroup(SelMyMachine.Name, SelMyMachine.nType) diff --git a/EgtBEAMWALL.ViewerOptimizer/MainMenu/MainMenuVM.vb b/EgtBEAMWALL.ViewerOptimizer/MainMenu/MainMenuVM.vb index 6d40cf76..fb92a9cc 100644 --- a/EgtBEAMWALL.ViewerOptimizer/MainMenu/MainMenuVM.vb +++ b/EgtBEAMWALL.ViewerOptimizer/MainMenu/MainMenuVM.vb @@ -142,6 +142,10 @@ Public Class MainMenuVM Map.refProjectVM.SetProdManager_Visibility(True) ' verifico se progetto modificato, e chiedo se salvare If bVerifyModification Then ProjFileVM.VerifyProjectModification(Map.refProjManagerVM.CurrProj, ProjectType.PROJ) + ' sblocco progetto + If Not IsNothing(Map.refProjManagerVM.CurrProj) Then + DbControllers.m_ProjController.LockByProjId(Map.refProjManagerVM.CurrProj.nProjId, False) + End If Return True End Function @@ -161,8 +165,8 @@ Public Class MainMenuVM If File.Exists(Map.refProdManagerVM.CurrProd.sProdPath) Then ' apro progetto Map.refSceneHostVM.MainController.OpenProject(Map.refProdManagerVM.CurrProd.sProdPath, False) - ' inizializzo gruppi di lavorazione - Map.refMachGroupPanelVM.InitMachGroupList() + '' inizializzo gruppi di lavorazione + 'Map.refMachGroupPanelVM.InitMachGroupList() Else MessageBox.Show("File non trovato!!") End If @@ -186,6 +190,8 @@ Public Class MainMenuVM ' verifico se progetto modificato, e chiedo se salvare If bVerifyModification Then ProdFileVM.VerifyProjectModification(Map.refProdManagerVM.CurrProd) EgtResetCurrMachGroup() + ' sblocco progetto + DbControllers.m_ProjController.LockByProjId(Map.refProjManagerVM.CurrProj.nProjId, False) Return True End Function diff --git a/EgtBEAMWALL.ViewerOptimizer/MainWindow/MainWindowVM.vb b/EgtBEAMWALL.ViewerOptimizer/MainWindow/MainWindowVM.vb index bab7970f..87f65677 100644 --- a/EgtBEAMWALL.ViewerOptimizer/MainWindow/MainWindowVM.vb +++ b/EgtBEAMWALL.ViewerOptimizer/MainWindow/MainWindowVM.vb @@ -166,6 +166,12 @@ Public Class MainWindowVM ' Salvo nome ultimo file (per gestire bene multi istanza) Dim sFilePath As String = String.Empty If EgtGetCurrFilePath(sFilePath) Then WriteMainPrivateProfileString(S_GENERAL, K_LASTPROJ, sFilePath) + ' tolgo lock da file aperto + If Map.refMainMenuVM.SelPage = Pages.VIEW Then + DbControllers.m_ProjController.LockByProjId(Map.refProjManagerVM.CurrProj.nProjId, False) + ElseIf Map.refMainMenuVM.SelPage = Pages.MACHINING Then + DbControllers.m_ProdController.LockByProdId(Map.refProdManagerVM.CurrProd.nProdId, False) + End If ' Termino il Model m_MainWindowM.Close() ' Termino il programma diff --git a/EgtBEAMWALL.ViewerOptimizer/ProdManager/ProdManagerVM.vb b/EgtBEAMWALL.ViewerOptimizer/ProdManager/ProdManagerVM.vb index 79ea6194..29b48c6a 100644 --- a/EgtBEAMWALL.ViewerOptimizer/ProdManager/ProdManagerVM.vb +++ b/EgtBEAMWALL.ViewerOptimizer/ProdManager/ProdManagerVM.vb @@ -133,7 +133,8 @@ Public Class ProdManagerVM TempCurrProd = OpenProjectFileDialogVM.SelProject If File.Exists(sFilePath) Then If Map.refSceneHostVM.MainController.OpenProject(sFilePath, False) Then - + m_CurrProd = TempCurrProd + Map.refMainWindowVM.UpdateTitle() 'If Map.refMachGroupPanelVM.InitMachGroupList() Then ' m_CurrProd = TempCurrProd ' Map.refMainWindowVM.SetTitle(CurrProd.nProdId.ToString("0000") & " - EgtBEAMWALL") @@ -175,22 +176,26 @@ Public Class ProdManagerVM ''' Execute the Save. This method is invoked by the SaveCommand. ''' Public Sub Save() + If IsNothing(m_CurrProd) Then Return Map.refSceneHostVM.SaveProject() Map.refMainWindowVM.SetTitle(CurrProd.nProdId.ToString("0000") & " - EgtBEAMWALL") Dim MyMachGroupList As New List(Of MyMachGroupM) - '''For Each MachGroup In Map.refProjectVM.MachGroupPanelVM.MachGroupVMList - ''' If Map.refMachinePanelVM.SelectedMachine.nType = MachineType.BEAM Then - ''' MyMachGroupList.Add(New BeamMachGroupM(MachGroup.Id, MachGroup.Name, MachGroup.Machine)) - ''' ElseIf Map.refMachinePanelVM.SelectedMachine.nType = MachineType.WALL Then - ''' MyMachGroupList.Add(New WallMachGroup(MachGroup.Id, MachGroup.Name, MachGroup.Machine)) - ''' End If - '''Next + For Each MachGroup In Map.refProjectVM.MachGroupPanelVM.m_MyMachGroupPanelM.MachGroupMList + MyMachGroupList.Add(MachGroup) + Next + 'For Each MachGroup In Map.refProjectVM.MachGroupPanelVM.MachGroupVMList + ' If Map.refMachinePanelVM.SelectedMachine.nType = MachineType.BEAM Then + ' MyMachGroupList.Add(BeamMachGroupM.CreateBeamMachGroup(MachGroup.Id, MachGroup.Name, MachGroup.Machine)) + ' ElseIf Map.refMachinePanelVM.SelectedMachine.nType = MachineType.WALL Then + ' MyMachGroupList.Add(New WallMachGroup(MachGroup.Id, MachGroup.Name, MachGroup.Machine)) + ' End If + 'Next 'If Map.refMachinePanelVM.SelectedMachine.nType = MachineType.BEAM Then ' MyMachGroupList = Map.refProjectVM.MachGroupPanelVM.MachGroupList.Select(Function(x) New Core.BeamMachGroup(x.Id, x.Name, x.Machine)).ToList() 'ElseIf Map.refMachinePanelVM.SelectedMachine.nType = MachineType.wall Then ' MyMachGroupList = Map.refProjectVM.MachGroupPanelVM.MachGroupList.Select(Function(x) New Core.WallMachGroup(x.Id, x.Name, x.Machine)) 'End If - DbControllers.m_ProdController.UpdateMachGroup(CurrProd.nProdId, MyMachGroupList.ToList()) + DbControllers.m_ProdController.UpdateMachGroup(CurrProd.nProdId, MyMachGroupList) End Sub #End Region ' SaveCommand diff --git a/EgtBEAMWALL.ViewerOptimizer/ProjManager/ProjManagerVM.vb b/EgtBEAMWALL.ViewerOptimizer/ProjManager/ProjManagerVM.vb index 2b6522db..3741190f 100644 --- a/EgtBEAMWALL.ViewerOptimizer/ProjManager/ProjManagerVM.vb +++ b/EgtBEAMWALL.ViewerOptimizer/ProjManager/ProjManagerVM.vb @@ -194,12 +194,12 @@ Public Class ProjManagerVM End Function Public Function SetCurrProj(nProjId As Integer) As Boolean - Dim Currproj As ProjModel = DbControllers.m_ProjController.FindByProjId(nProjId) + If Not IsNothing(m_CurrProj) Then + DbControllers.m_ProjController.LockByProjId(m_CurrProj.nProjId, False) + End If + Dim Currproj As ProjFileM = DbControllers.m_ProjController.FindByProjIdConv(nProjId) If IsNothing(Currproj) Then Return False - m_CurrProj = New ProjFileVM(ProjFileM.CreateProjFileM(Currproj.ProjId, - If(Not IsNothing(Currproj.Prod), Currproj.Prod.ProdId, Nothing), - Currproj.DtCreated, - Currproj.DtExported, Currproj.ListName, Currproj.BTLFileName)) + m_CurrProj = New ProjFileVM(Currproj) Return True End Function @@ -237,7 +237,6 @@ Public Class ProjManagerVM Dim sProjDir As String = "" InitNewProject(nProjId, sProjDir) SetCurrProj(nProjId) - 'DbControllers.m_ProjController.LockByProjId(m_CurrProj.nProjId) Else MessageBox.Show("Impossibile creare un nuovo file!!") End If @@ -289,7 +288,7 @@ Public Class ProjManagerVM End If If Map.refSceneHostVM.MainController.OpenProject(sFilePath, False) Then m_CurrProj = TempCurrProj - 'DbControllers.m_ProjController.LockByProjId(m_CurrProj.nProjId) + DbControllers.m_ProjController.LockByProjId(m_CurrProj.nProjId, True) Map.refMainWindowVM.UpdateTitle() Else MessageBox.Show("Impossibile aprire il file!!") @@ -322,51 +321,11 @@ Public Class ProjManagerVM Map.refMainWindowVM.SetTitle(CurrProj.nProjId.ToString("0000") & " - " & CurrProj.sBTLFileName & " - EgtBEAMWALL") ' aggiorno BTLParts su DB DbControllers.m_ProjController.UpdateBtlParts(CurrProj.nProjId, Map.refProjectVM.BTLStructureVM.BTLStructureM.BTLPartMList) - ' se nuovo progetto, aggiorno dati su Db If m_CurrProj.bIsNew Then - Dim ExportDate As DateTime - DateTime.TryParse(Map.refProjectVM.BTLStructureVM.BTLStructureM.m_sEXPDATE & - Map.refProjectVM.BTLStructureVM.BTLStructureM.m_sEXPTIME, ExportDate) - UpdateProjData(CurrProj.nProdId, CurrProj.nProdId, ExportDate, - Map.refProjectVM.BTLStructureVM.BTLStructureM.m_sLISTNAME) + ' resetto stato new + DbControllers.m_ProjController.ResetNew(CurrProj.nProdId) End If - ' 'm_nLastProjId = m_nLastProjId + 1 - ' 'WriteMainPrivateProfileString(S_GENERAL, K_PROJSINDEX, (m_nLastProjId).ToString()) - ' m_CurrProj.NewProj = False - - ' ' ' bozza salvataggio su DB - ' ' Dim DbMan As New DataLayer.DbManager - ' ' Dim newDbProj As DataLayer.DatabaseModels.ProjModel - ' ' newDbProj = DbMan.ProjCtr.Create(m_CurrProj.nProjId, m_CurrProj.BTLFileName) - - ' ' If (False) Then - - ' ' ' caso FALSE ADV - ' ' DataLayer.DbManager.AdvDataModel = False - - ' ' ' creo le parts - ' ' Dim BTLPartList As New List(Of DataLayer.DatabaseModels.BTLPartModel) - - ' ' For Each part As BTLPart In Map.refProjectVM.BTLStructure.PartList - ' ' BTLPartList.Add(New DataLayer.DatabaseModels.BTLPartModel() With {.PartId = part.nPartId}) - ' ' Next - - ' ' DbMan.BtlPartCtr.Create(newDbProj.ProjDbId, BTLPartList) - ' ' Else - ' ' DataLayer.DbManager.AdvDataModel = True - - ' ' ' creo le parts - ' ' Dim BTLPartList As New List(Of DataLayer.DatabaseModels.BTLPartModel) - - ' ' For Each part As Core.BTLPart In Map.refProjectVM.BTLStructure.PartList - ' ' BTLPartList.Add(DbMan.BtlPartCtr.Convert(part)) - ' ' Next - - ' ' DbMan.BtlPartCtr.Create(newDbProj.ProjDbId, BTLPartList) - ' ' End If - - 'End If End Sub #End Region ' SaveCommand @@ -434,10 +393,12 @@ Public Class ProjManagerVM If bOk Then ' aggiorno Db Dim sBTLFileName As String = Path.GetFileNameWithoutExtension(BTLDlg.FileName) - UpdateBTLFileName(nProjId, sBTLFileName) + 'UpdateBTLFileName(nProjId, sBTLFileName) + Dim ExportDate As DateTime + DateTime.TryParse(Map.refProjectVM.BTLStructureVM.BTLStructureM.m_sEXPDATE & + Map.refProjectVM.BTLStructureVM.BTLStructureM.m_sEXPTIME, ExportDate) + DbControllers.m_ProjController.UpdateInfo(nProjId, sBTLFileName, Map.refProjectVM.BTLStructureVM.sLISTNAME, ExportDate) SetCurrProj(nProjId) - Map.refProjManagerVM.CurrProj.SetBTLFileName(sBTLFileName) - 'm_CurrProj.NewProj = True Map.refMainWindowVM.UpdateTitle() Else ' elimino da Db @@ -475,17 +436,17 @@ Public Class ProjManagerVM Map.refSceneHostVM.MainController.ResetModified() End If End If - ' Recupero Prod per questo Proj da Db - Dim nProdId As Integer = 0 - Dim DbProj As DataLayer.DatabaseModels.ProjModel = DbControllers.m_ProjController.FindByProjId(m_CurrProj.nProjId) - If Not IsNothing(DbProj) Then - If Not IsNothing(DbProj.ProdDbId) And DbProj.ProdDbId > 0 Then - ' recupero ProdId - nProdId = DbControllers.m_ProdController.FindByProdDbId(DbProj.ProdDbId).ProdId - End If - End If + ''' Recupero Prod per questo Proj da Db + ''Dim nProdId As Integer = 0 + ''Dim DbProj As DataLayer.DatabaseModels.ProjModel = DbControllers.m_ProjController.FindByProjId(m_CurrProj.nProjId) + ''If Not IsNothing(DbProj) Then + '' If Not IsNothing(DbProj.ProdDbId) And DbProj.ProdDbId > 0 Then + '' ' recupero ProdId + '' nProdId = DbControllers.m_ProdController.FindByProdDbId(DbProj.ProdDbId).ProdId + '' End If + ''End If - 'If m_CurrProj.nProdId > 0 Then + Dim nProdId As Integer = Map.refProjManagerVM.CurrProj.nProdId If nProdId > 0 Then 'Map.refSceneHostVM.MainController.OpenProject(m_CurrProj.sProdPath, False) Map.refProdManagerVM.SetCurrProd(nProdId) diff --git a/EgtBEAMWALL.ViewerOptimizer/ProjectManager/ProjectFileVM.vb b/EgtBEAMWALL.ViewerOptimizer/ProjectManager/ProjectFileVM.vb index f80a822c..08300649 100644 --- a/EgtBEAMWALL.ViewerOptimizer/ProjectManager/ProjectFileVM.vb +++ b/EgtBEAMWALL.ViewerOptimizer/ProjectManager/ProjectFileVM.vb @@ -58,6 +58,16 @@ Public Class ProjectFileVM End Set End Property + Private Property m_bIsLocked As Boolean = False + Public Overridable Property bIsLocked As Boolean + Get + Return m_bIsLocked + End Get + Set(value As Boolean) + m_bIsLocked = value + End Set + End Property + #Region "CONSTRUCTORS" #End Region ' CONSTRUCTORS