Mini Kabibi Habibi

Current Path : C:/Users/Public/Documents/DXperience 13.1 Demos/WPF/VB/NavBarDemo.Wpf/Modules/
Upload File :
Current File : C:/Users/Public/Documents/DXperience 13.1 Demos/WPF/VB/NavBarDemo.Wpf/Modules/Events.xaml.vb

Imports Microsoft.VisualBasic
Imports System
Imports System.Collections.Generic
Imports System.Linq
Imports System.Text
Imports System.Windows
Imports System.Windows.Controls
Imports System.Windows.Data
Imports System.Windows.Documents
Imports System.Windows.Input
Imports System.Windows.Media
Imports System.Windows.Media.Imaging
Imports System.Windows.Navigation
Imports System.Windows.Shapes
Imports DevExpress.Xpf.NavBar
Imports DevExpress.Xpf.DemoBase
Imports DevExpress.Xpf.Core.Native
Imports DevExpress.Xpf.Editors

Namespace NavBarDemo
 Partial Public Class Events
	 Inherits NavBarDemoModule
  Public Sub New()
   InitializeComponent()
			AddHandler navBar.PreviewMouseDown, AddressOf navBar_MouseDown
			AddHandler navBar.PreviewMouseUp, AddressOf navBar_MouseUp
			AddHandler navBar.MouseMove, AddressOf navBar_MouseMove
			UpdateControlAvailability()
  End Sub
		Public Overrides Sub OnApplyTemplate()
			MyBase.OnApplyTemplate()
			navBarControl = navBar
		End Sub
  Protected Overrides Sub SelectView(ByVal sender As Object, ByVal e As RoutedEventArgs)
   MyBase.SelectView(sender, e)
			UpdateControlAvailability()
  End Sub

		Protected Overrides Function GetExplorerBarView() As ExplorerBarView
			Return CType(FindResource("explorerBar"), ExplorerBarView)
		End Function
		Protected Overrides Function GetNavigationPaneView() As NavigationPaneView
			Return CType(FindResource("navigationPane"), NavigationPaneView)
		End Function
		Protected Overrides Function GetSideBarView() As SideBarView
			Return CType(FindResource("sideBar"), SideBarView)
		End Function

  Private Sub navBar_MouseDown(ByVal sender As Object, ByVal e As RoutedEventArgs)
   Dim group As NavBarGroup = navBar.View.GetNavBarGroup(e)
   Dim item As NavBarItem = navBar.View.GetNavBarItem(e)
   If group IsNot Nothing OrElse item IsNot Nothing Then
	AddToStack("MouseDown: " & (If(item IsNot Nothing, GetItemContent(item), GetGroupHeader(group))), mouseDownCheckbox)
   End If
  End Sub
  Private Sub navBar_MouseMove(ByVal sender As Object, ByVal e As RoutedEventArgs)
   Dim group As NavBarGroup = navBar.View.GetNavBarGroup(e)
   Dim item As NavBarItem = navBar.View.GetNavBarItem(e)
   If group IsNot Nothing OrElse item IsNot Nothing Then
	AddToStack("MouseMove: " & (If(item IsNot Nothing, GetItemContent(item), GetGroupHeader(group))), mouseMoveCheckbox)
   End If
  End Sub
  Private Sub navBar_MouseUp(ByVal sender As Object, ByVal e As RoutedEventArgs)
   Dim group As NavBarGroup = navBar.View.GetNavBarGroup(e)
   Dim item As NavBarItem = navBar.View.GetNavBarItem(e)
   If group IsNot Nothing OrElse item IsNot Nothing Then
	AddToStack("MouseUp: " & (If(item IsNot Nothing, GetItemContent(item), GetGroupHeader(group))), mouseUpCheckbox)
   End If
  End Sub
  Private Sub View_Click(ByVal sender As Object, ByVal e As RoutedEventArgs)
   Dim group As NavBarGroup = navBar.View.GetNavBarGroup(e)
   Dim item As NavBarItem = navBar.View.GetNavBarItem(e)
   If group IsNot Nothing OrElse item IsNot Nothing Then
	AddToStack("Click: " & (If(item IsNot Nothing, GetItemContent(item), GetGroupHeader(group))), clickCheckbox)
   End If
  End Sub

  Private Sub Selection_Changing(ByVal sender As Object, ByVal e As NavBarItemSelectingEventArgs)
   AddToStack("ItemSelecting: " & "PrevGroup '" & GetGroupHeader(e.PrevGroup) & "', PrevItem '" & GetItemContent(e.PrevItem) & "'; " & "NewGroup '" & GetGroupHeader(e.NewGroup) & "', NewItem '" & GetItemContent(e.NewItem) & "'", selectionChangingCheckbox)
  End Sub
  Private Sub Selection_Changed(ByVal sender As Object, ByVal e As NavBarItemSelectedEventArgs)
   AddToStack("ItemSelected: Group '" & e.Group.Header.ToString() & "', Item '" & e.Item.Content.ToString() & "'", selectionChangedCheckbox)
  End Sub

		Private Sub UpdateControlAvailability()
			groupExpandedChangedCheckbox.IsEnabled = TypeOf navBar.View Is ExplorerBarView
			groupExpandedChangingCheckbox.IsEnabled = TypeOf navBar.View Is ExplorerBarView

			navPaneExpandedChangedCheckbox.IsEnabled = TypeOf navBar.View Is NavigationPaneView
			navPaneExpandedChangingCheckbox.IsEnabled = TypeOf navBar.View Is NavigationPaneView
		End Sub
  Private Sub View_ActiveGroupChanging(ByVal sender As Object, ByVal e As NavBarActiveGroupChangingEventArgs)
   AddToStack("ActiveGroupChanging: " & "PrevGroup '" & GetGroupHeader(e.PrevGroup) & "'; " & "NewGroup '" & GetGroupHeader(e.NewGroup) & "'", activeGroupChangingCheckbox)
  End Sub
  Private Sub View_ActiveGroupChanged(ByVal sender As Object, ByVal e As NavBarActiveGroupChangedEventArgs)
   AddToStack("ActiveGroupChanged: " & GetGroupHeader(e.Group), activeGroupChangedCheckbox)
  End Sub

  Private Sub view_GroupExpandedChanging(ByVal sender As Object, ByVal e As NavBarGroupExpandedChangingEventArgs)
   AddToStack("GroupExpandedChanging: Group '" & GetGroupHeader(e.Group) & "', IsExpanded=" & e.IsExpanded.ToString(), groupExpandedChangingCheckbox)
  End Sub
  Private Sub view_GroupExpandedChanged(ByVal sender As Object, ByVal e As NavBarGroupExpandedChangedEventArgs)
   AddToStack("GroupExpandedChanged: Group '" & GetGroupHeader(e.Group) & "', IsExpanded=" & e.IsExpanded.ToString(), groupExpandedChangedCheckbox)
  End Sub

  Private Sub navPane_NavPaneExpandedChanging(ByVal sender As Object, ByVal e As NavPaneExpandedChangingEventArgs)
   AddToStack("NavPaneExpandedChanging: IsExpanded=" & e.IsExpanded, navPaneExpandedChangingCheckbox)
  End Sub
  Private Sub navPane_NavPaneExpandingChanged(ByVal sender As Object, ByVal e As NavPaneExpandedChangedEventArgs)
   AddToStack("NavPaneExpandedChanged: IsExpanded=" & e.IsExpanded, navPaneExpandedChangedCheckbox)
  End Sub

  Private Function GetGroupHeader(ByVal group As NavBarGroup) As String
   Return If(group IsNot Nothing, group.Header.ToString(), "null")
  End Function
  Private Function GetItemContent(ByVal item As NavBarItem) As String
   Return If(item IsNot Nothing, item.Content.ToString(), "null")
  End Function

  Private logQueue As New Queue(Of String)()
  Private Const logEntriesCount As Integer = 100

  Private Sub AddToStack(ByVal str As String, ByVal checkEdit As CheckEdit)
			If (Not IsLoaded) OrElse (Not CBool(checkEdit.IsChecked)) Then
				Return
			End If
   logQueue.Enqueue(str)
   If logQueue.Count > logEntriesCount Then
	logQueue.Dequeue()
   End If
   textBox.Text = String.Empty
   Dim builder As New StringBuilder()
   For Each text As String In logQueue
	builder.Append((If(builder.Length <> 0, Environment.NewLine, String.Empty)) & text)
   Next text
   textBox.Text = builder.ToString()
			Dim textBoxCore As TextBox = CType(LayoutHelper.FindElement(textBox, Function(element) (TypeOf element Is TextBox)), TextBox)
			textBoxCore.ScrollToEnd()
  End Sub

  Private Sub Button_Click(ByVal sender As Object, ByVal e As RoutedEventArgs)
   logQueue.Clear()
   textBox.Text = String.Empty
  End Sub
 End Class
End Namespace