Zooflow: Search Improvements, Multiple Tokens
This commit is contained in:
parent
bdd729f590
commit
bd5d63c234
@ -1,14 +1,14 @@
|
|||||||
Imports System.Windows.Forms
|
Imports System.Windows.Forms
|
||||||
|
|
||||||
Public Class Dialog1
|
Public Class Dialog1
|
||||||
Public Sub New(messagetext As String, otitle As String)
|
Public Sub New(pMessageText As String, pTitle As String)
|
||||||
|
|
||||||
' Dieser Aufruf ist für den Designer erforderlich.
|
' Dieser Aufruf ist für den Designer erforderlich.
|
||||||
InitializeComponent()
|
InitializeComponent()
|
||||||
|
|
||||||
' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu.
|
' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu.
|
||||||
Me.lblMeldung.Text = messagetext
|
Me.lblMeldung.Text = pMessageText
|
||||||
Me.Text = otitle
|
Me.Text = pTitle
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Private Sub OK_Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OK_Button.Click
|
Private Sub OK_Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OK_Button.Click
|
||||||
|
|||||||
@ -86,18 +86,18 @@ Public Class SearchRunner
|
|||||||
End Function
|
End Function
|
||||||
|
|
||||||
Public Async Function RunWithSearchTerm(pSearchTerm As String) As Task(Of SearchResult)
|
Public Async Function RunWithSearchTerm(pSearchTerm As String) As Task(Of SearchResult)
|
||||||
Return Await RunWithSearchTerm(pSearchTerm, Nothing, Nothing, Nothing)
|
Return Await RunWithSearchTerm(pSearchTerm, Nothing, Nothing, Nothing, Nothing)
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
Public Async Function RunWithSearchTerm(pSearchTerm As String, pSearchTitle As String) As Task(Of SearchResult)
|
Public Async Function RunWithSearchTerm(pSearchTerm As String, pSearchTitle As String) As Task(Of SearchResult)
|
||||||
Return Await RunWithSearchTerm(pSearchTerm, Nothing, Nothing, pSearchTitle)
|
Return Await RunWithSearchTerm(pSearchTerm, Nothing, Nothing, Nothing, pSearchTitle)
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
Public Async Function RunWithSearchTerm(pSearchTerm As String, pDateFrom As Date, pDateTo As Date) As Task(Of SearchResult)
|
Public Async Function RunWithSearchTerm(pSearchTerm As String, pDateFrom As Date, pDateTo As Date) As Task(Of SearchResult)
|
||||||
Return Await RunWithSearchTerm(pSearchTerm, pDateFrom, pDateTo, Nothing)
|
Return Await RunWithSearchTerm(pSearchTerm, pDateFrom, pDateTo, Nothing, Nothing)
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
Public Async Function RunWithSearchTerm(pSearchTerm As String, pDateFrom As Date, pDateTo As Date, pSearchTitle As String) As Task(Of SearchResult)
|
Public Async Function RunWithSearchTerm(pSearchTerm As String, pDateFrom As Date, pDateTo As Date, pSearchTokens As IEnumerable(Of Search.SearchToken.AttributeValueToken), pSearchTitle As String) As Task(Of SearchResult)
|
||||||
If pDateFrom.Equals(Date.MinValue) = False Then
|
If pDateFrom.Equals(Date.MinValue) = False Then
|
||||||
ExplicitDate = True
|
ExplicitDate = True
|
||||||
End If
|
End If
|
||||||
@ -106,6 +106,7 @@ Public Class SearchRunner
|
|||||||
Dim oWindowTitle = GetResultWindowString(pSearchTerm, pSearchTitle)
|
Dim oWindowTitle = GetResultWindowString(pSearchTerm, pSearchTitle)
|
||||||
Dim oParams = GetParams(oWindowTitle)
|
Dim oParams = GetParams(oWindowTitle)
|
||||||
Dim oDateConstraint = $"{_ActiveDateAttribute}~{_ActiveDateConstraint}"
|
Dim oDateConstraint = $"{_ActiveDateAttribute}~{_ActiveDateConstraint}"
|
||||||
|
Dim oUserId = My.Application.User.UserId
|
||||||
|
|
||||||
If ExplicitDate Then
|
If ExplicitDate Then
|
||||||
Dim oDate2 As Date
|
Dim oDate2 As Date
|
||||||
@ -114,13 +115,27 @@ Public Class SearchRunner
|
|||||||
Else
|
Else
|
||||||
oDate2 = pDateFrom
|
oDate2 = pDateFrom
|
||||||
End If
|
End If
|
||||||
Dim oProc = $"EXEC PRIDB_SEARCH_ADD_USR_DATE {My.Application.User.UserId},'{pDateFrom}','{oDate2}'"
|
Dim oProc = $"EXEC PRIDB_SEARCH_ADD_USR_DATE {oUserId},'{pDateFrom}','{oDate2}'"
|
||||||
If Await My.Database.ExecuteNonQueryIDBAsync(oProc) = True Then
|
If Await My.Database.ExecuteNonQueryIDBAsync(oProc) = True Then
|
||||||
oDateConstraint = $"{_ActiveDateAttribute}~DATEPART"
|
oDateConstraint = $"{_ActiveDateAttribute}~DATEPART"
|
||||||
End If
|
End If
|
||||||
End If
|
End If
|
||||||
|
|
||||||
Dim oSQL = $"EXEC PRIDB_SEARCH_TEXT_GET_RESULTS {My.Application.User.UserId},'{oSearchTerm}','{oDateConstraint}'"
|
Await My.Database.ExecuteNonQueryIDBAsync($"DELETE FROM TBIDB_SEARCH_INPUT_USER WHERE USR_ID = {oUserId}")
|
||||||
|
|
||||||
|
If pSearchTokens IsNot Nothing AndAlso pSearchTokens.Count > 0 Then
|
||||||
|
|
||||||
|
For Each oToken In pSearchTokens
|
||||||
|
Dim oSQLInsert As String = $"
|
||||||
|
INSERT INTO [dbo].[TBIDB_SEARCH_INPUT_USER] ([USR_ID], [ATTR_ID], [ATTR_TITLE], [TERM_ID], [OPERATOR])
|
||||||
|
VALUES ({oUserId}, {oToken.AttributeId}, '{oToken.AttributeTitle}', {oToken.TermId}, 'AND')"
|
||||||
|
|
||||||
|
Dim oResult = Await My.Database.ExecuteNonQueryIDBAsync(oSQLInsert)
|
||||||
|
Next
|
||||||
|
|
||||||
|
End If
|
||||||
|
|
||||||
|
Dim oSQL = $"EXEC PRIDB_SEARCH_TEXT_GET_RESULTS {oUserId},'{oSearchTerm}','{oDateConstraint}'"
|
||||||
|
|
||||||
If Await My.Database.ExecuteNonQueryIDBAsync(oSQL) = True Then
|
If Await My.Database.ExecuteNonQueryIDBAsync(oSQL) = True Then
|
||||||
Dim oDTDocResult = Await My.Database.GetDatatableIDBAsync(BaseSearchSQL)
|
Dim oDTDocResult = Await My.Database.GetDatatableIDBAsync(BaseSearchSQL)
|
||||||
|
|||||||
@ -1,116 +0,0 @@
|
|||||||
Imports System.ComponentModel
|
|
||||||
Imports DevExpress.XtraEditors
|
|
||||||
Imports DigitalData.GUIs.ZooFlow.Search.SearchToken
|
|
||||||
Imports DigitalData.Modules.EDMI.API
|
|
||||||
Imports DigitalData.Modules.Logging
|
|
||||||
Imports DigitalData.Modules.ZooFlow.State
|
|
||||||
|
|
||||||
Namespace Search
|
|
||||||
Public Class Search
|
|
||||||
Private ReadOnly _SearchQuery As New BindingList(Of SearchCriteria)
|
|
||||||
Private ReadOnly _LogConfig As LogConfig
|
|
||||||
Private ReadOnly _Database As DatabaseWithFallback
|
|
||||||
Private ReadOnly _UserState As UserState
|
|
||||||
|
|
||||||
Private ReadOnly _OpEquals As New KeyValuePair(Of String, Object)("gleich", New AttributeOperatorToken(OperatorToken.Equals))
|
|
||||||
Private ReadOnly _OpNotEquals As New KeyValuePair(Of String, Object)("nicht gleich", New AttributeOperatorToken(OperatorToken.NotEquals))
|
|
||||||
Private ReadOnly _OpGreaterThan As New KeyValuePair(Of String, Object)("größer als", New AttributeOperatorToken(OperatorToken.GreaterThan))
|
|
||||||
Private ReadOnly _OpLessThan As New KeyValuePair(Of String, Object)("kleiner als", New AttributeOperatorToken(OperatorToken.LessThan))
|
|
||||||
Private ReadOnly _OpContains As New KeyValuePair(Of String, Object)("enthält", New AttributeOperatorToken(OperatorToken.Contains))
|
|
||||||
|
|
||||||
Public ReadOnly Property Query As BindingList(Of SearchCriteria)
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Private ReadOnly TokenListAttributes As New Dictionary(Of String, Object)
|
|
||||||
'Private ReadOnly TokenListAttributes As New Dictionary(Of String, Object) From {
|
|
||||||
' {"Rechnungsnummer", New AttributeKeyToken("InvoiceNo")},
|
|
||||||
' {"Rechnungsdatum", New AttributeKeyToken("InvoiceDate")},
|
|
||||||
' {"Kundennummer", New AttributeKeyToken("CustNo")}
|
|
||||||
'}
|
|
||||||
Private ReadOnly TokenListOperands As New Dictionary(Of String, Object) From {
|
|
||||||
{"gleich", New AttributeOperatorToken(OperatorToken.Equals)},
|
|
||||||
{"nicht gleich", New AttributeOperatorToken(OperatorToken.NotEquals)},
|
|
||||||
{"größer als", New AttributeOperatorToken(OperatorToken.Equals)},
|
|
||||||
{"kleiner als", New AttributeOperatorToken(OperatorToken.Equals)},
|
|
||||||
{"enthält", New AttributeOperatorToken(OperatorToken.Equals)}
|
|
||||||
}
|
|
||||||
Private ReadOnly TokenListAttrValues As New Dictionary(Of String, Object)
|
|
||||||
'Private ReadOnly TokenListAttrValues As New Dictionary(Of String, Object) From {
|
|
||||||
' {"1233", New AttributeValueToken(1233)},
|
|
||||||
' {"1234", New AttributeValueToken(1234)},
|
|
||||||
' {"1235", New AttributeValueToken(1235)},
|
|
||||||
' {"4711", New AttributeValueToken(4711)},
|
|
||||||
' {"4712", New AttributeValueToken(4712)}
|
|
||||||
'}
|
|
||||||
Private ReadOnly TokenListDate As New Dictionary(Of String, Object) From {
|
|
||||||
{"heute", New DateToken(Date.Now)},
|
|
||||||
{"gestern", New DateToken(Date.Now.AddDays(-1))},
|
|
||||||
{"letzte Woche", New DateToken(TimeSpan.FromDays(-7))},
|
|
||||||
{"letzter Monat", New DateToken(TimeSpan.FromDays(-30))}
|
|
||||||
}
|
|
||||||
|
|
||||||
Public InputMode As InputMode = InputMode.Default
|
|
||||||
|
|
||||||
Public Sub New(pLogConfig As LogConfig, pUserState As UserState, pDatabase As DatabaseWithFallback)
|
|
||||||
_LogConfig = pLogConfig
|
|
||||||
_Database = pDatabase
|
|
||||||
_UserState = pUserState
|
|
||||||
End Sub
|
|
||||||
|
|
||||||
Public Function GetAttributeTokens() As Dictionary(Of String, Object)
|
|
||||||
Dim oSQL = $"SELECT * FROM VWIDB_BE_ATTRIBUTE WHERE DEFAULT_SEARCH_ATTRIBUTE = 1 AND LANG_CODE = '{_UserState.Language}'"
|
|
||||||
Dim oTable = _Database.GetDatatable("VWIDB_BE_ATTRIBUTE", oSQL, Constants.DatabaseType.IDB, $"DEFAULT_SEARCH_ATTRIBUTE = 1 AND LANG_CODE = '{_UserState.Language}'")
|
|
||||||
Dim oTokens As New Dictionary(Of String, Object)
|
|
||||||
|
|
||||||
For Each oRow As DataRow In oTable.rows
|
|
||||||
oTokens.Add(oRow.Item("ATTR_TITLE"), New AttributeKeyToken(oRow.Item("ATTR_ID")))
|
|
||||||
Next
|
|
||||||
|
|
||||||
Return oTokens
|
|
||||||
End Function
|
|
||||||
|
|
||||||
Public Function GetValueTokensForAttribute() As Dictionary(Of String, Object)
|
|
||||||
Dim oSQL = $"EXEC PRIDB_SEARCH_AUTOSUGGEST '{_UserState.Language}', {_UserState.UserId}"
|
|
||||||
Dim oTable = _Database.GetDatatableIDB(oSQL)
|
|
||||||
Dim oTokens As New Dictionary(Of String, Object)
|
|
||||||
|
|
||||||
For Each oRow As DataRow In oTable.Rows
|
|
||||||
Dim oTerm = oRow.Item("TERM")
|
|
||||||
If oTokens.ContainsKey(oTerm) = False Then
|
|
||||||
oTokens.Add(oTerm, New AttributeValueToken(oTerm))
|
|
||||||
End If
|
|
||||||
Next
|
|
||||||
|
|
||||||
Return oTokens
|
|
||||||
End Function
|
|
||||||
|
|
||||||
Public Function GetOperatorTokens(pDataType As Type) As Dictionary(Of String, Object)
|
|
||||||
Dim oResult = New Dictionary(Of String, Object)
|
|
||||||
|
|
||||||
Select Case pDataType.GetType
|
|
||||||
Case GetType(Date)
|
|
||||||
oResult.Add(_OpEquals.Key, _OpEquals.Value)
|
|
||||||
|
|
||||||
Case GetType(Integer)
|
|
||||||
oResult.Add(_OpEquals.Key, _OpEquals.Value)
|
|
||||||
oResult.Add(_OpNotEquals.Key, _OpNotEquals.Value)
|
|
||||||
oResult.Add(_OpGreaterThan.Key, _OpGreaterThan.Value)
|
|
||||||
oResult.Add(_OpLessThan.Key, _OpLessThan.Value)
|
|
||||||
|
|
||||||
Case GetType(Boolean)
|
|
||||||
oResult.Add(_OpEquals.Key, _OpEquals.Value)
|
|
||||||
oResult.Add(_OpNotEquals.Key, _OpNotEquals.Value)
|
|
||||||
|
|
||||||
Case Else
|
|
||||||
oResult.Add(_OpEquals.Key, _OpEquals.Value)
|
|
||||||
oResult.Add(_OpNotEquals.Key, _OpNotEquals.Value)
|
|
||||||
oResult.Add(_OpContains.Key, _OpContains.Value)
|
|
||||||
|
|
||||||
End Select
|
|
||||||
|
|
||||||
Return oResult
|
|
||||||
End Function
|
|
||||||
|
|
||||||
End Class
|
|
||||||
End Namespace
|
|
||||||
@ -2,7 +2,6 @@
|
|||||||
Public Class SearchCriteria
|
Public Class SearchCriteria
|
||||||
Public Property ParenLeft As String = ""
|
Public Property ParenLeft As String = ""
|
||||||
Public Property Key As String
|
Public Property Key As String
|
||||||
Public Property Op As SearchToken.OperatorToken = SearchToken.OperatorToken.Equals
|
|
||||||
Public Property Value As Object
|
Public Property Value As Object
|
||||||
Public Property ParentRight As String = ""
|
Public Property ParentRight As String = ""
|
||||||
Public Property JoinOperator As String = "AND"
|
Public Property JoinOperator As String = "AND"
|
||||||
|
|||||||
@ -1,70 +1,25 @@
|
|||||||
Namespace Search
|
Namespace Search
|
||||||
Public Class SearchToken
|
Public Class SearchToken
|
||||||
|
|
||||||
Public Enum [ValueType]
|
Public Class AttributeValueToken
|
||||||
AttributeName
|
Public AttributeTitle As String
|
||||||
AttributeValue
|
Public AttributeId As Integer
|
||||||
AttributeOperator
|
Public TermValue As String
|
||||||
End Enum
|
Public TermId As Integer
|
||||||
|
|
||||||
Public Enum [InputMode]
|
Public Overrides Function GetHashCode() As Integer
|
||||||
[Default]
|
Return (TermId.GetHashCode & AttributeId.GetHashCode).GetHashCode()
|
||||||
[Operator]
|
End Function
|
||||||
Value
|
|
||||||
End Enum
|
|
||||||
|
|
||||||
Public Enum [OperatorToken]
|
Public Overrides Function Equals(obj As Object) As Boolean
|
||||||
Equals
|
Return Me.GetHashCode() = DirectCast(obj, AttributeValueToken).GetHashCode()
|
||||||
NotEquals
|
End Function
|
||||||
GreaterThan
|
|
||||||
LessThan
|
|
||||||
Contains
|
|
||||||
End Enum
|
|
||||||
|
|
||||||
Public MustInherit Class TokenValue
|
|
||||||
Public Value As Object
|
|
||||||
Public Type As [ValueType]
|
|
||||||
|
|
||||||
Public Overrides Function ToString() As String
|
Public Overrides Function ToString() As String
|
||||||
Return Value.ToString()
|
Return $"{TermValue} ({AttributeTitle})"
|
||||||
End Function
|
End Function
|
||||||
End Class
|
End Class
|
||||||
|
|
||||||
Public Class AttributeKeyToken
|
|
||||||
Inherits TokenValue
|
|
||||||
|
|
||||||
Public Sub New(pValue As Object)
|
|
||||||
Value = pValue
|
|
||||||
Type = ValueType.AttributeName
|
|
||||||
End Sub
|
|
||||||
End Class
|
|
||||||
|
|
||||||
Public Class AttributeOperatorToken
|
|
||||||
Inherits TokenValue
|
|
||||||
|
|
||||||
Public Sub New(pValue As Object)
|
|
||||||
Value = pValue
|
|
||||||
Type = ValueType.AttributeOperator
|
|
||||||
End Sub
|
|
||||||
End Class
|
|
||||||
|
|
||||||
Public Class AttributeValueToken
|
|
||||||
Inherits TokenValue
|
|
||||||
|
|
||||||
Public Sub New(pValue As Object)
|
|
||||||
Value = pValue
|
|
||||||
Type = ValueType.AttributeValue
|
|
||||||
End Sub
|
|
||||||
End Class
|
|
||||||
|
|
||||||
Public Class DateToken
|
|
||||||
Inherits TokenValue
|
|
||||||
|
|
||||||
Public Sub New(pValue As Object)
|
|
||||||
Value = pValue
|
|
||||||
Type = ValueType.AttributeValue
|
|
||||||
End Sub
|
|
||||||
End Class
|
|
||||||
End Class
|
End Class
|
||||||
|
|
||||||
End Namespace
|
End Namespace
|
||||||
@ -6,7 +6,6 @@ Imports DigitalData.GUIs.ZooFlow.Search.SearchToken
|
|||||||
Imports DigitalData.Modules.EDMI.API
|
Imports DigitalData.Modules.EDMI.API
|
||||||
|
|
||||||
Public Class frmSearchNeu
|
Public Class frmSearchNeu
|
||||||
Private Search As Search.Search
|
|
||||||
Private Database As DatabaseWithFallback
|
Private Database As DatabaseWithFallback
|
||||||
|
|
||||||
Private TokenListDefault As New Dictionary(Of String, Object)
|
Private TokenListDefault As New Dictionary(Of String, Object)
|
||||||
@ -17,13 +16,12 @@ Public Class frmSearchNeu
|
|||||||
|
|
||||||
Private Sub XtraForm1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
|
Private Sub XtraForm1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
|
||||||
Database = New DatabaseWithFallback(My.LogConfig, My.Application.Service.Client, My.DatabaseECM, My.DatabaseIDB)
|
Database = New DatabaseWithFallback(My.LogConfig, My.Application.Service.Client, My.DatabaseECM, My.DatabaseIDB)
|
||||||
Search = New Search.Search(My.LogConfig, My.Application.User, Database)
|
|
||||||
|
|
||||||
Dim oTokens = Search.GetAttributeTokens()
|
'Dim oTokens = Search.GetAttributeTokens()
|
||||||
AddTokens(SearchControl2, oTokens)
|
'AddTokens(SearchControl2, oTokens)
|
||||||
|
|
||||||
GridControl1.DataSource = Search.Query
|
'GridControl1.DataSource = Search.Query
|
||||||
cmbSelect.SelectedIndex = 0
|
'cmbSelect.SelectedIndex = 0
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Private Sub SetTokens(Editor As TokenEdit, Tokens As Dictionary(Of String, Object))
|
Private Sub SetTokens(Editor As TokenEdit, Tokens As Dictionary(Of String, Object))
|
||||||
@ -52,69 +50,69 @@ Public Class frmSearchNeu
|
|||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Private Sub SetNewTokens(pEditor As TokenEdit)
|
Private Sub SetNewTokens(pEditor As TokenEdit)
|
||||||
Dim oLastToken = pEditor.GetTokenList().LastOrDefault()
|
'Dim oLastToken = pEditor.GetTokenList().LastOrDefault()
|
||||||
pEditor.Properties.BeginUpdate()
|
'pEditor.Properties.BeginUpdate()
|
||||||
|
|
||||||
If oLastToken IsNot Nothing Then
|
'If oLastToken IsNot Nothing Then
|
||||||
Select Case oLastToken.Value.GetType
|
' Select Case oLastToken.Value.GetType
|
||||||
|
|
||||||
Case GetType(AttributeKeyToken)
|
' Case GetType(AttributeKeyToken)
|
||||||
' After the attribute key comes an operator
|
' ' After the attribute key comes an operator
|
||||||
SetTokens(pEditor, Search.GetOperatorTokens(GetType(String)))
|
' SetTokens(pEditor, Search.GetOperatorTokens(GetType(String)))
|
||||||
Search.InputMode = InputMode.Operator
|
' Search.InputMode = InputMode.Operator
|
||||||
|
|
||||||
Case GetType(AttributeOperatorToken)
|
' Case GetType(AttributeOperatorToken)
|
||||||
' After the attribute operator comes a value
|
' ' After the attribute operator comes a value
|
||||||
SetTokens(pEditor, TokenListAttrValues)
|
' SetTokens(pEditor, TokenListAttrValues)
|
||||||
Search.InputMode = InputMode.Value
|
' Search.InputMode = InputMode.Value
|
||||||
|
|
||||||
Case GetType(AttributeValueToken)
|
' Case GetType(AttributeValueToken)
|
||||||
' After the attribute value comes another value
|
' ' After the attribute value comes another value
|
||||||
SetTokens(pEditor, TokenListAttrValues)
|
' SetTokens(pEditor, TokenListAttrValues)
|
||||||
Search.InputMode = InputMode.Value
|
' Search.InputMode = InputMode.Value
|
||||||
|
|
||||||
Case Else
|
' Case Else
|
||||||
SetTokens(pEditor, TokenListDefault)
|
' SetTokens(pEditor, TokenListDefault)
|
||||||
Search.InputMode = InputMode.Default
|
' Search.InputMode = InputMode.Default
|
||||||
|
|
||||||
End Select
|
' End Select
|
||||||
Else
|
'Else
|
||||||
SetTokens(pEditor, TokenListDefault)
|
' SetTokens(pEditor, TokenListDefault)
|
||||||
Search.InputMode = InputMode.Default
|
' Search.InputMode = InputMode.Default
|
||||||
End If
|
'End If
|
||||||
|
|
||||||
pEditor.Properties.EndUpdate()
|
'pEditor.Properties.EndUpdate()
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Private Sub SearchControl2_CustomDrawTokenGlyph(sender As Object, e As TokenEditCustomDrawTokenGlyphEventArgs) Handles SearchControl2.CustomDrawTokenGlyph
|
Private Sub SearchControl2_CustomDrawTokenGlyph(sender As Object, e As TokenEditCustomDrawTokenGlyphEventArgs) Handles SearchControl2.CustomDrawTokenGlyph
|
||||||
' Set Background according to token type
|
'' Set Background according to token type
|
||||||
Select Case e.Value.GetType()
|
'Select Case e.Value.GetType()
|
||||||
Case GetType(AttributeKeyToken)
|
' Case GetType(AttributeKeyToken)
|
||||||
e.Graphics.FillRectangle(New SolidBrush(ColorTranslator.FromHtml("#F87171")), e.Bounds)
|
' e.Graphics.FillRectangle(New SolidBrush(ColorTranslator.FromHtml("#F87171")), e.Bounds)
|
||||||
|
|
||||||
Case GetType(AttributeOperatorToken)
|
' Case GetType(AttributeOperatorToken)
|
||||||
e.Graphics.FillRectangle(New SolidBrush(ColorTranslator.FromHtml("#34D399")), e.Bounds)
|
' e.Graphics.FillRectangle(New SolidBrush(ColorTranslator.FromHtml("#34D399")), e.Bounds)
|
||||||
|
|
||||||
Case GetType(AttributeValueToken)
|
' Case GetType(AttributeValueToken)
|
||||||
e.Graphics.FillRectangle(New SolidBrush(ColorTranslator.FromHtml("#60A5FA")), e.Bounds)
|
' e.Graphics.FillRectangle(New SolidBrush(ColorTranslator.FromHtml("#60A5FA")), e.Bounds)
|
||||||
Case Else
|
' Case Else
|
||||||
End Select
|
'End Select
|
||||||
|
|
||||||
' Draw the glyph on top
|
'' Draw the glyph on top
|
||||||
' This fixes: https://supportcenter.devexpress.com/ticket/details/t215578/tokenedit-glyph-is-not-visible-when-customdrawtokentext-is-used
|
'' This fixes: https://supportcenter.devexpress.com/ticket/details/t215578/tokenedit-glyph-is-not-visible-when-customdrawtokentext-is-used
|
||||||
e.DefaultDraw()
|
'e.DefaultDraw()
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Private Sub SearchControl2_KeyUp(sender As Object, e As KeyEventArgs) Handles SearchControl2.KeyUp
|
Private Sub SearchControl2_KeyUp(sender As Object, e As KeyEventArgs) Handles SearchControl2.KeyUp
|
||||||
If Search.InputMode = InputMode.Value And e.KeyCode = Keys.Enter And SearchControl2.IsPopupOpen Then
|
'If Search.InputMode = InputMode.Value And e.KeyCode = Keys.Enter And SearchControl2.IsPopupOpen Then
|
||||||
Search.Query.Add(New SearchCriteria With {
|
' Search.Query.Add(New SearchCriteria With {
|
||||||
.ParenLeft = False,
|
' .ParenLeft = False,
|
||||||
.Key = "test",
|
' .Key = "test",
|
||||||
.Op = OperatorToken.Equals,
|
' .Op = OperatorToken.Equals,
|
||||||
.Value = "test",
|
' .Value = "test",
|
||||||
.ParentRight = False
|
' .ParentRight = False
|
||||||
})
|
' })
|
||||||
End If
|
'End If
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Private Sub RibbonControl1_Click(sender As Object, e As EventArgs) Handles RibbonControl1.Click
|
Private Sub RibbonControl1_Click(sender As Object, e As EventArgs) Handles RibbonControl1.Click
|
||||||
|
|||||||
108
GUIs.ZooFlow/Search/frmFlowSearch2.Designer.vb
generated
108
GUIs.ZooFlow/Search/frmFlowSearch2.Designer.vb
generated
@ -51,7 +51,7 @@ Partial Class frmFlowSearch2
|
|||||||
Me.PanelControl1 = New DevExpress.XtraEditors.PanelControl()
|
Me.PanelControl1 = New DevExpress.XtraEditors.PanelControl()
|
||||||
Me.PanelControl2 = New DevExpress.XtraEditors.PanelControl()
|
Me.PanelControl2 = New DevExpress.XtraEditors.PanelControl()
|
||||||
Me.LayoutControl1 = New DevExpress.XtraLayout.LayoutControl()
|
Me.LayoutControl1 = New DevExpress.XtraLayout.LayoutControl()
|
||||||
Me.TokenEdit1 = New DevExpress.XtraEditors.TokenEdit()
|
Me.TokenEditEx1 = New DigitalData.GUIs.ZooFlow.TokenEditEx()
|
||||||
Me.TextEdit1 = New DevExpress.XtraEditors.ButtonEdit()
|
Me.TextEdit1 = New DevExpress.XtraEditors.ButtonEdit()
|
||||||
Me.GridControl1 = New DevExpress.XtraGrid.GridControl()
|
Me.GridControl1 = New DevExpress.XtraGrid.GridControl()
|
||||||
Me.TileView1 = New DevExpress.XtraGrid.Views.Tile.TileView()
|
Me.TileView1 = New DevExpress.XtraGrid.Views.Tile.TileView()
|
||||||
@ -69,9 +69,9 @@ Partial Class frmFlowSearch2
|
|||||||
Me.LayoutControlItem4 = New DevExpress.XtraLayout.LayoutControlItem()
|
Me.LayoutControlItem4 = New DevExpress.XtraLayout.LayoutControlItem()
|
||||||
Me.EmptySpaceItem1 = New DevExpress.XtraLayout.EmptySpaceItem()
|
Me.EmptySpaceItem1 = New DevExpress.XtraLayout.EmptySpaceItem()
|
||||||
Me.LayoutControlItem6 = New DevExpress.XtraLayout.LayoutControlItem()
|
Me.LayoutControlItem6 = New DevExpress.XtraLayout.LayoutControlItem()
|
||||||
Me.LayoutControlItem5 = New DevExpress.XtraLayout.LayoutControlItem()
|
|
||||||
Me.LayoutControlGroup3 = New DevExpress.XtraLayout.LayoutControlGroup()
|
Me.LayoutControlGroup3 = New DevExpress.XtraLayout.LayoutControlGroup()
|
||||||
Me.LayoutControlItem3 = New DevExpress.XtraLayout.LayoutControlItem()
|
Me.LayoutControlItem3 = New DevExpress.XtraLayout.LayoutControlItem()
|
||||||
|
Me.LayoutControlItem5 = New DevExpress.XtraLayout.LayoutControlItem()
|
||||||
Me.LayoutControlItem7 = New DevExpress.XtraLayout.LayoutControlItem()
|
Me.LayoutControlItem7 = New DevExpress.XtraLayout.LayoutControlItem()
|
||||||
Me.SvgImageCollection1 = New DevExpress.Utils.SvgImageCollection(Me.components)
|
Me.SvgImageCollection1 = New DevExpress.Utils.SvgImageCollection(Me.components)
|
||||||
CType(Me.RibbonControl1, System.ComponentModel.ISupportInitialize).BeginInit()
|
CType(Me.RibbonControl1, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||||
@ -82,7 +82,7 @@ Partial Class frmFlowSearch2
|
|||||||
Me.PanelControl2.SuspendLayout()
|
Me.PanelControl2.SuspendLayout()
|
||||||
CType(Me.LayoutControl1, System.ComponentModel.ISupportInitialize).BeginInit()
|
CType(Me.LayoutControl1, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||||
Me.LayoutControl1.SuspendLayout()
|
Me.LayoutControl1.SuspendLayout()
|
||||||
CType(Me.TokenEdit1.Properties, System.ComponentModel.ISupportInitialize).BeginInit()
|
CType(Me.TokenEditEx1.Properties, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||||
CType(Me.TextEdit1.Properties, System.ComponentModel.ISupportInitialize).BeginInit()
|
CType(Me.TextEdit1.Properties, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||||
CType(Me.GridControl1, System.ComponentModel.ISupportInitialize).BeginInit()
|
CType(Me.GridControl1, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||||
CType(Me.TileView1, System.ComponentModel.ISupportInitialize).BeginInit()
|
CType(Me.TileView1, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||||
@ -101,9 +101,9 @@ Partial Class frmFlowSearch2
|
|||||||
CType(Me.LayoutControlItem4, System.ComponentModel.ISupportInitialize).BeginInit()
|
CType(Me.LayoutControlItem4, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||||
CType(Me.EmptySpaceItem1, System.ComponentModel.ISupportInitialize).BeginInit()
|
CType(Me.EmptySpaceItem1, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||||
CType(Me.LayoutControlItem6, System.ComponentModel.ISupportInitialize).BeginInit()
|
CType(Me.LayoutControlItem6, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||||
CType(Me.LayoutControlItem5, System.ComponentModel.ISupportInitialize).BeginInit()
|
|
||||||
CType(Me.LayoutControlGroup3, System.ComponentModel.ISupportInitialize).BeginInit()
|
CType(Me.LayoutControlGroup3, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||||
CType(Me.LayoutControlItem3, System.ComponentModel.ISupportInitialize).BeginInit()
|
CType(Me.LayoutControlItem3, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||||
|
CType(Me.LayoutControlItem5, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||||
CType(Me.LayoutControlItem7, System.ComponentModel.ISupportInitialize).BeginInit()
|
CType(Me.LayoutControlItem7, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||||
CType(Me.SvgImageCollection1, System.ComponentModel.ISupportInitialize).BeginInit()
|
CType(Me.SvgImageCollection1, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||||
Me.SuspendLayout()
|
Me.SuspendLayout()
|
||||||
@ -228,7 +228,8 @@ Partial Class frmFlowSearch2
|
|||||||
'
|
'
|
||||||
'LayoutControl1
|
'LayoutControl1
|
||||||
'
|
'
|
||||||
Me.LayoutControl1.Controls.Add(Me.TokenEdit1)
|
Me.LayoutControl1.BackColor = System.Drawing.Color.FromArgb(CType(CType(240, Byte), Integer), CType(CType(240, Byte), Integer), CType(CType(240, Byte), Integer))
|
||||||
|
Me.LayoutControl1.Controls.Add(Me.TokenEditEx1)
|
||||||
Me.LayoutControl1.Controls.Add(Me.TextEdit1)
|
Me.LayoutControl1.Controls.Add(Me.TextEdit1)
|
||||||
Me.LayoutControl1.Controls.Add(Me.GridControl1)
|
Me.LayoutControl1.Controls.Add(Me.GridControl1)
|
||||||
Me.LayoutControl1.Controls.Add(Me.RadioGroup1)
|
Me.LayoutControl1.Controls.Add(Me.RadioGroup1)
|
||||||
@ -245,23 +246,24 @@ Partial Class frmFlowSearch2
|
|||||||
Me.LayoutControl1.TabIndex = 0
|
Me.LayoutControl1.TabIndex = 0
|
||||||
Me.LayoutControl1.Text = "LayoutControl1"
|
Me.LayoutControl1.Text = "LayoutControl1"
|
||||||
'
|
'
|
||||||
'TokenEdit1
|
'TokenEditEx1
|
||||||
'
|
'
|
||||||
Me.TokenEdit1.Location = New System.Drawing.Point(0, 0)
|
Me.TokenEditEx1.Location = New System.Drawing.Point(10, 10)
|
||||||
Me.TokenEdit1.Margin = New System.Windows.Forms.Padding(10)
|
Me.TokenEditEx1.MenuManager = Me.RibbonControl1
|
||||||
Me.TokenEdit1.MenuManager = Me.RibbonControl1
|
Me.TokenEditEx1.Name = "TokenEditEx1"
|
||||||
Me.TokenEdit1.Name = "TokenEdit1"
|
Me.TokenEditEx1.Properties.Appearance.BackColor = System.Drawing.Color.White
|
||||||
Me.TokenEdit1.Properties.Appearance.Font = New System.Drawing.Font("Segoe UI", 15.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
|
Me.TokenEditEx1.Properties.Appearance.Font = New System.Drawing.Font("Segoe UI", 15.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
|
||||||
Me.TokenEdit1.Properties.Appearance.Options.UseFont = True
|
Me.TokenEditEx1.Properties.Appearance.Options.UseBackColor = True
|
||||||
Me.TokenEdit1.Properties.NullText = "Suchbegriffe eingeben.."
|
Me.TokenEditEx1.Properties.Appearance.Options.UseFont = True
|
||||||
Me.TokenEdit1.Properties.Separators.AddRange(New String() {","})
|
Me.TokenEditEx1.Properties.NullText = "Suchbegriff eingeben.."
|
||||||
Me.TokenEdit1.Size = New System.Drawing.Size(886, 36)
|
Me.TokenEditEx1.Properties.Separators.AddRange(New String() {","})
|
||||||
Me.TokenEdit1.StyleController = Me.LayoutControl1
|
Me.TokenEditEx1.Size = New System.Drawing.Size(866, 36)
|
||||||
Me.TokenEdit1.TabIndex = 9
|
Me.TokenEditEx1.StyleController = Me.LayoutControl1
|
||||||
|
Me.TokenEditEx1.TabIndex = 4
|
||||||
'
|
'
|
||||||
'TextEdit1
|
'TextEdit1
|
||||||
'
|
'
|
||||||
Me.TextEdit1.Location = New System.Drawing.Point(0, 301)
|
Me.TextEdit1.Location = New System.Drawing.Point(0, 284)
|
||||||
Me.TextEdit1.MenuManager = Me.RibbonControl1
|
Me.TextEdit1.MenuManager = Me.RibbonControl1
|
||||||
Me.TextEdit1.Name = "TextEdit1"
|
Me.TextEdit1.Name = "TextEdit1"
|
||||||
Me.TextEdit1.Properties.Appearance.Font = New System.Drawing.Font("Segoe UI", 9.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
|
Me.TextEdit1.Properties.Appearance.Font = New System.Drawing.Font("Segoe UI", 9.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
|
||||||
@ -277,11 +279,11 @@ Partial Class frmFlowSearch2
|
|||||||
'
|
'
|
||||||
'GridControl1
|
'GridControl1
|
||||||
'
|
'
|
||||||
Me.GridControl1.Location = New System.Drawing.Point(14, 90)
|
Me.GridControl1.Location = New System.Drawing.Point(14, 110)
|
||||||
Me.GridControl1.MainView = Me.TileView1
|
Me.GridControl1.MainView = Me.TileView1
|
||||||
Me.GridControl1.MenuManager = Me.RibbonControl1
|
Me.GridControl1.MenuManager = Me.RibbonControl1
|
||||||
Me.GridControl1.Name = "GridControl1"
|
Me.GridControl1.Name = "GridControl1"
|
||||||
Me.GridControl1.Size = New System.Drawing.Size(858, 197)
|
Me.GridControl1.Size = New System.Drawing.Size(858, 160)
|
||||||
Me.GridControl1.TabIndex = 1
|
Me.GridControl1.TabIndex = 1
|
||||||
Me.GridControl1.ViewCollection.AddRange(New DevExpress.XtraGrid.Views.Base.BaseView() {Me.TileView1, Me.GridView1})
|
Me.GridControl1.ViewCollection.AddRange(New DevExpress.XtraGrid.Views.Base.BaseView() {Me.TileView1, Me.GridView1})
|
||||||
'
|
'
|
||||||
@ -344,7 +346,7 @@ Partial Class frmFlowSearch2
|
|||||||
'
|
'
|
||||||
'RadioGroup1
|
'RadioGroup1
|
||||||
'
|
'
|
||||||
Me.RadioGroup1.Location = New System.Drawing.Point(4, 389)
|
Me.RadioGroup1.Location = New System.Drawing.Point(4, 372)
|
||||||
Me.RadioGroup1.MenuManager = Me.RibbonControl1
|
Me.RadioGroup1.MenuManager = Me.RibbonControl1
|
||||||
Me.RadioGroup1.Name = "RadioGroup1"
|
Me.RadioGroup1.Name = "RadioGroup1"
|
||||||
Me.RadioGroup1.Properties.Appearance.BackColor = System.Drawing.SystemColors.Control
|
Me.RadioGroup1.Properties.Appearance.BackColor = System.Drawing.SystemColors.Control
|
||||||
@ -352,14 +354,14 @@ Partial Class frmFlowSearch2
|
|||||||
Me.RadioGroup1.Properties.Columns = 2
|
Me.RadioGroup1.Properties.Columns = 2
|
||||||
Me.RadioGroup1.Properties.ItemHorzAlignment = DevExpress.XtraEditors.RadioItemHorzAlignment.Near
|
Me.RadioGroup1.Properties.ItemHorzAlignment = DevExpress.XtraEditors.RadioItemHorzAlignment.Near
|
||||||
Me.RadioGroup1.Properties.ItemsLayout = DevExpress.XtraEditors.RadioGroupItemsLayout.Flow
|
Me.RadioGroup1.Properties.ItemsLayout = DevExpress.XtraEditors.RadioGroupItemsLayout.Flow
|
||||||
Me.RadioGroup1.Size = New System.Drawing.Size(615, 89)
|
Me.RadioGroup1.Size = New System.Drawing.Size(615, 106)
|
||||||
Me.RadioGroup1.StyleController = Me.LayoutControl1
|
Me.RadioGroup1.StyleController = Me.LayoutControl1
|
||||||
Me.RadioGroup1.TabIndex = 4
|
Me.RadioGroup1.TabIndex = 4
|
||||||
'
|
'
|
||||||
'DateEditFrom
|
'DateEditFrom
|
||||||
'
|
'
|
||||||
Me.DateEditFrom.EditValue = Nothing
|
Me.DateEditFrom.EditValue = Nothing
|
||||||
Me.DateEditFrom.Location = New System.Drawing.Point(700, 392)
|
Me.DateEditFrom.Location = New System.Drawing.Point(700, 375)
|
||||||
Me.DateEditFrom.MenuManager = Me.RibbonControl1
|
Me.DateEditFrom.MenuManager = Me.RibbonControl1
|
||||||
Me.DateEditFrom.Name = "DateEditFrom"
|
Me.DateEditFrom.Name = "DateEditFrom"
|
||||||
Me.DateEditFrom.Properties.Buttons.AddRange(New DevExpress.XtraEditors.Controls.EditorButton() {New DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Combo)})
|
Me.DateEditFrom.Properties.Buttons.AddRange(New DevExpress.XtraEditors.Controls.EditorButton() {New DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Combo)})
|
||||||
@ -371,7 +373,7 @@ Partial Class frmFlowSearch2
|
|||||||
'DateEditTo
|
'DateEditTo
|
||||||
'
|
'
|
||||||
Me.DateEditTo.EditValue = Nothing
|
Me.DateEditTo.EditValue = Nothing
|
||||||
Me.DateEditTo.Location = New System.Drawing.Point(700, 445)
|
Me.DateEditTo.Location = New System.Drawing.Point(700, 428)
|
||||||
Me.DateEditTo.MenuManager = Me.RibbonControl1
|
Me.DateEditTo.MenuManager = Me.RibbonControl1
|
||||||
Me.DateEditTo.Name = "DateEditTo"
|
Me.DateEditTo.Name = "DateEditTo"
|
||||||
Me.DateEditTo.Properties.Buttons.AddRange(New DevExpress.XtraEditors.Controls.EditorButton() {New DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Combo)})
|
Me.DateEditTo.Properties.Buttons.AddRange(New DevExpress.XtraEditors.Controls.EditorButton() {New DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Combo)})
|
||||||
@ -382,7 +384,7 @@ Partial Class frmFlowSearch2
|
|||||||
'
|
'
|
||||||
'CheckEdit1
|
'CheckEdit1
|
||||||
'
|
'
|
||||||
Me.CheckEdit1.Location = New System.Drawing.Point(627, 419)
|
Me.CheckEdit1.Location = New System.Drawing.Point(627, 402)
|
||||||
Me.CheckEdit1.MenuManager = Me.RibbonControl1
|
Me.CheckEdit1.MenuManager = Me.RibbonControl1
|
||||||
Me.CheckEdit1.Name = "CheckEdit1"
|
Me.CheckEdit1.Name = "CheckEdit1"
|
||||||
Me.CheckEdit1.Properties.OffText = "Datum bis deaktiviert"
|
Me.CheckEdit1.Properties.OffText = "Datum bis deaktiviert"
|
||||||
@ -395,7 +397,7 @@ Partial Class frmFlowSearch2
|
|||||||
'
|
'
|
||||||
Me.Root.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.[True]
|
Me.Root.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.[True]
|
||||||
Me.Root.GroupBordersVisible = False
|
Me.Root.GroupBordersVisible = False
|
||||||
Me.Root.Items.AddRange(New DevExpress.XtraLayout.BaseLayoutItem() {Me.LayoutControlGroupDate1, Me.LayoutControlGroupDate2, Me.LayoutControlGroup3, Me.LayoutControlItem7, Me.LayoutControlItem5})
|
Me.Root.Items.AddRange(New DevExpress.XtraLayout.BaseLayoutItem() {Me.LayoutControlGroupDate1, Me.LayoutControlGroupDate2, Me.LayoutControlGroup3, Me.LayoutControlItem5, Me.LayoutControlItem7})
|
||||||
Me.Root.Name = "Root"
|
Me.Root.Name = "Root"
|
||||||
Me.Root.Padding = New DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0)
|
Me.Root.Padding = New DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0)
|
||||||
Me.Root.Size = New System.Drawing.Size(886, 482)
|
Me.Root.Size = New System.Drawing.Size(886, 482)
|
||||||
@ -411,10 +413,10 @@ Partial Class frmFlowSearch2
|
|||||||
Me.LayoutControlGroupDate1.BestFitWeight = 0
|
Me.LayoutControlGroupDate1.BestFitWeight = 0
|
||||||
Me.LayoutControlGroupDate1.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.[False]
|
Me.LayoutControlGroupDate1.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.[False]
|
||||||
Me.LayoutControlGroupDate1.Items.AddRange(New DevExpress.XtraLayout.BaseLayoutItem() {Me.LayoutControlItem1})
|
Me.LayoutControlGroupDate1.Items.AddRange(New DevExpress.XtraLayout.BaseLayoutItem() {Me.LayoutControlItem1})
|
||||||
Me.LayoutControlGroupDate1.Location = New System.Drawing.Point(0, 345)
|
Me.LayoutControlGroupDate1.Location = New System.Drawing.Point(0, 328)
|
||||||
Me.LayoutControlGroupDate1.Name = "LayoutControlGroupDate1"
|
Me.LayoutControlGroupDate1.Name = "LayoutControlGroupDate1"
|
||||||
Me.LayoutControlGroupDate1.Padding = New DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0)
|
Me.LayoutControlGroupDate1.Padding = New DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0)
|
||||||
Me.LayoutControlGroupDate1.Size = New System.Drawing.Size(623, 137)
|
Me.LayoutControlGroupDate1.Size = New System.Drawing.Size(623, 154)
|
||||||
Me.LayoutControlGroupDate1.Spacing = New DevExpress.XtraLayout.Utils.Padding(2, 2, 20, 2)
|
Me.LayoutControlGroupDate1.Spacing = New DevExpress.XtraLayout.Utils.Padding(2, 2, 20, 2)
|
||||||
Me.LayoutControlGroupDate1.Text = "Datums Einschränkung"
|
Me.LayoutControlGroupDate1.Text = "Datums Einschränkung"
|
||||||
Me.LayoutControlGroupDate1.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never
|
Me.LayoutControlGroupDate1.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never
|
||||||
@ -424,7 +426,7 @@ Partial Class frmFlowSearch2
|
|||||||
Me.LayoutControlItem1.Control = Me.RadioGroup1
|
Me.LayoutControlItem1.Control = Me.RadioGroup1
|
||||||
Me.LayoutControlItem1.Location = New System.Drawing.Point(0, 0)
|
Me.LayoutControlItem1.Location = New System.Drawing.Point(0, 0)
|
||||||
Me.LayoutControlItem1.Name = "LayoutControlItem1"
|
Me.LayoutControlItem1.Name = "LayoutControlItem1"
|
||||||
Me.LayoutControlItem1.Size = New System.Drawing.Size(619, 93)
|
Me.LayoutControlItem1.Size = New System.Drawing.Size(619, 110)
|
||||||
Me.LayoutControlItem1.TextSize = New System.Drawing.Size(0, 0)
|
Me.LayoutControlItem1.TextSize = New System.Drawing.Size(0, 0)
|
||||||
Me.LayoutControlItem1.TextVisible = False
|
Me.LayoutControlItem1.TextVisible = False
|
||||||
'
|
'
|
||||||
@ -436,10 +438,10 @@ Partial Class frmFlowSearch2
|
|||||||
Me.LayoutControlGroupDate2.AppearanceGroup.Options.UseBorderColor = True
|
Me.LayoutControlGroupDate2.AppearanceGroup.Options.UseBorderColor = True
|
||||||
Me.LayoutControlGroupDate2.BestFitWeight = 0
|
Me.LayoutControlGroupDate2.BestFitWeight = 0
|
||||||
Me.LayoutControlGroupDate2.Items.AddRange(New DevExpress.XtraLayout.BaseLayoutItem() {Me.LayoutControlItem2, Me.LayoutControlItem4, Me.EmptySpaceItem1, Me.LayoutControlItem6})
|
Me.LayoutControlGroupDate2.Items.AddRange(New DevExpress.XtraLayout.BaseLayoutItem() {Me.LayoutControlItem2, Me.LayoutControlItem4, Me.EmptySpaceItem1, Me.LayoutControlItem6})
|
||||||
Me.LayoutControlGroupDate2.Location = New System.Drawing.Point(623, 345)
|
Me.LayoutControlGroupDate2.Location = New System.Drawing.Point(623, 328)
|
||||||
Me.LayoutControlGroupDate2.Name = "LayoutControlGroupDate2"
|
Me.LayoutControlGroupDate2.Name = "LayoutControlGroupDate2"
|
||||||
Me.LayoutControlGroupDate2.Padding = New DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0)
|
Me.LayoutControlGroupDate2.Padding = New DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0)
|
||||||
Me.LayoutControlGroupDate2.Size = New System.Drawing.Size(263, 137)
|
Me.LayoutControlGroupDate2.Size = New System.Drawing.Size(263, 154)
|
||||||
Me.LayoutControlGroupDate2.Spacing = New DevExpress.XtraLayout.Utils.Padding(2, 2, 20, 2)
|
Me.LayoutControlGroupDate2.Spacing = New DevExpress.XtraLayout.Utils.Padding(2, 2, 20, 2)
|
||||||
Me.LayoutControlGroupDate2.Text = "Eigenes Datum"
|
Me.LayoutControlGroupDate2.Text = "Eigenes Datum"
|
||||||
Me.LayoutControlGroupDate2.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never
|
Me.LayoutControlGroupDate2.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never
|
||||||
@ -470,7 +472,7 @@ Partial Class frmFlowSearch2
|
|||||||
Me.EmptySpaceItem1.AllowHotTrack = False
|
Me.EmptySpaceItem1.AllowHotTrack = False
|
||||||
Me.EmptySpaceItem1.Location = New System.Drawing.Point(0, 83)
|
Me.EmptySpaceItem1.Location = New System.Drawing.Point(0, 83)
|
||||||
Me.EmptySpaceItem1.Name = "EmptySpaceItem1"
|
Me.EmptySpaceItem1.Name = "EmptySpaceItem1"
|
||||||
Me.EmptySpaceItem1.Size = New System.Drawing.Size(259, 10)
|
Me.EmptySpaceItem1.Size = New System.Drawing.Size(259, 27)
|
||||||
Me.EmptySpaceItem1.TextSize = New System.Drawing.Size(0, 0)
|
Me.EmptySpaceItem1.TextSize = New System.Drawing.Size(0, 0)
|
||||||
'
|
'
|
||||||
'LayoutControlItem6
|
'LayoutControlItem6
|
||||||
@ -482,26 +484,14 @@ Partial Class frmFlowSearch2
|
|||||||
Me.LayoutControlItem6.TextSize = New System.Drawing.Size(0, 0)
|
Me.LayoutControlItem6.TextSize = New System.Drawing.Size(0, 0)
|
||||||
Me.LayoutControlItem6.TextVisible = False
|
Me.LayoutControlItem6.TextVisible = False
|
||||||
'
|
'
|
||||||
'LayoutControlItem5
|
|
||||||
'
|
|
||||||
Me.LayoutControlItem5.BestFitWeight = 0
|
|
||||||
Me.LayoutControlItem5.Control = Me.TextEdit1
|
|
||||||
Me.LayoutControlItem5.Location = New System.Drawing.Point(0, 301)
|
|
||||||
Me.LayoutControlItem5.Name = "LayoutControlItem5"
|
|
||||||
Me.LayoutControlItem5.Padding = New DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0)
|
|
||||||
Me.LayoutControlItem5.Size = New System.Drawing.Size(886, 44)
|
|
||||||
Me.LayoutControlItem5.TextSize = New System.Drawing.Size(0, 0)
|
|
||||||
Me.LayoutControlItem5.TextVisible = False
|
|
||||||
Me.LayoutControlItem5.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never
|
|
||||||
'
|
|
||||||
'LayoutControlGroup3
|
'LayoutControlGroup3
|
||||||
'
|
'
|
||||||
Me.LayoutControlGroup3.AppearanceGroup.BorderColor = System.Drawing.Color.FromArgb(CType(CType(165, Byte), Integer), CType(CType(36, Byte), Integer), CType(CType(19, Byte), Integer))
|
Me.LayoutControlGroup3.AppearanceGroup.BorderColor = System.Drawing.Color.FromArgb(CType(CType(165, Byte), Integer), CType(CType(36, Byte), Integer), CType(CType(19, Byte), Integer))
|
||||||
Me.LayoutControlGroup3.AppearanceGroup.Options.UseBorderColor = True
|
Me.LayoutControlGroup3.AppearanceGroup.Options.UseBorderColor = True
|
||||||
Me.LayoutControlGroup3.Items.AddRange(New DevExpress.XtraLayout.BaseLayoutItem() {Me.LayoutControlItem3})
|
Me.LayoutControlGroup3.Items.AddRange(New DevExpress.XtraLayout.BaseLayoutItem() {Me.LayoutControlItem3})
|
||||||
Me.LayoutControlGroup3.Location = New System.Drawing.Point(0, 36)
|
Me.LayoutControlGroup3.Location = New System.Drawing.Point(0, 56)
|
||||||
Me.LayoutControlGroup3.Name = "LayoutControlGroup3"
|
Me.LayoutControlGroup3.Name = "LayoutControlGroup3"
|
||||||
Me.LayoutControlGroup3.Size = New System.Drawing.Size(886, 265)
|
Me.LayoutControlGroup3.Size = New System.Drawing.Size(886, 228)
|
||||||
Me.LayoutControlGroup3.Spacing = New DevExpress.XtraLayout.Utils.Padding(2, 2, 20, 2)
|
Me.LayoutControlGroup3.Spacing = New DevExpress.XtraLayout.Utils.Padding(2, 2, 20, 2)
|
||||||
Me.LayoutControlGroup3.Text = "Meine Suchen"
|
Me.LayoutControlGroup3.Text = "Meine Suchen"
|
||||||
'
|
'
|
||||||
@ -510,17 +500,29 @@ Partial Class frmFlowSearch2
|
|||||||
Me.LayoutControlItem3.Control = Me.GridControl1
|
Me.LayoutControlItem3.Control = Me.GridControl1
|
||||||
Me.LayoutControlItem3.Location = New System.Drawing.Point(0, 0)
|
Me.LayoutControlItem3.Location = New System.Drawing.Point(0, 0)
|
||||||
Me.LayoutControlItem3.Name = "LayoutControlItem3"
|
Me.LayoutControlItem3.Name = "LayoutControlItem3"
|
||||||
Me.LayoutControlItem3.Size = New System.Drawing.Size(862, 201)
|
Me.LayoutControlItem3.Size = New System.Drawing.Size(862, 164)
|
||||||
Me.LayoutControlItem3.TextSize = New System.Drawing.Size(0, 0)
|
Me.LayoutControlItem3.TextSize = New System.Drawing.Size(0, 0)
|
||||||
Me.LayoutControlItem3.TextVisible = False
|
Me.LayoutControlItem3.TextVisible = False
|
||||||
'
|
'
|
||||||
|
'LayoutControlItem5
|
||||||
|
'
|
||||||
|
Me.LayoutControlItem5.BestFitWeight = 0
|
||||||
|
Me.LayoutControlItem5.Control = Me.TextEdit1
|
||||||
|
Me.LayoutControlItem5.Location = New System.Drawing.Point(0, 284)
|
||||||
|
Me.LayoutControlItem5.Name = "LayoutControlItem5"
|
||||||
|
Me.LayoutControlItem5.Padding = New DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0)
|
||||||
|
Me.LayoutControlItem5.Size = New System.Drawing.Size(886, 44)
|
||||||
|
Me.LayoutControlItem5.TextSize = New System.Drawing.Size(0, 0)
|
||||||
|
Me.LayoutControlItem5.TextVisible = False
|
||||||
|
Me.LayoutControlItem5.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never
|
||||||
|
'
|
||||||
'LayoutControlItem7
|
'LayoutControlItem7
|
||||||
'
|
'
|
||||||
Me.LayoutControlItem7.Control = Me.TokenEdit1
|
Me.LayoutControlItem7.Control = Me.TokenEditEx1
|
||||||
Me.LayoutControlItem7.Location = New System.Drawing.Point(0, 0)
|
Me.LayoutControlItem7.Location = New System.Drawing.Point(0, 0)
|
||||||
Me.LayoutControlItem7.Name = "LayoutControlItem7"
|
Me.LayoutControlItem7.Name = "LayoutControlItem7"
|
||||||
Me.LayoutControlItem7.Padding = New DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0)
|
Me.LayoutControlItem7.Padding = New DevExpress.XtraLayout.Utils.Padding(10, 10, 10, 10)
|
||||||
Me.LayoutControlItem7.Size = New System.Drawing.Size(886, 36)
|
Me.LayoutControlItem7.Size = New System.Drawing.Size(886, 56)
|
||||||
Me.LayoutControlItem7.TextSize = New System.Drawing.Size(0, 0)
|
Me.LayoutControlItem7.TextSize = New System.Drawing.Size(0, 0)
|
||||||
Me.LayoutControlItem7.TextVisible = False
|
Me.LayoutControlItem7.TextVisible = False
|
||||||
'
|
'
|
||||||
@ -551,7 +553,7 @@ Partial Class frmFlowSearch2
|
|||||||
Me.PanelControl2.ResumeLayout(False)
|
Me.PanelControl2.ResumeLayout(False)
|
||||||
CType(Me.LayoutControl1, System.ComponentModel.ISupportInitialize).EndInit()
|
CType(Me.LayoutControl1, System.ComponentModel.ISupportInitialize).EndInit()
|
||||||
Me.LayoutControl1.ResumeLayout(False)
|
Me.LayoutControl1.ResumeLayout(False)
|
||||||
CType(Me.TokenEdit1.Properties, System.ComponentModel.ISupportInitialize).EndInit()
|
CType(Me.TokenEditEx1.Properties, System.ComponentModel.ISupportInitialize).EndInit()
|
||||||
CType(Me.TextEdit1.Properties, System.ComponentModel.ISupportInitialize).EndInit()
|
CType(Me.TextEdit1.Properties, System.ComponentModel.ISupportInitialize).EndInit()
|
||||||
CType(Me.GridControl1, System.ComponentModel.ISupportInitialize).EndInit()
|
CType(Me.GridControl1, System.ComponentModel.ISupportInitialize).EndInit()
|
||||||
CType(Me.TileView1, System.ComponentModel.ISupportInitialize).EndInit()
|
CType(Me.TileView1, System.ComponentModel.ISupportInitialize).EndInit()
|
||||||
@ -570,9 +572,9 @@ Partial Class frmFlowSearch2
|
|||||||
CType(Me.LayoutControlItem4, System.ComponentModel.ISupportInitialize).EndInit()
|
CType(Me.LayoutControlItem4, System.ComponentModel.ISupportInitialize).EndInit()
|
||||||
CType(Me.EmptySpaceItem1, System.ComponentModel.ISupportInitialize).EndInit()
|
CType(Me.EmptySpaceItem1, System.ComponentModel.ISupportInitialize).EndInit()
|
||||||
CType(Me.LayoutControlItem6, System.ComponentModel.ISupportInitialize).EndInit()
|
CType(Me.LayoutControlItem6, System.ComponentModel.ISupportInitialize).EndInit()
|
||||||
CType(Me.LayoutControlItem5, System.ComponentModel.ISupportInitialize).EndInit()
|
|
||||||
CType(Me.LayoutControlGroup3, System.ComponentModel.ISupportInitialize).EndInit()
|
CType(Me.LayoutControlGroup3, System.ComponentModel.ISupportInitialize).EndInit()
|
||||||
CType(Me.LayoutControlItem3, System.ComponentModel.ISupportInitialize).EndInit()
|
CType(Me.LayoutControlItem3, System.ComponentModel.ISupportInitialize).EndInit()
|
||||||
|
CType(Me.LayoutControlItem5, System.ComponentModel.ISupportInitialize).EndInit()
|
||||||
CType(Me.LayoutControlItem7, System.ComponentModel.ISupportInitialize).EndInit()
|
CType(Me.LayoutControlItem7, System.ComponentModel.ISupportInitialize).EndInit()
|
||||||
CType(Me.SvgImageCollection1, System.ComponentModel.ISupportInitialize).EndInit()
|
CType(Me.SvgImageCollection1, System.ComponentModel.ISupportInitialize).EndInit()
|
||||||
Me.ResumeLayout(False)
|
Me.ResumeLayout(False)
|
||||||
@ -617,6 +619,6 @@ Partial Class frmFlowSearch2
|
|||||||
Friend WithEvents RepositoryItemMarqueeProgressBar1 As DevExpress.XtraEditors.Repository.RepositoryItemMarqueeProgressBar
|
Friend WithEvents RepositoryItemMarqueeProgressBar1 As DevExpress.XtraEditors.Repository.RepositoryItemMarqueeProgressBar
|
||||||
Friend WithEvents SvgImageCollection1 As DevExpress.Utils.SvgImageCollection
|
Friend WithEvents SvgImageCollection1 As DevExpress.Utils.SvgImageCollection
|
||||||
Friend WithEvents colImage As DevExpress.XtraGrid.Columns.TileViewColumn
|
Friend WithEvents colImage As DevExpress.XtraGrid.Columns.TileViewColumn
|
||||||
Friend WithEvents TokenEdit1 As DevExpress.XtraEditors.TokenEdit
|
Friend WithEvents TokenEditEx1 As TokenEditEx
|
||||||
Friend WithEvents LayoutControlItem7 As DevExpress.XtraLayout.LayoutControlItem
|
Friend WithEvents LayoutControlItem7 As DevExpress.XtraLayout.LayoutControlItem
|
||||||
End Class
|
End Class
|
||||||
|
|||||||
@ -8,34 +8,30 @@ Imports DevExpress.XtraSplashScreen
|
|||||||
Imports DigitalData.GUIs.ZooFlow.ClassConstants
|
Imports DigitalData.GUIs.ZooFlow.ClassConstants
|
||||||
Imports DigitalData.GUIs.ZooFlow.Search
|
Imports DigitalData.GUIs.ZooFlow.Search
|
||||||
Imports DigitalData.GUIs.ZooFlow.Search.SearchToken
|
Imports DigitalData.GUIs.ZooFlow.Search.SearchToken
|
||||||
|
Imports DigitalData.Modules.Language
|
||||||
Imports DigitalData.Modules.Logging
|
Imports DigitalData.Modules.Logging
|
||||||
|
|
||||||
Public Class frmFlowSearch2
|
Public Class frmFlowSearch2
|
||||||
Private ReadOnly LogConfig As LogConfig = My.LogConfig
|
Private ReadOnly LogConfig As LogConfig = My.LogConfig
|
||||||
Private ReadOnly Logger = My.LogConfig.GetLogger()
|
Private ReadOnly Logger = My.LogConfig.GetLogger()
|
||||||
Private SearchRunner As SearchRunner
|
Private SearchRunner As SearchRunner
|
||||||
Private Search As Search.Search
|
|
||||||
|
|
||||||
Private TokenListDefault As New Dictionary(Of String, Object)
|
Private TokenListDefault As New Dictionary(Of String, Object)
|
||||||
Private TokenListOperands As New Dictionary(Of String, Object)
|
Private TokenListOperands As New Dictionary(Of String, Object)
|
||||||
Private TokenListAttrValues As New Dictionary(Of String, Object)
|
Private TokenListAttrValues As New Dictionary(Of String, Object)
|
||||||
|
|
||||||
Private Sub frmFlowSearch2_Load(sender As Object, e As EventArgs) Handles MyBase.Load
|
Private Sub frmFlowSearch2_Load(sender As Object, e As EventArgs) Handles MyBase.Load
|
||||||
Search = New Search.Search(LogConfig, My.Application.User, My.Database)
|
|
||||||
SearchRunner = New SearchRunner(My.LogConfig, My.Application.GetEnvironment, "FlowSearch") With {
|
SearchRunner = New SearchRunner(My.LogConfig, My.Application.GetEnvironment, "FlowSearch") With {
|
||||||
.BaseSearchSQL = LoadBaseSQL()
|
.BaseSearchSQL = LoadBaseSQL()
|
||||||
}
|
}
|
||||||
|
|
||||||
TextEdit1.MaskBox.AutoCompleteSource = AutoCompleteSource.CustomSource
|
|
||||||
TextEdit1.MaskBox.AutoCompleteMode = AutoCompleteMode.SuggestAppend
|
|
||||||
TextEdit1.MaskBox.AutoCompleteCustomSource = LoadAutoSuggest()
|
|
||||||
|
|
||||||
RadioGroup1.Properties.Items.AddRange(LoadDateConstraints.ToArray)
|
RadioGroup1.Properties.Items.AddRange(LoadDateConstraints.ToArray)
|
||||||
|
|
||||||
GridControl1.DataSource = LoadPredefinedSearches()
|
GridControl1.DataSource = LoadPredefinedSearches()
|
||||||
|
|
||||||
Dim oTokens = Search.GetValueTokensForAttribute()
|
Dim oTokens = GetValueTokensForAttribute()
|
||||||
AddTokens(TokenEdit1, oTokens)
|
AddTokens(TokenEditEx1, oTokens)
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Private Function LoadBaseSQL() As String
|
Private Function LoadBaseSQL() As String
|
||||||
@ -52,21 +48,26 @@ Public Class frmFlowSearch2
|
|||||||
Return oSQL
|
Return oSQL
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
Private Function LoadAutoSuggest() As AutoCompleteStringCollection
|
Public Function GetValueTokensForAttribute() As List(Of AttributeValueToken)
|
||||||
Dim oCollection As New AutoCompleteStringCollection
|
Dim oSQL = $"EXEC PRIDB_SEARCH_AUTOSUGGEST '{My.Application.User.Language}', {My.Application.User.UserId}"
|
||||||
Dim oSql = $"EXEC PRIDB_SEARCH_AUTOSUGGEST '{My.Application.User.Language}',{My.Application.User.UserId}"
|
Dim oTable = My.Database.GetDatatableIDB(oSQL)
|
||||||
Dim oTable As DataTable = My.Database.GetDatatableIDB(oSql)
|
Dim oTokens As New List(Of AttributeValueToken)
|
||||||
|
|
||||||
If oTable Is Nothing Then
|
|
||||||
|
|
||||||
Return New AutoCompleteStringCollection()
|
|
||||||
End If
|
|
||||||
|
|
||||||
For Each oRow As DataRow In oTable.Rows
|
For Each oRow As DataRow In oTable.Rows
|
||||||
oCollection.Add(oRow.Item("TERM"))
|
Dim oTermValue = oRow.Item("TERM")
|
||||||
|
Dim oTermId = oRow.ItemEx("TERM_ID", 0)
|
||||||
|
Dim oAttributeTitle = oRow.Item("ATTR_TITLE")
|
||||||
|
Dim oAttributeId = oRow.ItemEx("ATTR_ID", 0)
|
||||||
|
|
||||||
|
oTokens.Add(New AttributeValueToken() With {
|
||||||
|
.AttributeId = oAttributeId,
|
||||||
|
.AttributeTitle = oAttributeTitle,
|
||||||
|
.TermId = oTermId,
|
||||||
|
.TermValue = oTermValue
|
||||||
|
})
|
||||||
Next
|
Next
|
||||||
|
|
||||||
Return oCollection
|
Return oTokens.Distinct().ToList()
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
Private Function LoadDateConstraints() As List(Of RadioGroupItem)
|
Private Function LoadDateConstraints() As List(Of RadioGroupItem)
|
||||||
@ -117,36 +118,39 @@ Public Class frmFlowSearch2
|
|||||||
}
|
}
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
|
Private Function GetTokens() As IEnumerable(Of AttributeValueToken)
|
||||||
|
Dim oTokens = TokenEditEx1.GetTokenList()
|
||||||
|
Return oTokens.Select(Of AttributeValueToken)(Function(token) token.Value)
|
||||||
|
End Function
|
||||||
|
|
||||||
Private Async Sub TextEdit1_KeyUp(sender As Object, e As KeyEventArgs) Handles TextEdit1.KeyUp
|
Private Async Sub TextEdit1_KeyUp(sender As Object, e As KeyEventArgs) Handles TextEdit1.KeyUp
|
||||||
If e.KeyCode = Keys.Enter Then
|
If e.KeyCode = Keys.Enter Then
|
||||||
Await RunSearch(TextEdit1.EditValue)
|
Dim oTokens = GetTokens()
|
||||||
|
Await RunSearch(oTokens)
|
||||||
End If
|
End If
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Private Async Sub SearchControl2_KeyUp(sender As Object, e As KeyEventArgs) Handles TokenEdit1.KeyUp
|
Private Async Sub SearchControl2_KeyUp(sender As Object, e As KeyEventArgs) Handles TokenEditEx1.KeyUp
|
||||||
If e.KeyCode = Keys.Enter And TokenEdit1.IsPopupOpen = False Then
|
If e.KeyCode = Keys.Enter And TokenEditEx1.IsPopupOpen = False Then
|
||||||
Dim oTokens = TokenEdit1.GetTokenList()
|
Dim oTokens = GetTokens()
|
||||||
Dim oFirstToken = oTokens.FirstOrDefault()
|
Await RunSearch(oTokens)
|
||||||
|
|
||||||
If oFirstToken Is Nothing Then
|
|
||||||
Exit Sub
|
|
||||||
End If
|
|
||||||
|
|
||||||
Dim oTokenValue As TokenValue = oFirstToken.Value
|
|
||||||
|
|
||||||
Await RunSearch(oTokenValue.Value)
|
|
||||||
End If
|
End If
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Private Async Sub TextEdit1_ButtonClick(sender As Object, e As DevExpress.XtraEditors.Controls.ButtonPressedEventArgs) Handles TextEdit1.ButtonClick
|
Private Async Sub TextEdit1_ButtonClick(sender As Object, e As DevExpress.XtraEditors.Controls.ButtonPressedEventArgs) Handles TextEdit1.ButtonClick
|
||||||
If e.Button.Tag = "SEARCH" Then
|
If e.Button.Tag = "SEARCH" Then
|
||||||
Await RunSearch(TextEdit1.EditValue)
|
Dim oTokens = GetTokens()
|
||||||
|
Await RunSearch(oTokens)
|
||||||
End If
|
End If
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Private Async Function RunSearch(pSearchTerm As String) As Threading.Tasks.Task
|
Private Async Function RunSearch(pTokens As IEnumerable(Of AttributeValueToken)) As Threading.Tasks.Task
|
||||||
Dim oHandle = StartUpdateUI()
|
Dim oHandle = StartUpdateUI()
|
||||||
|
|
||||||
|
If pTokens.Count = 0 Then
|
||||||
|
Exit Function
|
||||||
|
End If
|
||||||
|
|
||||||
Try
|
Try
|
||||||
Dim oDateFrom = DateEditFrom.EditValue
|
Dim oDateFrom = DateEditFrom.EditValue
|
||||||
Dim oDateTo = DateEditTo.EditValue
|
Dim oDateTo = DateEditTo.EditValue
|
||||||
@ -156,7 +160,7 @@ Public Class frmFlowSearch2
|
|||||||
End If
|
End If
|
||||||
|
|
||||||
SearchRunner.SetDateConstraint()
|
SearchRunner.SetDateConstraint()
|
||||||
Dim oResult = Await SearchRunner.RunWithSearchTerm(pSearchTerm, oDateFrom, oDateTo)
|
Dim oResult = Await SearchRunner.RunWithSearchTerm(String.Empty, oDateFrom, oDateTo, pTokens, "")
|
||||||
|
|
||||||
If oResult.OK = False Then
|
If oResult.OK = False Then
|
||||||
SetStatusBarColor(Color.OrangeRed)
|
SetStatusBarColor(Color.OrangeRed)
|
||||||
@ -280,70 +284,17 @@ Public Class frmFlowSearch2
|
|||||||
AddTokens(Editor, Tokens)
|
AddTokens(Editor, Tokens)
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Private Sub AddTokens(Editor As TokenEdit, Tokens As Dictionary(Of String, Object))
|
Private Sub AddTokens(Editor As TokenEdit, Tokens As IEnumerable(Of AttributeValueToken))
|
||||||
For Each oToken In Tokens
|
For Each oToken In Tokens
|
||||||
Dim oTokenEditToken = New TokenEditToken With {
|
Dim oTokenEditToken = New TokenEditToken With {
|
||||||
.Description = oToken.Key,
|
.Description = oToken.ToString,
|
||||||
.Value = oToken.Value
|
.Value = oToken
|
||||||
}
|
}
|
||||||
Editor.Properties.Tokens.Add(oTokenEditToken)
|
Editor.Properties.Tokens.Add(oTokenEditToken)
|
||||||
Next
|
Next
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
'Private Sub SearchControl2_Properties_TokenAdded(sender As Object, e As DevExpress.XtraEditors.TokenEditTokenAddedEventArgs) Handles TokenEdit1.Properties.TokenAdded
|
Private Sub SearchControl2_CustomDrawTokenGlyph(sender As Object, e As TokenEditCustomDrawTokenGlyphEventArgs) Handles TokenEditEx1.CustomDrawTokenGlyph
|
||||||
' Dim oEditor As TokenEdit = sender
|
|
||||||
' SetNewTokens(oEditor)
|
|
||||||
'End Sub
|
|
||||||
|
|
||||||
'Private Sub SearchControl2_Properties_TokenRemoved(sender As Object, e As TokenEditTokenRemovedEventArgs) Handles TokenEdit1.Properties.TokenRemoved
|
|
||||||
' Dim oEditor As TokenEdit = sender
|
|
||||||
' SetNewTokens(oEditor)
|
|
||||||
'End Sub
|
|
||||||
|
|
||||||
Private Sub SetNewTokens(pEditor As TokenEdit)
|
|
||||||
Dim oLastToken = pEditor.GetTokenList().LastOrDefault()
|
|
||||||
pEditor.Properties.BeginUpdate()
|
|
||||||
|
|
||||||
If pEditor.GetTokenList().Count > 0 Then
|
|
||||||
SetTokens(pEditor, TokenListDefault)
|
|
||||||
Search.InputMode = InputMode.Default
|
|
||||||
Else
|
|
||||||
SetTokens(pEditor, New Dictionary(Of String, Object))
|
|
||||||
Search.InputMode = InputMode.Default
|
|
||||||
End If
|
|
||||||
|
|
||||||
'If oLastToken IsNot Nothing Then
|
|
||||||
' Select Case oLastToken.Value.GetType
|
|
||||||
|
|
||||||
' Case GetType(AttributeKeyToken)
|
|
||||||
' ' After the attribute key comes an operator
|
|
||||||
' SetTokens(pEditor, Search.GetOperatorTokens(GetType(String)))
|
|
||||||
' Search.InputMode = InputMode.Operator
|
|
||||||
|
|
||||||
' Case GetType(AttributeOperatorToken)
|
|
||||||
' ' After the attribute operator comes a value
|
|
||||||
' SetTokens(pEditor, TokenListAttrValues)
|
|
||||||
' Search.InputMode = InputMode.Value
|
|
||||||
|
|
||||||
' Case GetType(AttributeValueToken)
|
|
||||||
' ' After the attribute value comes another value
|
|
||||||
' SetTokens(pEditor, TokenListAttrValues)
|
|
||||||
' Search.InputMode = InputMode.Value
|
|
||||||
|
|
||||||
' Case Else
|
|
||||||
' SetTokens(pEditor, TokenListDefault)
|
|
||||||
' Search.InputMode = InputMode.Default
|
|
||||||
|
|
||||||
' End Select
|
|
||||||
'Else
|
|
||||||
' SetTokens(pEditor, TokenListDefault)
|
|
||||||
' Search.InputMode = InputMode.Default
|
|
||||||
'End If
|
|
||||||
|
|
||||||
pEditor.Properties.EndUpdate()
|
|
||||||
End Sub
|
|
||||||
|
|
||||||
Private Sub SearchControl2_CustomDrawTokenGlyph(sender As Object, e As TokenEditCustomDrawTokenGlyphEventArgs) Handles TokenEdit1.CustomDrawTokenGlyph
|
|
||||||
' Set Background according to token type
|
' Set Background according to token type
|
||||||
Select Case e.Value.GetType()
|
Select Case e.Value.GetType()
|
||||||
Case GetType(AttributeValueToken)
|
Case GetType(AttributeValueToken)
|
||||||
@ -355,6 +306,4 @@ Public Class frmFlowSearch2
|
|||||||
' This fixes: https://supportcenter.devexpress.com/ticket/details/t215578/tokenedit-glyph-is-not-visible-when-customdrawtokentext-is-used
|
' This fixes: https://supportcenter.devexpress.com/ticket/details/t215578/tokenedit-glyph-is-not-visible-when-customdrawtokentext-is-used
|
||||||
e.DefaultDraw()
|
e.DefaultDraw()
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
|
|
||||||
End Class
|
End Class
|
||||||
75
GUIs.ZooFlow/Search/frmFlowSearch2/TokenEditEx.vb
Normal file
75
GUIs.ZooFlow/Search/frmFlowSearch2/TokenEditEx.vb
Normal file
@ -0,0 +1,75 @@
|
|||||||
|
Imports System.ComponentModel
|
||||||
|
Imports DevExpress.XtraEditors
|
||||||
|
Imports DevExpress.XtraEditors.Drawing
|
||||||
|
Imports DevExpress.XtraEditors.Registrator
|
||||||
|
Imports DevExpress.XtraEditors.Repository
|
||||||
|
Imports DevExpress.XtraEditors.ViewInfo
|
||||||
|
|
||||||
|
Public Class RepositoryItemTokenEditEx
|
||||||
|
Inherits RepositoryItemTokenEdit
|
||||||
|
|
||||||
|
' The unique name for the custom editor
|
||||||
|
Public Const CustomEditName As String = "TokenEditEx"
|
||||||
|
|
||||||
|
Shared Sub New()
|
||||||
|
RegisterTokenEditEx()
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
' Return the unique name
|
||||||
|
Public Overrides ReadOnly Property EditorTypeName() As String
|
||||||
|
Get
|
||||||
|
Return CustomEditName
|
||||||
|
End Get
|
||||||
|
End Property
|
||||||
|
|
||||||
|
Public Shared Sub RegisterTokenEditEx()
|
||||||
|
EditorRegistrationInfo.Default.Editors.Add(
|
||||||
|
New EditorClassInfo(CustomEditName,
|
||||||
|
GetType(TokenEditEx),
|
||||||
|
GetType(RepositoryItemTokenEditEx),
|
||||||
|
GetType(TokenEditViewInfoEx),
|
||||||
|
New TokenEditPainter,
|
||||||
|
True))
|
||||||
|
End Sub
|
||||||
|
End Class
|
||||||
|
|
||||||
|
Public Class TokenEditViewInfoEx
|
||||||
|
Inherits TokenEditViewInfo
|
||||||
|
|
||||||
|
Public Sub New(item As RepositoryItem)
|
||||||
|
MyBase.New(item)
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Protected Overrides Function CalcItemSizeCore(token As TokenEditToken) As Size
|
||||||
|
Dim oSize = MyBase.CalcItemSizeCore(token)
|
||||||
|
oSize.Width += 15
|
||||||
|
Return oSize
|
||||||
|
End Function
|
||||||
|
End Class
|
||||||
|
|
||||||
|
|
||||||
|
<ToolboxItem(true)>
|
||||||
|
Public Class TokenEditEx
|
||||||
|
Inherits TokenEdit
|
||||||
|
|
||||||
|
Shared Sub New()
|
||||||
|
RepositoryItemTokenEditEx.RegisterTokenEditEx()
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Public Sub New()
|
||||||
|
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Public Overrides ReadOnly Property EditorTypeName() As String
|
||||||
|
Get
|
||||||
|
Return RepositoryItemTokenEditEx.CustomEditName
|
||||||
|
End Get
|
||||||
|
End Property
|
||||||
|
|
||||||
|
<DesignerSerializationVisibility(DesignerSerializationVisibility.Content)>
|
||||||
|
Public Shadows ReadOnly Property Properties As RepositoryItemTokenEditEx
|
||||||
|
Get
|
||||||
|
Return TryCast(MyBase.Properties, RepositoryItemTokenEditEx)
|
||||||
|
End Get
|
||||||
|
End Property
|
||||||
|
End Class
|
||||||
@ -351,6 +351,9 @@
|
|||||||
<DependentUpon>MyDataset.xsd</DependentUpon>
|
<DependentUpon>MyDataset.xsd</DependentUpon>
|
||||||
</Compile>
|
</Compile>
|
||||||
<Compile Include="Queries\ClassTables.vb" />
|
<Compile Include="Queries\ClassTables.vb" />
|
||||||
|
<Compile Include="Search\frmFlowSearch2\TokenEditEx.vb">
|
||||||
|
<SubType>Component</SubType>
|
||||||
|
</Compile>
|
||||||
<Compile Include="Search\Old\frmFlowSearch.Designer.vb">
|
<Compile Include="Search\Old\frmFlowSearch.Designer.vb">
|
||||||
<DependentUpon>frmFlowSearch.vb</DependentUpon>
|
<DependentUpon>frmFlowSearch.vb</DependentUpon>
|
||||||
</Compile>
|
</Compile>
|
||||||
@ -455,7 +458,6 @@
|
|||||||
<Compile Include="My Project\AssemblyInfo.vb" />
|
<Compile Include="My Project\AssemblyInfo.vb" />
|
||||||
<Compile Include="MyApplication.vb" />
|
<Compile Include="MyApplication.vb" />
|
||||||
<Compile Include="Queries\ClassQueries.vb" />
|
<Compile Include="Queries\ClassQueries.vb" />
|
||||||
<Compile Include="Search\Test\Search.vb" />
|
|
||||||
<Compile Include="Search\Test\SearchCriteria.vb" />
|
<Compile Include="Search\Test\SearchCriteria.vb" />
|
||||||
<Compile Include="Search\Test\SearchFilter.vb" />
|
<Compile Include="Search\Test\SearchFilter.vb" />
|
||||||
<Compile Include="Search\SearchRunner.vb" />
|
<Compile Include="Search\SearchRunner.vb" />
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user