Mini Kabibi Habibi

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

Imports Microsoft.VisualBasic
Imports System.IO
Imports System.Reflection
Imports System.Windows
Imports DevExpress.Xpf.Core.Serialization
Imports System.IO.IsolatedStorage
Imports DevExpress.Xpf.Core

Namespace BarsDemo
	Partial Public Class Serialization
		Inherits BarsDemoModule
		Private wManager As IWorkspaceManager
		Public Sub New()
			InitializeComponent()
			AddHandler Unloaded, AddressOf OnUnloaded
			DXSerializer.SetSerializationID(Me.barManager, "BarManager")
			isolatedStorageSettingsGroup.Visibility = Visibility.Collapsed
			wManager = WorkspaceManager.GetWorkspaceManager(barManager)
			wManager.TransitionEffect = TransitionEffect.Ripple
		End Sub

		Protected Overrides Sub OnLoaded(ByVal sender As Object, ByVal e As RoutedEventArgs)
			MyBase.OnLoaded(sender, e)
			loadLocalStorageButton.IsEnabled = False
		End Sub
		Protected Overrides Sub OnUnloaded(ByVal sender As Object, ByVal e As RoutedEventArgs)
		End Sub

		Protected Overridable Sub ShowMessageBox(ByVal message As String)
			MessageBox.Show(message, "Layout", MessageBoxButton.OK, MessageBoxImage.Information)
		End Sub
		Protected Overridable Sub serializeButton_Click(ByVal sender As Object, ByVal e As RoutedEventArgs)
			Me.stream = New MemoryStream()
			Me.barManager.SaveLayoutToStream(Me.stream)
			ShowMessageBox("Layout has been saved")
			Me.deserializeButton.IsEnabled = stream.Length > 0
		End Sub
		Protected Overridable Sub deserializeButton_Click(ByVal sender As Object, ByVal e As RoutedEventArgs)
			If Me.stream Is Nothing Then
				Return
			End If
			Dim memoryStream As New MemoryStream()
			stream.Seek(0, SeekOrigin.Begin)
			stream.CopyTo(memoryStream)
			stream.Seek(0, SeekOrigin.Begin)
			RestoreLayout("UserSaved", stream)
			stream.Dispose()
			stream = memoryStream
		End Sub
		Private Sub RestoreLayout(ByVal name As String, ByVal file As Stream)
			If useWManagerCheck.IsChecked.HasValue AndAlso useWManagerCheck.IsChecked.Value Then
				If transitionComboBox.SelectedItem IsNot Nothing Then
					wManager.TransitionEffect = CType(transitionComboBox.SelectedItem, TransitionEffect)
				End If
				wManager.LoadWorkspace(name, file)
				wManager.ApplyWorkspace(name)
			Else
				Me.barManager.RestoreLayoutFromStream(file)
				ShowMessageBox("Layout has been restored")
			End If
		End Sub
		Protected Overridable Sub loadSampleLayoutButton_Click(ByVal sender As Object, ByVal e As RoutedEventArgs)
			Dim thisExe As System.Reflection.Assembly = System.Reflection.Assembly.GetExecutingAssembly()
			Dim name As String = String.Format("BarsDemo.Layouts.{0}.xml", layoutSampleName.SelectedItem.ToString().ToLower())
			Dim file As Stream = thisExe.GetManifestResourceStream(name)
			RestoreLayout(name, file)
		End Sub
		Protected Overridable Sub saveLocalStorageButton_Click(ByVal sender As Object, ByVal e As RoutedEventArgs)
		End Sub
		Protected Overridable Sub loadLocalStorageButton_Click(ByVal sender As Object, ByVal e As RoutedEventArgs)
		End Sub

		Private stream As Stream

		Private Sub transitionComboBox_SelectedIndexChanged(ByVal sender As Object, ByVal e As RoutedEventArgs)
			If barManager IsNot Nothing Then
				Dim wm As IWorkspaceManager = WorkspaceManager.GetWorkspaceManager(barManager)
				If wm IsNot Nothing Then
					wm.TransitionEffect = CType(transitionComboBox.SelectedItem, TransitionEffect)
				End If
			End If
		End Sub
	End Class
End Namespace