Custom Filter Enhancement Final Phase

This commit is contained in:
Michael J. Seiferling
2017-08-05 12:49:10 -06:00
parent c0d6a79aa7
commit 6e2298df49
13 changed files with 898 additions and 215 deletions
+8
View File
@@ -406,4 +406,12 @@ Public Class clsGame
Return sProcessName
End Function
Public Shared Function SetSyncField(ByVal eSyncFields As eOptionalSyncFields, ByVal eSyncField As eOptionalSyncFields) As eOptionalSyncFields
Return eSyncFields Or eSyncField
End Function
Public Shared Function RemoveSyncField(ByVal eSyncFields As eOptionalSyncFields, ByVal eSyncField As eOptionalSyncFields) As eOptionalSyncFields
Return eSyncFields And (Not eSyncField)
End Function
End Class
+81
View File
@@ -0,0 +1,81 @@
Public Class clsGameFilter
Private sID As String
Private oField As clsGameFilterField
Private oData As Object
Private eNumericOperator As eNumericOperators = eNumericOperators.Equals
Private bNextBoolOperator As Boolean
Public Enum eNumericOperators
Equals = 1
Greater = 2
Lesser = 3
GreaterEquals = 4
LesserEquals = 5
End Enum
Public Property ID As String
Get
Return sID
End Get
Set(value As String)
sID = value
End Set
End Property
Public Property Field As clsGameFilterField
Get
Return oField
End Get
Set(value As clsGameFilterField)
oField = value
End Set
End Property
Public Property Data As Object
Get
Return oData
End Get
Set(value As Object)
oData = value
End Set
End Property
Public Property NextBoolOperator As Boolean
Get
Return bNextBoolOperator
End Get
Set(value As Boolean)
bNextBoolOperator = value
End Set
End Property
Public Property NumericOperator As eNumericOperators
Get
Return eNumericOperator
End Get
Set(value As eNumericOperators)
eNumericOperator = value
End Set
End Property
Public ReadOnly Property NumericOperatorAsString As String
Get
Select Case eNumericOperator
Case eNumericOperators.Equals
Return "="
Case eNumericOperators.Greater
Return ">"
Case eNumericOperators.GreaterEquals
Return ">="
Case eNumericOperators.Lesser
Return "<"
Case eNumericOperators.LesserEquals
Return "<="
Case Else
Return String.Empty
End Select
End Get
End Property
End Class
+77
View File
@@ -0,0 +1,77 @@
Public Class clsGameFilterField
Public Enum eDataType As Integer
fString = 1
fNumeric = 2
fBool = 3
End Enum
<Flags()> Public Enum eFieldStatus
None = 0
ValidFilter = 1
ValidSort = 2
End Enum
Private sFieldName As String
Private sFriendlyFieldName As String
Private eType As eDataType
Private eStatus As eFieldStatus
Public Property FieldName As String
Get
Return sFieldName
End Get
Set(value As String)
sFieldName = value
End Set
End Property
Public Property FriendlyFieldName As String
Get
Return sFriendlyFieldName
End Get
Set(value As String)
sFriendlyFieldName = value
End Set
End Property
Public Property Type As eDataType
Get
Return eType
End Get
Set(value As eDataType)
eType = value
End Set
End Property
'This is a flag property - Setting a value will toggle that flag on and off.
Public Property Status As eFieldStatus
Get
Return eStatus
End Get
Set(value As eFieldStatus)
If (eStatus And value) = value Then
eStatus = RemoveFieldStatus(value)
Else
eStatus = SetFieldStatus(value)
End If
End Set
End Property
Private Function SetFieldStatus(ByVal eFlag As eFieldStatus) As eFieldStatus
Return eStatus Or eFlag
End Function
Private Function RemoveFieldStatus(ByVal eFlag As eFieldStatus) As eFieldStatus
Return eStatus And (Not eFlag)
End Function
Public Function CheckStatus(ByVal eFlag As eFieldStatus) As Boolean
If (eStatus And eFlag) = eFlag Then
Return True
Else
Return False
End If
End Function
End Class
+156 -91
View File
@@ -34,29 +34,36 @@ Partial Class frmFilter
Me.lstTags = New System.Windows.Forms.ListBox()
Me.btnOK = New System.Windows.Forms.Button()
Me.grpGameFilter = New System.Windows.Forms.GroupBox()
Me.cboBoolFilter = New System.Windows.Forms.ComboBox()
Me.numFilter = New System.Windows.Forms.NumericUpDown()
Me.cboNumericOps = New System.Windows.Forms.ComboBox()
Me.lblCurrentFilters = New System.Windows.Forms.Label()
Me.lblFilterData = New System.Windows.Forms.Label()
Me.lblFields = New System.Windows.Forms.Label()
Me.btnRemoveFilter = New System.Windows.Forms.Button()
Me.lstFilter = New System.Windows.Forms.ListBox()
Me.btnAddFilter = New System.Windows.Forms.Button()
Me.cboFilterField = New System.Windows.Forms.ComboBox()
Me.grpGameInfoOptions = New System.Windows.Forms.GroupBox()
Me.grpNextFilterOperator = New System.Windows.Forms.GroupBox()
Me.optOr = New System.Windows.Forms.RadioButton()
Me.optAnd = New System.Windows.Forms.RadioButton()
Me.txtFilterData = New System.Windows.Forms.TextBox()
Me.txtStringFilter = New System.Windows.Forms.TextBox()
Me.grpSorting = New System.Windows.Forms.GroupBox()
Me.optSortDesc = New System.Windows.Forms.RadioButton()
Me.grpSortOptions = New System.Windows.Forms.GroupBox()
Me.optSortAsc = New System.Windows.Forms.RadioButton()
Me.optSortDesc = New System.Windows.Forms.RadioButton()
Me.lblSortFields = New System.Windows.Forms.Label()
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.lblFields = New System.Windows.Forms.Label()
Me.lblFilterData = New System.Windows.Forms.Label()
Me.lblCurrentFilters = New System.Windows.Forms.Label()
Me.Label1 = New System.Windows.Forms.Label()
Me.grpTagFilter.SuspendLayout()
Me.grpTagOptions.SuspendLayout()
Me.grpGameFilter.SuspendLayout()
Me.grpGameInfoOptions.SuspendLayout()
CType(Me.numFilter, System.ComponentModel.ISupportInitialize).BeginInit()
Me.grpNextFilterOperator.SuspendLayout()
Me.grpSorting.SuspendLayout()
Me.grpSortOptions.SuspendLayout()
Me.SuspendLayout()
'
'grpTagFilter
@@ -68,7 +75,7 @@ Partial Class frmFilter
Me.grpTagFilter.Controls.Add(Me.btnAdd)
Me.grpTagFilter.Controls.Add(Me.lstTagFilter)
Me.grpTagFilter.Controls.Add(Me.lstTags)
Me.grpTagFilter.Location = New System.Drawing.Point(12, 253)
Me.grpTagFilter.Location = New System.Drawing.Point(12, 236)
Me.grpTagFilter.Name = "grpTagFilter"
Me.grpTagFilter.Size = New System.Drawing.Size(385, 198)
Me.grpTagFilter.TabIndex = 3
@@ -167,12 +174,15 @@ Partial Class frmFilter
Me.btnOK.Location = New System.Drawing.Point(322, 526)
Me.btnOK.Name = "btnOK"
Me.btnOK.Size = New System.Drawing.Size(75, 23)
Me.btnOK.TabIndex = 5
Me.btnOK.TabIndex = 6
Me.btnOK.Text = "&OK"
Me.btnOK.UseVisualStyleBackColor = True
'
'grpGameFilter
'
Me.grpGameFilter.Controls.Add(Me.cboBoolFilter)
Me.grpGameFilter.Controls.Add(Me.numFilter)
Me.grpGameFilter.Controls.Add(Me.cboNumericOps)
Me.grpGameFilter.Controls.Add(Me.lblCurrentFilters)
Me.grpGameFilter.Controls.Add(Me.lblFilterData)
Me.grpGameFilter.Controls.Add(Me.lblFields)
@@ -180,20 +190,74 @@ Partial Class frmFilter
Me.grpGameFilter.Controls.Add(Me.lstFilter)
Me.grpGameFilter.Controls.Add(Me.btnAddFilter)
Me.grpGameFilter.Controls.Add(Me.cboFilterField)
Me.grpGameFilter.Controls.Add(Me.grpGameInfoOptions)
Me.grpGameFilter.Controls.Add(Me.txtFilterData)
Me.grpGameFilter.Controls.Add(Me.grpNextFilterOperator)
Me.grpGameFilter.Controls.Add(Me.txtStringFilter)
Me.grpGameFilter.Location = New System.Drawing.Point(12, 35)
Me.grpGameFilter.Name = "grpGameFilter"
Me.grpGameFilter.Size = New System.Drawing.Size(385, 189)
Me.grpGameFilter.Size = New System.Drawing.Size(385, 172)
Me.grpGameFilter.TabIndex = 1
Me.grpGameFilter.TabStop = False
'
'cboBoolFilter
'
Me.cboBoolFilter.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList
Me.cboBoolFilter.FormattingEnabled = True
Me.cboBoolFilter.Location = New System.Drawing.Point(162, 36)
Me.cboBoolFilter.Name = "cboBoolFilter"
Me.cboBoolFilter.Size = New System.Drawing.Size(136, 21)
Me.cboBoolFilter.TabIndex = 3
'
'numFilter
'
Me.numFilter.DecimalPlaces = 1
Me.numFilter.Location = New System.Drawing.Point(233, 37)
Me.numFilter.Maximum = New Decimal(New Integer() {1000000, 0, 0, 0})
Me.numFilter.Name = "numFilter"
Me.numFilter.Size = New System.Drawing.Size(65, 20)
Me.numFilter.TabIndex = 4
'
'cboNumericOps
'
Me.cboNumericOps.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList
Me.cboNumericOps.FormattingEnabled = True
Me.cboNumericOps.Location = New System.Drawing.Point(162, 36)
Me.cboNumericOps.Name = "cboNumericOps"
Me.cboNumericOps.Size = New System.Drawing.Size(65, 21)
Me.cboNumericOps.TabIndex = 3
'
'lblCurrentFilters
'
Me.lblCurrentFilters.AutoSize = True
Me.lblCurrentFilters.Location = New System.Drawing.Point(94, 65)
Me.lblCurrentFilters.Name = "lblCurrentFilters"
Me.lblCurrentFilters.Size = New System.Drawing.Size(71, 13)
Me.lblCurrentFilters.TabIndex = 6
Me.lblCurrentFilters.Text = "Current Filters"
'
'lblFilterData
'
Me.lblFilterData.AutoSize = True
Me.lblFilterData.Location = New System.Drawing.Point(214, 20)
Me.lblFilterData.Name = "lblFilterData"
Me.lblFilterData.Size = New System.Drawing.Size(32, 13)
Me.lblFilterData.TabIndex = 2
Me.lblFilterData.Text = "Filter "
'
'lblFields
'
Me.lblFields.AutoSize = True
Me.lblFields.Location = New System.Drawing.Point(41, 20)
Me.lblFields.Name = "lblFields"
Me.lblFields.Size = New System.Drawing.Size(80, 13)
Me.lblFields.TabIndex = 0
Me.lblFields.Text = "Available Fields"
'
'btnRemoveFilter
'
Me.btnRemoveFilter.Location = New System.Drawing.Point(259, 153)
Me.btnRemoveFilter.Location = New System.Drawing.Point(259, 140)
Me.btnRemoveFilter.Name = "btnRemoveFilter"
Me.btnRemoveFilter.Size = New System.Drawing.Size(75, 23)
Me.btnRemoveFilter.TabIndex = 8
Me.btnRemoveFilter.TabIndex = 9
Me.btnRemoveFilter.Text = "Remove"
Me.btnRemoveFilter.UseVisualStyleBackColor = True
'
@@ -202,15 +266,15 @@ Partial Class frmFilter
Me.lstFilter.FormattingEnabled = True
Me.lstFilter.Location = New System.Drawing.Point(6, 81)
Me.lstFilter.Name = "lstFilter"
Me.lstFilter.Size = New System.Drawing.Size(247, 95)
Me.lstFilter.TabIndex = 6
Me.lstFilter.Size = New System.Drawing.Size(247, 82)
Me.lstFilter.TabIndex = 7
'
'btnAddFilter
'
Me.btnAddFilter.Location = New System.Drawing.Point(304, 34)
Me.btnAddFilter.Name = "btnAddFilter"
Me.btnAddFilter.Size = New System.Drawing.Size(75, 23)
Me.btnAddFilter.TabIndex = 4
Me.btnAddFilter.TabIndex = 5
Me.btnAddFilter.Text = "Add"
Me.btnAddFilter.UseVisualStyleBackColor = True
'
@@ -220,19 +284,19 @@ Partial Class frmFilter
Me.cboFilterField.FormattingEnabled = True
Me.cboFilterField.Location = New System.Drawing.Point(6, 36)
Me.cboFilterField.Name = "cboFilterField"
Me.cboFilterField.Size = New System.Drawing.Size(121, 21)
Me.cboFilterField.Size = New System.Drawing.Size(150, 21)
Me.cboFilterField.TabIndex = 1
'
'grpGameInfoOptions
'grpNextFilterOperator
'
Me.grpGameInfoOptions.Controls.Add(Me.optOr)
Me.grpGameInfoOptions.Controls.Add(Me.optAnd)
Me.grpGameInfoOptions.Location = New System.Drawing.Point(259, 81)
Me.grpGameInfoOptions.Name = "grpGameInfoOptions"
Me.grpGameInfoOptions.Size = New System.Drawing.Size(106, 46)
Me.grpGameInfoOptions.TabIndex = 7
Me.grpGameInfoOptions.TabStop = False
Me.grpGameInfoOptions.Text = "Options"
Me.grpNextFilterOperator.Controls.Add(Me.optOr)
Me.grpNextFilterOperator.Controls.Add(Me.optAnd)
Me.grpNextFilterOperator.Location = New System.Drawing.Point(259, 81)
Me.grpNextFilterOperator.Name = "grpNextFilterOperator"
Me.grpNextFilterOperator.Size = New System.Drawing.Size(106, 46)
Me.grpNextFilterOperator.TabIndex = 8
Me.grpNextFilterOperator.TabStop = False
Me.grpNextFilterOperator.Text = "Next Filter"
'
'optOr
'
@@ -255,70 +319,80 @@ Partial Class frmFilter
Me.optAnd.Text = "And"
Me.optAnd.UseVisualStyleBackColor = True
'
'txtFilterData
'txtStringFilter
'
Me.txtFilterData.Location = New System.Drawing.Point(133, 36)
Me.txtFilterData.Name = "txtFilterData"
Me.txtFilterData.Size = New System.Drawing.Size(165, 20)
Me.txtFilterData.TabIndex = 3
Me.txtStringFilter.Location = New System.Drawing.Point(162, 36)
Me.txtStringFilter.Name = "txtStringFilter"
Me.txtStringFilter.Size = New System.Drawing.Size(136, 20)
Me.txtStringFilter.TabIndex = 3
'
'grpSorting
'
Me.grpSorting.Controls.Add(Me.optSortDesc)
Me.grpSorting.Controls.Add(Me.optSortAsc)
Me.grpSorting.Controls.Add(Me.grpSortOptions)
Me.grpSorting.Controls.Add(Me.lblSortFields)
Me.grpSorting.Controls.Add(Me.cboSortField)
Me.grpSorting.Controls.Add(Me.lblOrderBy)
Me.grpSorting.Location = New System.Drawing.Point(12, 457)
Me.grpSorting.Location = New System.Drawing.Point(12, 440)
Me.grpSorting.Name = "grpSorting"
Me.grpSorting.Size = New System.Drawing.Size(385, 61)
Me.grpSorting.Size = New System.Drawing.Size(385, 80)
Me.grpSorting.TabIndex = 4
Me.grpSorting.TabStop = False
Me.grpSorting.Text = "Sorting"
'
'optSortDesc
'grpSortOptions
'
Me.optSortDesc.AutoSize = True
Me.optSortDesc.Location = New System.Drawing.Point(271, 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.grpSortOptions.Controls.Add(Me.optSortAsc)
Me.grpSortOptions.Controls.Add(Me.optSortDesc)
Me.grpSortOptions.Location = New System.Drawing.Point(162, 19)
Me.grpSortOptions.Name = "grpSortOptions"
Me.grpSortOptions.Size = New System.Drawing.Size(189, 43)
Me.grpSortOptions.TabIndex = 3
Me.grpSortOptions.TabStop = False
Me.grpSortOptions.Text = "Sort Options"
'
'optSortAsc
'
Me.optSortAsc.AutoSize = True
Me.optSortAsc.Location = New System.Drawing.Point(190, 26)
Me.optSortAsc.Location = New System.Drawing.Point(6, 17)
Me.optSortAsc.Name = "optSortAsc"
Me.optSortAsc.Size = New System.Drawing.Size(75, 17)
Me.optSortAsc.TabIndex = 2
Me.optSortAsc.TabIndex = 0
Me.optSortAsc.TabStop = True
Me.optSortAsc.Text = "Ascending"
Me.optSortAsc.UseVisualStyleBackColor = True
'
'optSortDesc
'
Me.optSortDesc.AutoSize = True
Me.optSortDesc.Location = New System.Drawing.Point(90, 17)
Me.optSortDesc.Name = "optSortDesc"
Me.optSortDesc.Size = New System.Drawing.Size(82, 17)
Me.optSortDesc.TabIndex = 1
Me.optSortDesc.TabStop = True
Me.optSortDesc.Text = "Descending"
Me.optSortDesc.UseVisualStyleBackColor = True
'
'lblSortFields
'
Me.lblSortFields.AutoSize = True
Me.lblSortFields.Location = New System.Drawing.Point(41, 19)
Me.lblSortFields.Name = "lblSortFields"
Me.lblSortFields.Size = New System.Drawing.Size(80, 13)
Me.lblSortFields.TabIndex = 1
Me.lblSortFields.Text = "Available Fields"
'
'cboSortField
'
Me.cboSortField.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList
Me.cboSortField.FormattingEnabled = True
Me.cboSortField.Location = New System.Drawing.Point(63, 25)
Me.cboSortField.Location = New System.Drawing.Point(6, 35)
Me.cboSortField.Name = "cboSortField"
Me.cboSortField.Size = New System.Drawing.Size(121, 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:"
Me.cboSortField.Size = New System.Drawing.Size(150, 21)
Me.cboSortField.TabIndex = 2
'
'chkTag
'
Me.chkTag.AutoSize = True
Me.chkTag.Location = New System.Drawing.Point(12, 230)
Me.chkTag.Location = New System.Drawing.Point(12, 213)
Me.chkTag.Name = "chkTag"
Me.chkTag.Size = New System.Drawing.Size(45, 17)
Me.chkTag.TabIndex = 2
@@ -335,38 +409,21 @@ Partial Class frmFilter
Me.chkGameInfo.Text = "Game Information"
Me.chkGameInfo.UseVisualStyleBackColor = True
'
'lblFields
'Label1
'
Me.lblFields.AutoSize = True
Me.lblFields.Location = New System.Drawing.Point(26, 20)
Me.lblFields.Name = "lblFields"
Me.lblFields.Size = New System.Drawing.Size(80, 13)
Me.lblFields.TabIndex = 0
Me.lblFields.Text = "Available Fields"
'
'lblFilterData
'
Me.lblFilterData.AutoSize = True
Me.lblFilterData.Location = New System.Drawing.Point(199, 20)
Me.lblFilterData.Name = "lblFilterData"
Me.lblFilterData.Size = New System.Drawing.Size(32, 13)
Me.lblFilterData.TabIndex = 2
Me.lblFilterData.Text = "Filter "
'
'lblCurrentFilters
'
Me.lblCurrentFilters.AutoSize = True
Me.lblCurrentFilters.Location = New System.Drawing.Point(94, 65)
Me.lblCurrentFilters.Name = "lblCurrentFilters"
Me.lblCurrentFilters.Size = New System.Drawing.Size(71, 13)
Me.lblCurrentFilters.TabIndex = 5
Me.lblCurrentFilters.Text = "Current Filters"
Me.Label1.AutoSize = True
Me.Label1.Location = New System.Drawing.Point(12, 531)
Me.Label1.Name = "Label1"
Me.Label1.Size = New System.Drawing.Size(249, 13)
Me.Label1.TabIndex = 5
Me.Label1.Text = "* Indicates a field that may give unexpected results."
'
'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, 561)
Me.Controls.Add(Me.Label1)
Me.Controls.Add(Me.grpSorting)
Me.Controls.Add(Me.chkTag)
Me.Controls.Add(Me.grpGameFilter)
@@ -385,9 +442,12 @@ Partial Class frmFilter
Me.grpTagOptions.ResumeLayout(False)
Me.grpGameFilter.ResumeLayout(False)
Me.grpGameFilter.PerformLayout()
Me.grpGameInfoOptions.ResumeLayout(False)
CType(Me.numFilter, System.ComponentModel.ISupportInitialize).EndInit()
Me.grpNextFilterOperator.ResumeLayout(False)
Me.grpSorting.ResumeLayout(False)
Me.grpSorting.PerformLayout()
Me.grpSortOptions.ResumeLayout(False)
Me.grpSortOptions.PerformLayout()
Me.ResumeLayout(False)
Me.PerformLayout()
@@ -404,15 +464,14 @@ Partial Class frmFilter
Friend WithEvents lstTags As System.Windows.Forms.ListBox
Friend WithEvents btnOK As System.Windows.Forms.Button
Friend WithEvents grpGameFilter As System.Windows.Forms.GroupBox
Friend WithEvents txtFilterData As System.Windows.Forms.TextBox
Friend WithEvents grpGameInfoOptions As System.Windows.Forms.GroupBox
Friend WithEvents txtStringFilter As System.Windows.Forms.TextBox
Friend WithEvents grpNextFilterOperator As System.Windows.Forms.GroupBox
Friend WithEvents optOr As System.Windows.Forms.RadioButton
Friend WithEvents optAnd As System.Windows.Forms.RadioButton
Friend WithEvents grpSorting As GroupBox
Friend WithEvents optSortDesc As RadioButton
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
Friend WithEvents cboFilterField As ComboBox
@@ -422,4 +481,10 @@ Partial Class frmFilter
Friend WithEvents lblCurrentFilters As Label
Friend WithEvents lblFilterData As Label
Friend WithEvents lblFields As Label
Friend WithEvents cboNumericOps As ComboBox
Friend WithEvents numFilter As NumericUpDown
Friend WithEvents cboBoolFilter As ComboBox
Friend WithEvents lblSortFields As Label
Friend WithEvents Label1 As Label
Friend WithEvents grpSortOptions As GroupBox
End Class
+330 -80
View File
@@ -9,53 +9,9 @@ Public Class frmFilter
NoTags = 4
End Enum
Public Class clsFilter
Private sID As String
Private sField As String
Private oData As Object
Private bAndOperator As Boolean
Public Property ID As String
Get
Return sID
End Get
Set(value As String)
sID = value
End Set
End Property
Public Property Field As String
Get
Return sField
End Get
Set(value As String)
sField = value
End Set
End Property
Public Property Data As Object
Get
Return oData
End Get
Set(value As Object)
oData = value
End Set
End Property
Public Property AndOperator As Boolean
Get
Return bAndOperator
End Get
Set(value As Boolean)
bAndOperator = value
End Set
End Property
End Class
Dim oTagFilters As New List(Of clsTag)
Dim oGameFilters As New List(Of clsFilter)
Dim oGameFilters As New List(Of clsGameFilter)
Dim oValidFields As New List(Of clsGameFilterField)
Dim eCurrentFilterType As eFilterType = eFilterType.BaseFilter
Dim bSortAsc As Boolean = True
Dim sSortField As String = "Name"
@@ -63,34 +19,49 @@ Public Class frmFilter
Dim bShutdown As Boolean = False
Dim iParameterIndex As Integer = 0
Public ReadOnly Property GameFilters As List(Of clsFilter)
Public Property GameFilters As List(Of clsGameFilter)
Get
Return oGameFilters
End Get
Set(value As List(Of clsGameFilter))
oGameFilters = value
End Set
End Property
Public ReadOnly Property TagFilters As List(Of clsTag)
Public Property TagFilters As List(Of clsTag)
Get
Return oTagFilters
End Get
Set(value As List(Of clsTag))
oTagFilters = value
End Set
End Property
Public ReadOnly Property FilterType As eFilterType
Public Property FilterType As eFilterType
Get
Return eCurrentFilterType
End Get
Set(value As eFilterType)
eCurrentFilterType = value
End Set
End Property
Public ReadOnly Property SortAsc As Boolean
Public Property SortAsc As Boolean
Get
Return bSortAsc
End Get
Set(value As Boolean)
bSortAsc = value
End Set
End Property
Public ReadOnly Property SortField As String
Public Property SortField As String
Get
Return sSortField
End Get
Set(value As String)
sSortField = value
End Set
End Property
Private Sub AddTag()
@@ -139,7 +110,154 @@ Public Class frmFilter
End Sub
Private Sub LoadData()
Private Sub LoadFilterFields()
Dim oField As clsGameFilterField
'Name
oField = New clsGameFilterField
oField.FieldName = "Name"
oField.FriendlyFieldName = frmFilter_FieldName
oField.Type = clsGameFilterField.eDataType.fString
oField.Status = clsGameFilterField.eFieldStatus.ValidSort
oField.Status = clsGameFilterField.eFieldStatus.ValidFilter
oValidFields.Add(oField)
'Process
oField = New clsGameFilterField
oField.FieldName = "Process"
oField.FriendlyFieldName = frmFilter_FieldProcess
oField.Type = clsGameFilterField.eDataType.fString
oField.Status = clsGameFilterField.eFieldStatus.ValidSort
oField.Status = clsGameFilterField.eFieldStatus.ValidFilter
oValidFields.Add(oField)
'Parameter
oField = New clsGameFilterField
oField.FieldName = "Parameter"
oField.FriendlyFieldName = frmFilter_FieldParameter
oField.Type = clsGameFilterField.eDataType.fString
oField.Status = clsGameFilterField.eFieldStatus.ValidSort
oField.Status = clsGameFilterField.eFieldStatus.ValidFilter
oValidFields.Add(oField)
'Save Path
oField = New clsGameFilterField
oField.FieldName = "Path"
oField.FriendlyFieldName = frmFilter_FieldPath
oField.Type = clsGameFilterField.eDataType.fString
oField.Status = clsGameFilterField.eFieldStatus.ValidFilter
oValidFields.Add(oField)
'Include Items
oField = New clsGameFilterField
oField.FieldName = "FileType"
oField.FriendlyFieldName = frmFilter_FieldFileType
oField.Type = clsGameFilterField.eDataType.fString
oField.Status = clsGameFilterField.eFieldStatus.ValidFilter
oValidFields.Add(oField)
'Exclude Items
oField = New clsGameFilterField
oField.FieldName = "ExcludeList"
oField.FriendlyFieldName = frmFilter_FieldExcludeList
oField.Type = clsGameFilterField.eDataType.fString
oField.Status = clsGameFilterField.eFieldStatus.ValidFilter
oValidFields.Add(oField)
'Save Entire Folder
oField = New clsGameFilterField
oField.FieldName = "FolderSave"
oField.FriendlyFieldName = frmFilter_FieldFolderSave
oField.Type = clsGameFilterField.eDataType.fBool
oField.Status = clsGameFilterField.eFieldStatus.ValidFilter
oValidFields.Add(oField)
'Delete Folder on Restore
oField = New clsGameFilterField
oField.FieldName = "CleanFolder"
oField.FriendlyFieldName = frmFilter_FieldCleanFolder
oField.Type = clsGameFilterField.eDataType.fBool
oField.Status = clsGameFilterField.eFieldStatus.ValidFilter
oValidFields.Add(oField)
'Save Multiple Backups
oField = New clsGameFilterField
oField.FieldName = "TimeStamp"
oField.FriendlyFieldName = frmFilter_FieldTimeStamp
oField.Type = clsGameFilterField.eDataType.fBool
oField.Status = clsGameFilterField.eFieldStatus.ValidFilter
oValidFields.Add(oField)
'Backup Limit
oField = New clsGameFilterField
oField.FieldName = "BackupLimit"
oField.FriendlyFieldName = frmFilter_FieldBackupLimit
oField.Type = clsGameFilterField.eDataType.fNumeric
oField.Status = clsGameFilterField.eFieldStatus.ValidFilter
oValidFields.Add(oField)
'Game Path
oField = New clsGameFilterField
oField.FieldName = "ProcessPath"
oField.FriendlyFieldName = frmFilter_FieldProcessPath
oField.Type = clsGameFilterField.eDataType.fString
oField.Status = clsGameFilterField.eFieldStatus.ValidFilter
oValidFields.Add(oField)
'Company
oField = New clsGameFilterField
oField.FieldName = "Company"
oField.FriendlyFieldName = frmFilter_FieldCompany
oField.Type = clsGameFilterField.eDataType.fString
oField.Status = clsGameFilterField.eFieldStatus.ValidSort
oField.Status = clsGameFilterField.eFieldStatus.ValidFilter
oValidFields.Add(oField)
'Version
oField = New clsGameFilterField
oField.FieldName = "Version"
oField.FriendlyFieldName = frmFilter_FieldVersion
oField.Type = clsGameFilterField.eDataType.fString
oField.Status = clsGameFilterField.eFieldStatus.ValidSort
oField.Status = clsGameFilterField.eFieldStatus.ValidFilter
oValidFields.Add(oField)
'Icon
oField = New clsGameFilterField
oField.FieldName = "Icon"
oField.FriendlyFieldName = frmFilter_FieldIcon
oField.Type = clsGameFilterField.eDataType.fString
oField.Status = clsGameFilterField.eFieldStatus.ValidFilter
oValidFields.Add(oField)
'Hours
oField = New clsGameFilterField
oField.FieldName = "Hours"
oField.FriendlyFieldName = frmFilter_FieldHours
oField.Type = clsGameFilterField.eDataType.fNumeric
oField.Status = clsGameFilterField.eFieldStatus.ValidSort
oField.Status = clsGameFilterField.eFieldStatus.ValidFilter
oValidFields.Add(oField)
'Enabled
oField = New clsGameFilterField
oField.FieldName = "Enabled"
oField.FriendlyFieldName = frmFilter_FieldEnabled
oField.Type = clsGameFilterField.eDataType.fBool
oField.Status = clsGameFilterField.eFieldStatus.ValidFilter
oValidFields.Add(oField)
'Monitor Only
oField = New clsGameFilterField
oField.FieldName = "MonitorOnly"
oField.FriendlyFieldName = frmFilter_FieldMonitorOnly
oField.Type = clsGameFilterField.eDataType.fBool
oField.Status = clsGameFilterField.eFieldStatus.ValidFilter
oValidFields.Add(oField)
End Sub
Private Sub LoadTagData()
Dim oTag As clsTag
Dim oData As KeyValuePair(Of String, String)
@@ -152,6 +270,7 @@ Public Class frmFilter
lstTags.ValueMember = "Key"
lstTags.DisplayMember = "Value"
lstTagFilter.ValueMember = "Key"
lstTagFilter.DisplayMember = "Value"
@@ -163,30 +282,121 @@ Public Class frmFilter
End Sub
Private Sub AddFilter()
Dim oFilter As New clsFilter
Dim sFilter As String
Private Sub LoadExistingFilters()
Dim sFilter As String = String.Empty
Dim oListTag As KeyValuePair(Of String, String)
lstFilter.ValueMember = "Key"
lstFilter.DisplayMember = "Value"
'Game Filters
If oGameFilters.Count > 0 Then
chkGameInfo.Checked = True
For Each oFilter As clsGameFilter In oGameFilters
Select Case oFilter.Field.Type
Case clsGameFilterField.eDataType.fString
sFilter = oFilter.Field.FriendlyFieldName & " " & frmFilter_lstFilterContains & " """ & oFilter.Data & """ / "
Case clsGameFilterField.eDataType.fNumeric
oFilter.NumericOperator = DirectCast(cboNumericOps.SelectedValue, clsGameFilter.eNumericOperators)
sFilter = oFilter.Field.FriendlyFieldName & " " & oFilter.NumericOperatorAsString & " " & oFilter.Data & " / "
Case clsGameFilterField.eDataType.fBool
sFilter = oFilter.Field.FriendlyFieldName & " = " & oFilter.Data & " / "
End Select
If oFilter.NextBoolOperator Then
sFilter &= frmFilter_optAnd
Else
sFilter &= frmFilter_optOr
End If
iParameterIndex += 1
lstFilter.Items.Add(New KeyValuePair(Of clsGameFilter, String)(oFilter, sFilter))
Next
End If
'Tag Filters
If oTagFilters.Count > 0 Then
chkTag.Checked = True
For Each oTag As clsTag In oTagFilters
oListTag = New KeyValuePair(Of String, String)(oTag.ID, oTag.Name)
lstTagFilter.Items.Add(oListTag)
lstTags.Items.Remove(oListTag)
Next
If eCurrentFilterType = eFilterType.AllTags Then
optAll.Checked = True
Else
optAny.Checked = True
End If
End If
'Sorting
cboSortField.SelectedValue = sSortField
If bSortAsc Then
optSortAsc.Checked = True
Else
optSortDesc.Checked = True
End If
End Sub
Private Sub ChangeFilterMode()
Dim oFilterType As clsGameFilterField.eDataType = DirectCast(cboFilterField.SelectedValue, clsGameFilterField).Type
'Reset
cboNumericOps.SelectedIndex = 0
cboBoolFilter.SelectedIndex = 0
numFilter.Value = 0
txtStringFilter.Text = String.Empty
'Reset Visibilty
cboBoolFilter.Visible = False
cboNumericOps.Visible = False
numFilter.Visible = False
txtStringFilter.Visible = False
'Set Visiblity
Select Case oFilterType
Case clsGameFilterField.eDataType.fString
txtStringFilter.Visible = True
Case clsGameFilterField.eDataType.fNumeric
cboNumericOps.Visible = True
numFilter.Visible = True
txtStringFilter.Visible = False
Case clsGameFilterField.eDataType.fBool
cboBoolFilter.Visible = True
End Select
End Sub
Private Sub AddFilter()
Dim oFilter As New clsGameFilter
Dim sFilter As String = String.Empty
'Build Filter
oFilter.ID = "PARAM" & iParameterIndex
oFilter.Field = cboFilterField.SelectedValue
oFilter.Data = txtFilterData.Text
oFilter.AndOperator = optAnd.Checked
oFilter.NextBoolOperator = optAnd.Checked
oGameFilters.Add(oFilter)
Select Case oFilter.Field.Type
Case clsGameFilterField.eDataType.fString
oFilter.Data = txtStringFilter.Text
sFilter = oFilter.Field.FriendlyFieldName & " " & frmFilter_lstFilterContains & " """ & oFilter.Data & """ / "
Case clsGameFilterField.eDataType.fNumeric
oFilter.Data = numFilter.Value
oFilter.NumericOperator = DirectCast(cboNumericOps.SelectedValue, clsGameFilter.eNumericOperators)
sFilter = oFilter.Field.FriendlyFieldName & " " & oFilter.NumericOperatorAsString & " " & oFilter.Data & " / "
Case clsGameFilterField.eDataType.fBool
oFilter.Data = cboBoolFilter.SelectedValue
sFilter = oFilter.Field.FriendlyFieldName & " = " & oFilter.Data & " / "
End Select
'Build String
sFilter = oFilter.Field & " / " & oFilter.Data & " / "
If oFilter.AndOperator Then
If oFilter.NextBoolOperator Then
sFilter &= frmFilter_optAnd
Else
sFilter &= frmFilter_optOr
End If
lstFilter.Items.Add(New KeyValuePair(Of clsFilter, String)(oFilter, sFilter))
oGameFilters.Add(oFilter)
lstFilter.Items.Add(New KeyValuePair(Of clsGameFilter, String)(oFilter, sFilter))
iParameterIndex += 1
End Sub
@@ -196,7 +406,7 @@ Public Class frmFilter
If lstFilter.SelectedIndex <> -1 Then
oFilter = lstFilter.SelectedItem
oGameFilters.Remove(DirectCast(oFilter, KeyValuePair(Of clsFilter, String)).Key)
oGameFilters.Remove(DirectCast(oFilter, KeyValuePair(Of clsGameFilter, String)).Key)
lstFilter.Items.Remove(oFilter)
End If
@@ -214,6 +424,7 @@ Public Class frmFilter
If chkTag.Checked Then
'Set Tags
TagFilters.Clear()
For Each oData In lstTagFilter.Items
oTag = DirectCast(hshTags(oData.Value), clsTag)
TagFilters.Add(oTag)
@@ -241,18 +452,41 @@ Public Class frmFilter
End Sub
Private Sub LoadCombos()
Dim oFilterFields As New List(Of KeyValuePair(Of String, String))
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))
'cboBoolFilter
cboBoolFilter.ValueMember = "Key"
cboBoolFilter.DisplayMember = "Value"
oBoolOperators.Add(New KeyValuePair(Of Boolean, String)(True, frmFilter_cboBoolFilterEnabled))
oBoolOperators.Add(New KeyValuePair(Of Boolean, String)(False, frmFilter_cboBoolFilterDisabled))
cboBoolFilter.DataSource = oBoolOperators
'cboNumericOps
cboNumericOps.ValueMember = "Key"
cboNumericOps.DisplayMember = "Value"
oNumericOperators.Add(New KeyValuePair(Of clsGameFilter.eNumericOperators, String)(clsGameFilter.eNumericOperators.Equals, "="))
oNumericOperators.Add(New KeyValuePair(Of clsGameFilter.eNumericOperators, String)(clsGameFilter.eNumericOperators.Greater, ">"))
oNumericOperators.Add(New KeyValuePair(Of clsGameFilter.eNumericOperators, String)(clsGameFilter.eNumericOperators.Lesser, "<"))
oNumericOperators.Add(New KeyValuePair(Of clsGameFilter.eNumericOperators, String)(clsGameFilter.eNumericOperators.GreaterEquals, ">="))
oNumericOperators.Add(New KeyValuePair(Of clsGameFilter.eNumericOperators, String)(clsGameFilter.eNumericOperators.LesserEquals, "<="))
cboNumericOps.DataSource = oNumericOperators
'cboFilterField
cboFilterField.ValueMember = "Key"
cboFilterField.DisplayMember = "Value"
oFilterFields.Add(New KeyValuePair(Of String, String)("Name", frmFilter_FieldName))
oFilterFields.Add(New KeyValuePair(Of String, String)("Process", frmFilter_FieldProcess))
oFilterFields.Add(New KeyValuePair(Of String, String)("Parameter", frmFilter_FieldParameter))
oFilterFields.Add(New KeyValuePair(Of String, String)("Company", frmFilter_FieldCompany))
oFilterFields.Add(New KeyValuePair(Of String, String)("Version", frmFilter_FieldVersion))
For Each oField As clsGameFilterField In oValidFields
If oField.CheckStatus(clsGameFilterField.eFieldStatus.ValidFilter) Then
oFilterFields.Add(New KeyValuePair(Of clsGameFilterField, String)(oField, oField.FriendlyFieldName))
End If
Next
cboFilterField.DataSource = oFilterFields
@@ -260,16 +494,16 @@ Public Class frmFilter
cboSortField.ValueMember = "Key"
cboSortField.DisplayMember = "Value"
oSortFields.Add(New KeyValuePair(Of String, String)("Name", frmFilter_FieldName))
oSortFields.Add(New KeyValuePair(Of String, String)("Process", frmFilter_FieldProcess))
oSortFields.Add(New KeyValuePair(Of String, String)("Parameter", frmFilter_FieldParameter))
oSortFields.Add(New KeyValuePair(Of String, String)("Company", frmFilter_FieldCompany))
oSortFields.Add(New KeyValuePair(Of String, String)("Version", frmFilter_FieldVersion))
oSortFields.Add(New KeyValuePair(Of String, String)("Hours", frmFilter_FieldHours))
For Each oField As clsGameFilterField In oValidFields
If oField.CheckStatus(clsGameFilterField.eFieldStatus.ValidSort) Then
oSortFields.Add(New KeyValuePair(Of String, String)(oField.FieldName, oField.FriendlyFieldName))
End If
Next
cboSortField.DataSource = oSortFields
'Select Defaults
cboNumericOps.SelectedIndex = 0
cboFilterField.SelectedIndex = 0
cboSortField.SelectedIndex = 0
End Sub
@@ -281,7 +515,7 @@ Public Class frmFilter
'Set Form Text
optOr.Text = frmFilter_optOr
optAnd.Text = frmFilter_optAnd
grpGameInfoOptions.Text = frmFilter_grpGameInfoOptions
grpNextFilterOperator.Text = frmFilter_grpNextFilterOperator
optAll.Text = frmFilter_optAll
optAny.Text = frmFilter_optAny
lblGameTags.Text = frmFilter_lblGameTags
@@ -293,7 +527,7 @@ Public Class frmFilter
chkTag.Text = frmFilter_chkTag
chkGameInfo.Text = frmFilter_chkGameInfo
grpSorting.Text = frmFilter_grpSorting
lblOrderBy.Text = frmFilter_lblOrderBy
lblSortFields.Text = frmFilter_lblSortsFields
optSortAsc.Text = frmFilter_optSortAsc
optSortDesc.Text = frmFilter_optSortDesc
btnAddFilter.Text = frmFilter_btnAddFilter
@@ -301,17 +535,24 @@ Public Class frmFilter
lblCurrentFilters.Text = frmFilter_lblCurrentFilters
lblFields.Text = frmFilter_lblFields
lblFilterData.Text = frmFilter_lblFilterData
grpSortOptions.Text = frmFilter_grpSortOptions
'Defaults
optSortAsc.Checked = True
grpGameFilter.Enabled = False
grpTagFilter.Enabled = False
'Init Game Filter
lstFilter.ValueMember = "Key"
lstFilter.DisplayMember = "Value"
End Sub
Private Sub frmGameTags_Load(sender As Object, e As EventArgs) Handles MyBase.Load
SetForm()
LoadFilterFields()
LoadCombos()
LoadData()
LoadTagData()
LoadExistingFilters()
End Sub
Private Sub btnOK_Click(sender As Object, e As EventArgs) Handles btnOK.Click
@@ -339,6 +580,8 @@ Public Class frmFilter
grpGameFilter.Enabled = True
Else
grpGameFilter.Enabled = False
oGameFilters.Clear()
lstFilter.Items.Clear()
End If
End Sub
@@ -347,6 +590,8 @@ Public Class frmFilter
grpTagFilter.Enabled = True
Else
grpTagFilter.Enabled = False
oTagFilters.Clear()
LoadTagData()
End If
End Sub
@@ -357,4 +602,9 @@ Public Class frmFilter
Private Sub btnRemoveFilter_Click(sender As Object, e As EventArgs) Handles btnRemoveFilter.Click
RemoveFilter()
End Sub
Private Sub cboFilterField_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cboFilterField.SelectedIndexChanged
ChangeFilterMode()
End Sub
End Class
+8 -1
View File
@@ -20,7 +20,7 @@ Public Class frmGameManager
Private bIsDirty As Boolean = False
Private bIsLoading As Boolean = False
Private oCurrentTagFilters As New List(Of clsTag)
Private oCurrentFilters As New List(Of frmFilter.clsFilter)
Private oCurrentFilters As New List(Of clsGameFilter)
Private eCurrentFilter As frmFilter.eFilterType = frmFilter.eFilterType.BaseFilter
Private bCurrentSortAsc As Boolean = True
Private sCurrentSortField As String = "Name"
@@ -225,7 +225,14 @@ Public Class frmGameManager
If optCustom.Checked Then
If Not bRetainFilter Then
frm = New frmFilter
frm.TagFilters = oCurrentTagFilters
frm.GameFilters = oCurrentFilters
frm.FilterType = eCurrentFilter
frm.SortAsc = bCurrentSortAsc
frm.SortField = sCurrentSortField
frm.ShowDialog()
oCurrentTagFilters = frm.TagFilters
oCurrentFilters = frm.GameFilters
eCurrentFilter = frm.FilterType
+12 -12
View File
@@ -67,49 +67,49 @@ Public Class frmSyncFields
Private Sub chkTimeStamp_CheckedChanged(sender As Object, e As EventArgs) Handles chkTimeStamp.CheckedChanged
If chkTimeStamp.Checked Then
SyncFields = mgrCommon.SetSyncField(SyncFields, clsGame.eOptionalSyncFields.TimeStamp)
SyncFields = clsGame.SetSyncField(SyncFields, clsGame.eOptionalSyncFields.TimeStamp)
Else
SyncFields = mgrCommon.RemoveSyncField(SyncFields, clsGame.eOptionalSyncFields.TimeStamp)
SyncFields = clsGame.RemoveSyncField(SyncFields, clsGame.eOptionalSyncFields.TimeStamp)
End If
End Sub
Private Sub chkGamePath_CheckedChanged(sender As Object, e As EventArgs) Handles chkGamePath.CheckedChanged
If chkGamePath.Checked Then
SyncFields = mgrCommon.SetSyncField(SyncFields, clsGame.eOptionalSyncFields.GamePath)
SyncFields = clsGame.SetSyncField(SyncFields, clsGame.eOptionalSyncFields.GamePath)
Else
SyncFields = mgrCommon.RemoveSyncField(SyncFields, clsGame.eOptionalSyncFields.GamePath)
SyncFields = clsGame.RemoveSyncField(SyncFields, clsGame.eOptionalSyncFields.GamePath)
End If
End Sub
Private Sub chkCompany_CheckedChanged(sender As Object, e As EventArgs) Handles chkCompany.CheckedChanged
If chkCompany.Checked Then
SyncFields = mgrCommon.SetSyncField(SyncFields, clsGame.eOptionalSyncFields.Company)
SyncFields = clsGame.SetSyncField(SyncFields, clsGame.eOptionalSyncFields.Company)
Else
SyncFields = mgrCommon.RemoveSyncField(SyncFields, clsGame.eOptionalSyncFields.Company)
SyncFields = clsGame.RemoveSyncField(SyncFields, clsGame.eOptionalSyncFields.Company)
End If
End Sub
Private Sub chkVersion_CheckedChanged(sender As Object, e As EventArgs) Handles chkVersion.CheckedChanged
If chkVersion.Checked Then
SyncFields = mgrCommon.SetSyncField(SyncFields, clsGame.eOptionalSyncFields.Version)
SyncFields = clsGame.SetSyncField(SyncFields, clsGame.eOptionalSyncFields.Version)
Else
SyncFields = mgrCommon.RemoveSyncField(SyncFields, clsGame.eOptionalSyncFields.Version)
SyncFields = clsGame.RemoveSyncField(SyncFields, clsGame.eOptionalSyncFields.Version)
End If
End Sub
Private Sub chkIcon_CheckedChanged(sender As Object, e As EventArgs) Handles chkIcon.CheckedChanged
If chkIcon.Checked Then
SyncFields = mgrCommon.SetSyncField(SyncFields, clsGame.eOptionalSyncFields.Icon)
SyncFields = clsGame.SetSyncField(SyncFields, clsGame.eOptionalSyncFields.Icon)
Else
SyncFields = mgrCommon.RemoveSyncField(SyncFields, clsGame.eOptionalSyncFields.Icon)
SyncFields = clsGame.RemoveSyncField(SyncFields, clsGame.eOptionalSyncFields.Icon)
End If
End Sub
Private Sub chkMonitorGame_CheckedChanged(sender As Object, e As EventArgs) Handles chkMonitorGame.CheckedChanged
If chkMonitorGame.Checked Then
SyncFields = mgrCommon.SetSyncField(SyncFields, clsGame.eOptionalSyncFields.MonitorGame)
SyncFields = clsGame.SetSyncField(SyncFields, clsGame.eOptionalSyncFields.MonitorGame)
Else
SyncFields = mgrCommon.RemoveSyncField(SyncFields, clsGame.eOptionalSyncFields.MonitorGame)
SyncFields = clsGame.RemoveSyncField(SyncFields, clsGame.eOptionalSyncFields.MonitorGame)
End If
End Sub
End Class
+2
View File
@@ -122,6 +122,8 @@
<Import Include="System.Windows.Forms" />
</ItemGroup>
<ItemGroup>
<Compile Include="Classes\clsGameFilter.vb" />
<Compile Include="Classes\clsGameFilterField.vb" />
<Compile Include="Classes\clsSavedPath.vb" />
<Compile Include="Classes\XML Serialize Classes\Tag.vb" />
<Compile Include="Classes\XML Serialize Classes\Game.vb" />
-8
View File
@@ -237,14 +237,6 @@ Public Class mgrCommon
oProcess.Start()
End Sub
Public Shared Function SetSyncField(ByVal eSyncFields As clsGame.eOptionalSyncFields, ByVal eSyncField As clsGame.eOptionalSyncFields) As clsGame.eOptionalSyncFields
Return eSyncFields Or eSyncField
End Function
Public Shared Function RemoveSyncField(ByVal eSyncFields As clsGame.eOptionalSyncFields, ByVal eSyncField As clsGame.eOptionalSyncFields) As clsGame.eOptionalSyncFields
Return eSyncFields And (Not eSyncField)
End Function
'Get a file size
Public Shared Function GetFileSize(ByVal sFile As String) As Long
Dim oFileInfo As FileInfo
+19 -10
View File
@@ -497,7 +497,7 @@ Public Class mgrMonitorList
End Sub
'Filter Functions
Private Shared Function BuildFilterQuery(ByVal oTagFilters As List(Of clsTag), ByVal oFilters As List(Of frmFilter.clsFilter), ByVal eFilterType As frmFilter.eFilterType, ByVal bSortAsc As Boolean,
Private Shared Function BuildFilterQuery(ByVal oTagFilters As List(Of clsTag), ByVal oFilters As List(Of clsGameFilter), ByVal eFilterType As frmFilter.eFilterType, ByVal bSortAsc As Boolean,
ByVal sSortField As String, ByRef hshParams As Hashtable) As String
Dim sSQL As String = String.Empty
Dim iCounter As Integer = 0
@@ -540,7 +540,7 @@ Public Class mgrMonitorList
sSQL = "SELECT " & sBaseSelect & " WHERE MonitorID NOT IN (SELECT MonitorID FROM gametags)"
End Select
'Handle String Filters
'Handle Other Filters
If oFilters.Count > 0 Then
If eFilterType = frmFilter.eFilterType.BaseFilter Then
sSQL &= " WHERE ("
@@ -549,12 +549,22 @@ Public Class mgrMonitorList
End If
iCounter = 0
For Each oFilter As frmFilter.clsFilter In oFilters
sSQL &= oFilter.Field & " LIKE @" & oFilter.ID
hshParams.Add(oFilter.ID, "%" & oFilter.Data & "%")
For Each oFilter As clsGameFilter In oFilters
Select Case oFilter.Field.Type
Case clsGameFilterField.eDataType.fString
sSQL &= oFilter.Field.FieldName & " LIKE @" & oFilter.ID
hshParams.Add(oFilter.ID, "%" & oFilter.Data & "%")
Case clsGameFilterField.eDataType.fNumeric
sSQL &= oFilter.Field.FieldName & " " & oFilter.NumericOperatorAsString & " @" & oFilter.ID
hshParams.Add(oFilter.ID, oFilter.Data)
Case clsGameFilterField.eDataType.fBool
sSQL &= oFilter.Field.FieldName & " = @" & oFilter.ID
hshParams.Add(oFilter.ID, oFilter.Data)
End Select
iCounter += 1
If iCounter <> oFilters.Count Then
If oFilter.AndOperator Then
If oFilter.NextBoolOperator Then
sSQL &= " AND "
Else
sSQL &= " OR "
@@ -567,12 +577,11 @@ Public Class mgrMonitorList
'Handle Sorting
sSQL &= sSort
Return sSQL
End Function
Public Shared Function ReadFilteredList(ByVal oTagFilters As List(Of clsTag), ByVal oFilters As List(Of frmFilter.clsFilter), ByVal eFilterType As frmFilter.eFilterType, ByVal bSortAsc As Boolean,
Public Shared Function ReadFilteredList(ByVal oTagFilters As List(Of clsTag), ByVal oFilters As List(Of clsGameFilter), ByVal eFilterType As frmFilter.eFilterType, ByVal bSortAsc As Boolean,
ByVal sSortField As String, Optional ByVal iSelectDB As mgrSQLite.Database = mgrSQLite.Database.Local) As OrderedDictionary
Dim oDatabase As New mgrSQLite(iSelectDB)
Dim oData As DataSet
@@ -597,7 +606,7 @@ Public Class mgrMonitorList
'Import / Export Functions
Public Shared Function ReadListForExport(ByVal oTagFilters As List(Of clsTag), ByVal oFilters As List(Of frmFilter.clsFilter), ByVal eFilterType As frmFilter.eFilterType, ByVal bSortAsc As Boolean,
Public Shared Function ReadListForExport(ByVal oTagFilters As List(Of clsTag), ByVal oFilters As List(Of clsGameFilter), ByVal eFilterType As frmFilter.eFilterType, ByVal bSortAsc As Boolean,
ByVal sSortField As String, Optional ByVal iSelectDB As mgrSQLite.Database = mgrSQLite.Database.Local) As List(Of Game)
Dim oDatabase As New mgrSQLite(iSelectDB)
Dim oData As DataSet
@@ -700,7 +709,7 @@ Public Class mgrMonitorList
Dim oList As List(Of Game)
Dim bSuccess As Boolean = False
Dim oTagFilters As New List(Of clsTag)
Dim oFilters As New List(Of frmFilter.clsFilter)
Dim oFilters As New List(Of clsGameFilter)
Dim eCurrentFilter As frmFilter.eFilterType = frmFilter.eFilterType.BaseFilter
Dim bSortAsc As Boolean = True
Dim sSortField As String = "Name"
+2 -2
View File
@@ -33,7 +33,7 @@ Imports System.Runtime.InteropServices
' by using the '*' as shown below:
' <Assembly: AssemblyVersion("1.0.*")>
<Assembly: AssemblyVersion("1.0.3.*")>
<Assembly: AssemblyFileVersion("1.0.3.0")>
<Assembly: AssemblyVersion("1.0.4.*")>
<Assembly: AssemblyFileVersion("1.0.4.0")>
<Assembly: NeutralResourcesLanguageAttribute("en")>
+150 -6
View File
@@ -960,6 +960,24 @@ Namespace My.Resources
End Get
End Property
'''<summary>
''' Looks up a localized string similar to Disabled.
'''</summary>
Friend ReadOnly Property frmFilter_cboBoolFilterDisabled() As String
Get
Return ResourceManager.GetString("frmFilter_cboBoolFilterDisabled", resourceCulture)
End Get
End Property
'''<summary>
''' Looks up a localized string similar to Enabled.
'''</summary>
Friend ReadOnly Property frmFilter_cboBoolFilterEnabled() As String
Get
Return ResourceManager.GetString("frmFilter_cboBoolFilterEnabled", resourceCulture)
End Get
End Property
'''<summary>
''' Looks up a localized string similar to Game Information.
'''</summary>
@@ -978,6 +996,24 @@ Namespace My.Resources
End Get
End Property
'''<summary>
''' Looks up a localized string similar to Backup Limit *.
'''</summary>
Friend ReadOnly Property frmFilter_FieldBackupLimit() As String
Get
Return ResourceManager.GetString("frmFilter_FieldBackupLimit", resourceCulture)
End Get
End Property
'''<summary>
''' Looks up a localized string similar to Delete Folder on Restore.
'''</summary>
Friend ReadOnly Property frmFilter_FieldCleanFolder() As String
Get
Return ResourceManager.GetString("frmFilter_FieldCleanFolder", resourceCulture)
End Get
End Property
'''<summary>
''' Looks up a localized string similar to Company.
'''</summary>
@@ -987,6 +1023,42 @@ Namespace My.Resources
End Get
End Property
'''<summary>
''' Looks up a localized string similar to Monitor Game.
'''</summary>
Friend ReadOnly Property frmFilter_FieldEnabled() As String
Get
Return ResourceManager.GetString("frmFilter_FieldEnabled", resourceCulture)
End Get
End Property
'''<summary>
''' Looks up a localized string similar to Exclude Items.
'''</summary>
Friend ReadOnly Property frmFilter_FieldExcludeList() As String
Get
Return ResourceManager.GetString("frmFilter_FieldExcludeList", resourceCulture)
End Get
End Property
'''<summary>
''' Looks up a localized string similar to Include Items.
'''</summary>
Friend ReadOnly Property frmFilter_FieldFileType() As String
Get
Return ResourceManager.GetString("frmFilter_FieldFileType", resourceCulture)
End Get
End Property
'''<summary>
''' Looks up a localized string similar to Save Entire Folder.
'''</summary>
Friend ReadOnly Property frmFilter_FieldFolderSave() As String
Get
Return ResourceManager.GetString("frmFilter_FieldFolderSave", resourceCulture)
End Get
End Property
'''<summary>
''' Looks up a localized string similar to Hours.
'''</summary>
@@ -996,6 +1068,24 @@ Namespace My.Resources
End Get
End Property
'''<summary>
''' Looks up a localized string similar to Icon.
'''</summary>
Friend ReadOnly Property frmFilter_FieldIcon() As String
Get
Return ResourceManager.GetString("frmFilter_FieldIcon", resourceCulture)
End Get
End Property
'''<summary>
''' Looks up a localized string similar to Monitor Only.
'''</summary>
Friend ReadOnly Property frmFilter_FieldMonitorOnly() As String
Get
Return ResourceManager.GetString("frmFilter_FieldMonitorOnly", resourceCulture)
End Get
End Property
'''<summary>
''' Looks up a localized string similar to Name.
'''</summary>
@@ -1014,6 +1104,15 @@ Namespace My.Resources
End Get
End Property
'''<summary>
''' Looks up a localized string similar to Save Path *.
'''</summary>
Friend ReadOnly Property frmFilter_FieldPath() As String
Get
Return ResourceManager.GetString("frmFilter_FieldPath", resourceCulture)
End Get
End Property
'''<summary>
''' Looks up a localized string similar to Process.
'''</summary>
@@ -1023,6 +1122,24 @@ Namespace My.Resources
End Get
End Property
'''<summary>
''' Looks up a localized string similar to Game Path.
'''</summary>
Friend ReadOnly Property frmFilter_FieldProcessPath() As String
Get
Return ResourceManager.GetString("frmFilter_FieldProcessPath", resourceCulture)
End Get
End Property
'''<summary>
''' Looks up a localized string similar to Save Multiple Backups.
'''</summary>
Friend ReadOnly Property frmFilter_FieldTimeStamp() As String
Get
Return ResourceManager.GetString("frmFilter_FieldTimeStamp", resourceCulture)
End Get
End Property
'''<summary>
''' Looks up a localized string similar to Version.
'''</summary>
@@ -1042,11 +1159,11 @@ Namespace My.Resources
End Property
'''<summary>
''' Looks up a localized string similar to Options.
''' Looks up a localized string similar to Next Filter.
'''</summary>
Friend ReadOnly Property frmFilter_grpGameInfoOptions() As String
Friend ReadOnly Property frmFilter_grpNextFilterOperator() As String
Get
Return ResourceManager.GetString("frmFilter_grpGameInfoOptions", resourceCulture)
Return ResourceManager.GetString("frmFilter_grpNextFilterOperator", resourceCulture)
End Get
End Property
@@ -1059,6 +1176,15 @@ Namespace My.Resources
End Get
End Property
'''<summary>
''' Looks up a localized string similar to Sort Options.
'''</summary>
Friend ReadOnly Property frmFilter_grpSortOptions() As String
Get
Return ResourceManager.GetString("frmFilter_grpSortOptions", resourceCulture)
End Get
End Property
'''<summary>
''' Looks up a localized string similar to Options.
'''</summary>
@@ -1105,11 +1231,11 @@ Namespace My.Resources
End Property
'''<summary>
''' Looks up a localized string similar to Order By:.
''' Looks up a localized string similar to Available Fields.
'''</summary>
Friend ReadOnly Property frmFilter_lblOrderBy() As String
Friend ReadOnly Property frmFilter_lblSortsFields() As String
Get
Return ResourceManager.GetString("frmFilter_lblOrderBy", resourceCulture)
Return ResourceManager.GetString("frmFilter_lblSortsFields", resourceCulture)
End Get
End Property
@@ -1122,6 +1248,24 @@ Namespace My.Resources
End Get
End Property
'''<summary>
''' Looks up a localized string similar to * Indicates a field that may give unexpected results..
'''</summary>
Friend ReadOnly Property frmFilter_lblWarning() As String
Get
Return ResourceManager.GetString("frmFilter_lblWarning", resourceCulture)
End Get
End Property
'''<summary>
''' Looks up a localized string similar to contains.
'''</summary>
Friend ReadOnly Property frmFilter_lstFilterContains() As String
Get
Return ResourceManager.GetString("frmFilter_lstFilterContains", resourceCulture)
End Get
End Property
'''<summary>
''' Looks up a localized string similar to All Tags.
'''</summary>
+53 -5
View File
@@ -1006,8 +1006,8 @@
<data name="frmIncludeExclude_ToolTipTitle" xml:space="preserve">
<value>Saved Game Explorer</value>
</data>
<data name="frmFilter_grpGameInfoOptions" xml:space="preserve">
<value>Options</value>
<data name="frmFilter_grpNextFilterOperator" xml:space="preserve">
<value>Next Filter</value>
</data>
<data name="frmFilter_grpTagOptions" xml:space="preserve">
<value>Options</value>
@@ -1795,9 +1795,6 @@
<data name="frmFilter_grpSorting" xml:space="preserve">
<value>Sorting</value>
</data>
<data name="frmFilter_lblOrderBy" xml:space="preserve">
<value>Order By:</value>
</data>
<data name="frmFilter_optSortAsc" xml:space="preserve">
<value>Ascending</value>
</data>
@@ -1837,4 +1834,55 @@
<data name="frmFilter_lblFilterData" xml:space="preserve">
<value>Filter</value>
</data>
<data name="frmFilter_cboBoolFilterDisabled" xml:space="preserve">
<value>Disabled</value>
</data>
<data name="frmFilter_cboBoolFilterEnabled" xml:space="preserve">
<value>Enabled</value>
</data>
<data name="frmFilter_FieldBackupLimit" xml:space="preserve">
<value>Backup Limit *</value>
</data>
<data name="frmFilter_FieldCleanFolder" xml:space="preserve">
<value>Delete Folder on Restore</value>
</data>
<data name="frmFilter_FieldEnabled" xml:space="preserve">
<value>Monitor Game</value>
</data>
<data name="frmFilter_FieldExcludeList" xml:space="preserve">
<value>Exclude Items</value>
</data>
<data name="frmFilter_FieldFileType" xml:space="preserve">
<value>Include Items</value>
</data>
<data name="frmFilter_FieldFolderSave" xml:space="preserve">
<value>Save Entire Folder</value>
</data>
<data name="frmFilter_FieldIcon" xml:space="preserve">
<value>Icon</value>
</data>
<data name="frmFilter_FieldMonitorOnly" xml:space="preserve">
<value>Monitor Only</value>
</data>
<data name="frmFilter_FieldPath" xml:space="preserve">
<value>Save Path *</value>
</data>
<data name="frmFilter_FieldProcessPath" xml:space="preserve">
<value>Game Path</value>
</data>
<data name="frmFilter_FieldTimeStamp" xml:space="preserve">
<value>Save Multiple Backups</value>
</data>
<data name="frmFilter_lblSortsFields" xml:space="preserve">
<value>Available Fields</value>
</data>
<data name="frmFilter_lblWarning" xml:space="preserve">
<value>* Indicates a field that may give unexpected results.</value>
</data>
<data name="frmFilter_lstFilterContains" xml:space="preserve">
<value>contains</value>
</data>
<data name="frmFilter_grpSortOptions" xml:space="preserve">
<value>Sort Options</value>
</data>
</root>