- correzione disabilitazione parametri LeadOut in CurrMachining

- cambiata gestione della modalita' di modifica selezionata
- corezione impostazione pagina modifica dopo apertura progetto
- verifica che non ci siano operazioni di modifica in corso prima di far partire slice
- correzione errore su chiusura percorso disegnato
- disabilitata interfaccia quando comando in corso in modifica
This commit is contained in:
Emmanuele Sassi
2023-04-17 20:00:50 +02:00
parent 554b1a662e
commit cc41ca8d82
11 changed files with 235 additions and 36 deletions
+1 -1
View File
@@ -274,7 +274,7 @@ Public Class CurrMachiningCathegory
' verifico dipendenze tra parametri
Select Case m_Type
Case Cathegories.LINK
For Each Param In {MachiningParam.Params.LINKTYPE, MachiningParam.Params.LEADIN}
For Each Param In {MachiningParam.Params.LINKTYPE, MachiningParam.Params.LEADIN, MachiningParam.Params.LEADOUT}
Dim MachiningParam As ComboMachiningParam = MachiningParamList.FirstOrDefault(Function(z) z.Type = Param)
MachiningParam.ManageDependencyParam()
Next
+50 -1
View File
@@ -35,6 +35,10 @@ Public Class FilledSolidPanelVM
Return m_SelFilledSolid
End Get
Set(value As FilledSolidEntity)
If Map.refSceneHostVM.MainController.GetStep <> 0 OrElse Map.refFilledSolidPanelVM.bCPlaneObj_IsActive Then
NotifyPropertyChanged(NameOf(SelFilledSolid))
Return
End If
m_SelFilledSolid = value
EgtDeselectAll()
If Not IsNothing(value) Then
@@ -349,6 +353,8 @@ Public Class FilledSolidPanelVM
NotifyPropertyChanged(NameOf(bRotate_IsChecked))
Map.refRightPanelVM.SetSelPanel(RightPanelVM.Panels.AUXSOLIDPARAM)
NotifyPropertyChanged(NameOf(FilledSolidList_IsEnabled))
' disattivo lista filled solid
SetFilledSolidListIsEnabled(False)
Else
NotifyPropertyChanged(NameOf(m_bMachParam_IsChecked))
End If
@@ -366,11 +372,17 @@ Public Class FilledSolidPanelVM
End Get
End Property
Private m_FilledSolidList_IsEnabled As Boolean = False
Public ReadOnly Property FilledSolidList_IsEnabled As Boolean
Get
Return Not m_bMachParam_IsChecked
Return If(m_FilledSolidList.Count > 0, m_FilledSolidList_IsEnabled, False)
End Get
End Property
Friend Sub SetFilledSolidListIsEnabled(bValue As Boolean)
m_FilledSolidList_IsEnabled = bValue
NotifyPropertyChanged(NameOf(FilledSolidList_IsEnabled))
End Sub
' riferimento griglia all'ingresso in questa pagina
Private m_OriginalGridFrame As New Frame3d
@@ -388,6 +400,8 @@ Public Class FilledSolidPanelVM
End Get
End Property
Private m_bEscOnLine2P As Boolean = False
#Region "Tooltip"
Public ReadOnly Property Import_ToolTip As String
@@ -571,6 +585,8 @@ Public Class FilledSolidPanelVM
SelFilledSolid = m_FilledSolidList(0)
NotifyPropertyChanged(NameOf(SelFilledSolid))
End If
' attivo lista filled solid
SetFilledSolidListIsEnabled(True)
Map.refSceneHostVM.MainScene.SetStatusNull()
End Sub
@@ -615,6 +631,8 @@ Public Class FilledSolidPanelVM
EgtSelectObj(m_SelFilledSolid.nExtrusionId)
End Select
EgtDraw()
' disattivo il resto dell'interfaccia
ManageInterface(False)
Return True
End Function
@@ -624,6 +642,7 @@ Public Class FilledSolidPanelVM
End Sub
Friend Sub OnExecCmdEnd(command As Controller.CMD)
m_bEscOnLine2P = False
Select Case command
Case Controller.CMD.MODIFYCURVE, Controller.CMD.ADDPOINTCURVE, Controller.CMD.REMOVEPOINTCURVE
' leggo altezza estrusione
@@ -663,6 +682,10 @@ Public Class FilledSolidPanelVM
' Imposto flag di ricalcolo slice
EgtSetInfo(Map.refTopPanelVM.SelPart.nPartId, MAC_TORECALC_SLICE, True)
End Select
' se non ho creato percorso riabilito interfaccia
If Not m_bIsCreatingPath Then
ManageInterface(True)
End If
If command <> Controller.CMD.LINE2P AndAlso command <> Controller.CMD.EXTRUDE Then Return
' se finita creazione estrusione
If m_bIsCreatingExtrusion Then
@@ -733,6 +756,9 @@ Public Class FilledSolidPanelVM
If Map.refSceneHostVM.MainController.ExecuteCommand(Controller.CMD.EXTRUDE) Then
m_bIsCreatingExtrusion = True
Map.refControllerInputPanelVM.IsChecked = True
If Not EgtCurveIsClosed(nNewEntityId) Then
m_bEscOnLine2P = True
End If
Else
' cancello layer
EgtErase(nNewExtrusionLayerId)
@@ -757,6 +783,13 @@ Public Class FilledSolidPanelVM
' rimetto la selezione scena a null
Map.refSceneHostVM.MainScene.SetStatusNull()
End If
' se esc su creazione percorso, lo annullo, altrimenti riabilito interfaccia
If m_bEscOnLine2P Then
m_bEscOnLine2P = False
Else
If m_bIsCreatingExtrusion Then m_bIsCreatingExtrusion = False
ManageInterface(True)
End If
End If
End Sub
@@ -792,6 +825,17 @@ Public Class FilledSolidPanelVM
Return nFilledSolidIndex + 1
End Function
Friend Sub ManageInterface(bValue As Boolean)
' disabilito ProjManager, TopPanel, TFS, Slider, bottoni e uscita dal programma
Map.refProjManagerVM.SetProjCmdIsEnabled(bValue)
Map.refTopPanelVM.SetTopPanelIsEnabled(bValue)
Map.refViewLayerManagerVM.SetViewLayerManagerIsEnabled(bValue)
Map.refSliderManagerVM.SetLayerIndexIsEnabled(bValue)
Map.refSliderManagerVM.SetLayerAdvancementIsEnabled(bValue)
Map.refSliceManagerVM.SetButtonsIsEnabled(bValue)
SetFilledSolidListIsEnabled(bValue)
End Sub
#End Region ' METHODS
#Region "COMMANDS"
@@ -815,7 +859,9 @@ Public Class FilledSolidPanelVM
''' </summary>
Public Sub Import(ByVal param As Object)
If Map.refSceneHostVM.MainController.GetStep <> 0 OrElse m_bCPlaneObj_IsActive Then Return
ManageInterface(False)
Map.refSceneHostVM.InsertFilledSolid()
ManageInterface(True)
End Sub
#End Region ' Import
@@ -839,6 +885,7 @@ Public Class FilledSolidPanelVM
''' </summary>
Public Sub Line2P(ByVal param As Object)
If Map.refSceneHostVM.MainController.GetStep <> 0 OrElse m_bCPlaneObj_IsActive Then Return
ManageInterface(False)
Dim nNewShellNumberLayerId As Integer = EgtGetFirstNameInGroup(m_nPartId, LAY_NEWRIB)
If nNewShellNumberLayerId = GDB_ID.NULL Then nNewShellNumberLayerId = EgtCreateGroup(m_nPartId)
EgtSetName(nNewShellNumberLayerId, LAY_NEWRIB)
@@ -887,6 +934,7 @@ Public Class FilledSolidPanelVM
End If
NotifyPropertyChanged(NameOf(SelFilledSolid))
End If
SetFilledSolidListIsEnabled(True)
End Sub
#End Region ' Delete
@@ -1311,6 +1359,7 @@ Public Class FilledSolidPanelVM
''' </summary>
Public Sub CPlaneObj(ByVal param As Object)
If Map.refSceneHostVM.MainController.GetStep <> 0 OrElse m_bCPlaneObj_IsActive Then Return
ManageInterface(False)
' salvo selezione precedente e deseleziono altri oggetti
m_PrevSelObjs.Clear()
Dim nSelObjId As Integer = EgtGetFirstSelectedObj()
+50 -3
View File
@@ -42,6 +42,10 @@ Public Class RibPanelVM
Return m_SelRib
End Get
Set(value As RibEntity)
If Map.refSceneHostVM.MainController.GetStep <> 0 OrElse Map.refRibPanelVM.bCPlaneObj_IsActive Then
NotifyPropertyChanged(NameOf(SelRib))
Return
End If
m_SelRib = value
EgtDeselectAll()
If Not IsNothing(value) Then
@@ -374,6 +378,8 @@ Public Class RibPanelVM
NotifyPropertyChanged(NameOf(bRotate_IsChecked))
Map.refRightPanelVM.SetSelPanel(RightPanelVM.Panels.RIBPARAM)
NotifyPropertyChanged(NameOf(RibList_IsEnabled))
' disattivo lista ribs
SetRibListIsEnabled(False)
Else
NotifyPropertyChanged(NameOf(m_bMachParam_IsChecked))
End If
@@ -391,11 +397,17 @@ Public Class RibPanelVM
End Get
End Property
Private m_RibList_IsEnabled As Boolean = False
Public ReadOnly Property RibList_IsEnabled As Boolean
Get
Return Not m_bMachParam_IsChecked
Return If(m_RibList.Count > 0, m_RibList_IsEnabled, False)
End Get
End Property
Friend Sub SetRibListIsEnabled(bValue As Boolean)
m_RibList_IsEnabled = bValue
NotifyPropertyChanged(NameOf(RibList_IsEnabled))
End Sub
' riferimento griglia all'ingresso in questa pagina
Private m_OriginalGridFrame As New Frame3d
@@ -413,6 +425,8 @@ Public Class RibPanelVM
End Get
End Property
Private m_bEscOnLine2P As Boolean = False
#Region "Tooltip"
Public ReadOnly Property Import_ToolTip As String
@@ -596,6 +610,8 @@ Public Class RibPanelVM
SelRib = m_RibList(0)
NotifyPropertyChanged(NameOf(SelRib))
End If
' abilito lista ribs
SetRibListIsEnabled(True)
Map.refSceneHostVM.MainScene.SetStatusNull()
End Sub
@@ -640,6 +656,8 @@ Public Class RibPanelVM
EgtSelectObj(m_SelRib.nExtrusionId)
End Select
EgtDraw()
' disattivo il resto dell'interfaccia
ManageInterface(False)
Return True
End Function
@@ -649,6 +667,7 @@ Public Class RibPanelVM
End Sub
Friend Sub OnExecCmdEnd(command As Controller.CMD)
m_bEscOnLine2P = False
Select Case command
Case Controller.CMD.MODIFYCURVE, Controller.CMD.ADDPOINTCURVE, Controller.CMD.REMOVEPOINTCURVE
' leggo altezza estrusione
@@ -688,6 +707,10 @@ Public Class RibPanelVM
' Imposto flag di ricalcolo slice
EgtSetInfo(Map.refTopPanelVM.SelPart.nPartId, MAC_TORECALC_SLICE, True)
End Select
' se non ho creato percorso riabilito interfaccia
If Not m_bIsCreatingPath Then
ManageInterface(True)
End If
If command <> Controller.CMD.LINE2P AndAlso command <> Controller.CMD.EXTRUDE Then Return
' se finita creazione estrusione
If m_bIsCreatingExtrusion Then
@@ -754,9 +777,10 @@ Public Class RibPanelVM
EgtSelectObj(nNewEntityId)
If Map.refSceneHostVM.MainController.ExecuteCommand(Controller.CMD.EXTRUDE) Then
m_bIsCreatingExtrusion = True
If Not EgtCurveIsClosed(nNewEntityId) Then
m_bEscOnLine2P = True
End If
Else
' cancello layer
'EgtErase(nNewRibLayerId)
EgtErase(nNewExtrusionLayerId)
End If
End If
@@ -779,6 +803,13 @@ Public Class RibPanelVM
' rimetto la selezione scena a null
Map.refSceneHostVM.MainScene.SetStatusNull()
End If
' se esc su creazione percorso, lo annullo, altrimenti riabilito interfaccia
If m_bEscOnLine2P Then
m_bEscOnLine2P = False
Else
If m_bIsCreatingExtrusion Then m_bIsCreatingExtrusion = False
ManageInterface(True)
End If
End If
End Sub
@@ -814,6 +845,17 @@ Public Class RibPanelVM
Return nRibIndex + 1
End Function
Friend Sub ManageInterface(bValue As Boolean)
' disabilito ProjManager, TopPanel, TFS, Slider, bottoni e uscita dal programma
Map.refProjManagerVM.SetProjCmdIsEnabled(bValue)
Map.refTopPanelVM.SetTopPanelIsEnabled(bValue)
Map.refViewLayerManagerVM.SetViewLayerManagerIsEnabled(bValue)
Map.refSliderManagerVM.SetLayerIndexIsEnabled(bValue)
Map.refSliderManagerVM.SetLayerAdvancementIsEnabled(bValue)
Map.refSliceManagerVM.SetButtonsIsEnabled(bValue)
SetRibListIsEnabled(bValue)
End Sub
#End Region ' METHODS
#Region "COMMANDS"
@@ -837,7 +879,9 @@ Public Class RibPanelVM
''' </summary>
Public Sub Import(ByVal param As Object)
If Map.refSceneHostVM.MainController.GetStep <> 0 OrElse m_bCPlaneObj_IsActive Then Return
ManageInterface(False)
Map.refSceneHostVM.InsertRib()
ManageInterface(True)
End Sub
#End Region ' Import
@@ -861,6 +905,7 @@ Public Class RibPanelVM
''' </summary>
Public Sub Line2P(ByVal param As Object)
If Map.refSceneHostVM.MainController.GetStep <> 0 OrElse m_bCPlaneObj_IsActive Then Return
ManageInterface(False)
Dim nNewRibLayerId As Integer = EgtGetFirstNameInGroup(m_nPartId, LAY_NEWRIB)
If nNewRibLayerId = GDB_ID.NULL Then nNewRibLayerId = EgtCreateGroup(m_nPartId)
EgtSetName(nNewRibLayerId, LAY_NEWRIB)
@@ -909,6 +954,7 @@ Public Class RibPanelVM
End If
NotifyPropertyChanged(NameOf(SelRib))
End If
SetRibListIsEnabled(True)
End Sub
#End Region ' Delete
@@ -1332,6 +1378,7 @@ Public Class RibPanelVM
''' </summary>
Public Sub CPlaneObj(ByVal param As Object)
If Map.refSceneHostVM.MainController.GetStep <> 0 OrElse m_bCPlaneObj_IsActive Then Return
ManageInterface(False)
' salvo selezione precedente e deseleziono altri oggetti
m_PrevSelObjs.Clear()
Dim nSelObjId As Integer = EgtGetFirstSelectedObj()
+2
View File
@@ -135,6 +135,8 @@ Public Class RibParamPanelVM
Map.refSliceManagerVM.UpdateDimensions()
End If
End If
' riattivo lista ribs
Map.refRibPanelVM.SetRibListIsEnabled(False)
' ripristino modalita' standard
Map.refRightPanelVM.SetSelPanel(RightPanelVM.Panels.NULL)
Map.refRibPanelVM.ResetMachParamIsChecked()
-2
View File
@@ -274,8 +274,6 @@ Public Class MySceneHostVM
bOk = MainController.OpenProject(sFilePath, False)
' Imposto stato gestione mouse diretto della scena a nessuno
MainScene.SetStatusNull()
' imposto modalita' import
Map.refTopPanelVM.SelPage = Pages.NULL
Return bOk
End Function
+51 -1
View File
@@ -40,6 +40,10 @@ Public Class ShellNumberPanelVM
Return m_SelShellNumber
End Get
Set(value As ShellNumberEntity)
If Map.refSceneHostVM.MainController.GetStep <> 0 OrElse Map.refShellNumberPanelVM.bCPlaneObj_IsActive Then
NotifyPropertyChanged(NameOf(SelShellNumber))
Return
End If
m_SelShellNumber = value
EgtDeselectAll()
If Not IsNothing(value) Then
@@ -354,6 +358,8 @@ Public Class ShellNumberPanelVM
NotifyPropertyChanged(NameOf(bRotate_IsChecked))
Map.refRightPanelVM.SetSelPanel(RightPanelVM.Panels.SHELLNUMBERPARAM)
NotifyPropertyChanged(NameOf(ShellNumberList_IsEnabled))
' disattivo lista shell number
SetShellNumberListIsEnabled(False)
Else
NotifyPropertyChanged(NameOf(m_bMachParam_IsChecked))
End If
@@ -371,11 +377,17 @@ Public Class ShellNumberPanelVM
End Get
End Property
Private m_ShellNumberList_IsEnabled As Boolean = False
Public ReadOnly Property ShellNumberList_IsEnabled As Boolean
Get
Return Not m_bMachParam_IsChecked
Return If(m_ShellNumberList.Count > 0, m_ShellNumberList_IsEnabled, False)
End Get
End Property
Friend Sub SetShellNumberListIsEnabled(bValue As Boolean)
m_ShellNumberList_IsEnabled = bValue
NotifyPropertyChanged(NameOf(ShellNumberList_IsEnabled))
End Sub
' riferimento griglia all'ingresso in questa pagina
Private m_OriginalGridFrame As New Frame3d
@@ -393,6 +405,8 @@ Public Class ShellNumberPanelVM
End Get
End Property
Private m_bEscOnLine2P As Boolean = False
#Region "Tooltip"
Public ReadOnly Property Import_ToolTip As String
@@ -576,6 +590,8 @@ Public Class ShellNumberPanelVM
SelShellNumber = m_ShellNumberList(0)
NotifyPropertyChanged(NameOf(SelShellNumber))
End If
' abilito lista shell number
SetShellNumberListIsEnabled(True)
Map.refSceneHostVM.MainScene.SetStatusNull()
End Sub
@@ -620,6 +636,8 @@ Public Class ShellNumberPanelVM
EgtSelectObj(m_SelShellNumber.nExtrusionId)
End Select
EgtDraw()
' disattivo il resto dell'interfaccia
ManageInterface(False)
Return True
End Function
@@ -629,6 +647,7 @@ Public Class ShellNumberPanelVM
End Sub
Friend Sub OnExecCmdEnd(command As Controller.CMD)
m_bEscOnLine2P = False
Select Case command
Case Controller.CMD.MODIFYCURVE, Controller.CMD.ADDPOINTCURVE, Controller.CMD.REMOVEPOINTCURVE
' leggo altezza estrusione
@@ -668,6 +687,10 @@ Public Class ShellNumberPanelVM
' Imposto flag di ricalcolo slice
EgtSetInfo(Map.refTopPanelVM.SelPart.nPartId, MAC_TORECALC_SLICE, True)
End Select
' se non ho creato percorso riabilito interfaccia
If Not m_bIsCreatingPath Then
ManageInterface(True)
End If
If command <> Controller.CMD.LINE2P AndAlso command <> Controller.CMD.EXTRUDE Then Return
' se finita creazione estrusione
If m_bIsCreatingExtrusion Then
@@ -738,6 +761,9 @@ Public Class ShellNumberPanelVM
If Map.refSceneHostVM.MainController.ExecuteCommand(Controller.CMD.EXTRUDE) Then
m_bIsCreatingExtrusion = True
Map.refControllerInputPanelVM.IsChecked = True
If Not EgtCurveIsClosed(nNewEntityId) Then
m_bEscOnLine2P = True
End If
Else
' cancello layer
EgtErase(nNewExtrusionLayerId)
@@ -762,6 +788,13 @@ Public Class ShellNumberPanelVM
' rimetto la selezione scena a null
Map.refSceneHostVM.MainScene.SetStatusNull()
End If
' se esc su creazione percorso, lo annullo, altrimenti riabilito interfaccia
If m_bEscOnLine2P Then
m_bEscOnLine2P = False
Else
If m_bIsCreatingExtrusion Then m_bIsCreatingExtrusion = False
ManageInterface(True)
End If
End If
End Sub
@@ -797,6 +830,18 @@ Public Class ShellNumberPanelVM
Return nShellNumberIndex + 1
End Function
Friend Sub ManageInterface(bValue As Boolean)
' disabilito ProjManager, TopPanel, TFS, Slider, bottoni e uscita dal programma
Map.refProjManagerVM.SetProjCmdIsEnabled(bValue)
Map.refTopPanelVM.SetTopPanelIsEnabled(bValue)
Map.refViewLayerManagerVM.SetViewLayerManagerIsEnabled(bValue)
Map.refSliderManagerVM.SetLayerIndexIsEnabled(bValue)
Map.refSliderManagerVM.SetLayerAdvancementIsEnabled(bValue)
Map.refSliceManagerVM.SetButtonsIsEnabled(bValue)
SetShellNumberListIsEnabled(bValue)
End Sub
#End Region ' METHODS
#Region "COMMANDS"
@@ -820,7 +865,9 @@ Public Class ShellNumberPanelVM
''' </summary>
Public Sub Import(ByVal param As Object)
If Map.refSceneHostVM.MainController.GetStep <> 0 OrElse m_bCPlaneObj_IsActive Then Return
ManageInterface(False)
Map.refSceneHostVM.InsertShellNumber()
ManageInterface(True)
End Sub
#End Region ' Import
@@ -844,6 +891,7 @@ Public Class ShellNumberPanelVM
''' </summary>
Public Sub Line2P(ByVal param As Object)
If Map.refSceneHostVM.MainController.GetStep <> 0 OrElse m_bCPlaneObj_IsActive Then Return
ManageInterface(False)
Dim nNewShellNumberLayerId As Integer = EgtGetFirstNameInGroup(m_nPartId, LAY_NEWRIB)
If nNewShellNumberLayerId = GDB_ID.NULL Then nNewShellNumberLayerId = EgtCreateGroup(m_nPartId)
EgtSetName(nNewShellNumberLayerId, LAY_NEWRIB)
@@ -892,6 +940,7 @@ Public Class ShellNumberPanelVM
End If
NotifyPropertyChanged(NameOf(SelShellNumber))
End If
SetShellNumberListIsEnabled(True)
End Sub
#End Region ' Delete
@@ -1316,6 +1365,7 @@ Public Class ShellNumberPanelVM
''' </summary>
Public Sub CPlaneObj(ByVal param As Object)
If Map.refSceneHostVM.MainController.GetStep <> 0 OrElse m_bCPlaneObj_IsActive Then Return
ManageInterface(False)
' salvo selezione precedente e deseleziono altri oggetti
m_PrevSelObjs.Clear()
Dim nSelObjId As Integer = EgtGetFirstSelectedObj()
+2
View File
@@ -526,6 +526,8 @@ Public Class SliceManagerVM
''' Execute the CPlaneTop. This method is invoked by the CPlaneTopCommand.
''' </summary>
Public Sub Slice()
If Map.refSceneHostVM.MainController.GetStep <> 0 OrElse Map.refStartMachPanelVM.bCPlaneObj_IsActive OrElse Map.refRibPanelVM.bCPlaneObj_IsActive OrElse
Map.refShellNumberPanelVM.bCPlaneObj_IsActive OrElse Map.refFilledSolidPanelVM.bCPlaneObj_IsActive Then Return
If m_bCalculating Then Return
m_bCalculating = True
If IsNothing(Map.refTopPanelVM.SelPart) Then
@@ -28,6 +28,7 @@
ItemsSource="{Binding StartList}"
SelectedItem="{Binding SelStart}"
DisplayMemberPath="ghName"
IsEnabled="{Binding StartList_IsEnabled}"
Style="{StaticResource LeftPanel_ComboBox}"/>
<!-- Add Button -->
<ToggleButton x:Name="AddBtn"
+69 -27
View File
@@ -35,6 +35,10 @@ Public Class StartMachPanelVM
Return m_SelStart
End Get
Set(value As StartEntity)
If Map.refSceneHostVM.MainController.GetStep <> 0 OrElse Map.refStartMachPanelVM.bCPlaneObj_IsActive Then
NotifyPropertyChanged(NameOf(SelStart))
Return
End If
m_SelStart = value
EgtDeselectAll()
If Not IsNothing(value) Then
@@ -293,6 +297,18 @@ Public Class StartMachPanelVM
End Get
End Property
Private m_StartList_IsEnabled As Boolean = False
Public ReadOnly Property StartList_IsEnabled As Boolean
Get
Return If(m_StartList.Count > 0, m_StartList_IsEnabled, False)
End Get
End Property
Friend Sub SetStartListIsEnabled(bValue As Boolean)
m_StartList_IsEnabled = bValue
NotifyPropertyChanged(NameOf(StartList_IsEnabled))
End Sub
' riferimento griglia all'ingresso in questa pagina
Private m_OriginalGridFrame As New Frame3d
@@ -304,6 +320,8 @@ Public Class StartMachPanelVM
End Get
End Property
Private m_bEscOnLine2P As Boolean = False
#Region "Tooltip"
Public ReadOnly Property Point_ToolTip As String
@@ -458,6 +476,8 @@ Public Class StartMachPanelVM
SelStart = m_StartList(0)
NotifyPropertyChanged(NameOf(SelStart))
End If
' abilito lista start mach
SetStartListIsEnabled(True)
Map.refSceneHostVM.MainScene.SetStatusNull()
End Sub
@@ -481,16 +501,33 @@ Public Class StartMachPanelVM
' seleziono percorso corrente
EgtDeselectAll()
EgtSelectObj(m_SelStart.nId)
EgtDraw()
' disattivo il resto dell'interfaccia
ManageInterface(False)
Return True
End Function
Friend Sub UpdateUI()
' se attiva operazione in piu' passaggi, esco
If Map.refSceneHostVM.MainController.GetContinue() Then Return
Dim NewEntity As StartEntity = Nothing
' se finita creazione curva (è stata chiusa)
End Sub
Friend Sub OnExecCmdEnd(command As Controller.CMD)
m_bEscOnLine2P = False
Select Case command
Case Controller.CMD.LINE2P, Controller.CMD.DELETE, Controller.CMD.MODIFYCURVE, Controller.CMD.ADDPOINTCURVE, Controller.CMD.REMOVEPOINTCURVE,
Controller.CMD.MOVE, Controller.CMD.ROTATE
' Imposto flag di ricalcolo slice
EgtSetInfo(Map.refTopPanelVM.SelPart.nPartId, MAC_TORECALC_SLICE, True)
' rimetto la selezione scena a null
Map.refSceneHostVM.MainScene.SetStatusNull()
End Select
' riabilito interfaccia
ManageInterface(True)
' se finita creazione curva
If bIsCreatingPath Then
m_bIsCreatingPath = False
Dim NewEntity As StartEntity = Nothing
Dim nNewStartLayerId As Integer = EgtGetFirstNameInGroup(m_nPartId, LAY_NEWSTART)
Dim nNewEntityId As Integer = EgtGetFirstInGroup(nNewStartLayerId)
Dim NewGeomType As GDB_TY = EgtGetType(nNewEntityId)
@@ -503,37 +540,22 @@ Public Class StartMachPanelVM
NewEntityType = StartMachTypes.COMPO
End Select
EgtSetName(nNewEntityId, START_GEOM)
' coloro l'entita' di rosso
Dim c3Red As Color3d
c3Red.FromColor(System.Drawing.Color.Red)
EgtSetColor(nNewEntityId, c3Red)
' resetto colore entita'
EgtResetColor(nNewEntityId)
' lo sposto nel layer degli start
EgtRelocateGlob(nNewEntityId, m_nStartMachLayerId, GDB_POS.LAST_SON)
' lo aggiungo alla lista
NewEntity = New StartEntity(nNewEntityId, NewEntityType)
m_StartList.Add(NewEntity)
' cancello layer di disegno
EgtErase(nNewStartLayerId)
' lo seleziono
SelStart = NewEntity
NotifyPropertyChanged(NameOf(SelStart))
End If
' cancello layer di disegno
EgtErase(nNewStartLayerId)
End If
' aggiorno posizione
RefreshPos()
' se aggiunta entita'
If Not IsNothing(NewEntity) Then
SelStart = NewEntity
NotifyPropertyChanged(NameOf(SelStart))
End If
' rimetto la selezione scena a null
Map.refSceneHostVM.MainScene.SetStatusNull()
End Sub
Friend Sub OnExecCmdEnd(command As Controller.CMD)
Select Case command
Case Controller.CMD.LINE2P, Controller.CMD.DELETE, Controller.CMD.MODIFYCURVE, Controller.CMD.ADDPOINTCURVE, Controller.CMD.REMOVEPOINTCURVE,
Controller.CMD.MOVE, Controller.CMD.ROTATE
' Imposto flag di ricalcolo slice
EgtSetInfo(Map.refTopPanelVM.SelPart.nPartId, MAC_TORECALC_SLICE, True)
End Select
End Sub
Friend Sub OnKeyDown(Key As Forms.Keys)
@@ -550,6 +572,12 @@ Public Class StartMachPanelVM
' rimetto la selezione scena a null
Map.refSceneHostVM.MainScene.SetStatusNull()
End If
' se esc su creazione percorso, lo annullo, altrimenti riabilito interfaccia
If m_bEscOnLine2P Then
m_bEscOnLine2P = False
Else
ManageInterface(True)
End If
End If
End Sub
@@ -565,6 +593,17 @@ Public Class StartMachPanelVM
End If
End Sub
Friend Sub ManageInterface(bValue As Boolean)
' disabilito ProjManager, TopPanel, TFS, Slider, bottoni e uscita dal programma
Map.refProjManagerVM.SetProjCmdIsEnabled(bValue)
Map.refTopPanelVM.SetTopPanelIsEnabled(bValue)
Map.refViewLayerManagerVM.SetViewLayerManagerIsEnabled(bValue)
Map.refSliderManagerVM.SetLayerIndexIsEnabled(bValue)
Map.refSliderManagerVM.SetLayerAdvancementIsEnabled(bValue)
Map.refSliceManagerVM.SetButtonsIsEnabled(bValue)
SetStartListIsEnabled(bValue)
End Sub
#End Region ' METHODS
#Region "COMMANDS"
@@ -588,13 +627,13 @@ Public Class StartMachPanelVM
''' </summary>
Public Sub Point(ByVal param As Object)
If Map.refSceneHostVM.MainController.GetStep <> 0 OrElse m_bCPlaneObj_IsActive Then Return
Dim nNewStartLayerId As Integer = EgtGetFirstNameInGroup( m_nPartId, LAY_NEWSTART)
ManageInterface(False)
Dim nNewStartLayerId As Integer = EgtGetFirstNameInGroup(m_nPartId, LAY_NEWSTART)
If nNewStartLayerId = GDB_ID.NULL Then
nNewStartLayerId = EgtCreateGroup(m_nPartId)
EgtSetName(nNewStartLayerId, LAY_NEWSTART)
End If
EgtSetCurrPartLayer(m_nPartId, nNewStartLayerId)
'InitCommand(True)
If Map.refSceneHostVM.MainController.ExecuteCommand(Controller.CMD.POINT) Then
m_bIsCreatingPath = True
End If
@@ -621,7 +660,8 @@ Public Class StartMachPanelVM
''' </summary>
Public Sub Line2P(ByVal param As Object)
If Map.refSceneHostVM.MainController.GetStep <> 0 OrElse m_bCPlaneObj_IsActive Then Return
Dim nNewStartLayerId As Integer = EgtGetFirstNameInGroup( m_nPartId, LAY_NEWSTART)
ManageInterface(False)
Dim nNewStartLayerId As Integer = EgtGetFirstNameInGroup(m_nPartId, LAY_NEWSTART)
If nNewStartLayerId = GDB_ID.NULL Then
nNewStartLayerId = EgtCreateGroup(m_nPartId)
EgtSetName(nNewStartLayerId, LAY_NEWSTART)
@@ -952,6 +992,7 @@ Public Class StartMachPanelVM
''' </summary>
Public Sub CPlaneObj(ByVal param As Object)
If Map.refSceneHostVM.MainController.GetStep <> 0 OrElse m_bCPlaneObj_IsActive Then Return
ManageInterface(False)
' salvo selezione precedente e deseleziono altri oggetti
m_PrevSelObjs.Clear()
Dim nSelObjId As Integer = EgtGetFirstSelectedObj()
@@ -1012,6 +1053,7 @@ Public Class StartMachPanelVM
End If
NotifyPropertyChanged(NameOf(SelStart))
End If
SetStartListIsEnabled(True)
End Sub
#End Region ' Delete
+1 -1
View File
@@ -58,7 +58,7 @@
<ToggleButton x:Name="ModifyBtn"
Grid.Column="2"
Grid.Row="1"
Content="{Binding SelectedItem.sName, ElementName=ModifyModeListBox}"
Content="{Binding SelModifyModeName}"
IsChecked="{Binding bModify_IsChecked}"
Margin="2.5,0,2.5,0"
Style="{StaticResource TopPanel_Modify_ToggleButton}">
+8
View File
@@ -121,6 +121,7 @@ Public Class TopPanelVM
Map.refLeftPanelVM.SetSelPanel(LeftPanelVM.Panels.NULL)
NotifyPropertyChanged(NameOf(SelModifyMode))
End If
NotifyPropertyChanged(NameOf(SelModifyModeName))
' chiudo il popup
SetModifyIsChecked(False)
End Set
@@ -128,8 +129,15 @@ Public Class TopPanelVM
Friend Sub SetSelModifyMode(ModifyMode As ModifyModes)
SelModifyMode = m_ModifyModeList.FirstOrDefault(Function(x) x.ModifyMode = ModifyMode)
NotifyPropertyChanged(NameOf(SelModifyMode))
NotifyPropertyChanged(NameOf(SelModifyModeName))
End Sub
Public ReadOnly Property SelModifyModeName As String
Get
Return If(Not IsNothing(m_SelModifyMode) AndAlso m_SelModifyMode.ModifyMode <> ModifyModes.NULL, m_SelModifyMode.sName, "Modify")
End Get
End Property
Private m_bModify_IsChecked As Boolean
Public Property bModify_IsChecked As Boolean
Get