Imports System.ComponentModel Imports System.Drawing.Design Imports System.Globalization Imports FormsUtils Module ModuleFinalIndexProperties Public Class FinalIndexProperties <[ReadOnly](True)> Public Property GUID As Integer <[ReadOnly](True)> Public Property ConnectionId As Integer Public Property Description As String Public Property Active As Boolean ''' ''' Eigenschaft, die den SQL Editor anzeigt ''' Public Property SQLCommand As SQLValue ' Eigenschaften für die verschiedenen Index-Typen Public Property StringValue As String Public Property BoolValue As Boolean Public Property FloatValue As Double Public Property DateValue As Date Public Property IntegerValue As Integer Public Property IndexName As String <[ReadOnly](True)> Public Property VectorIndex As Boolean ' Eigenschaften für die Liste der Indicies Public Property Indicies As List(Of String) 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 Sub MaybeSetBrowsable(attrs As PropertyAttributes, indexType As Integer()) Dim i As Integer = Indicies.IndexOf(IndexName) ' IndexName wurde nicth gefunden oder ist leerer/ungültiger String If i < 0 Then attrs.IsBrowsable = False Exit Sub End If Dim type As Integer = IndiciesType.Item(i) If indexType.Contains(type) Then attrs.IsBrowsable = True Else attrs.IsBrowsable = False End If End Sub Public Sub IndexTypeBooleanProvider(attrs As PropertyAttributes) MaybeSetBrowsable(attrs, {ClassFinalIndex.INDEX_TYPE_BOOLEAN, ClassFinalIndex.INDEX_TYPE_VECTOR_BOOLEAN}) MaybeSetReadOnly(attrs) End Sub Public Sub IndexTypeStringProvider(attrs As PropertyAttributes) MaybeSetBrowsable(attrs, {ClassFinalIndex.INDEX_TYPE_STRING, ClassFinalIndex.INDEX_TYPE_VECTOR_STRING}) MaybeSetReadOnly(attrs) End Sub Public Sub IndexTypeFloatProvider(attrs As PropertyAttributes) MaybeSetBrowsable(attrs, {ClassFinalIndex.INDEX_TYPE_FLOAT}) MaybeSetReadOnly(attrs) End Sub Public Sub IndexTypeIntegerProvider(attrs As PropertyAttributes) MaybeSetBrowsable(attrs, {ClassFinalIndex.INDEX_TYPE_INTEGER, ClassFinalIndex.INDEX_TYPE_VECTOR_INTEGER}) MaybeSetReadOnly(attrs) End Sub Public Sub IndexTypeDateProvider(attrs As PropertyAttributes) MaybeSetBrowsable(attrs, {ClassFinalIndex.INDEX_TYPE_DATE, ClassFinalIndex.INDEX_TYPE_VECTOR_DATE}) MaybeSetReadOnly(attrs) End Sub End Class End Module