Mini Kabibi Habibi
Imports DevExpress.XtraVerticalGrid
Imports DevExpress.XtraVerticalGrid.Rows
Imports DevExpress.XtraEditors.Repository
Imports DevExpress.XtraEditors.Persistent
Imports DevExpress.XtraEditors.Controls
Imports DevExpress.XtraEditors
Namespace DevExpress.XtraVerticalGrid.Demos
Public Class RowsCreator
Private Shared Sub AddComboBoxItems(ByVal cb As RepositoryItemComboBox, ByVal s() As String)
For i As Integer = 0 To s.Length - 1
cb.Items.Add(s(i))
Next i
cb.TextEditStyle = TextEditStyles.DisableTextEditor
End Sub
Private Shared Sub CreateOpenFileButtonDialog(ByVal be As RepositoryItemButtonEdit)
AddHandler be.ButtonClick, AddressOf button_click
End Sub
Private Shared Sub button_click(ByVal sender As Object, ByVal e As ButtonPressedEventArgs)
Dim dlg As New OpenFileDialog()
dlg.Filter = "Executable Files|*.exe;*.com|All Files|*.*"
If dlg.ShowDialog() = DialogResult.OK Then
Dim be As ButtonEdit = TryCast(sender, ButtonEdit)
be.Text = dlg.FileName
End If
End Sub
Public Shared Sub CreateRows(ByVal vg As VGridControl, ByVal rows() As Object)
vg.CloseEditor()
vg.Rows.Clear()
vg.RepositoryItems.Clear()
vg.RepositoryItems.Add(New RepositoryItemCheckEdit())
vg.RepositoryItems.Add(New RepositoryItemSpinEdit())
vg.RepositoryItems.Add(New RepositoryItemComboBox())
vg.RepositoryItems.Add(New RepositoryItemComboBox())
vg.RepositoryItems.Add(New RepositoryItemButtonEdit())
CType(vg.RepositoryItems(1), RepositoryItemSpinEdit).IsFloatValue = False
AddComboBoxItems(TryCast(vg.RepositoryItems(2), RepositoryItemComboBox), New String() {"Warning level 0", "Warning level 1", "Warning level 2", "Warning level 3", "Warning level 4"})
AddComboBoxItems(TryCast(vg.RepositoryItems(3), RepositoryItemComboBox), New String() {"Project", "Program", "URL", "Wait to Attach to an External Process"})
CreateOpenFileButtonDialog(TryCast(vg.RepositoryItems(4), RepositoryItemButtonEdit))
For i As Integer = 0 To rows.Length - 1
Dim name As String = CType(rows(i), Object())(0).ToString()
Dim cRow As New CategoryRow(name)
Dim names() As String = TryCast(CType(rows(i), Object())(1), String())
Dim editorInd() As Integer = TryCast(CType(rows(i), Object())(2), Integer())
Dim values() As Object = TryCast(CType(rows(i), Object())(3), Object())
Dim enabled() As Boolean = Nothing
Try
enabled = TryCast(CType(rows(i), Object())(4), Boolean())
Catch
End Try
For j As Integer = 0 To names.Length - 1
Dim eRow As New EditorRow()
eRow.Properties.Caption = names(j)
If editorInd(j) <> -1 Then
eRow.Properties.RowEdit = vg.RepositoryItems(editorInd(j))
End If
eRow.Properties.Value = values(j)
eRow.Tag = values(j)
If enabled IsNot Nothing Then
eRow.Enabled = CBool(enabled(j))
End If
cRow.ChildRows.Add(eRow)
Next j
vg.Rows.Add(cRow)
Next i
End Sub
Public Shared Sub CreateRows(ByVal i As Integer, ByVal vg As VGridControl)
If i = 0 Then
RowsCreator.CreateRows(vg, New Object() {New Object() {"Code Generation", New String() {"Conditional Compilation Constants", "Optimize code", "Check for Arithmetic Overflow/Underflow", "Allow unsafe code blocks"}, New Integer() {-1, 0, 0, 0}, New Object() {"DEBUG;TRACE", False, False, False}}, New Object() {"Errors and Warnings", New String() {"Warning Level", "Treat Warnings As Errors"}, New Integer() {2, 0}, New Object() {"Warning level 4", False}}, New Object() {"Outputs", New String() {"Output Path", "XML Documentation File", "Generate Debugging Information", "Register for COM interop"}, New Integer() {-1, -1, 0, 0}, New Object() {"bin\Debug\", "", True, False}, New Boolean() {True, True, True, False}}})
End If
If i = 1 Then
RowsCreator.CreateRows(vg, New Object() {New Object() {"Debuggers", New String() {"Enable ASP Debugging", "Enable ASP.Net Debugging", "Enable Unmanaged Debugging", "Enable SQL Debugging"}, New Integer() {0, 0, 0, 0}, New Object() {False, False, False, False}}, New Object() {"Start Action", New String() {"Debug Mode", "Start Application", "Start URL", "Start Page"}, New Integer() {3, 4, -1, -1}, New Object() {"Project", "", "", ""}}, New Object() {"Start Options", New String() {"Command Line Arguments", "Working Directory", "Always use Internet Explorer", "Enable remote debugging", "Remote debug machine"}, New Integer() {-1, -1, 0, 0, -1}, New Object() {"", "", False, True, ""}}})
End If
If i = 2 Then
RowsCreator.CreateRows(vg, New Object() {New Object() {"General", New String() {"Incremental build", "Base Address", "File Alignment"}, New Integer() {0, 1, 1}, New Object() {True, CDec(285212672), CDec(4096)}}})
End If
End Sub
End Class
End Namespace