Mini Kabibi Habibi

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

Imports System
Imports System.Windows.Forms
Imports DevExpress.Utils
Imports DevExpress.XtraEditors
Imports DevExpress.XtraBars
Imports DevExpress.XtraSpellChecker
Imports System.Globalization
Imports DevExpress.DXperience.Demos
Imports DevExpress.XtraScheduler.Reporting
Imports DevExpress.XtraBars.Ribbon

Namespace DevExpress.XtraScheduler.Demos

	Partial Public Class frmMain
		Inherits DevExpress.DXperience.Demos.RibbonMainForm
		Public Sub New()
			' This call is required by the Windows Form Designer.
			InitializeComponent()

			' TODO: Add any initialization after the InitializeComponent call
		End Sub

		#Region "Properties"
		Protected Overrides ReadOnly Property DemoName() As String
			Get
                Return "XtraScheduler Main Demo (VB code)"
			End Get
		End Property
		#End Region

		Protected Overrides Sub ShowAbout()
            DevExpress.Utils.About.AboutForm.Show(GetType(DevExpress.XtraScheduler.SchedulerControl), DevExpress.Utils.About.ProductKind.DXperienceWin, DevExpress.Utils.About.ProductInfoStage.Registered)
		End Sub

		Protected Overrides Sub SetFormParam()
            Me.Icon = ResourceImageHelper.CreateIconFromResources("AppIcon.ico", GetType(frmMain).Assembly)
		End Sub
        Protected Overloads Overrides Sub ShowModule(ByVal name As String, ByVal groupControl As DevExpress.XtraEditors.GroupControl, ByVal lookAndFeel As DevExpress.LookAndFeel.DefaultLookAndFeel, ByVal caption As DevExpress.Utils.Frames.ApplicationCaption)
			DemosInfo.ShowModule(name, groupControl, caption, TryCast(RibbonMenuManager, SchedulerRibbonMenuManager))
		End Sub

		Protected Overrides Function CreateRibbonMenuManager() As RibbonMenuManager
			Return New SchedulerRibbonMenuManager(Me)
		End Function

		Private Sub frmMain_Load(ByVal sender As Object, ByVal e As EventArgs) Handles MyBase.Load
			Dim culture As CultureInfo = CultureInfo.InvariantCulture
			sharedDictionaryStorage.Dictionaries.Clear()
            Dim dictionary As SpellCheckerISpellDictionary = New SpellCheckerISpellDictionary(DemoUtils.GetFileRelativePath("american.xlg"), DemoUtils.GetFileRelativePath("english.aff"), culture)
			dictionary.AlphabetPath = DemoUtils.GetFileRelativePath("EnglishAlphabet.txt")
			sharedDictionaryStorage.Dictionaries.Add(dictionary)
            Dim customDictionary As SpellCheckerCustomDictionary = New SpellCheckerCustomDictionary(DemoUtils.GetFileRelativePath("CustomEnglish.dic"), culture)
			sharedDictionaryStorage.Dictionaries.Add(customDictionary)
		End Sub
		Protected Overrides Sub FillNavBar()
			MyBase.FillNavBar()
			Me.navBarControl1.SkinExplorerBarViewScrollStyle = DevExpress.XtraNavBar.SkinExplorerBarViewScrollStyle.ScrollBar
		End Sub
	End Class

	Public Class CheckBarItemWithPrintColorSchema
		Inherits CheckBarItem
		Private printColorSchema_Renamed As PrintColorSchema
		Public Sub New(ByVal manager As BarManager, ByVal text As String, ByVal handler As ItemClickEventHandler, ByVal printColorSchema As PrintColorSchema)
			MyBase.New(manager, text, handler)
			Me.printColorSchema_Renamed = printColorSchema
		End Sub
		Public ReadOnly Property PrintColorSchema() As PrintColorSchema
			Get
				Return printColorSchema_Renamed
			End Get
		End Property
	End Class

	Public Interface IDemoSchedulerReport
		Sub UpdateActiveReport()
	End Interface

	Public Class SchedulerRibbonMenuManager
		Inherits RibbonMenuManager
		#Region "Fields"
		Private fSchedulerControl As SchedulerControl
		Private fSchedulerReport As IDemoSchedulerReport

		Private bbiPageSetup As BarButtonItem
		Private bbiLoadPageSetup As BarButtonItem
		Private bbiSavePageSetup As BarButtonItem

		Private bsiReports As BarSubItem
		Private cbiPrintColorSchemaBW As BarItem
		Private cbiPrintColorSchemaGS As BarItem
		Private cbiPrintColorSchemaFC As BarItem
		#End Region

		Public Sub New(ByVal form As RibbonMainForm)
			MyBase.New(form)
			CreatePageSetupMenu(form)
			CreateReportsMenu(form)
			EnableReportsMenu()
		End Sub

		#Region "Properties"
		Public Property SchedulerControl() As SchedulerControl
			Get
				Return fSchedulerControl
			End Get
			Set(ByVal value As SchedulerControl)
				fSchedulerControl = value
			End Set
		End Property
		Public Property SchedulerReport() As IDemoSchedulerReport
			Get
				Return fSchedulerReport
			End Get
			Set(ByVal value As IDemoSchedulerReport)
				fSchedulerReport = value
				EnableReportsMenu()
			End Set
		End Property
		#End Region

		Protected Friend Overridable Sub EnableReportsMenu()
			ShowReservGroup1(SchedulerReport IsNot Nothing)
		End Sub
		Protected Friend Overridable Sub CreatePageSetupMenu(ByVal form As RibbonMainForm)
			bbiPageSetup = CreateButtonItem("Page Setup", "PageSetup", AddressOf bbiPageSetup_Click)
			Dim ribbon As RibbonControl = form.Ribbon
			Dim printExportGroup As RibbonPageGroup = form.PrintExportGroup
			AddBarItemInRibbon(ribbon, printExportGroup, bbiPageSetup, True)
			bbiLoadPageSetup = CreateButtonItem("Load Page Setup", "LoadPageSetup", AddressOf bbiLoadPageSetup_Click)
			AddBarItemInRibbon(ribbon, printExportGroup, bbiLoadPageSetup)
			bbiSavePageSetup = CreateButtonItem("Save Page Setup", "SavePageSetup", AddressOf bbiSavePageSetup_Click)
			AddBarItemInRibbon(ribbon, printExportGroup, bbiSavePageSetup)
		End Sub
		Protected Friend Overridable Function CreateButtonItem(ByVal caption As String, ByVal imageName As String, ByVal clickHandler As ItemClickEventHandler) As BarButtonItem
			Dim item As New BarButtonItem(Me.Manager, caption)
			MainFormHelper.SetBarButtonImage(item, imageName)
			'bbiAlphaBlendingAdjustment.Glyph = DevExpress.Utils.ResourceImageHelper.CreateImageFromResources("DevExpress.XtraScheduler.Demos.Images.Blending.png", typeof(frmMain).Assembly);
			AddHandler item.ItemClick, clickHandler
			Return item
		End Function
		Protected Friend Overridable Sub AddBarItemInRibbon(ByVal ribbon As RibbonControl, ByVal group As RibbonPageGroup, ByVal item As BarItem)
			AddBarItemInRibbon(ribbon, group, item, False)
		End Sub
		Private Sub AddBarItemInRibbon(ByVal ribbon As RibbonControl, ByVal group As RibbonPageGroup, ByVal item As BarItem, ByVal beginGroup As Boolean)
			ribbon.Items.Add(item)
			group.ItemLinks.Add(item, beginGroup)
		End Sub
		Private Sub bbiPageSetup_Click(ByVal sender As Object, ByVal e As ItemClickEventArgs)
			Try
				SchedulerControl.ShowPrintOptionsForm()
			Catch ex As Exception
				XtraMessageBox.Show(ex.Message, Application.ProductName)
			End Try
		End Sub
		Private Sub bbiLoadPageSetup_Click(ByVal sender As Object, ByVal e As ItemClickEventArgs)
			Dim dlg As New OpenFileDialog()
			Try
				dlg.CheckPathExists = True
				dlg.Filter = "XML files (*.xml) | *.xml"
				Dim result As DialogResult = dlg.ShowDialog()
				If result <> DialogResult.OK Then
					Return
				End If
				SchedulerControl.PrintStyles.FromXml(dlg.FileName, Application.ProductName)
			Catch ex As Exception
				XtraMessageBox.Show(ex.Message, Application.ProductName)

			Finally
				dlg.Dispose()
			End Try
		End Sub
		Private Sub bbiSavePageSetup_Click(ByVal sender As Object, ByVal e As ItemClickEventArgs)
			Dim dlg As New SaveFileDialog()
			Try
				dlg.Filter = "XML files (*.xml) | *.xml"
				Dim result As DialogResult = dlg.ShowDialog()
				If result <> DialogResult.OK Then
					Return
				End If
				SchedulerControl.PrintStyles.ToXml(dlg.FileName, Application.ProductName)
			Catch ex As Exception
				XtraMessageBox.Show(ex.Message, Application.ProductName)
			Finally
				dlg.Dispose()
			End Try
		End Sub

		Protected Friend Overridable Sub CreateReportsMenu(ByVal form As RibbonMainForm)
			bsiReports = New BarSubItem(Me.Manager, "Print Color Schemas")
			AddHandler bsiReports.Popup, AddressOf OnPopupReports
			MainFormHelper.SetBarButtonImage(bsiReports, "PrintColorSchemas")
			Dim ribbon As RibbonControl = form.Ribbon
			Dim reportsGroup As RibbonPageGroup = form.ReservGroup1
			reportsGroup.Text = "Reports"
			AddBarItemInRibbon(ribbon, reportsGroup, bsiReports)

			cbiPrintColorSchemaFC = New CheckBarItemWithPrintColorSchema(Me.Manager, "Full Color", AddressOf cbiPrintColorSchema_Click, PrintColorSchema.FullColor)
			cbiPrintColorSchemaGS = New CheckBarItemWithPrintColorSchema(Me.Manager, "Grayscale", AddressOf cbiPrintColorSchema_Click, PrintColorSchema.GrayScale)
			cbiPrintColorSchemaBW = New CheckBarItemWithPrintColorSchema(Me.Manager, "Black And White", AddressOf cbiPrintColorSchema_Click, PrintColorSchema.BlackAndWhite)

			AddCheckBarItemInSubItem(ribbon, bsiReports, cbiPrintColorSchemaFC)
			AddCheckBarItemInSubItem(ribbon, bsiReports, cbiPrintColorSchemaGS)
			AddCheckBarItemInSubItem(ribbon, bsiReports, cbiPrintColorSchemaBW)
		End Sub
		Protected Friend Overridable Sub AddCheckBarItemInSubItem(ByVal ribbon As RibbonControl, ByVal subItem As BarSubItem, ByVal item As BarItem)
			ribbon.Items.Add(item)
			subItem.ItemLinks.Add(item)
		End Sub
		Private Sub OnPopupReports(ByVal sender As Object, ByVal e As EventArgs)
			Dim items As BarSubItem = TryCast(sender, BarSubItem)
			If items Is Nothing Then
				Return
			End If
			For Each item As BarItemLink In items.ItemLinks
				Dim aItem As CheckBarItemWithPrintColorSchema = TryCast(item.Item, CheckBarItemWithPrintColorSchema)
				If aItem IsNot Nothing Then
                    aItem.Checked = aItem.PrintColorSchema = DemoUtils.ReportPrintColorSchema
				End If
			Next item
		End Sub
		Private Sub cbiPrintColorSchema_Click(ByVal sender As Object, ByVal e As ItemClickEventArgs)
			Dim schemaItem As CheckBarItemWithPrintColorSchema = CType(e.Item, CheckBarItemWithPrintColorSchema)
			If SchedulerReport IsNot Nothing Then
				DemoUtils.ReportPrintColorSchema = schemaItem.PrintColorSchema
				SchedulerReport.UpdateActiveReport()
			End If
		End Sub
	End Class
End Namespace