jj: first pass of final index redesign
This commit is contained in:
@@ -1,14 +1,25 @@
|
||||
Imports System.ComponentModel
|
||||
Imports System.Drawing.Design
|
||||
Imports System.Globalization
|
||||
Imports FormsUtils
|
||||
|
||||
Module ModuleFinalIndexProperties
|
||||
Public Const INDEX_TYPE_STRING = 1
|
||||
Public Const INDEX_TYPE_INTEGER = 2
|
||||
Public Const INDEX_TYPE_FLOAT = 3
|
||||
Public Const INDEX_TYPE_BOOLEAN = 4
|
||||
Public Const INDEX_TYPE_DATE = 5
|
||||
Public Const INDEX_TYPE_VECTOR_INTEGER = 4107
|
||||
Public Const INDEX_TYPE_VECTOR_STRING = 4097
|
||||
Public Const INDEX_TYPE_VECTOR_BOOLEAN = 4100
|
||||
Public Const INDEX_TYPE_VECTOR_DATE = 4101
|
||||
|
||||
<TypeConverter(GetType(PropertiesDeluxeTypeConverter))>
|
||||
Public Class FinalIndexProperties
|
||||
<Category("Allgemein")>
|
||||
<Category("Information")>
|
||||
<[ReadOnly](True)>
|
||||
Public Property GUID As Integer
|
||||
<Category("Allgemein")>
|
||||
<Category("Information")>
|
||||
<[ReadOnly](True)>
|
||||
Public Property ConnectionId As Integer
|
||||
|
||||
@@ -20,51 +31,98 @@ Module ModuleFinalIndexProperties
|
||||
''' <summary>
|
||||
''' Eigenschaft, die den SQL Editor anzeigt
|
||||
''' </summary>
|
||||
<Category("Daten")>
|
||||
<Category("Daten - SQL")>
|
||||
Public Property SQLCommand As SQLValue
|
||||
<Category("Daten")>
|
||||
Public Property StaticValue As String
|
||||
|
||||
''' <summary>
|
||||
''' Eigenschaft, die eine Liste von Indicies anzeigt
|
||||
''' </summary>
|
||||
' Eigenschaften für die verschiedenen Index-Typen
|
||||
<DisplayName("Value")>
|
||||
<Category("Daten - Fester Wert")>
|
||||
<PropertyAttributesProvider("IndexTypeStringProvider")>
|
||||
Public Property StringValue As String
|
||||
|
||||
<DisplayName("Value")>
|
||||
<Category("Daten - Fester Wert")>
|
||||
<PropertyAttributesProvider("IndexTypeBooleanProvider")>
|
||||
Public Property BoolValue As Boolean
|
||||
|
||||
<DisplayName("Value")>
|
||||
<Category("Daten - Fester Wert")>
|
||||
<PropertyAttributesProvider("IndexTypeFloatProvider")>
|
||||
Public Property FloatValue As Double
|
||||
|
||||
<DisplayName("Value")>
|
||||
<Category("Daten - Fester Wert")>
|
||||
<PropertyAttributesProvider("IndexTypeDateProvider")>
|
||||
Public Property DateValue As Date
|
||||
|
||||
<DisplayName("Value")>
|
||||
<Category("Daten - Fester Wert")>
|
||||
<PropertyAttributesProvider("IndexTypeIntegerProvider")>
|
||||
Public Property IntegerValue As Integer
|
||||
|
||||
<Category("Index")>
|
||||
<TypeConverter(GetType(IndexListConverter))>
|
||||
Public Property IndexName As String
|
||||
<Category("Index")>
|
||||
Public Property VectorIndex As Boolean
|
||||
|
||||
''' <summary>
|
||||
''' Diese Eigenschaft enthält die auswählbaren Indicies, die für das Control verfügbar sind. Wird nicht direkt angezeigt.
|
||||
''' </summary>
|
||||
' Eigenschaften für die Liste der Indicies
|
||||
<Browsable(False)>
|
||||
Public Property Indicies As List(Of String)
|
||||
<Browsable(False)>
|
||||
Public Property IndiciesType As List(Of Integer)
|
||||
|
||||
Public Sub MaybeSetReadOnly(attrs As PropertyAttributes)
|
||||
Dim hasSQLValue As Boolean = (SQLCommand.Value <> String.Empty)
|
||||
|
||||
If hasSQLValue Then
|
||||
attrs.IsReadOnly = True
|
||||
Else
|
||||
attrs.IsReadOnly = False
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Public Class IndexListConverter
|
||||
Inherits TypeConverter
|
||||
Public Sub MaybeSetBrowsable(attrs As PropertyAttributes, indexType As Integer())
|
||||
Dim i As Integer = Indicies.IndexOf(IndexName)
|
||||
|
||||
Public Overrides Function GetStandardValuesSupported(context As ITypeDescriptorContext) As Boolean
|
||||
Return True
|
||||
End Function
|
||||
' IndexName wurde nicth gefunden oder ist leerer/ungültiger String
|
||||
If i < 0 Then
|
||||
attrs.IsBrowsable = False
|
||||
Exit Sub
|
||||
End If
|
||||
|
||||
Public Overrides Function GetStandardValues(context As ITypeDescriptorContext) As StandardValuesCollection
|
||||
Dim indexList = DirectCast(context.Instance, FinalIndexProperties).Indicies
|
||||
Dim values As New StandardValuesCollection(indexList)
|
||||
Return values
|
||||
End Function
|
||||
Dim type As Integer = IndiciesType.Item(i)
|
||||
|
||||
Public Overrides Function ConvertTo(context As ITypeDescriptorContext, culture As CultureInfo, value As Object, destinationType As Type) As Object
|
||||
If IsNothing(value) Then
|
||||
Return ""
|
||||
Else
|
||||
Return value.ToString()
|
||||
End If
|
||||
End Function
|
||||
End Class
|
||||
If indexType.Contains(type) Then
|
||||
attrs.IsBrowsable = True
|
||||
Else
|
||||
attrs.IsBrowsable = False
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Public Sub IndexTypeBooleanProvider(attrs As PropertyAttributes)
|
||||
MaybeSetBrowsable(attrs, {INDEX_TYPE_BOOLEAN, INDEX_TYPE_VECTOR_BOOLEAN})
|
||||
MaybeSetReadOnly(attrs)
|
||||
End Sub
|
||||
|
||||
Public Sub IndexTypeStringProvider(attrs As PropertyAttributes)
|
||||
MaybeSetBrowsable(attrs, {INDEX_TYPE_STRING, INDEX_TYPE_VECTOR_STRING})
|
||||
MaybeSetReadOnly(attrs)
|
||||
End Sub
|
||||
|
||||
Public Sub IndexTypeFloatProvider(attrs As PropertyAttributes)
|
||||
MaybeSetBrowsable(attrs, {INDEX_TYPE_FLOAT})
|
||||
MaybeSetReadOnly(attrs)
|
||||
End Sub
|
||||
|
||||
Public Sub IndexTypeIntegerProvider(attrs As PropertyAttributes)
|
||||
MaybeSetBrowsable(attrs, {INDEX_TYPE_INTEGER, INDEX_TYPE_VECTOR_INTEGER})
|
||||
MaybeSetReadOnly(attrs)
|
||||
End Sub
|
||||
|
||||
Public Sub IndexTypeDateProvider(attrs As PropertyAttributes)
|
||||
MaybeSetBrowsable(attrs, {INDEX_TYPE_DATE, INDEX_TYPE_VECTOR_DATE})
|
||||
MaybeSetReadOnly(attrs)
|
||||
End Sub
|
||||
End Class
|
||||
|
||||
|
||||
End Module
|
||||
|
||||
Reference in New Issue
Block a user