Mini Kabibi Habibi

Current Path : C:/Users/Public/Documents/DXperience 13.1 Demos/WinForms/VB/DockingDemo/
Upload File :
Current File : C:/Users/Public/Documents/DXperience 13.1 Demos/WinForms/VB/DockingDemo/SolutionExplorer.vb

Imports Microsoft.VisualBasic
Imports System
Imports System.Collections
Imports System.ComponentModel
Imports System.Drawing
Imports System.Data
Imports System.Windows.Forms
Imports DevExpress.XtraTreeList.Nodes
Imports DevExpress.XtraTreeList.Columns

Namespace DevExpress.XtraBars.Demos.DockingDemo
	Partial Public Class SolutionExplorer
		Inherits System.Windows.Forms.UserControl
		Public Sub New()
			InitializeComponent()
            InitTreeView(treeView1)
			AddHandler treeView1.CustomDrawNodeCell, AddressOf treeView1_CustomDrawNodeCell
			AddHandler treeView1.AfterCollapse, AddressOf treeView1_AfterCollapse
			AddHandler treeView1.AfterExpand, AddressOf treeView1_AfterExpand
			AddAllNodes(iShow.Down)
		End Sub
        Public Shared Sub InitTreeView(ByVal treeView As XtraTreeList.TreeList)
            Dim column As TreeListColumn = treeView.Columns.Add()
            column.Visible = True
            treeView.OptionsView.ShowColumns = False
            treeView.OptionsView.ShowIndicator = False
            treeView.OptionsView.ShowVertLines = False
            treeView.OptionsView.ShowHorzLines = False
            treeView.OptionsBehavior.Editable = False
            treeView.OptionsSelection.EnableAppearanceFocusedCell = False
        End Sub
		Private Sub treeView1_CustomDrawNodeCell(ByVal sender As Object, ByVal e As DevExpress.XtraTreeList.CustomDrawNodeCellEventArgs)
			If e.Node.Id = 1 Then
			e.Appearance.Font = New Font(e.Appearance.Font, FontStyle.Bold)
			End If
		End Sub

		Private Sub SetIndex(ByVal node As TreeListNode, ByVal index As Integer, ByVal expand As Boolean)
			Dim newIndex As Integer
			newIndex = If(expand, index - 1, index + 1)
			If node.StateImageIndex = index Then
				node.StateImageIndex = newIndex
			End If
		End Sub

		Private Sub treeView1_AfterExpand(ByVal sender As Object, ByVal e As DevExpress.XtraTreeList.NodeEventArgs)
			SetIndex(e.Node, 7, True)
			SetIndex(e.Node, 9, True)
		End Sub

		Private Sub treeView1_AfterCollapse(ByVal sender As Object, ByVal e As DevExpress.XtraTreeList.NodeEventArgs)
			SetIndex(e.Node, 6, False)
			SetIndex(e.Node, 8, False)
		End Sub

		Private Sub AddAllNodes(ByVal showAll As Boolean)
			treeView1.Nodes.Clear()
			treeView1.AppendNode(New Object() { "Solution 'DockingDemo' (1 project)" }, -1, -1, -1, 3)
			treeView1.AppendNode(New Object() { "DockingDemo" }, -1, -1, -1, 4)
			treeView1.AppendNode(New Object() { "References" }, 1, -1, -1, 7)
			treeView1.AppendNode(New Object() { "DevExpress.Utils" }, 2, -1, -1, 5)
			treeView1.AppendNode(New Object() { "DevExpress.XtraBars" }, 2, -1, -1, 5)
			treeView1.AppendNode(New Object() { "DevExpress.XtraEditors" }, 2, -1, -1, 5)
			treeView1.AppendNode(New Object() { "System" }, 2, -1, -1, 5)
			treeView1.AppendNode(New Object() { "System.Drawing" }, 2, -1, -1, 5)
			treeView1.AppendNode(New Object() { "System.Windows.Forms" }, 2, -1, -1, 5)
			If showAll Then
				treeView1.AppendNode(New Object() { "bin" }, 1, -1, -1, 9)
				treeView1.AppendNode(New Object() { "Debug" }, 9, -1, -1, 9)
				treeView1.AppendNode(New Object() { "Release" }, 9, -1, -1, 9)
				treeView1.AppendNode(New Object() { "obj" }, 1, -1, -1, 9)
				treeView1.AppendNode(New Object() { "Debug" }, 12, -1, -1, 9)
				treeView1.AppendNode(New Object() { "Release" }, 12, -1, -1, 9)
			End If
			treeView1.AppendNode(New Object() { "AssemblyInfo.cs" }, 1, -1, -1, 10)
			treeView1.AppendNode(New Object() { "frmMain.cs" }, 1, -1, -1, 11)
			treeView1.AppendNode(New Object() { "SolutionExplorer.cs" }, 1, -1, -1, 12)
			If showAll Then
				treeView1.AppendNode(New Object() { "frmMain.resx" }, 16, -1, -1, 13)
				treeView1.AppendNode(New Object() { "SolutionExplorer.resx" }, 17, -1, -1, 13)
			End If
			treeView1.ExpandAll()
		End Sub

		Private Sub iShow_ItemClick(ByVal sender As Object, ByVal e As DevExpress.XtraBars.ItemClickEventArgs) Handles iShow.ItemClick
			AddAllNodes((CType(e.Item, DevExpress.XtraBars.BarButtonItem)).Down)
		End Sub

		Public Event PropertiesItemClick As EventHandler
		Private Sub iProperties_ItemClick(ByVal sender As Object, ByVal e As DevExpress.XtraBars.ItemClickEventArgs) Handles iProperties.ItemClick
		RaiseEvent PropertiesItemClick(sender, EventArgs.Empty)

		End Sub
		Public Event TreeViewItemClick As EventHandler
		Private Sub treeView1_MouseDoubleClick(ByVal sender As Object, ByVal e As MouseEventArgs) Handles treeView1.MouseDoubleClick
			RaiseEvent TreeViewItemClick(sender, EventArgs.Empty)
		End Sub
	End Class
End Namespace