EgtCAM5 :
- migliorie gestione albero geometrie.
This commit is contained in:
+54
-20
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user