Mini Kabibi Habibi

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

Imports System
Imports System.Drawing.Imaging
Imports System.Windows.Forms
Imports DevExpress.Utils.Menu
Imports DevExpress.XtraBars
Imports DevExpress.XtraBars.Ribbon
Imports DevExpress.XtraCharts.Printing
Imports DevExpress.XtraCharts.Demos.Modules
Imports DevExpress.DXperience.Demos

Namespace DevExpress.XtraCharts.Demos

    Public Class TutorialControl
        Inherits TutorialControlBase
        Private m_menuManager As IDXMenuManager
        Private currentImageFormat As ImageFormat

        Public Property MenuManager() As IDXMenuManager
            Get
                Return m_menuManager
            End Get
            Set(ByVal value As IDXMenuManager)
                m_menuManager = value
            End Set
        End Property
        Public ReadOnly Property ChartRibbonMenuManager() As ChartRibbonMenuManager
            Get
                Return TryCast(RibbonMenuManager, ChartRibbonMenuManager)
            End Get
        End Property
        Public Overridable ReadOnly Property ChartControl() As ChartControl
            Get
                Return Nothing
            End Get
        End Property
        Public Overrides ReadOnly Property AllowPrintOptions() As Boolean
            Get
                Return ChartControl IsNot Nothing
            End Get
        End Property
        Protected Overrides Sub AllowExport()
            EnabledPrintExportActions(True, ExportFormats.ImageEx Or ExportFormats.PDF Or ExportFormats.HTML Or ExportFormats.MHT Or ExportFormats.XLS Or ExportFormats.RTF Or ExportFormats.XLSX, False)
        End Sub
        Protected Overrides Sub ExportToCore(ByVal filename As String, ByVal ext As String)
            Dim chart As ChartControl = ChartControl
            If chart IsNot Nothing Then
                Dim currentCursor As Cursor = Cursor.Current
                Cursor.Current = Cursors.WaitCursor
                If ext = "rtf" Then
                    chart.ExportToRtf(filename)
                ElseIf ext = "pdf" Then
                    chart.ExportToPdf(filename)
                ElseIf ext = "mht" Then
                    chart.ExportToMht(filename)
                ElseIf ext = "html" Then
                    chart.ExportToHtml(filename)
                ElseIf ext = "xls" Then
                    chart.ExportToXls(filename)
                ElseIf ext = "xlsx" Then
                    chart.ExportToXlsx(filename)
                Else
                    chart.ExportToImage(filename, currentImageFormat)
                End If
                Cursor.Current = currentCursor
            End If
        End Sub
        Protected Overrides Sub OnLoad(ByVal e As EventArgs)
            MyBase.OnLoad(e)
            If Not ParentFormMain Is Nothing Then
                Dim exportItem As BarSubItem = DirectCast(ParentFormMain, frmMain).ExportToImageExButton
                exportItem.ClearLinks()
                AddImageFormat(exportItem, ImageFormat.Bmp)
                AddImageFormat(exportItem, ImageFormat.Emf)
                AddImageFormat(exportItem, ImageFormat.Exif)
                AddImageFormat(exportItem, ImageFormat.Gif)
                AddImageFormat(exportItem, ImageFormat.Icon)
                AddImageFormat(exportItem, ImageFormat.Jpeg)
                AddImageFormat(exportItem, ImageFormat.Png)
                AddImageFormat(exportItem, ImageFormat.Tiff)
                AddImageFormat(exportItem, ImageFormat.Wmf)
            End If
        End Sub
        Protected Overrides Sub ExportToPDF()
            Dim chart As ChartControl = ChartControl
            If chart IsNot Nothing Then
                Dim sizeMode As PrintSizeMode = chart.OptionsPrint.SizeMode
                chart.OptionsPrint.SizeMode = PrintSizeMode.Zoom
                Try
                    ExportTo("pdf", "PDF document (*.pdf)|*.pdf")
                Finally
                    chart.OptionsPrint.SizeMode = sizeMode
                End Try
            End If
        End Sub
        Protected Overrides Sub ExportToHTML()
            ExportTo("html", "HTML document (*.html)|*.html")
        End Sub
        Protected Overrides Sub ExportToMHT()
            ExportTo("mht", "MHT document (*.mht)|*.mht")
        End Sub
        Protected Overrides Sub ExportToXLS()
            ExportTo("xls", "XLS document (*.xls)|*.xls")
        End Sub
        Protected Overrides Sub ExportToXLSX()
            ExportTo("xlsx", "XLSX document (*.xlsx)|*.xlsx")
        End Sub
        Protected Overrides Sub ExportToRTF()
            ExportTo("rtf", "RTF document (*.rtf)|*.rtf")
        End Sub
        Protected Overrides Sub ExportToText()
            ExportTo("txt", "Text document (*.txt)|*.txt")
        End Sub
        Protected Overrides Sub PrintPreview()
            Dim chart As ChartControl = ChartControl
            If chart IsNot Nothing Then
                chart.OptionsPrint.SizeMode = PrintSizeMode.Zoom
                If RibbonMenuManager.PrintOptions.ShowRibbonPreviewForm Then
                    chart.ShowRibbonPrintPreview()
                Else
                    chart.ShowPrintPreview()
                End If
            End If
        End Sub
        Private Sub AddImageFormat(ByVal biImagesMenuItem As BarSubItem, ByVal format As ImageFormat)
            Dim codecInfo As ImageCodecInfo = FindImageCodec(format)
            If codecInfo IsNot Nothing Then
                Dim item As New BarExportToImageItem(Manager, format, codecInfo)
                AddHandler item.ItemClick, AddressOf OnExportImageClick
                biImagesMenuItem.AddItem(item)
            End If
        End Sub
        Private Function FindImageCodec(ByVal format As ImageFormat) As ImageCodecInfo
            Dim infos As ImageCodecInfo() = ImageCodecInfo.GetImageEncoders()
            For Each item As ImageCodecInfo In infos
                If item.FormatID.Equals(format.Guid) Then
                    Return item
                End If
            Next
            Return Nothing
        End Function
        Private Sub OnExportImageClick(ByVal sender As Object, ByVal e As ItemClickEventArgs)
            Dim item As BarExportToImageItem = TryCast(e.Item, BarExportToImageItem)
            If item IsNot Nothing Then
                currentImageFormat = item.ImageFormat
                ExportTo(item.ImageCodecInfo.FilenameExtension, [String].Format("{0} ({1})|{1}", [String].Format("{0} image", item.ImageCodecInfo.FormatDescription), item.ImageCodecInfo.FilenameExtension))
            End If
        End Sub
    End Class
End Namespace