Custom Filter Enhancement Phase #2
This commit is contained in:
Generated
+54
-54
@@ -22,8 +22,6 @@ Partial Class frmFilter
|
||||
'Do not modify it using the code editor.
|
||||
<System.Diagnostics.DebuggerStepThrough()> _
|
||||
Private Sub InitializeComponent()
|
||||
Me.optGameInfo = New System.Windows.Forms.RadioButton()
|
||||
Me.optTag = New System.Windows.Forms.RadioButton()
|
||||
Me.grpTagFilter = New System.Windows.Forms.GroupBox()
|
||||
Me.grpTagOptions = New System.Windows.Forms.GroupBox()
|
||||
Me.optAll = New System.Windows.Forms.RadioButton()
|
||||
@@ -46,10 +44,12 @@ Partial Class frmFilter
|
||||
Me.lblName = New System.Windows.Forms.Label()
|
||||
Me.txtName = New System.Windows.Forms.TextBox()
|
||||
Me.grpSorting = New System.Windows.Forms.GroupBox()
|
||||
Me.lblOrderBy = New System.Windows.Forms.Label()
|
||||
Me.cboSortField = New System.Windows.Forms.ComboBox()
|
||||
Me.optSortAsc = New System.Windows.Forms.RadioButton()
|
||||
Me.optSortDesc = New System.Windows.Forms.RadioButton()
|
||||
Me.optSortAsc = New System.Windows.Forms.RadioButton()
|
||||
Me.cboSortField = New System.Windows.Forms.ComboBox()
|
||||
Me.lblOrderBy = New System.Windows.Forms.Label()
|
||||
Me.chkTag = New System.Windows.Forms.CheckBox()
|
||||
Me.chkGameInfo = New System.Windows.Forms.CheckBox()
|
||||
Me.grpTagFilter.SuspendLayout()
|
||||
Me.grpTagOptions.SuspendLayout()
|
||||
Me.grpGameFilter.SuspendLayout()
|
||||
@@ -57,26 +57,6 @@ Partial Class frmFilter
|
||||
Me.grpSorting.SuspendLayout()
|
||||
Me.SuspendLayout()
|
||||
'
|
||||
'optGameInfo
|
||||
'
|
||||
Me.optGameInfo.AutoSize = True
|
||||
Me.optGameInfo.Location = New System.Drawing.Point(12, 12)
|
||||
Me.optGameInfo.Name = "optGameInfo"
|
||||
Me.optGameInfo.Size = New System.Drawing.Size(108, 17)
|
||||
Me.optGameInfo.TabIndex = 0
|
||||
Me.optGameInfo.Text = "Game Information"
|
||||
Me.optGameInfo.UseVisualStyleBackColor = True
|
||||
'
|
||||
'optTag
|
||||
'
|
||||
Me.optTag.AutoSize = True
|
||||
Me.optTag.Location = New System.Drawing.Point(12, 190)
|
||||
Me.optTag.Name = "optTag"
|
||||
Me.optTag.Size = New System.Drawing.Size(44, 17)
|
||||
Me.optTag.TabIndex = 2
|
||||
Me.optTag.Text = "Tag"
|
||||
Me.optTag.UseVisualStyleBackColor = True
|
||||
'
|
||||
'grpTagFilter
|
||||
'
|
||||
Me.grpTagFilter.Controls.Add(Me.grpTagOptions)
|
||||
@@ -297,23 +277,16 @@ Partial Class frmFilter
|
||||
Me.grpSorting.TabStop = False
|
||||
Me.grpSorting.Text = "Sorting"
|
||||
'
|
||||
'lblOrderBy
|
||||
'optSortDesc
|
||||
'
|
||||
Me.lblOrderBy.AutoSize = True
|
||||
Me.lblOrderBy.Location = New System.Drawing.Point(6, 28)
|
||||
Me.lblOrderBy.Name = "lblOrderBy"
|
||||
Me.lblOrderBy.Size = New System.Drawing.Size(51, 13)
|
||||
Me.lblOrderBy.TabIndex = 0
|
||||
Me.lblOrderBy.Text = "Order By:"
|
||||
'
|
||||
'cboSortField
|
||||
'
|
||||
Me.cboSortField.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList
|
||||
Me.cboSortField.FormattingEnabled = True
|
||||
Me.cboSortField.Location = New System.Drawing.Point(63, 25)
|
||||
Me.cboSortField.Name = "cboSortField"
|
||||
Me.cboSortField.Size = New System.Drawing.Size(147, 21)
|
||||
Me.cboSortField.TabIndex = 1
|
||||
Me.optSortDesc.AutoSize = True
|
||||
Me.optSortDesc.Location = New System.Drawing.Point(297, 26)
|
||||
Me.optSortDesc.Name = "optSortDesc"
|
||||
Me.optSortDesc.Size = New System.Drawing.Size(82, 17)
|
||||
Me.optSortDesc.TabIndex = 3
|
||||
Me.optSortDesc.TabStop = True
|
||||
Me.optSortDesc.Text = "Descending"
|
||||
Me.optSortDesc.UseVisualStyleBackColor = True
|
||||
'
|
||||
'optSortAsc
|
||||
'
|
||||
@@ -326,28 +299,55 @@ Partial Class frmFilter
|
||||
Me.optSortAsc.Text = "Ascending"
|
||||
Me.optSortAsc.UseVisualStyleBackColor = True
|
||||
'
|
||||
'optSortDesc
|
||||
'cboSortField
|
||||
'
|
||||
Me.optSortDesc.AutoSize = True
|
||||
Me.optSortDesc.Location = New System.Drawing.Point(297, 26)
|
||||
Me.optSortDesc.Name = "optSortDesc"
|
||||
Me.optSortDesc.Size = New System.Drawing.Size(82, 17)
|
||||
Me.optSortDesc.TabIndex = 3
|
||||
Me.optSortDesc.TabStop = True
|
||||
Me.optSortDesc.Text = "Descending"
|
||||
Me.optSortDesc.UseVisualStyleBackColor = True
|
||||
Me.cboSortField.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList
|
||||
Me.cboSortField.FormattingEnabled = True
|
||||
Me.cboSortField.Location = New System.Drawing.Point(63, 25)
|
||||
Me.cboSortField.Name = "cboSortField"
|
||||
Me.cboSortField.Size = New System.Drawing.Size(147, 21)
|
||||
Me.cboSortField.TabIndex = 1
|
||||
'
|
||||
'lblOrderBy
|
||||
'
|
||||
Me.lblOrderBy.AutoSize = True
|
||||
Me.lblOrderBy.Location = New System.Drawing.Point(6, 28)
|
||||
Me.lblOrderBy.Name = "lblOrderBy"
|
||||
Me.lblOrderBy.Size = New System.Drawing.Size(51, 13)
|
||||
Me.lblOrderBy.TabIndex = 0
|
||||
Me.lblOrderBy.Text = "Order By:"
|
||||
'
|
||||
'chkTag
|
||||
'
|
||||
Me.chkTag.AutoSize = True
|
||||
Me.chkTag.Location = New System.Drawing.Point(12, 192)
|
||||
Me.chkTag.Name = "chkTag"
|
||||
Me.chkTag.Size = New System.Drawing.Size(45, 17)
|
||||
Me.chkTag.TabIndex = 6
|
||||
Me.chkTag.Text = "Tag"
|
||||
Me.chkTag.UseVisualStyleBackColor = True
|
||||
'
|
||||
'chkGameInfo
|
||||
'
|
||||
Me.chkGameInfo.AutoSize = True
|
||||
Me.chkGameInfo.Location = New System.Drawing.Point(12, 14)
|
||||
Me.chkGameInfo.Name = "chkGameInfo"
|
||||
Me.chkGameInfo.Size = New System.Drawing.Size(109, 17)
|
||||
Me.chkGameInfo.TabIndex = 7
|
||||
Me.chkGameInfo.Text = "Game Information"
|
||||
Me.chkGameInfo.UseVisualStyleBackColor = True
|
||||
'
|
||||
'frmFilter
|
||||
'
|
||||
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
|
||||
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
|
||||
Me.ClientSize = New System.Drawing.Size(409, 586)
|
||||
Me.Controls.Add(Me.chkGameInfo)
|
||||
Me.Controls.Add(Me.chkTag)
|
||||
Me.Controls.Add(Me.grpSorting)
|
||||
Me.Controls.Add(Me.grpGameFilter)
|
||||
Me.Controls.Add(Me.grpTagFilter)
|
||||
Me.Controls.Add(Me.btnOK)
|
||||
Me.Controls.Add(Me.optTag)
|
||||
Me.Controls.Add(Me.optGameInfo)
|
||||
Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle
|
||||
Me.MaximizeBox = False
|
||||
Me.MinimizeBox = False
|
||||
@@ -367,8 +367,6 @@ Partial Class frmFilter
|
||||
Me.PerformLayout()
|
||||
|
||||
End Sub
|
||||
Friend WithEvents optGameInfo As System.Windows.Forms.RadioButton
|
||||
Friend WithEvents optTag As System.Windows.Forms.RadioButton
|
||||
Friend WithEvents grpTagFilter As System.Windows.Forms.GroupBox
|
||||
Friend WithEvents grpTagOptions As System.Windows.Forms.GroupBox
|
||||
Friend WithEvents optAll As System.Windows.Forms.RadioButton
|
||||
@@ -395,4 +393,6 @@ Partial Class frmFilter
|
||||
Friend WithEvents optSortAsc As RadioButton
|
||||
Friend WithEvents cboSortField As ComboBox
|
||||
Friend WithEvents lblOrderBy As Label
|
||||
Friend WithEvents chkTag As CheckBox
|
||||
Friend WithEvents chkGameInfo As CheckBox
|
||||
End Class
|
||||
|
||||
+20
-17
@@ -3,17 +3,15 @@
|
||||
Public Class frmFilter
|
||||
|
||||
Public Enum eFilterType As Integer
|
||||
NoFilter = 1
|
||||
BaseFilter = 1
|
||||
AnyTag = 2
|
||||
AllTags = 3
|
||||
NoTags = 4
|
||||
FieldAnd = 5
|
||||
FieldOr = 6
|
||||
End Enum
|
||||
|
||||
Dim oTagFilters As New List(Of clsTag)
|
||||
Dim hshStringFilters As New Hashtable
|
||||
Dim eCurrentFilterType As eFilterType = eFilterType.AnyTag
|
||||
Dim eCurrentFilterType As eFilterType = eFilterType.BaseFilter
|
||||
Dim bSortAsc As Boolean = True
|
||||
Dim sSortField As String = "Name"
|
||||
Dim hshTags As New Hashtable
|
||||
@@ -124,13 +122,9 @@ Public Class frmFilter
|
||||
Dim oTag As clsTag
|
||||
|
||||
|
||||
If optGameInfo.Checked Then
|
||||
If chkGameInfo.Checked Then
|
||||
'Set Filter Type
|
||||
If optAnd.Checked Then
|
||||
eCurrentFilterType = eFilterType.FieldAnd
|
||||
Else
|
||||
eCurrentFilterType = eFilterType.FieldOr
|
||||
End If
|
||||
eCurrentFilterType = eFilterType.BaseFilter
|
||||
|
||||
'Set String Filter
|
||||
If txtName.Text <> String.Empty Then
|
||||
@@ -142,7 +136,9 @@ Public Class frmFilter
|
||||
If txtCompany.Text <> String.Empty Then
|
||||
hshStringFilters.Add("Company", txtCompany.Text)
|
||||
End If
|
||||
Else
|
||||
End If
|
||||
|
||||
If chkTag.Checked Then
|
||||
'Set Tags
|
||||
For Each oData In lstFilter.Items
|
||||
oTag = DirectCast(hshTags(oData.Value), clsTag)
|
||||
@@ -207,8 +203,8 @@ Public Class frmFilter
|
||||
btnAdd.Text = frmFilter_btnAdd
|
||||
btnOK.Text = frmFilter_btnOK
|
||||
grpTagOptions.Text = frmFilter_grpTagOptions
|
||||
optTag.Text = frmFilter_optTag
|
||||
optGameInfo.Text = frmFilter_optGameInfo
|
||||
chkTag.Text = frmFilter_chkTag
|
||||
chkGameInfo.Text = frmFilter_chkGameInfo
|
||||
grpSorting.Text = frmFilter_grpSorting
|
||||
lblOrderBy.Text = frmFilter_lblOrderBy
|
||||
optSortAsc.Text = frmFilter_optSortAsc
|
||||
@@ -216,12 +212,13 @@ Public Class frmFilter
|
||||
|
||||
'Defaults
|
||||
optSortAsc.Checked = True
|
||||
grpGameFilter.Enabled = False
|
||||
grpTagFilter.Enabled = False
|
||||
End Sub
|
||||
|
||||
Private Sub frmGameTags_Load(sender As Object, e As EventArgs) Handles MyBase.Load
|
||||
SetForm()
|
||||
LoadCombos()
|
||||
optGameInfo.Checked = True
|
||||
LoadData()
|
||||
End Sub
|
||||
|
||||
@@ -245,13 +242,19 @@ Public Class frmFilter
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Sub optGameInfo_Click(sender As Object, e As EventArgs) Handles optGameInfo.Click, optTag.Click
|
||||
If optGameInfo.Checked = True Then
|
||||
Private Sub chkGameInfo_CheckedChanged(sender As Object, e As EventArgs) Handles chkGameInfo.CheckedChanged
|
||||
If chkGameInfo.Checked Then
|
||||
grpGameFilter.Enabled = True
|
||||
grpTagFilter.Enabled = False
|
||||
Else
|
||||
grpGameFilter.Enabled = False
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Sub chkTag_CheckedChanged(sender As Object, e As EventArgs) Handles chkTag.CheckedChanged
|
||||
If chkTag.Checked Then
|
||||
grpTagFilter.Enabled = True
|
||||
Else
|
||||
grpTagFilter.Enabled = False
|
||||
End If
|
||||
End Sub
|
||||
End Class
|
||||
@@ -21,7 +21,7 @@ Public Class frmGameManager
|
||||
Private bIsLoading As Boolean = False
|
||||
Private oCurrentTagFilters As New List(Of clsTag)
|
||||
Private oCurrentStringFilters As New Hashtable
|
||||
Private eCurrentFilter As frmFilter.eFilterType = frmFilter.eFilterType.NoFilter
|
||||
Private eCurrentFilter As frmFilter.eFilterType = frmFilter.eFilterType.BaseFilter
|
||||
Private bCurrentSortAsc As Boolean = True
|
||||
Private sCurrentSortField As String = "Name"
|
||||
Private WithEvents tmFilterTimer As Timer
|
||||
@@ -235,7 +235,7 @@ Public Class frmGameManager
|
||||
Else
|
||||
oCurrentTagFilters.Clear()
|
||||
oCurrentStringFilters.Clear()
|
||||
eCurrentFilter = frmFilter.eFilterType.NoFilter
|
||||
eCurrentFilter = frmFilter.eFilterType.BaseFilter
|
||||
bCurrentSortAsc = True
|
||||
sCurrentSortField = "Name"
|
||||
End If
|
||||
@@ -1550,9 +1550,6 @@ Public Class frmGameManager
|
||||
AssignDirtyHandlers(grpExtra.Controls)
|
||||
AssignDirtyHandlers(grpStats.Controls)
|
||||
AssignDirtyHandlersMisc()
|
||||
|
||||
LoadData(False)
|
||||
ModeChange()
|
||||
End Sub
|
||||
|
||||
Private Sub lstGames_SelectedIndexChanged(sender As Object, e As EventArgs) Handles lstGames.SelectedIndexChanged
|
||||
|
||||
@@ -511,30 +511,8 @@ Public Class mgrMonitorList
|
||||
End If
|
||||
|
||||
Select Case eFilterType
|
||||
Case frmFilter.eFilterType.NoFilter
|
||||
sSQL = "SELECT " & sBaseSelect & sSort
|
||||
Case frmFilter.eFilterType.FieldAnd, frmFilter.eFilterType.FieldOr
|
||||
Case frmFilter.eFilterType.BaseFilter
|
||||
sSQL = "SELECT " & sBaseSelect
|
||||
|
||||
If hshStringFilters.Count > 0 Then
|
||||
sSQL &= " WHERE ("
|
||||
For Each de As DictionaryEntry In hshStringFilters
|
||||
sSQL &= de.Key & " LIKE @" & de.Key
|
||||
hshParams.Add(de.Key, "%" & de.Value.ToString & "%")
|
||||
iCounter += 1
|
||||
If iCounter <> hshStringFilters.Count Then
|
||||
Select Case eFilterType
|
||||
Case frmFilter.eFilterType.FieldAnd
|
||||
sSQL &= " AND "
|
||||
Case frmFilter.eFilterType.FieldOr
|
||||
sSQL &= " OR "
|
||||
End Select
|
||||
End If
|
||||
|
||||
Next
|
||||
sSQL &= ")"
|
||||
End If
|
||||
sSQL &= sSort
|
||||
Case frmFilter.eFilterType.AnyTag
|
||||
sSQL = "SELECT DISTINCT " & sBaseSelect
|
||||
sSQL &= " NATURAL JOIN gametags WHERE gametags.TagID IN ("
|
||||
@@ -546,7 +524,7 @@ Public Class mgrMonitorList
|
||||
Next
|
||||
|
||||
sSQL = sSQL.TrimEnd(",")
|
||||
sSQL &= ")" & sSort
|
||||
sSQL &= ")"
|
||||
Case frmFilter.eFilterType.AllTags
|
||||
sSQL = "SELECT " & sBaseSelect & " WHERE MonitorID IN "
|
||||
|
||||
@@ -558,12 +536,40 @@ Public Class mgrMonitorList
|
||||
hshParams.Add("TagID" & iCounter, oTag.ID)
|
||||
iCounter += 1
|
||||
Next
|
||||
|
||||
sSQL &= sSort
|
||||
Case frmFilter.eFilterType.NoTags
|
||||
sSQL = "SELECT " & sBaseSelect & " WHERE MonitorID NOT IN (SELECT MonitorID FROM gametags)" & sSort
|
||||
sSQL = "SELECT " & sBaseSelect & " WHERE MonitorID NOT IN (SELECT MonitorID FROM gametags)"
|
||||
End Select
|
||||
|
||||
'Handle String Filters
|
||||
If hshStringFilters.Count > 0 Then
|
||||
If eFilterType = frmFilter.eFilterType.BaseFilter Then
|
||||
sSQL &= " WHERE ("
|
||||
Else
|
||||
sSQL &= " AND ("
|
||||
End If
|
||||
|
||||
iCounter = 0
|
||||
For Each de As DictionaryEntry In hshStringFilters
|
||||
sSQL &= de.Key & " LIKE @" & de.Key
|
||||
hshParams.Add(de.Key, "%" & de.Value.ToString & "%")
|
||||
iCounter += 1
|
||||
If iCounter <> hshStringFilters.Count Then
|
||||
'Select Case eFilterType
|
||||
'Case frmFilter.eFilterType.FieldAnd
|
||||
'sSQL &= " AND "
|
||||
'Case frmFilter.eFilterType.FieldOr
|
||||
sSQL &= " OR "
|
||||
'End Select
|
||||
End If
|
||||
|
||||
Next
|
||||
sSQL &= ")"
|
||||
End If
|
||||
|
||||
'Handle Sorting
|
||||
sSQL &= sSort
|
||||
|
||||
|
||||
Return sSQL
|
||||
|
||||
End Function
|
||||
@@ -697,7 +703,7 @@ Public Class mgrMonitorList
|
||||
Dim bSuccess As Boolean = False
|
||||
Dim oTagFilters As New List(Of clsTag)
|
||||
Dim oStringFilters As New Hashtable
|
||||
Dim eCurrentFilter As frmFilter.eFilterType = frmFilter.eFilterType.NoFilter
|
||||
Dim eCurrentFilter As frmFilter.eFilterType = frmFilter.eFilterType.BaseFilter
|
||||
Dim bSortAsc As Boolean = True
|
||||
Dim sSortField As String = "Name"
|
||||
|
||||
|
||||
Generated
+18
-18
@@ -942,6 +942,24 @@ Namespace My.Resources
|
||||
End Get
|
||||
End Property
|
||||
|
||||
'''<summary>
|
||||
''' Looks up a localized string similar to Game Information.
|
||||
'''</summary>
|
||||
Friend ReadOnly Property frmFilter_chkGameInfo() As String
|
||||
Get
|
||||
Return ResourceManager.GetString("frmFilter_chkGameInfo", resourceCulture)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
'''<summary>
|
||||
''' Looks up a localized string similar to Tag.
|
||||
'''</summary>
|
||||
Friend ReadOnly Property frmFilter_chkTag() As String
|
||||
Get
|
||||
Return ResourceManager.GetString("frmFilter_chkTag", resourceCulture)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
'''<summary>
|
||||
''' Looks up a localized string similar to Custom Filter.
|
||||
'''</summary>
|
||||
@@ -1059,15 +1077,6 @@ Namespace My.Resources
|
||||
End Get
|
||||
End Property
|
||||
|
||||
'''<summary>
|
||||
''' Looks up a localized string similar to Game Information.
|
||||
'''</summary>
|
||||
Friend ReadOnly Property frmFilter_optGameInfo() As String
|
||||
Get
|
||||
Return ResourceManager.GetString("frmFilter_optGameInfo", resourceCulture)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
'''<summary>
|
||||
''' Looks up a localized string similar to Or.
|
||||
'''</summary>
|
||||
@@ -1095,15 +1104,6 @@ Namespace My.Resources
|
||||
End Get
|
||||
End Property
|
||||
|
||||
'''<summary>
|
||||
''' Looks up a localized string similar to Tag.
|
||||
'''</summary>
|
||||
Friend ReadOnly Property frmFilter_optTag() As String
|
||||
Get
|
||||
Return ResourceManager.GetString("frmFilter_optTag", resourceCulture)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
'''<summary>
|
||||
''' Looks up a localized string similar to Company.
|
||||
'''</summary>
|
||||
|
||||
@@ -919,13 +919,13 @@
|
||||
<data name="frmFilter_optAny" xml:space="preserve">
|
||||
<value>Any Tag</value>
|
||||
</data>
|
||||
<data name="frmFilter_optGameInfo" xml:space="preserve">
|
||||
<data name="frmFilter_chkGameInfo" xml:space="preserve">
|
||||
<value>Game Information</value>
|
||||
</data>
|
||||
<data name="frmFilter_optOr" xml:space="preserve">
|
||||
<value>Or</value>
|
||||
</data>
|
||||
<data name="frmFilter_optTag" xml:space="preserve">
|
||||
<data name="frmFilter_chkTag" xml:space="preserve">
|
||||
<value>Tag</value>
|
||||
</data>
|
||||
<data name="frmGameTags_btnAdd" xml:space="preserve">
|
||||
|
||||
Reference in New Issue
Block a user