121 lines
4.8 KiB
VB.net
121 lines
4.8 KiB
VB.net
Imports System.Collections
|
|
Imports System.ComponentModel
|
|
Imports DevExpress.XtraEditors
|
|
Imports DigitalData.GUIs.ZooFlow.Search
|
|
Imports DigitalData.GUIs.ZooFlow.Search.SearchToken
|
|
Imports DigitalData.Modules.EDMI.API
|
|
|
|
Public Class frmSearchNeu
|
|
Private Database As DatabaseWithFallback
|
|
|
|
Private TokenListDefault As New Dictionary(Of String, Object)
|
|
Private TokenListOperands As New Dictionary(Of String, Object)
|
|
Private TokenListAttrValues As New Dictionary(Of String, Object)
|
|
|
|
|
|
|
|
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)
|
|
|
|
'Dim oTokens = Search.GetAttributeTokens()
|
|
'AddTokens(SearchControl2, oTokens)
|
|
|
|
'GridControl1.DataSource = Search.Query
|
|
'cmbSelect.SelectedIndex = 0
|
|
End Sub
|
|
|
|
Private Sub SetTokens(Editor As TokenEdit, Tokens As Dictionary(Of String, Object))
|
|
Editor.Properties.Tokens.Clear()
|
|
AddTokens(Editor, Tokens)
|
|
End Sub
|
|
|
|
Private Sub AddTokens(Editor As TokenEdit, Tokens As Dictionary(Of String, Object))
|
|
For Each oToken In Tokens
|
|
Dim oTokenEditToken = New TokenEditToken With {
|
|
.Description = oToken.Key,
|
|
.Value = oToken.Value
|
|
}
|
|
Editor.Properties.Tokens.Add(oTokenEditToken)
|
|
Next
|
|
End Sub
|
|
|
|
Private Sub SearchControl2_Properties_TokenAdded(sender As Object, e As DevExpress.XtraEditors.TokenEditTokenAddedEventArgs) Handles SearchControl2.Properties.TokenAdded
|
|
Dim oEditor As TokenEdit = sender
|
|
SetNewTokens(oEditor)
|
|
End Sub
|
|
|
|
Private Sub SearchControl2_Properties_TokenRemoved(sender As Object, e As TokenEditTokenRemovedEventArgs) Handles SearchControl2.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 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 SearchControl2.CustomDrawTokenGlyph
|
|
'' Set Background according to token type
|
|
'Select Case e.Value.GetType()
|
|
' Case GetType(AttributeKeyToken)
|
|
' e.Graphics.FillRectangle(New SolidBrush(ColorTranslator.FromHtml("#F87171")), e.Bounds)
|
|
|
|
' Case GetType(AttributeOperatorToken)
|
|
' e.Graphics.FillRectangle(New SolidBrush(ColorTranslator.FromHtml("#34D399")), e.Bounds)
|
|
|
|
' Case GetType(AttributeValueToken)
|
|
' e.Graphics.FillRectangle(New SolidBrush(ColorTranslator.FromHtml("#60A5FA")), e.Bounds)
|
|
' Case Else
|
|
'End Select
|
|
|
|
'' Draw the glyph on top
|
|
'' This fixes: https://supportcenter.devexpress.com/ticket/details/t215578/tokenedit-glyph-is-not-visible-when-customdrawtokentext-is-used
|
|
'e.DefaultDraw()
|
|
End Sub
|
|
|
|
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
|
|
' Search.Query.Add(New SearchCriteria With {
|
|
' .ParenLeft = False,
|
|
' .Key = "test",
|
|
' .Op = OperatorToken.Equals,
|
|
' .Value = "test",
|
|
' .ParentRight = False
|
|
' })
|
|
'End If
|
|
End Sub
|
|
|
|
Private Sub RibbonControl1_Click(sender As Object, e As EventArgs) Handles RibbonControl1.Click
|
|
|
|
End Sub
|
|
End Class |