diff --git a/Application.xaml.vb b/Application.xaml.vb
index 49c166b..06936fa 100644
--- a/Application.xaml.vb
+++ b/Application.xaml.vb
@@ -139,7 +139,9 @@ Class Application
Friend Const RESETINPUTBOX As String = "ResetInputBox"
Friend Const LOADOBJTREE As String = "LoadObjTree"
Friend Const UPDATEOBJINOBJTREE As String = "UpdateObjInObjTree"
+ Friend Const UPDATEOBJINOBJTREENOMARK As String = "UpdateObjInObjTreeNoMark"
Friend Const SELECTIDINOBJTREE As String = "SelectIdInObjTree"
+ Friend Const SELECTIDINOBJTREENOMARK As String = "SelectIdInObjTreeNoMark"
Friend Const CLEAROBJTREE As String = "ClearObjTree"
Friend Const UPDATEOBJTREE As String = "UpdateObjTree"
Friend Const UPDATEHEADERNAME As String = "UpdateHeaderName"
diff --git a/ProjectPage/OptionPanel/DrawOptionPanel/ManageLayerExpander/LayerTreeView.vb b/ProjectPage/OptionPanel/DrawOptionPanel/ManageLayerExpander/LayerTreeView.vb
index 4b09ca2..555e342 100644
--- a/ProjectPage/OptionPanel/DrawOptionPanel/ManageLayerExpander/LayerTreeView.vb
+++ b/ProjectPage/OptionPanel/DrawOptionPanel/ManageLayerExpander/LayerTreeView.vb
@@ -4,6 +4,9 @@ Imports EgtUILib
Public Class LayerTreeViewItem
Inherits TreeViewItemBase
+ Friend Shared m_SendCmd As Boolean = True
+ Friend Shared m_MarkOnSel As Boolean = True
+
Private m_Id As Integer
Public ReadOnly Property Id As Integer
Get
@@ -23,7 +26,11 @@ Public Class LayerTreeViewItem
m_IsSelected = value
If value Then
' recupero l'Id del nuovo oggetto selezionato
- Application.Msn.NotifyColleagues(Application.UPDATEOBJINOBJTREE, Me.Id)
+ If m_MarkOnSel Then
+ Application.Msn.NotifyColleagues(Application.UPDATEOBJINOBJTREE, Me.Id)
+ Else
+ Application.Msn.NotifyColleagues(Application.UPDATEOBJINOBJTREENOMARK, Me.Id)
+ End If
End If
End If
End Set
@@ -41,10 +48,6 @@ Public Class LayerTreeViewItem
' In realtà il valore di value è insignificante perchè la cosa importante è che il click esegua questo Set
m_IsRightSelected = value
Application.Msn.NotifyColleagues(Application.RIGHTCLICKEDLAYERTREEITEM, Me.Id)
- 'If value Then
- ' ' recupero l'Id del nuovo oggetto selezionato
- ' Application.Msn.NotifyColleagues(Application.UPDATEOBJINOBJTREE, Me.Id)
- 'End If
End Set
End Property
@@ -66,12 +69,14 @@ Public Class LayerTreeViewItem
Set(value As Boolean)
If m_OnOff <> value Then
m_OnOff = value
- ' eseguo operazione
- Application.Msn.NotifyColleagues(Application.SETLASTINTEGER, Id)
- If value Then
- Application.Msn.NotifyColleagues(Application.EXECUTECOMMAND, Controller.CMD.SHOW)
- Else
- Application.Msn.NotifyColleagues(Application.EXECUTECOMMAND, Controller.CMD.HIDE)
+ ' se abilitato, eseguo operazione
+ If m_SendCmd Then
+ Application.Msn.NotifyColleagues(Application.SETLASTINTEGER, Id)
+ If value Then
+ Application.Msn.NotifyColleagues(Application.EXECUTECOMMAND, Controller.CMD.SHOW)
+ Else
+ Application.Msn.NotifyColleagues(Application.EXECUTECOMMAND, Controller.CMD.HIDE)
+ End If
End If
End If
End Set
diff --git a/ProjectPage/OptionPanel/DrawOptionPanel/ManageLayerExpander/ManageLayerExpanderViewModel.vb b/ProjectPage/OptionPanel/DrawOptionPanel/ManageLayerExpander/ManageLayerExpanderViewModel.vb
index 5a9a902..887b53d 100644
--- a/ProjectPage/OptionPanel/DrawOptionPanel/ManageLayerExpander/ManageLayerExpanderViewModel.vb
+++ b/ProjectPage/OptionPanel/DrawOptionPanel/ManageLayerExpander/ManageLayerExpanderViewModel.vb
@@ -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
'''
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
'''
@@ -157,6 +165,8 @@ Namespace EgtCAM5
'''
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
'''
@@ -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
diff --git a/ProjectPage/ProjectViewModel.vb b/ProjectPage/ProjectViewModel.vb
index 0c96cb2..a52f2d1 100644
--- a/ProjectPage/ProjectViewModel.vb
+++ b/ProjectPage/ProjectViewModel.vb
@@ -221,7 +221,7 @@ Namespace EgtCAM5
' nascondo input box
Application.Msn.NotifyColleagues(Application.RESETINPUTBOX)
' Apro progetto vuoto
- m_Controller.NewProject(True)
+ Application.Msn.NotifyColleagues(Application.NEWPROJECT)
End Sub
@@ -538,8 +538,8 @@ Namespace EgtCAM5
End Sub
Sub RegisterControllerCommands()
- Application.Msn.Register(Application.EXECUTECOMMAND, Sub(sString As Controller.CMD)
- m_Controller.ExecuteCommand(sString)
+ Application.Msn.Register(Application.EXECUTECOMMAND, Sub(nCmd As Controller.CMD)
+ m_Controller.ExecuteCommand(nCmd)
End Sub)
Application.Msn.Register(Application.MANAGEMODIFIED, Sub()
Dim AllowClose = m_Controller.ManageModified()
@@ -566,12 +566,14 @@ Namespace EgtCAM5
Private Sub ManageTopCommandBar()
Application.Msn.Register(Application.NEWPROJECT, Sub()
m_Controller.NewProject(True)
+ Application.Msn.NotifyColleagues(Application.SELECTIDINOBJTREENOMARK, EgtGetCurrLayer())
End Sub)
Application.Msn.Register(Application.OPENPROJECT, Sub()
If (Keyboard.Modifiers And ModifierKeys.Shift) <> ModifierKeys.Shift Then
Dim sDir As String = String.Empty
GetPrivateProfileString(S_GENERAL, K_LASTNGEDIR, "", sDir)
m_Controller.OpenProject(sDir)
+ Application.Msn.NotifyColleagues(Application.SELECTIDINOBJTREENOMARK, EgtGetCurrLayer())
Else
'ShowMenuMruFiles(btnOpen, New Point(0, btnOpen.Height))
End If
@@ -598,7 +600,6 @@ Namespace EgtCAM5
sFile += "\New" & m_nInstance.ToString() & ".nge"
End If
m_Controller.SaveAsProject(sFile, nType)
-
End Sub)
Application.Msn.Register(Application.INSERTPROJECT, Sub()
' eseguo
@@ -610,6 +611,7 @@ Namespace EgtCAM5
Dim sDir As String = String.Empty
GetPrivateProfileString(S_GENERAL, K_LASTIMPDIR, "", sDir)
m_Controller.ImportProject(sDir)
+ Application.Msn.NotifyColleagues(Application.SELECTIDINOBJTREENOMARK, EgtGetCurrLayer())
End Sub)
Application.Msn.Register(Application.EXPORTPROJECT, Sub()
m_Controller.ExportProject(Path.ChangeExtension(m_Controller.GetCurrFile(), "dxf"))
@@ -619,6 +621,7 @@ Namespace EgtCAM5
Dim sDir As String = String.Empty
GetPrivateProfileString(S_GENERAL, K_LASTLUADIR, "", sDir)
m_Controller.Exec(sDir)
+ Application.Msn.NotifyColleagues(Application.SELECTIDINOBJTREE, EgtGetCurrLayer())
'Else
' ShowMenuMruScripts(btnExec, New Point(0, btnExec.Height))
'End If
@@ -626,6 +629,7 @@ Namespace EgtCAM5
Application.Msn.Register(Application.DOORSSCRIPT, Sub()
Dim bOk As Boolean = ExecDoors(m_ProjectScene)
OnUpdateUI(Nothing, True)
+ Application.Msn.NotifyColleagues(Application.SELECTIDINOBJTREE, EgtGetCurrLayer())
If Not bOk Then Application.Msn.NotifyColleagues(Application.NOTIFYSTATUSOUTPUT, "Error running Ddf file")
End Sub)
Application.Msn.Register(Application.DMACHSCRIPT, Sub()
diff --git a/ProjectPage/ViewPanel/ViewPanelView.xaml b/ProjectPage/ViewPanel/ViewPanelView.xaml
index 031d0f8..ccc601b 100644
--- a/ProjectPage/ViewPanel/ViewPanelView.xaml
+++ b/ProjectPage/ViewPanel/ViewPanelView.xaml
@@ -12,14 +12,14 @@
-