diff --git a/Application.xaml.vb b/Application.xaml.vb
index 20283d6..233e937 100644
--- a/Application.xaml.vb
+++ b/Application.xaml.vb
@@ -119,6 +119,11 @@ Class Application
Friend Const CHANGEINPUTBOXCHECK As String = "ChangeInputBoxCheck"
Friend Const ADDINPUTBOXCOMBO As String = "AddInputBoxCombo"
Friend Const RESETINPUTBOX As String = "ResetInputBox"
+ Friend Const LOADOBJTREE As String = "LoadObjTree"
+ Friend Const UPDATEOBJINOBJTREE As String = "UpdateObjInObjTree"
+ Friend Const SELECTIDINOBJTREE As String = "SelectIdInObjTree"
+ Friend Const CLEAROBJTREE As String = "ClearObjTree"
+ Friend Const UPDATEOBJTREE As String = "UpdateObjTree"
' StatusBar messages
Friend Const STATUSGRIDCOMMAND As String = "StatusGridCommand"
diff --git a/EgtCAM5.vbproj b/EgtCAM5.vbproj
index b5f0acb..d273169 100644
--- a/EgtCAM5.vbproj
+++ b/EgtCAM5.vbproj
@@ -335,6 +335,9 @@
+
+
+
@@ -364,7 +367,21 @@
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/IniFile.vb b/IniFile.vb
index e4bdda0..5e51608 100644
--- a/IniFile.vb
+++ b/IniFile.vb
@@ -4,6 +4,12 @@ Module IniFile
' MainWindow Page
Friend m_nInstance As Integer = 0
+ Friend m_nUserLevel As Integer = 1
+ Public ReadOnly Property nUserLevel As Integer
+ Get
+ Return m_nUserLevel
+ End Get
+ End Property
Friend m_sIniFilePath As String
Friend m_sMachinesRoot As String
' Project Page
diff --git a/MainWindow/MainWindowViewModel.vb b/MainWindow/MainWindowViewModel.vb
index e25e4b1..9355691 100644
--- a/MainWindow/MainWindowViewModel.vb
+++ b/MainWindow/MainWindowViewModel.vb
@@ -20,7 +20,6 @@ Namespace EgtCAM5
Private m_sMachinesRoot As String = String.Empty
Private m_sIniFile As String = String.Empty
Private m_nDebug As Integer = 0
- Private m_nUserLevel As Integer = 1
' Opzioni abilitate dalla licenza attiva associata alla chiave
Private m_nKeyOptions As UInteger
Friend Enum KEY_OPT As UInteger
@@ -342,7 +341,7 @@ Namespace EgtCAM5
EgtOutLog("Error in EgtLoadMessages")
End If
' Leggo e imposto livello utilizzatore
- m_nUserLevel = GetPrivateProfileInt(S_GENERAL, K_USERLEVEL, 1)
+ IniFile.m_nUserLevel = GetPrivateProfileInt(S_GENERAL, K_USERLEVEL, 1)
' imposto dir font Nfe e font default
Dim sNfeDir As String = String.Empty
GetPrivateProfileString(S_GEOMDB, K_NFEFONTDIR, "", sNfeDir)
diff --git a/ProjectPage/OptionPanel/DrawOptionPanel/DrawOptionPanelView.xaml b/ProjectPage/OptionPanel/DrawOptionPanel/DrawOptionPanelView.xaml
index 71660cb..1524465 100644
--- a/ProjectPage/OptionPanel/DrawOptionPanel/DrawOptionPanelView.xaml
+++ b/ProjectPage/OptionPanel/DrawOptionPanel/DrawOptionPanelView.xaml
@@ -1,6 +1,6 @@
+ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" MinWidth="200">
diff --git a/ProjectPage/OptionPanel/DrawOptionPanel/ManageLayerExpander/LayerTreeView.vb b/ProjectPage/OptionPanel/DrawOptionPanel/ManageLayerExpander/LayerTreeView.vb
index 9f44766..ba3aab9 100644
--- a/ProjectPage/OptionPanel/DrawOptionPanel/ManageLayerExpander/LayerTreeView.vb
+++ b/ProjectPage/OptionPanel/DrawOptionPanel/ManageLayerExpander/LayerTreeView.vb
@@ -1,5 +1,47 @@
-Public Class LayerTreeViewItem
- Inherits InheritableTreeViewItem
+Imports System.Collections.ObjectModel
+
+Public Class LayerTreeViewItem
+ Inherits TreeViewItemBase
+
+ Private m_Id As Integer
+ Public ReadOnly Property Id As Integer
+ Get
+ Return m_Id
+ End Get
+ End Property
+
+ Private m_Items As New ObservableCollection(Of LayerTreeViewItem)
+ Public Property Items As ObservableCollection(Of LayerTreeViewItem)
+ Get
+ Return m_Items
+ End Get
+ Set(value As ObservableCollection(Of LayerTreeViewItem))
+ m_Items = value
+ End Set
+ End Property
+
+ Private m_OnOff As Boolean
+ Public Property OnOff As Boolean
+ Get
+ Return m_OnOff
+ End Get
+ Set(value As Boolean)
+ m_OnOff = value
+ End Set
+ End Property
+
+ Private m_sPictureString As String
+ Public Property PictureString As String
+ Get
+ Return m_sPictureString
+ End Get
+ Set(value As String)
+ If value <> m_sPictureString Then
+ m_sPictureString = value
+ NotifyPropertyChanged("PictureString")
+ End If
+ End Set
+ End Property
Private m_LayerColor As SolidColorBrush
Public Property LayerColor As SolidColorBrush
@@ -11,7 +53,14 @@
End Set
End Property
- Sub New(Name As String)
+ Sub New(Id As Integer, Name As String, Image As String, CurrColor As System.Drawing.Color)
+ MyBase.New(Name)
+ Me.m_Id = Id
+ Me.PictureString = Image
+ Me.LayerColor = New SolidColorBrush(Color.FromArgb(CurrColor.A, CurrColor.R, CurrColor.G, CurrColor.B))
+ End Sub
+
+ Sub New(Id As Integer, Name As String)
MyBase.New(Name)
End Sub
diff --git a/ProjectPage/OptionPanel/DrawOptionPanel/ManageLayerExpander/ManageLayerExpanderView.xaml b/ProjectPage/OptionPanel/DrawOptionPanel/ManageLayerExpander/ManageLayerExpanderView.xaml
index 2f2d6df..13c836b 100644
--- a/ProjectPage/OptionPanel/DrawOptionPanel/ManageLayerExpander/ManageLayerExpanderView.xaml
+++ b/ProjectPage/OptionPanel/DrawOptionPanel/ManageLayerExpander/ManageLayerExpanderView.xaml
@@ -8,27 +8,30 @@
-
-
-
+
+
+
-
-
+
+
+
-
-
-
+
+
+
+
-
+
diff --git a/ProjectPage/OptionPanel/DrawOptionPanel/ManageLayerExpander/ManageLayerExpanderViewModel.vb b/ProjectPage/OptionPanel/DrawOptionPanel/ManageLayerExpander/ManageLayerExpanderViewModel.vb
index 373ed34..2a5e14d 100644
--- a/ProjectPage/OptionPanel/DrawOptionPanel/ManageLayerExpander/ManageLayerExpanderViewModel.vb
+++ b/ProjectPage/OptionPanel/DrawOptionPanel/ManageLayerExpander/ManageLayerExpanderViewModel.vb
@@ -1,5 +1,6 @@
Imports System.Collections.ObjectModel
Imports EgtUILib
+Imports EgtCAM5.IniFile
Namespace EgtCAM5
@@ -25,6 +26,23 @@ Namespace EgtCAM5
#End Region
+ Sub New()
+ Application.Msn.Register(Application.LOADOBJTREE, Sub()
+ LoadObjTree()
+ End Sub)
+ Application.Msn.Register(Application.UPDATEOBJINOBJTREE, Sub(nId As Integer)
+ UpdateObjInObjTree(nId)
+ End Sub)
+ Application.Msn.Register(Application.SELECTIDINOBJTREE, Sub(nId As Integer)
+ SelectIdInObjTree(nId)
+ End Sub)
+ Application.Msn.Register(Application.CLEAROBJTREE, Sub()
+ ClearObjTree()
+ End Sub)
+ Application.Msn.Register(Application.UPDATEOBJTREE, Sub()
+ UpdateObjTree()
+ End Sub)
+ End Sub
#Region "COMMANDS"
#Region "NewPartCommand"
@@ -121,69 +139,350 @@ Namespace EgtCAM5
#Region "Methods"
- 'Public Sub LoadLayerTree()
- ' 'Dim nOldId As Integer = ClearObjTree()
- ' AddGroupInObjTree(GDB_ID.ROOT, GDB_LV.USER, 0, TreeView1.Nodes)
- ' If nOldId <> GDB_ID.NULL Then
- ' SelectIdInObjTree(nOldId)
- ' UpdateObjDataInObjTree(m_nObjTreeOldId)
+ Private WithEvents ObjTreeTimer As New System.Windows.Threading.DispatcherTimer
+ Private m_nObjTreeOldId As Integer = GDB_ID.NULL
+ Private m_nObjTreeMenuId As Integer = GDB_ID.NULL
+
+ Private Sub ObjTreeTickEvent(source As Object, e As EventArgs) Handles ObjTreeTimer.Tick
+ If m_nObjTreeOldId <> GDB_ID.NULL Then
+ EgtResetMark(m_nObjTreeOldId)
+ EgtDraw()
+ End If
+ ObjTreeTimer.Stop()
+ End Sub
+
+ Public Sub LoadObjTree()
+ Dim nOldId As Integer = ClearObjTree()
+ AddGroupInObjTree(GDB_ID.ROOT, GDB_LV.USER, 0, LayerList)
+ If nOldId <> GDB_ID.NULL Then
+ SelectIdInObjTree(nOldId)
+ 'UpdateObjDataInObjTree(m_nObjTreeOldId)
+ Else
+ 'tBoxInfo.Text = String.Empty
+ End If
+ End Sub
+
+ Private Function ClearObjTree() As Integer
+ Dim nOldId As Integer = RevertOldIdInObjTree()
+ LayerList.Clear()
+ Return nOldId
+ End Function
+
+ Private Sub AddGroupInObjTree(ByVal nGroupId As Integer, ByVal nLevel As Integer, ByVal nDepth As Integer, ByRef PrevNodColl As ObservableCollection(Of LayerTreeViewItem))
+
+ Dim CurrNodColl As ObservableCollection(Of LayerTreeViewItem)
+
+ If nGroupId = GDB_ID.ROOT Then
+ CurrNodColl = PrevNodColl
+ Else
+ ' livello
+ Dim nObjLev As Integer = GDB_LV.USER
+ EgtGetLevel(nGroupId, nObjLev)
+ If nObjLev = GDB_LV.TEMP Then
+ nLevel = GDB_LV.TEMP
+ ElseIf nLevel = GDB_LV.USER Then
+ nLevel = nObjLev
+ End If
+ ' tipo
+ Dim nGroupType As Integer = 0 ' 0=gruppo generico, 1=pezzo, 2=layer
+ If nLevel = GDB_LV.USER Then
+ nGroupType = nDepth
+ End If
+ ' nome
+ Dim sName As String = String.Empty
+ Dim sText As String = String.Empty
+ If EgtGetName(nGroupId, sName) Then
+ If nGroupType = 1 Then
+ sText = sName + " (Part " + nGroupId.ToString + ")"
+ ElseIf nGroupType = 2 Then
+ sText = sName + " (Layer " + nGroupId.ToString + ")"
+ Else
+ sText = sName + " (Group " + nGroupId.ToString + ")"
+ End If
+ Else
+ If nGroupType = 1 Then
+ sText = "Part " + nGroupId.ToString
+ ElseIf nGroupType = 2 Then
+ sText = "Layer " + nGroupId.ToString
+ Else
+ sText = "Group " + nGroupId.ToString
+ End If
+ End If
+ ' per visualizzare oggetti di livello diverso da utente, si deve avere il permesso
+ If nLevel <> GDB_LV.USER And nUserLevel() < 5 Then
+ Return
+ End If
+ ' inserisco il nodo nell'albero
+ Dim CurrColor As Color3d
+ EgtGetColor(nGroupId, CurrColor)
+ Dim sImage As String = TypeToImageInObjTree(GDB_TY.GROUP, nGroupType)
+ Dim CurrNod As LayerTreeViewItem = New LayerTreeViewItem(nGroupId, sText, sImage, CurrColor.ToColor())
+ PrevNodColl.Add(CurrNod)
+ CurrNodColl = CurrNod.Items
+ Dim nStat As Integer = GDB_ST.ON_
+ EgtGetStatus(nGroupId, nStat)
+ CurrNod.OnOff = (nStat <> GDB_ST.OFF)
+ End If
+
+ Dim nObjs As Integer = EgtGetGroupObjs(nGroupId)
+ If (nObjs > 20000) Then
+ Dim sText As String = "Too many entities (" + nObjs.ToString() + ")"
+ CurrNodColl.Add(New LayerTreeViewItem(GDB_ID.NULL, sText))
+ Return
+ End If
+
+ Dim nId As Integer = EgtGetFirstInGroup(nGroupId)
+ While nId <> GDB_ID.NULL
+ 'recupero il tipo di nodo
+ Dim nType As Integer = EgtGetType(nId)
+ 'se gruppo
+ If nType = GDB_TY.GROUP Then
+ AddGroupInObjTree(nId, nLevel, nDepth + 1, CurrNodColl)
+ 'se oggetto geometrico
+ ElseIf nType >= GDB_TY.GEO_VECTOR Then
+ Dim sTitle As String = String.Empty
+ EgtGetTitle(nId, sTitle)
+ Dim sName As String = String.Empty
+ Dim sText As String = String.Empty
+ If EgtGetName(nId, sName) Then
+ sText = sName + " (" + sTitle + " " + nId.ToString + ")"
+ Else
+ sText = sTitle + " " + nId.ToString
+ End If
+ Dim CurrColor As Color3d
+ EgtGetColor(nGroupId, CurrColor)
+ Dim sImage As String = TypeToImageInObjTree(nType, nDepth)
+ Dim CurrNod As LayerTreeViewItem = New LayerTreeViewItem(nId, sText, sImage, CurrColor.ToColor())
+ CurrNodColl.Add(CurrNod)
+ Dim nStat As Integer = GDB_ST.ON_
+ EgtGetStatus(nId, nStat)
+ CurrNod.OnOff = (nStat <> GDB_ST.OFF)
+ End If
+ 'passo al successivo
+ nId = EgtGetNext(nId)
+ End While
+ End Sub
+
+ Private Function TypeToImageInObjTree(ByVal nType As Integer, ByVal nSubType As Integer) As String
+
+ Select Case nType
+ Case GDB_TY.GROUP
+ If nSubType = 1 Then
+ Return "/Resources/TreeView/Folder.png"
+ ElseIf nSubType = 2 Then
+ Return "/Resources/TreeView/Folder.png"
+ Else
+ Return "/Resources/TreeView/Group.ico"
+ End If
+ Case GDB_TY.GEO_VECTOR
+ Return "/Resources/TreeView/Vector.ico"
+ Case GDB_TY.GEO_POINT
+ Return "/Resources/TreeView/Point.ico"
+ Case GDB_TY.GEO_FRAME
+ Return "/Resources/TreeView/Frame.ico"
+ Case GDB_TY.CRV_LINE
+ Return "/Resources/TreeView/Line.ico"
+ Case GDB_TY.CRV_ARC
+ Return "/Resources/TreeView/Arc.ico"
+ Case GDB_TY.CRV_BEZ
+ Return "/Resources/TreeView/CBezier.ico"
+ Case GDB_TY.CRV_COMPO
+ Return "/Resources/TreeView/CCompo.ico"
+ Case GDB_TY.SRF_MESH
+ Return "/Resources/TreeView/STriMesh.ico"
+ Case GDB_TY.SRF_FRGN
+ Return "/Resources/TreeView/Folder.png"
+ Case GDB_TY.EXT_TEXT
+ Return "/Resources/TreeView/Text.ico"
+ End Select
+ Return ""
+ End Function
+
+ Private Sub UpdateObjTree()
+ ' per aggiornare l'albero senza ricostruirlo da capo
+ ' se c'è una entità corrente, ne aggiorno i dati
+ If m_nObjTreeOldId <> GDB_ID.NULL Then
+ 'UpdateObjDataInObjTree(m_nObjTreeOldId)
+ End If
+ End Sub
+
+ 'Private Sub ObjTree_AfterCheck(ByVal sender As Object, ByVal e As TreeViewEventArgs) Handles TreeView1.AfterCheck
+ ' ' verifico che il check derivi da azione utente
+ ' If e.Action = TreeViewAction.Unknown Then
+ ' Return
+ ' End If
+ ' ' recupero l'Id del nuovo oggetto
+ ' Dim nId As Integer
+ ' If Not Int32.TryParse(e.Node.Name, nId) Then
+ ' Return
+ ' End If
+ ' ' eseguo operazione
+ ' m_Controller.SetLastInteger(nId)
+ ' If e.Node.Checked Then
+ ' m_Controller.ExecuteCommand(CMD.SHOW)
' Else
- ' tBoxInfo.Text = String.Empty
+ ' m_Controller.ExecuteCommand(CMD.HIDE)
' End If
'End Sub
- 'Private Sub AddGroupInObjTree(ByVal nGroupId As Integer, ByVal nLevel As Integer, ByVal nDepth As Integer, ByRef PrevNodColl As TreeNodeCollection)
-
- ' Dim CurrNodColl As TreeNodeCollection
-
- ' If nGroupId = GDB_ID.ROOT Then
- ' CurrNodColl = PrevNodColl
- ' Else
- ' ' livello
- ' Dim nObjLev As Integer = GDB_LV.USER
- ' EgtGetLevel(nGroupId, nObjLev)
- ' If nObjLev = GDB_LV.TEMP Then
- ' nLevel = GDB_LV.TEMP
- ' ElseIf nLevel = GDB_LV.USER Then
- ' nLevel = nObjLev
- ' End If
- ' ' tipo
- ' Dim nGroupType As Integer = 0 ' 0=gruppo generico, 1=pezzo, 2=layer
- ' If nLevel = GDB_LV.USER Then
- ' nGroupType = nDepth
- ' End If
- ' ' nome
- ' Dim sName As String = String.Empty
- ' Dim sText As String = String.Empty
- ' If EgtGetName(nGroupId, sName) Then
- ' If nGroupType = 1 Then
- ' sText = sName + " (Part " + nGroupId.ToString + ")"
- ' ElseIf nGroupType = 2 Then
- ' sText = sName + " (Layer " + nGroupId.ToString + ")"
- ' Else
- ' sText = sName + " (Group " + nGroupId.ToString + ")"
- ' End If
- ' Else
- ' If nGroupType = 1 Then
- ' sText = "Part " + nGroupId.ToString
- ' ElseIf nGroupType = 2 Then
- ' sText = "Layer " + nGroupId.ToString
- ' Else
- ' sText = "Group " + nGroupId.ToString
- ' End If
- ' End If
- ' ' per visualizzare oggetti di livello diverso da utente, si deve avere il permesso
- ' If nLevel <> GDB_LV.USER And GetUserLevel() < 5 Then
- ' Return
- ' End If
- ' ' inserisco il nodo nell'albero
- ' Dim nImage As Integer = TypeToImageInObjTree(GDB_TY.GROUP, nGroupType)
- ' Dim CurrNod As TreeNode = PrevNodColl.Add(nGroupId.ToString(), sText, nImage, nImage)
- ' CurrNodColl = CurrNod.Nodes
- ' Dim nStat As GDB_ST = GDB_ST.ON_
- ' EgtGetStatus(nGroupId, nStat)
- ' CurrNod.Checked = (nStat <> GDB_ST.OFF)
+ 'Private Sub ObjTree_AfterSelect(ByVal sender As Object, ByVal e As TreeViewEventArgs) Handles TreeView1.AfterSelect
+ ' ' verifico che il select derivi da azione utente
+ ' If e.Action = TreeViewAction.Unknown Then
+ ' Return
' End If
+ ' ' recupero l'Id del nuovo oggetto selezionato
+ ' Dim nId As Integer
+ ' If Not Int32.TryParse(e.Node.Name, nId) Then
+ ' Return
+ ' End If
+ ' UpdateObjInObjTree(nId)
+ 'End Sub
+
+ 'Private Sub ObjTree_MouseUp(ByVal sender As Object, e As MouseEventArgs) Handles TreeView1.MouseUp
+ ' ' determino Id di eventuale item sotto il mouse
+ ' Dim nId As Integer = GDB_ID.NULL
+ ' Dim TNode As TreeNode = TreeView1.GetNodeAt(e.Location)
+ ' If TNode IsNot Nothing Then
+ ' Int32.TryParse(TNode.Name, nId)
+ ' End If
+ ' ' se Id coincide con il corrente
+ ' If nId <> GDB_ID.NULL And nId = m_nObjTreeOldId Then
+ ' ' evidenzio
+ ' EgtSetMark(m_nObjTreeOldId)
+ ' EgtDraw()
+ ' ' lancio timer per successiva de-evidenziazione
+ ' ObjTreeTimer.Stop()
+ ' ObjTreeTimer.Start()
+ ' End If
+ ' ' se rilascio tasto destro
+ ' If e.Button = Windows.Forms.MouseButtons.Right Then
+ ' ' Id pezzo sotto il mouse
+ ' m_nObjTreeMenuId = nId
+ ' ' verifico stato visualizzazione per abilitare voci menù
+ ' Dim nStat As GDB_ST = GDB_ST.ON_
+ ' Dim bOn As Boolean = EgtGetCalcStatus(m_nObjTreeMenuId, nStat) And nStat <> GDB_ST.OFF
+ ' For Each Item As ToolStripItem In ContextMenuTreeView1.Items
+ ' If Item.Name = "cmdSetName" Or Item.Name = "cmdSetInfo" Then
+ ' Item.Enabled = True
+ ' Else
+ ' Item.Enabled = bOn
+ ' End If
+ ' Next
+ ' ContextMenuTreeView1.Show(TreeView1, e.Location)
+ ' End If
+ 'End Sub
+
+ 'Private Sub ObjTree_MouseDoubleClick(ByVal sender As Object, e As MouseEventArgs) Handles TreeView1.MouseDoubleClick
+ ' If m_nObjTreeOldId <> GDB_ID.NULL Then
+ ' m_Controller.SetLastInteger(m_nObjTreeOldId)
+ ' m_Controller.ExecuteCommand(CMD.SETCURRPARTLAYER)
+ ' End If
+ 'End Sub
+
+ Private Sub UpdateObjInObjTree(ByVal nId As Integer)
+ ' ripristino eventuale vecchio oggetto selezionato
+ RevertOldIdInObjTree()
+ ' stampa dei dati del nuovo oggetto
+ '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()
+ End Sub
+
+ 'Private Sub UpdateObjDataInObjTree(ByVal nId As Integer)
+ ' ' recupero il tipo del nuovo oggetto
+ ' Dim nType As Integer = EgtGetType(nId)
+ ' ' stampa dei dati dell'oggetto
+ ' Dim sDump As String = String.Empty
+ ' If nType = GDB_TY.NONE Then
+ ' tBoxInfo.Text = String.Empty
+ ' ElseIf nType = GDB_TY.GROUP Then
+ ' If EgtGroupDump(nId, sDump) Then
+ ' tBoxInfo.Text = sDump
+ ' Else
+ ' tBoxInfo.Text = String.Empty
+ ' End If
+ ' Else
+ ' If EgtGeoObjDump(nId, sDump) Then
+ ' tBoxInfo.Text = sDump
+ ' Else
+ ' tBoxInfo.Text = String.Empty
+ ' End If
+ ' End If
+ 'End Sub
+
+ Private Function RevertOldIdInObjTree() As Integer
+ ' salvo il vecchio Id
+ Dim nOldId As Integer = m_nObjTreeOldId
+ ' se non nullo...
+ If EgtExistsObj(m_nObjTreeOldId) Then
+ ' smarco l'oggetto
+ EgtResetMark(m_nObjTreeOldId)
+ ' annullo oggetto da ripristinare
+ m_nObjTreeOldId = GDB_ID.NULL
+ End If
+ Return nOldId
+ End Function
+
+ Private Function SelectIdInObjTree(ByVal nId As Integer) As Boolean
+ Dim tNode As LayerTreeViewItem = SearchIdInLayerList(nId)
+ If Not IsNothing(tNode) Then
+ tNode.IsSelected = True
+ tNode.IsExpanded = True
+ m_nObjTreeOldId = nId
+ Return True
+ Else
+ m_nObjTreeOldId = GDB_ID.NULL
+ Return False
+ End If
+ End Function
+
+ Private Function SearchIdInLayerList(nId As Integer) As LayerTreeViewItem
+ For Each Item In LayerList
+ If Item.Id = nId Then
+ Return Item
+ Else
+ Return SearchIdInLayerList(Item.Id)
+ End If
+ Next
+ Return Nothing
+ End Function
+
+ 'Private Sub MenuObjTree_ItemClicked(sender As Object, e As ToolStripItemClickedEventArgs) Handles ContextMenuTreeView1.ItemClicked
+ ' If e.ClickedItem.Name = "cmdSelectPartLayObj" Then
+ ' m_Controller.SetLastInteger(m_nObjTreeMenuId)
+ ' m_Controller.ExecuteCommand(CMD.SELECTPARTLAYEROBJ)
+ ' ElseIf e.ClickedItem.Name = "cmdDeselectPartLayObj" Then
+ ' m_Controller.SetLastInteger(m_nObjTreeMenuId)
+ ' m_Controller.ExecuteCommand(CMD.DESELECTPARTLAYEROBJ)
+ ' ElseIf e.ClickedItem.Name = "cmdSetName" Then
+ ' m_Controller.SetLastInteger(m_nObjTreeMenuId)
+ ' m_Controller.ExecuteCommand(CMD.SETNAME)
+ ' ElseIf e.ClickedItem.Name = "cmdSetInfo" Then
+ ' m_Controller.SetLastInteger(m_nObjTreeMenuId)
+ ' m_Controller.ExecuteCommand(CMD.SETINFO)
+ ' ElseIf e.ClickedItem.Name = "cmdRelocatePartLayObj" Then
+ ' m_Controller.SetLastInteger(m_nObjTreeMenuId)
+ ' m_Controller.ExecuteCommand(CMD.RELOCATEPARTLAYEROBJ)
+ ' ElseIf e.ClickedItem.Name = "cmdCopyPartLayObj" Then
+ ' m_Controller.SetLastInteger(m_nObjTreeMenuId)
+ ' m_Controller.ExecuteCommand(CMD.COPYPARTLAYEROBJ)
+ ' ElseIf e.ClickedItem.Name = "cmdDeletePartLayObj" Then
+ ' m_Controller.SetLastInteger(m_nObjTreeMenuId)
+ ' m_Controller.ExecuteCommand(CMD.DELETE)
+ ' ElseIf e.ClickedItem.Name = "cmdSavePartLay" Then
+ ' ContextMenuTreeView1.Close()
+ ' Dim sDir As String = String.Empty
+ ' GetPrivateProfileString(S_GENERAL, K_LASTNGEOBJDIR, "", sDir, m_sIniFile)
+ ' Dim nType As NGE = GetPrivateProfileInt(S_GEOMDB, K_SAVETYPE, NGE.CMPTEXT, m_sIniFile)
+ ' m_Controller.SaveObject(m_nObjTreeMenuId, sDir, nType)
+ ' End If
+ 'End Sub
#End Region
diff --git a/ProjectPage/ProjectViewModel.vb b/ProjectPage/ProjectViewModel.vb
index 841da15..1396bad 100644
--- a/ProjectPage/ProjectViewModel.vb
+++ b/ProjectPage/ProjectViewModel.vb
@@ -635,10 +635,10 @@ Namespace EgtCAM5
m_Controller.MouseMoveInSelectionPoint(PtP)
End Sub
- ' Private Sub OnMouseAnalyzed(ByVal sender As Object, ByVal nId As Integer) Handles m_ProjectScene.OnMouseAnalyzed
- ' UpdateObjInObjTree(nId)
- ' SelectIdInObjTree(nId)
- ' End Sub
+ Private Sub OnMouseAnalyzed(ByVal sender As Object, ByVal nId As Integer) Handles m_ProjectScene.OnMouseAnalyzed
+ Application.Msn.NotifyColleagues(Application.UPDATEOBJINOBJTREE, nId)
+ Application.Msn.NotifyColleagues(Application.SELECTIDINOBJTREE, nId)
+ End Sub
Private Sub OnShowDistance(ByVal sender As Object, ByVal sDistance As String) Handles m_ProjectScene.OnShowDistance
Application.Msn.NotifyColleagues(Application.NOTIFYSTATUSOUTPUT, sDistance)
@@ -674,9 +674,9 @@ Namespace EgtCAM5
End If
End Sub
- ' Private Sub OnOpeningProject(ByVal sender As Object) Handles m_Controller.OnOpeningProject
- ' ClearObjTree()
- ' End Sub
+ Private Sub OnOpeningProject(ByVal sender As Object) Handles m_Controller.OnOpeningProject
+ Application.Msn.NotifyColleagues(Application.CLEAROBJTREE)
+ End Sub
Private Sub OnOpenProject(ByVal sender As Object, ByVal sFile As String, ByVal bOk As Boolean) Handles m_Controller.OnOpenProject
WritePrivateProfileString(S_GENERAL, K_LASTNGEDIR, Path.GetDirectoryName(sFile))
@@ -719,7 +719,7 @@ Namespace EgtCAM5
Private Sub OnImportingProject(ByVal sender As Object, ByVal bOkType As Boolean) Handles m_Controller.OnImportingProject
If bOkType Then
- 'ClearObjTree()
+ Application.Msn.NotifyColleagues(Application.CLEAROBJTREE)
Else
MessageBox.Show(EgtMsg(10005), EgtMsg(10001), MessageBoxButton.OK, MessageBoxImage.Error) ' File type unknown - Error
End If
@@ -745,7 +745,7 @@ Namespace EgtCAM5
End Sub
Private Sub OnExecutingScript(ByVal sender As Object) Handles m_Controller.OnExecutingScript
- 'ClearObjTree()
+ Application.Msn.NotifyColleagues(Application.CLEAROBJTREE)
'Abilito progress e bottone stop
Application.Msn.NotifyColleagues(Application.NOTIFYSTATUSPROGRESS, 0)
Application.Msn.NotifyColleagues(Application.NOTIFYSTATUSSTOP, True)
@@ -797,11 +797,11 @@ Namespace EgtCAM5
' aggiorno dati correnti
'EmitTitle()
'EmitCurrPartLayer()
- 'If bReloadUI Then
- ' LoadObjTree()
- 'Else
- ' UpdateObjTree()
- 'End If
+ If bReloadUI Then
+ Application.Msn.NotifyColleagues(Application.LOADOBJTREE)
+ Else
+ Application.Msn.NotifyColleagues(Application.UPDATEOBJTREE)
+ End If
End Sub
Private Sub OutputInfo(ByVal sender As Object, ByVal sText As String) Handles m_Controller.OutputInfo
diff --git a/Resources/TreeView/Arc.ico b/Resources/TreeView/Arc.ico
new file mode 100644
index 0000000..832587c
Binary files /dev/null and b/Resources/TreeView/Arc.ico differ
diff --git a/Resources/TreeView/CBezier.ico b/Resources/TreeView/CBezier.ico
new file mode 100644
index 0000000..d15a834
Binary files /dev/null and b/Resources/TreeView/CBezier.ico differ
diff --git a/Resources/TreeView/CCompo.ico b/Resources/TreeView/CCompo.ico
new file mode 100644
index 0000000..2f9070c
Binary files /dev/null and b/Resources/TreeView/CCompo.ico differ
diff --git a/Resources/TreeView/Frame.ico b/Resources/TreeView/Frame.ico
new file mode 100644
index 0000000..20ebd0c
Binary files /dev/null and b/Resources/TreeView/Frame.ico differ
diff --git a/Resources/TreeView/Group.ico b/Resources/TreeView/Group.ico
new file mode 100644
index 0000000..79a6648
Binary files /dev/null and b/Resources/TreeView/Group.ico differ
diff --git a/Resources/TreeView/LampOff.png b/Resources/TreeView/LampOff.png
new file mode 100644
index 0000000..ac7110d
Binary files /dev/null and b/Resources/TreeView/LampOff.png differ
diff --git a/Resources/TreeView/LampOn.png b/Resources/TreeView/LampOn.png
new file mode 100644
index 0000000..e8fe124
Binary files /dev/null and b/Resources/TreeView/LampOn.png differ
diff --git a/Resources/TreeView/Line.ico b/Resources/TreeView/Line.ico
new file mode 100644
index 0000000..dacfe48
Binary files /dev/null and b/Resources/TreeView/Line.ico differ
diff --git a/Resources/TreeView/Maters.ico b/Resources/TreeView/Maters.ico
new file mode 100644
index 0000000..601e4b4
Binary files /dev/null and b/Resources/TreeView/Maters.ico differ
diff --git a/Resources/TreeView/NoGeo.ico b/Resources/TreeView/NoGeo.ico
new file mode 100644
index 0000000..9caefc1
Binary files /dev/null and b/Resources/TreeView/NoGeo.ico differ
diff --git a/Resources/TreeView/OneMater.ico b/Resources/TreeView/OneMater.ico
new file mode 100644
index 0000000..9641a5a
Binary files /dev/null and b/Resources/TreeView/OneMater.ico differ
diff --git a/Resources/TreeView/Point.ico b/Resources/TreeView/Point.ico
new file mode 100644
index 0000000..eb41161
Binary files /dev/null and b/Resources/TreeView/Point.ico differ
diff --git a/Resources/TreeView/STriMesh.ico b/Resources/TreeView/STriMesh.ico
new file mode 100644
index 0000000..1ca4e25
Binary files /dev/null and b/Resources/TreeView/STriMesh.ico differ
diff --git a/Resources/TreeView/Text.ico b/Resources/TreeView/Text.ico
new file mode 100644
index 0000000..a571348
Binary files /dev/null and b/Resources/TreeView/Text.ico differ
diff --git a/Resources/TreeView/Vector.ico b/Resources/TreeView/Vector.ico
new file mode 100644
index 0000000..6133cb7
Binary files /dev/null and b/Resources/TreeView/Vector.ico differ