Mini Kabibi Habibi

Current Path : C:/Users/Public/Documents/DXperience 13.1 Demos/WinForms/VB/GridMainDemo/Modules/
Upload File :
Current File : C:/Users/Public/Documents/DXperience 13.1 Demos/WinForms/VB/GridMainDemo/Modules/Controls.vb

Imports System.Collections
Imports DevExpress.XtraGrid.Columns
Imports DevExpress.Utils.Frames
Imports DevExpress.XtraGrid.Views.Grid

Namespace DevExpress.XtraGrid.Demos
	Public Class DemosHelper
		Public Shared Sub ShowDescriptionForm(ByVal location As System.Drawing.Point, ByVal description As String, ByVal caption As String)
			Dim frm As New DevExpress.XtraEditors.XtraForm()
			Dim tb As New TextBox()
			tb.Multiline = True
			tb.Dock = DockStyle.Fill
			tb.ScrollBars = ScrollBars.Vertical
			tb.Text = description
			tb.SelectionLength = 0

			frm.Controls.Add(tb)
			frm.FormBorderStyle = FormBorderStyle.FixedToolWindow
			frm.Text = caption
			frm.ShowInTaskbar = False
			frm.StartPosition = FormStartPosition.Manual
			frm.Location = DevExpress.Utils.ControlUtils.CalcLocation(location, location, frm.Size)
			frm.ShowDialog()
		End Sub
	End Class
	Public Class MyGridView
		Inherits GridView

		Public Shared Function IsCondition(ByVal column As GridColumn) As Boolean
			If column Is Nothing Then
				Return False
			End If
			For Each c As StyleFormatCondition In column.View.FormatConditions
				If c.Column.Equals(column) Then
					Return True
				End If
			Next c
			Return False
		End Function

		Public Sub SetIcons()
			For Each column As GridColumn In Me.Columns
				column.ImageIndex = If(IsCondition(column), 0, -1)
			Next column
		End Sub
		Protected Overrides Sub ApplyColumnFilter(ByVal column As DevExpress.XtraGrid.Columns.GridColumn, ByVal listBoxItem As FilterItem)
			If listBoxItem Is Nothing Then
				Return
			End If
			If listBoxItem.Text = My.Resources.ConditionsName Then
				Dim editor As New ConditionsEditor(column, column.View.GridControl.FindForm())
				editor.ShowDialog()
				SetIcons()
			Else
			MyBase.ApplyColumnFilter(column, listBoxItem)
			End If
		End Sub
	End Class

	Public Class ItemCondition
		Private fcondition As StyleFormatCondition
		Public Sub New(ByVal fcondition As StyleFormatCondition)
			Me.fcondition = fcondition
		End Sub
		Public Overrides Function ToString() As String
			If fcondition.Condition <> FormatConditionEnum.None Then
				If fcondition.Condition = FormatConditionEnum.Between OrElse fcondition.Condition = FormatConditionEnum.NotBetween Then
					Return String.Format("{0} {1}, {2}", fcondition.Condition, fcondition.Value1, fcondition.Value2)
				Else
					Return String.Format("{0} {1}", fcondition.Condition, fcondition.Value1)
				End If
			End If
			Return String.Format(My.Resources.ConditionItemCaption, Index)
		End Function
		Public ReadOnly Property Index() As Integer
			Get
				Return fcondition.Column.View.FormatConditions.IndexOf(fcondition)
			End Get
		End Property
		Public ReadOnly Property Condition() As StyleFormatCondition
			Get
				Return fcondition
			End Get
		End Property
	End Class

	Public Class ItemExpressionCondition
		Private fcondition As StyleFormatCondition
		Public Sub New(ByVal fcondition As StyleFormatCondition)
			Me.fcondition = fcondition
		End Sub
		Public ReadOnly Property IsExpressionCondition() As Boolean
			Get
				Return fcondition.Condition = FormatConditionEnum.Expression
			End Get
		End Property
		Public Overrides Function ToString() As String
			If fcondition.Expression = String.Empty Then
				Return String.Format(My.Resources.EmptyConditionCaption, Index)
			End If
			Return fcondition.Expression
		End Function
		Public ReadOnly Property Index() As Integer
			Get
				Return fcondition.Collection.IndexOf(fcondition)
			End Get
		End Property
		Public ReadOnly Property Condition() As StyleFormatCondition
			Get
				Return fcondition
			End Get
		End Property
	End Class
End Namespace