Add enum field support (OS) to custom filter
This commit is contained in:
@@ -4,6 +4,11 @@
|
|||||||
fString = 1
|
fString = 1
|
||||||
fNumeric = 2
|
fNumeric = 2
|
||||||
fBool = 3
|
fBool = 3
|
||||||
|
fEnum = 4
|
||||||
|
End Enum
|
||||||
|
|
||||||
|
Public Enum eEnumFilterField As Integer
|
||||||
|
OS = 1
|
||||||
End Enum
|
End Enum
|
||||||
|
|
||||||
<Flags()> Public Enum eFieldStatus
|
<Flags()> Public Enum eFieldStatus
|
||||||
@@ -15,6 +20,7 @@
|
|||||||
Private sFieldName As String
|
Private sFieldName As String
|
||||||
Private sFriendlyFieldName As String
|
Private sFriendlyFieldName As String
|
||||||
Private eType As eDataType
|
Private eType As eDataType
|
||||||
|
Private eEnumField As eEnumFilterField
|
||||||
Private eStatus As eFieldStatus
|
Private eStatus As eFieldStatus
|
||||||
|
|
||||||
Public Property FieldName As String
|
Public Property FieldName As String
|
||||||
@@ -44,6 +50,15 @@
|
|||||||
End Set
|
End Set
|
||||||
End Property
|
End Property
|
||||||
|
|
||||||
|
Public Property EnumField As eEnumFilterField
|
||||||
|
Get
|
||||||
|
Return eEnumField
|
||||||
|
End Get
|
||||||
|
Set(value As eEnumFilterField)
|
||||||
|
eEnumField = value
|
||||||
|
End Set
|
||||||
|
End Property
|
||||||
|
|
||||||
'This is a flag property - Setting a value will toggle that flag on and off.
|
'This is a flag property - Setting a value will toggle that flag on and off.
|
||||||
Public Property Status As eFieldStatus
|
Public Property Status As eFieldStatus
|
||||||
Get
|
Get
|
||||||
|
|||||||
Generated
+10
-10
@@ -40,7 +40,7 @@ Partial Class frmFilter
|
|||||||
Me.grpGameFilter = New System.Windows.Forms.GroupBox()
|
Me.grpGameFilter = New System.Windows.Forms.GroupBox()
|
||||||
Me.lblNot = New System.Windows.Forms.Label()
|
Me.lblNot = New System.Windows.Forms.Label()
|
||||||
Me.chkNot = New System.Windows.Forms.CheckBox()
|
Me.chkNot = New System.Windows.Forms.CheckBox()
|
||||||
Me.cboBoolFilter = New System.Windows.Forms.ComboBox()
|
Me.cboListFilter = New System.Windows.Forms.ComboBox()
|
||||||
Me.numFilter = New System.Windows.Forms.NumericUpDown()
|
Me.numFilter = New System.Windows.Forms.NumericUpDown()
|
||||||
Me.cboNumericOps = New System.Windows.Forms.ComboBox()
|
Me.cboNumericOps = New System.Windows.Forms.ComboBox()
|
||||||
Me.lblCurrentFilters = New System.Windows.Forms.Label()
|
Me.lblCurrentFilters = New System.Windows.Forms.Label()
|
||||||
@@ -229,7 +229,7 @@ Partial Class frmFilter
|
|||||||
'
|
'
|
||||||
Me.grpGameFilter.Controls.Add(Me.lblNot)
|
Me.grpGameFilter.Controls.Add(Me.lblNot)
|
||||||
Me.grpGameFilter.Controls.Add(Me.chkNot)
|
Me.grpGameFilter.Controls.Add(Me.chkNot)
|
||||||
Me.grpGameFilter.Controls.Add(Me.cboBoolFilter)
|
Me.grpGameFilter.Controls.Add(Me.cboListFilter)
|
||||||
Me.grpGameFilter.Controls.Add(Me.numFilter)
|
Me.grpGameFilter.Controls.Add(Me.numFilter)
|
||||||
Me.grpGameFilter.Controls.Add(Me.cboNumericOps)
|
Me.grpGameFilter.Controls.Add(Me.cboNumericOps)
|
||||||
Me.grpGameFilter.Controls.Add(Me.lblCurrentFilters)
|
Me.grpGameFilter.Controls.Add(Me.lblCurrentFilters)
|
||||||
@@ -265,14 +265,14 @@ Partial Class frmFilter
|
|||||||
Me.chkNot.TabIndex = 10
|
Me.chkNot.TabIndex = 10
|
||||||
Me.chkNot.UseVisualStyleBackColor = True
|
Me.chkNot.UseVisualStyleBackColor = True
|
||||||
'
|
'
|
||||||
'cboBoolFilter
|
'cboListFilter
|
||||||
'
|
'
|
||||||
Me.cboBoolFilter.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList
|
Me.cboListFilter.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList
|
||||||
Me.cboBoolFilter.FormattingEnabled = True
|
Me.cboListFilter.FormattingEnabled = True
|
||||||
Me.cboBoolFilter.Location = New System.Drawing.Point(187, 36)
|
Me.cboListFilter.Location = New System.Drawing.Point(187, 36)
|
||||||
Me.cboBoolFilter.Name = "cboBoolFilter"
|
Me.cboListFilter.Name = "cboListFilter"
|
||||||
Me.cboBoolFilter.Size = New System.Drawing.Size(136, 21)
|
Me.cboListFilter.Size = New System.Drawing.Size(136, 21)
|
||||||
Me.cboBoolFilter.TabIndex = 3
|
Me.cboListFilter.TabIndex = 3
|
||||||
'
|
'
|
||||||
'numFilter
|
'numFilter
|
||||||
'
|
'
|
||||||
@@ -549,7 +549,7 @@ Partial Class frmFilter
|
|||||||
Friend WithEvents lblFields As Label
|
Friend WithEvents lblFields As Label
|
||||||
Friend WithEvents cboNumericOps As ComboBox
|
Friend WithEvents cboNumericOps As ComboBox
|
||||||
Friend WithEvents numFilter As NumericUpDown
|
Friend WithEvents numFilter As NumericUpDown
|
||||||
Friend WithEvents cboBoolFilter As ComboBox
|
Friend WithEvents cboListFilter As ComboBox
|
||||||
Friend WithEvents lblSortFields As Label
|
Friend WithEvents lblSortFields As Label
|
||||||
Friend WithEvents Label1 As Label
|
Friend WithEvents Label1 As Label
|
||||||
Friend WithEvents grpSortOptions As GroupBox
|
Friend WithEvents grpSortOptions As GroupBox
|
||||||
|
|||||||
+50
-16
@@ -242,6 +242,15 @@ Public Class frmFilter
|
|||||||
oField.Status = clsGameFilterField.eFieldStatus.ValidFilter
|
oField.Status = clsGameFilterField.eFieldStatus.ValidFilter
|
||||||
oValidFields.Add(oField)
|
oValidFields.Add(oField)
|
||||||
|
|
||||||
|
'OS
|
||||||
|
oField = New clsGameFilterField
|
||||||
|
oField.FieldName = "OS"
|
||||||
|
oField.FriendlyFieldName = frmFilter_FieldOS
|
||||||
|
oField.Type = clsGameFilterField.eDataType.fEnum
|
||||||
|
oField.EnumField = clsGameFilterField.eEnumFilterField.OS
|
||||||
|
oField.Status = clsGameFilterField.eFieldStatus.ValidFilter
|
||||||
|
oValidFields.Add(oField)
|
||||||
|
|
||||||
'IsRegEx
|
'IsRegEx
|
||||||
oField = New clsGameFilterField
|
oField = New clsGameFilterField
|
||||||
oField.FieldName = "IsRegEx"
|
oField.FieldName = "IsRegEx"
|
||||||
@@ -359,7 +368,7 @@ Public Class frmFilter
|
|||||||
sFilter = oFilter.Field.FriendlyFieldName & " " & frmFilter_lstFilterContains & " """ & oFilter.Data & """"
|
sFilter = oFilter.Field.FriendlyFieldName & " " & frmFilter_lstFilterContains & " """ & oFilter.Data & """"
|
||||||
Case clsGameFilterField.eDataType.fNumeric
|
Case clsGameFilterField.eDataType.fNumeric
|
||||||
sFilter = oFilter.Field.FriendlyFieldName & " " & oFilter.NumericOperatorAsString & " " & oFilter.Data
|
sFilter = oFilter.Field.FriendlyFieldName & " " & oFilter.NumericOperatorAsString & " " & oFilter.Data
|
||||||
Case clsGameFilterField.eDataType.fBool
|
Case clsGameFilterField.eDataType.fBool, clsGameFilterField.eDataType.fEnum
|
||||||
sFilter = oFilter.Field.FriendlyFieldName & " = " & oFilter.Data
|
sFilter = oFilter.Field.FriendlyFieldName & " = " & oFilter.Data
|
||||||
End Select
|
End Select
|
||||||
|
|
||||||
@@ -413,23 +422,22 @@ Public Class frmFilter
|
|||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Private Sub ChangeFilterMode()
|
Private Sub ChangeFilterMode()
|
||||||
Dim oFilterType As clsGameFilterField.eDataType = DirectCast(cboFilterField.SelectedValue, clsGameFilterField).Type
|
Dim oFilter As clsGameFilterField = DirectCast(cboFilterField.SelectedValue, clsGameFilterField)
|
||||||
|
|
||||||
'Reset
|
'Reset
|
||||||
cboNumericOps.SelectedIndex = 0
|
cboNumericOps.SelectedIndex = 0
|
||||||
cboBoolFilter.SelectedIndex = 0
|
|
||||||
numFilter.Value = 0
|
numFilter.Value = 0
|
||||||
txtStringFilter.Text = String.Empty
|
txtStringFilter.Text = String.Empty
|
||||||
chkNot.Checked = False
|
chkNot.Checked = False
|
||||||
|
|
||||||
'Reset Visibilty
|
'Reset Visibilty
|
||||||
cboBoolFilter.Visible = False
|
cboListFilter.Visible = False
|
||||||
cboNumericOps.Visible = False
|
cboNumericOps.Visible = False
|
||||||
numFilter.Visible = False
|
numFilter.Visible = False
|
||||||
txtStringFilter.Visible = False
|
txtStringFilter.Visible = False
|
||||||
|
|
||||||
'Set Visiblity
|
'Set Visiblity
|
||||||
Select Case oFilterType
|
Select Case oFilter.Type
|
||||||
Case clsGameFilterField.eDataType.fString
|
Case clsGameFilterField.eDataType.fString
|
||||||
txtStringFilter.Visible = True
|
txtStringFilter.Visible = True
|
||||||
Case clsGameFilterField.eDataType.fNumeric
|
Case clsGameFilterField.eDataType.fNumeric
|
||||||
@@ -437,7 +445,13 @@ Public Class frmFilter
|
|||||||
numFilter.Visible = True
|
numFilter.Visible = True
|
||||||
txtStringFilter.Visible = False
|
txtStringFilter.Visible = False
|
||||||
Case clsGameFilterField.eDataType.fBool
|
Case clsGameFilterField.eDataType.fBool
|
||||||
cboBoolFilter.Visible = True
|
LoadComboAsBool()
|
||||||
|
cboListFilter.SelectedIndex = 0
|
||||||
|
cboListFilter.Visible = True
|
||||||
|
Case clsGameFilterField.eDataType.fEnum
|
||||||
|
LoadComboAsEnum(oFilter.EnumField)
|
||||||
|
cboListFilter.SelectedIndex = 0
|
||||||
|
cboListFilter.Visible = True
|
||||||
End Select
|
End Select
|
||||||
|
|
||||||
End Sub
|
End Sub
|
||||||
@@ -458,8 +472,8 @@ Public Class frmFilter
|
|||||||
oFilter.Data = numFilter.Value
|
oFilter.Data = numFilter.Value
|
||||||
oFilter.NumericOperator = DirectCast(cboNumericOps.SelectedValue, clsGameFilter.eNumericOperators)
|
oFilter.NumericOperator = DirectCast(cboNumericOps.SelectedValue, clsGameFilter.eNumericOperators)
|
||||||
sFilter = oFilter.Field.FriendlyFieldName & " " & oFilter.NumericOperatorAsString & " " & oFilter.Data
|
sFilter = oFilter.Field.FriendlyFieldName & " " & oFilter.NumericOperatorAsString & " " & oFilter.Data
|
||||||
Case clsGameFilterField.eDataType.fBool
|
Case clsGameFilterField.eDataType.fBool, clsGameFilterField.eDataType.fEnum
|
||||||
oFilter.Data = cboBoolFilter.SelectedValue
|
oFilter.Data = cboListFilter.SelectedValue
|
||||||
sFilter = oFilter.Field.FriendlyFieldName & " = " & oFilter.Data
|
sFilter = oFilter.Field.FriendlyFieldName & " = " & oFilter.Data
|
||||||
End Select
|
End Select
|
||||||
|
|
||||||
@@ -531,20 +545,40 @@ Public Class frmFilter
|
|||||||
|
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Private Sub LoadCombos()
|
Private Sub LoadComboAsBool()
|
||||||
Dim oFilterFields As New List(Of KeyValuePair(Of clsGameFilterField, String))
|
|
||||||
Dim oSortFields As New List(Of KeyValuePair(Of String, String))
|
|
||||||
Dim oNumericOperators As New List(Of KeyValuePair(Of clsGameFilter.eNumericOperators, String))
|
|
||||||
Dim oBoolOperators As New List(Of KeyValuePair(Of Boolean, String))
|
Dim oBoolOperators As New List(Of KeyValuePair(Of Boolean, String))
|
||||||
|
|
||||||
'cboBoolFilter
|
'cboListFilter (Boolean)
|
||||||
cboBoolFilter.ValueMember = "Key"
|
cboListFilter.ValueMember = "Key"
|
||||||
cboBoolFilter.DisplayMember = "Value"
|
cboListFilter.DisplayMember = "Value"
|
||||||
|
|
||||||
oBoolOperators.Add(New KeyValuePair(Of Boolean, String)(True, frmFilter_cboBoolFilterEnabled))
|
oBoolOperators.Add(New KeyValuePair(Of Boolean, String)(True, frmFilter_cboBoolFilterEnabled))
|
||||||
oBoolOperators.Add(New KeyValuePair(Of Boolean, String)(False, frmFilter_cboBoolFilterDisabled))
|
oBoolOperators.Add(New KeyValuePair(Of Boolean, String)(False, frmFilter_cboBoolFilterDisabled))
|
||||||
|
|
||||||
cboBoolFilter.DataSource = oBoolOperators
|
cboListFilter.DataSource = oBoolOperators
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Private Sub LoadComboAsEnum(ByVal eEnum As clsGameFilterField.eEnumFilterField)
|
||||||
|
Dim oEnums As New List(Of KeyValuePair(Of Integer, String))
|
||||||
|
|
||||||
|
'cboListFilter (Enum)
|
||||||
|
cboListFilter.ValueMember = "Key"
|
||||||
|
cboListFilter.DisplayMember = "Value"
|
||||||
|
|
||||||
|
Select Case eEnum
|
||||||
|
Case clsGameFilterField.eEnumFilterField.OS
|
||||||
|
For Each v As Object In [Enum].GetValues(GetType(clsGame.eOS))
|
||||||
|
oEnums.Add(New KeyValuePair(Of Integer, String)(v, [Enum].GetName(GetType(clsGame.eOS), v)))
|
||||||
|
Next
|
||||||
|
End Select
|
||||||
|
|
||||||
|
cboListFilter.DataSource = oEnums
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Private Sub LoadCombos()
|
||||||
|
Dim oFilterFields As New List(Of KeyValuePair(Of clsGameFilterField, String))
|
||||||
|
Dim oSortFields As New List(Of KeyValuePair(Of String, String))
|
||||||
|
Dim oNumericOperators As New List(Of KeyValuePair(Of clsGameFilter.eNumericOperators, String))
|
||||||
|
|
||||||
'cboNumericOps
|
'cboNumericOps
|
||||||
cboNumericOps.ValueMember = "Key"
|
cboNumericOps.ValueMember = "Key"
|
||||||
|
|||||||
@@ -678,7 +678,7 @@ Public Class mgrMonitorList
|
|||||||
Case clsGameFilterField.eDataType.fNumeric
|
Case clsGameFilterField.eDataType.fNumeric
|
||||||
sSQL &= oFilter.Field.FieldName & " " & oFilter.NumericOperatorAsString & " @" & oFilter.ID
|
sSQL &= oFilter.Field.FieldName & " " & oFilter.NumericOperatorAsString & " @" & oFilter.ID
|
||||||
hshParams.Add(oFilter.ID, oFilter.Data)
|
hshParams.Add(oFilter.ID, oFilter.Data)
|
||||||
Case clsGameFilterField.eDataType.fBool
|
Case clsGameFilterField.eDataType.fBool, clsGameFilterField.eDataType.fEnum
|
||||||
sSQL &= oFilter.Field.FieldName & " = @" & oFilter.ID
|
sSQL &= oFilter.Field.FieldName & " = @" & oFilter.ID
|
||||||
hshParams.Add(oFilter.ID, oFilter.Data)
|
hshParams.Add(oFilter.ID, oFilter.Data)
|
||||||
End Select
|
End Select
|
||||||
|
|||||||
Generated
+9
@@ -1185,6 +1185,15 @@ Namespace My.Resources
|
|||||||
End Get
|
End Get
|
||||||
End Property
|
End Property
|
||||||
|
|
||||||
|
'''<summary>
|
||||||
|
''' Looks up a localized string similar to OS.
|
||||||
|
'''</summary>
|
||||||
|
Friend ReadOnly Property frmFilter_FieldOS() As String
|
||||||
|
Get
|
||||||
|
Return ResourceManager.GetString("frmFilter_FieldOS", resourceCulture)
|
||||||
|
End Get
|
||||||
|
End Property
|
||||||
|
|
||||||
'''<summary>
|
'''<summary>
|
||||||
''' Looks up a localized string similar to Parameter.
|
''' Looks up a localized string similar to Parameter.
|
||||||
'''</summary>
|
'''</summary>
|
||||||
|
|||||||
@@ -2293,4 +2293,7 @@
|
|||||||
<data name="frmGameManager_btnAdvancedConfig" xml:space="preserve">
|
<data name="frmGameManager_btnAdvancedConfig" xml:space="preserve">
|
||||||
<value>&Advanced Configuration...</value>
|
<value>&Advanced Configuration...</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="frmFilter_FieldOS" xml:space="preserve">
|
||||||
|
<value>OS</value>
|
||||||
|
</data>
|
||||||
</root>
|
</root>
|
||||||
Reference in New Issue
Block a user