Mini Kabibi Habibi

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

Imports Microsoft.VisualBasic
Imports System
Imports System.Drawing
Imports System.Collections
Imports System.ComponentModel
Imports System.Windows.Forms
Imports System.Data
Imports DevExpress.XtraEditors.Controls
Imports DevExpress.XtraEditors.Repository

Namespace DevExpress.XtraBars.Demos.BarEditors
    ''' <summary>
    ''' Summary description for frmMain.
    ''' </summary>
    Partial Public Class frmMain
        Inherits System.Windows.Forms.Form
        Public Sub New()
            '
            ' Required for Windows Form Designer support
            '
            DBFileName = DevExpress.Utils.FilesHelper.FindingFileName(Application.StartupPath, "Data\Products.xml")
            InitializeComponent()
            If DBFileName <> "" Then
                Dim dataSet As DataSet = New DataSet()
                dataSet.ReadXml(DBFileName)
                dataView = dataSet.Tables(0).DefaultView
                gridControl1.DataSource = dataView
            End If
            Dim s As String() = New String() {"Beverages", "Condiments", "Confections", "Dairy Products", "Grains/Cereals", "Meat/Poultry", "Produce", "Seafood"}
            Dim i As Integer = 0
            Do While i < s.Length
                repositoryImageComboBox1.Items.Add(New ImageComboBoxItem(s(i), i + 1, i))
                i += 1
            Loop
            Dim ri As RepositoryItem = TryCast(repositoryImageComboBox1.Clone(), RepositoryItem)
            gridControl1.RepositoryItems.Add(ri)
            colCategoryID.ColumnEdit = ri
            SetFilter()
            ips_Init()
            InitSkins()
            '
            ' TODO: Add any constructor code after InitializeComponent call
            '
        End Sub
#Region "Skins"

        Private Sub InitSkins()
            barManager1.ForceInitialize()
            For Each cnt As DevExpress.Skins.SkinContainer In DevExpress.Skins.SkinManager.Default.Skins
                Dim item As BarButtonItem = New BarButtonItem(barManager1, skinMask & cnt.SkinName)
                iPaintStyle.AddItem(item)
                AddHandler item.ItemClick, AddressOf OnSkinClick
            Next cnt
        End Sub
        Private Sub OnSkinClick(ByVal sender As Object, ByVal e As ItemClickEventArgs)
            Dim skinName As String = e.Item.Caption.Replace(skinMask, "")
            DevExpress.LookAndFeel.UserLookAndFeel.Default.SetSkinStyle(skinName)
            barManager1.GetController().PaintStyleName = "Skin"
            iPaintStyle.Hint = e.Item.Caption
            iPaintStyle.Caption = iPaintStyle.Hint
            iPaintStyle.Hint = iPaintStyle.Caption
            iPaintStyle.ImageIndex = -1
        End Sub
#End Region
        Private DBFileName As String
        Private dataView As DataView
        Private filter As String() = New String(2) {}
        Private skinMask As String = "Skin: "

        Private Sub SetFilter()
            If dataView Is Nothing Then
                Return
            End If
            Dim f As String = ""
            For Each s As String In filter
                If f <> "" AndAlso (Not s Is Nothing AndAlso s <> "") Then
                    f &= " AND "
                End If
                If s <> "" Then
                    f &= s
                End If
            Next s
            dataView.RowFilter = f
            If (f = "") Then
                iFilter.Caption = "No Filter"
            Else
                iFilter.Caption = "Filter: " & f
            End If
            iRecords.Caption = "Records: " & dataView.Count.ToString()
        End Sub

        Private Sub discontinued_EditValueChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles discontinued.EditValueChanged
            If discontinued.EditValue Is Nothing Then
                filter(0) = ""
            Else
                filter(0) = "[Discontinued] = " & discontinued.EditValue.ToString()
            End If
            SetFilter()
        End Sub

        Private Sub lastOrder_EditValueChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles lastOrder.EditValueChanged
            If lastOrder.EditValue Is Nothing Or String.Empty.Equals(lastOrder.EditValue) Then
                filter(1) = ""
            Else
                filter(1) = "[LastOrder] < #" & StringDateToUFormat(lastOrder.EditValue.ToString()) & "#"
            End If
            SetFilter()
        End Sub

        Private Sub iClearFilter_ItemClick(ByVal sender As Object, ByVal e As DevExpress.XtraBars.ItemClickEventArgs) Handles iClearFilter.ItemClick
            discontinued.EditValue = Nothing
            lastOrder.EditValue = Nothing
            categories.EditValue = Nothing
        End Sub

        Private Sub categories_EditValueChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles categories.EditValueChanged
            If categories.EditValue Is Nothing Then
                filter(2) = ""
            Else
                filter(2) = "[CategoryID] = " & categories.EditValue.ToString()
            End If
            SetFilter()
        End Sub

        Private Sub iExit_ItemClick(ByVal sender As Object, ByVal e As DevExpress.XtraBars.ItemClickEventArgs) Handles iExit.ItemClick
            Close()
        End Sub

        Private Sub iAbout_ItemClick(ByVal sender As Object, ByVal e As DevExpress.XtraBars.ItemClickEventArgs) Handles iAbout.ItemClick
            DevExpress.Utils.About.AboutForm.Show(New DevExpress.Utils.About.ProductInfo(String.Empty, GetType(frmMain), DevExpress.Utils.About.ProductKind.DXperienceWin, DevExpress.Utils.About.ProductInfoStage.Registered))
        End Sub

        Private Shared Function StringDateToUFormat(ByVal s As String) As String
            Try
                Dim dt As DateTime = DateTime.Parse(s)
                Return dt.Month.ToString() & "/" & dt.Day.ToString() & "/" & dt.Year.ToString()
            Catch
                Return s
            End Try
        End Function

        Private Sub ips_ItemClick(ByVal sender As Object, ByVal e As DevExpress.XtraBars.ItemClickEventArgs) Handles ipsDefault.ItemClick, ipsWXP.ItemClick, ipsOXP.ItemClick, ipsO2K.ItemClick, ipsO3.ItemClick
            barManager1.GetController().PaintStyleName = e.Item.Description
            InitPaintStyle(e.Item)
            barManager1.GetController().ResetStyleDefaults()
            DevExpress.LookAndFeel.UserLookAndFeel.Default.SetDefaultStyle()
        End Sub

        Private Sub InitPaintStyle(ByVal item As BarItem)
            If item Is Nothing Then
                Return
            End If
            iPaintStyle.ImageIndex = item.ImageIndex
            iPaintStyle.Caption = item.Caption
            iPaintStyle.Hint = item.Description
        End Sub

        Private Sub ips_Init()
            Dim item As BarItem = Nothing
            For i As Integer = 0 To barManager1.Items.Count - 1
                If barManager1.Items(i).Description = barManager1.GetController().PaintStyleName Then
                    item = barManager1.Items(i)
                End If
            Next i
            InitPaintStyle(item)
        End Sub
    End Class
End Namespace