Common/SQLEditor: add configurable title for auto/manual palceholders

This commit is contained in:
Jonathan Jenne 2022-05-12 11:04:21 +02:00
parent 7b41acf1d7
commit 7c3c2ce9ed
2 changed files with 35 additions and 20 deletions

View File

@ -52,7 +52,7 @@ Namespace SQLEditor
Return oGroup1 Return oGroup1
End Function End Function
Public Function GetManualPlaceholders(pPlaceholders As Dictionary(Of String, String), pPrefix As String) As GalleryItemGroup Public Function GetManualPlaceholders(pPlaceholders As Dictionary(Of String, String), pPrefix As String, pTitle As String) As GalleryItemGroup
Dim oImage As SvgImage = My.Resources.handtool Dim oImage As SvgImage = My.Resources.handtool
Dim oItems As New List(Of GalleryItem)() Dim oItems As New List(Of GalleryItem)()
Dim oPrefix As String = pPrefix Dim oPrefix As String = pPrefix
@ -63,18 +63,18 @@ Namespace SQLEditor
If pPlaceholders.Count > 0 Then If pPlaceholders.Count > 0 Then
For Each oManualPlaceholder In pPlaceholders For Each oManualPlaceholder In pPlaceholders
Dim oPlaceholder = New Placeholder(oManualPlaceholder.Key, "Manuelles Attribut", oPrefix, oManualPlaceholder.Value) Dim oPlaceholder = New Placeholder(oManualPlaceholder.Key, pTitle, oPrefix, oManualPlaceholder.Value)
oItems.Add(GetGalleryItem(oPlaceholder, oImage)) oItems.Add(GetGalleryItem(oPlaceholder, oImage))
Next Next
Else Return Nothing Else Return Nothing
End If End If
Dim oGroup1 = New GalleryItemGroup() With {.Caption = "Manuelle Attribute"} Dim oGroup1 = New GalleryItemGroup() With {.Caption = pTitle}
oGroup1.Items.AddRange(oItems.ToArray) oGroup1.Items.AddRange(oItems.ToArray)
Return oGroup1 Return oGroup1
End Function End Function
Public Function GetAutomaticPlaceholders(pPlaceholders As Dictionary(Of String, String), pPrefix As String) As GalleryItemGroup Public Function GetAutomaticPlaceholders(pPlaceholders As Dictionary(Of String, String), pPrefix As String, pTitle As String) As GalleryItemGroup
Dim oImage As SvgImage = My.Resources.autoarrange Dim oImage As SvgImage = My.Resources.autoarrange
Dim oItems As New List(Of GalleryItem)() Dim oItems As New List(Of GalleryItem)()
Dim oPrefix As String = pPrefix Dim oPrefix As String = pPrefix
@ -85,14 +85,14 @@ Namespace SQLEditor
If pPlaceholders.Count > 0 Then If pPlaceholders.Count > 0 Then
For Each oManualPlaceholder In pPlaceholders For Each oManualPlaceholder In pPlaceholders
Dim oPlaceholder = New Placeholder(oManualPlaceholder.Key, "Automatisches Attribut", oPrefix, oManualPlaceholder.Value) Dim oPlaceholder = New Placeholder(oManualPlaceholder.Key, pTitle, oPrefix, oManualPlaceholder.Value)
oItems.Add(GetGalleryItem(oPlaceholder, oImage)) oItems.Add(GetGalleryItem(oPlaceholder, oImage))
Next Next
Else Return Nothing Else Return Nothing
End If End If
Dim oGroup1 = New GalleryItemGroup() With {.Caption = "Automatisches Attribut"} Dim oGroup1 = New GalleryItemGroup() With {.Caption = pTitle}
oGroup1.Items.AddRange(oItems.ToArray) oGroup1.Items.AddRange(oItems.ToArray)
Return oGroup1 Return oGroup1

View File

