EgtCAM5 :

- migliorie gestione albero geometrie.
This commit is contained in:
Dario Sassi
2016-09-16 07:45:38 +00:00
parent 77e8258c1f
commit d4dbb41255
5 changed files with 84 additions and 39 deletions
@@ -80,8 +80,14 @@ Namespace EgtCAM5
Application.Msn.Register(Application.UPDATEOBJINOBJTREE, Sub(nId As Integer)
UpdateObjInObjTree(nId)
End Sub)
Application.Msn.Register(Application.UPDATEOBJINOBJTREENOMARK, Sub(nId As Integer)
UpdateObjInObjTreeNoMark(nId)
End Sub)
Application.Msn.Register(Application.SELECTIDINOBJTREE, Sub(nId As Integer)
SelectIdInObjTree(nId)
SelectIdInObjTree(nId, True)
End Sub)
Application.Msn.Register(Application.SELECTIDINOBJTREENOMARK, Sub(nId As Integer)
SelectIdInObjTree(nId, False)
End Sub)
Application.Msn.Register(Application.CLEAROBJTREE, Sub()
ClearObjTree()
@@ -127,6 +133,8 @@ Namespace EgtCAM5
''' </summary>
Public Sub NewPart(ByVal param As Object)
Application.Msn.NotifyColleagues(Application.EXECUTECOMMAND, Controller.CMD.NEWPART)
' Seleziono nell'albero il layer del pezzo appena creato
SelectIdInObjTree(EgtGetCurrLayer(), False)
End Sub
''' <summary>
@@ -157,6 +165,8 @@ Namespace EgtCAM5
''' </summary>
Public Sub NewLayer(ByVal param As Object)
Application.Msn.NotifyColleagues(Application.EXECUTECOMMAND, Controller.CMD.NEWLAYER)
' Seleziono nell'albero il layer appena creato
SelectIdInObjTree(EgtGetCurrLayer(), False)
End Sub
''' <summary>
@@ -591,15 +601,17 @@ Namespace EgtCAM5
End Sub
Public Sub LoadObjTree()
LayerTreeViewItem.m_SendCmd = False
Dim nOldId As Integer = ClearObjTree()
AddGroupInObjTree(GDB_ID.ROOT, GDB_LV.USER, 0, LayerList)
If nOldId <> GDB_ID.NULL Then
m_bEnableUpdateObjInObjTree = False
SelectIdInObjTree(nOldId)
SelectIdInObjTree(nOldId, True)
m_bEnableUpdateObjInObjTree = True
Else
Application.Msn.NotifyColleagues(Application.SETINFOBOX, String.Empty)
End If
LayerTreeViewItem.m_SendCmd = True
End Sub
Private Function ClearObjTree() As Integer
@@ -746,20 +758,38 @@ Namespace EgtCAM5
End If
End Sub
Private Sub UpdateObjInObjTree(ByVal nId As Integer)
If Not m_bEnableUpdateObjInObjTree Then Return
' ripristino eventuale vecchio oggetto selezionato
RevertOldIdInObjTree()
' stampa dei dati del nuovo oggetto
Application.Msn.NotifyColleagues(Application.UPDATEOBJDATAINOBJTREE, nId)
' evidenzio l'oggetto
EgtSetMark(nId)
m_nObjTreeOldId = nId
' imposto il ridisegno della scena
EgtDraw()
' lancio timer per successiva de-evidenziazione
ObjTreeTimer.Stop()
ObjTreeTimer.Start()
Private Sub UpdateObjInObjTree(nId As Integer)
If m_bEnableUpdateObjInObjTree Then
' ripristino eventuale vecchio oggetto selezionato
RevertOldIdInObjTree()
' stampa dei dati del nuovo oggetto
Application.Msn.NotifyColleagues(Application.UPDATEOBJDATAINOBJTREE, nId)
' evidenzio l'oggetto
EgtSetMark(nId)
m_nObjTreeOldId = nId
' imposto il ridisegno della scena
EgtDraw()
' lancio timer per successiva de-evidenziazione
ObjTreeTimer.Stop()
ObjTreeTimer.Start()
Else
' stampa dei dati del nuovo oggetto
Application.Msn.NotifyColleagues(Application.UPDATEOBJDATAINOBJTREE, nId)
End If
End Sub
Private Sub UpdateObjInObjTreeNoMark(nId As Integer)
If m_bEnableUpdateObjInObjTree Then
' ripristino eventuale vecchio oggetto selezionato
RevertOldIdInObjTree()
' stampa dei dati del nuovo oggetto
Application.Msn.NotifyColleagues(Application.UPDATEOBJDATAINOBJTREE, nId)
' salvo id corrente
m_nObjTreeOldId = nId
Else
' stampa dei dati del nuovo oggetto
Application.Msn.NotifyColleagues(Application.UPDATEOBJDATAINOBJTREE, nId)
End If
End Sub
Private Function RevertOldIdInObjTree() As Integer
@@ -775,10 +805,12 @@ Namespace EgtCAM5
Return nOldId
End Function
Private Function SelectIdInObjTree(ByVal nId As Integer) As Boolean
Dim tNode As LayerTreeViewItem = SearchIdInLayerList(LayerList, nId)
Private Function SelectIdInObjTree(nId As Integer, bMark As Boolean) As Boolean
Dim tNode As LayerTreeViewItem = SearchIdInLayerList(LayerList, nId, True)
If Not IsNothing(tNode) Then
If Not bMark Then LayerTreeViewItem.m_MarkOnSel = False
tNode.IsSelected = True
If Not bMark Then LayerTreeViewItem.m_MarkOnSel = True
tNode.IsExpanded = True
m_nObjTreeOldId = nId
Return True
@@ -788,13 +820,15 @@ Namespace EgtCAM5
End If
End Function
Private Function SearchIdInLayerList(Tree As ObservableCollection(Of LayerTreeViewItem), nId As Integer) As LayerTreeViewItem
Private Function SearchIdInLayerList(Tree As ObservableCollection(Of LayerTreeViewItem), nId As Integer, bExpand As Boolean) As LayerTreeViewItem
For Each Item In Tree
If Item.Id = nId Then
If bExpand Then Item.IsExpanded = True
Return Item
ElseIf Item.Items.Count() > 0 Then
Dim Item2 As LayerTreeViewItem = SearchIdInLayerList(Item.Items, nId)
Dim Item2 As LayerTreeViewItem = SearchIdInLayerList(Item.Items, nId, bExpand)
If Not IsNothing(Item2) Then
If bExpand Then Item.IsExpanded = True
Return Item2
End If
End If