@ -23,10 +23,11 @@ Public Class frmSQLEditor
Public Property PlaceholdersManual As Dictionary(Of String, String) Public Property PlaceholdersManual As Dictionary(Of String, String)
Public Property PlaceholdersManualPrefix As String Public Property PlaceholdersManualPrefix As String
Public Property PlaceholdersManualTitle As String = "Manuelles Attribut"
Public Property PlaceholdersAutomatic As Dictionary(Of String, String) Public Property PlaceholdersAutomatic As Dictionary(Of String, String)
Public Property PlaceholdersAutomaticPrefix As String Public Property PlaceholdersAutomaticPrefix As String
Public Property PlaceholdersAutomaticTitle As String = "Automatisches Attribut"
Public Property PlaceholdersWindream As List(Of String) Public Property PlaceholdersWindream As List(Of String)
Public Sub New(pLogConfig As LogConfig, pDatabase As MSSQLServer) Public Sub New(pLogConfig As LogConfig, pDatabase As MSSQLServer)
@ -72,7 +73,10 @@ Public Class frmSQLEditor
End If End If
GalleryConnection.Gallery.Groups.Add(oConnectionGroup) GalleryConnection.Gallery.Groups.Add(oConnectionGroup)
GalleryConnection.Gallery.SetItemCheck(oSelectedItem, True)
If oSelectedItem IsNot Nothing Then
GalleryConnection.Gallery.SetItemCheck(oSelectedItem, True)
End If
Dim oPlaceholderGroups = LoadPlaceholders() Dim oPlaceholderGroups = LoadPlaceholders()
GalleryPlaceholders.Gallery.Groups.AddRange(oPlaceholderGroups.ToArray) GalleryPlaceholders.Gallery.Groups.AddRange(oPlaceholderGroups.ToArray)
@ -104,12 +108,12 @@ Public Class frmSQLEditor
Placeholders.GetUserPlaceholders() Placeholders.GetUserPlaceholders()
} }
Dim oAutomaticAttributes = Placeholders.GetAutomaticPlaceholders(PlaceholdersAutomatic, PlaceholdersAutomaticPrefix) Dim oAutomaticAttributes = Placeholders.GetAutomaticPlaceholders(PlaceholdersAutomatic, PlaceholdersAutomaticPrefix, PlaceholdersAutomaticTitle)
If oAutomaticAttributes IsNot Nothing Then If oAutomaticAttributes IsNot Nothing Then
oPlaceholders.Add(oAutomaticAttributes) oPlaceholders.Add(oAutomaticAttributes)
End If End If
Dim oManualPlaceholders = Placeholders.GetManualPlaceholders(PlaceholdersManual, PlaceholdersManualPrefix) Dim oManualPlaceholders = Placeholders.GetManualPlaceholders(PlaceholdersManual, PlaceholdersManualPrefix, PlaceholdersManualTitle)
If oManualPlaceholders IsNot Nothing Then If oManualPlaceholders IsNot Nothing Then
oPlaceholders.Add(oManualPlaceholders) oPlaceholders.Add(oManualPlaceholders)
End If End If
@ -163,7 +167,11 @@ Public Class frmSQLEditor
Private Sub ClearPlaceholders() Private Sub ClearPlaceholders()
GridPlaceholders.DataSource = New List(Of SQLEditor.Placeholder) Dim oPlaceholders As List(Of SQLEditor.Placeholder) = GridPlaceholders.DataSource
oPlaceholders.ForEach(Sub(placeholder) placeholder.Value = "")
GridPlaceholders.DataSource = oPlaceholders
End Sub End Sub
Private Function GetGalleryItem(pConnection As Connection) As GalleryItem Private Function GetGalleryItem(pConnection As Connection) As GalleryItem
@ -179,6 +187,19 @@ Public Class frmSQLEditor
Private Property LastPatterns As New List(Of Pattern) Private Property LastPatterns As New List(Of Pattern)
Private Sub RichEditControl1_ContentChanged(sender As Object, e As EventArgs) Handles txtSQLCommand.ContentChanged Private Sub RichEditControl1_ContentChanged(sender As Object, e As EventArgs) Handles txtSQLCommand.ContentChanged
UpdatePlaceholders()
End Sub
Private Sub BarButtonItem3_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles btnExecuteSQL.ItemClick
ExecuteSQL()
End Sub
Private Class Connection
Public Property Id As Integer
Public Property Name As String
End Class
Private Sub UpdatePlaceholders()
Dim oSqlText = txtSQLCommand.Document.Text Dim oSqlText = txtSQLCommand.Document.Text
Dim oPatterns = Patterns.GetAllPatterns(oSqlText) Dim oPatterns = Patterns.GetAllPatterns(oSqlText)
@ -196,15 +217,6 @@ Public Class frmSQLEditor
LastPatterns = oPatterns LastPatterns = oPatterns
End Sub End Sub
Private Sub BarButtonItem3_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles btnExecuteSQL.ItemClick
ExecuteSQL()
End Sub
Private Class Connection
Public Property Id As Integer
Public Property Name As String
End Class
Private Sub ExecuteSQL() Private Sub ExecuteSQL()
Try Try
ViewPlaceholders.FocusInvalidRow() ViewPlaceholders.FocusInvalidRow()
@ -234,6 +246,9 @@ Public Class frmSQLEditor
oDatatable = Database.GetDatatable(oSql) oDatatable = Database.GetDatatable(oSql)
End If End If
If ClearPlaceholdersAfterSuccessfulExecute Then
ClearPlaceholders()
End If
Dim oForm As New frmSQLResult(oDatatable) Dim oForm As New frmSQLResult(oDatatable)
oForm.Show() oForm.Show()