TaskFlow/app/DD_PM_WINDREAM/ModuleFinalIndexProperties.vb
2018-06-21 15:26:17 +02:00

129 lines
4.4 KiB
VB.net

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("Information")>
<[ReadOnly](True)>
Public Property GUID As Integer
<Category("Information")>
<[ReadOnly](True)>
Public Property ConnectionId As Integer
<Category("Sonstiges")>
Public Property Description As String
<Category("Sonstiges")>
Public Property Active As Boolean
''' <summary>
''' Eigenschaft, die den SQL Editor anzeigt
''' </summary>
<Category("Daten - SQL")>
Public Property SQLCommand As SQLValue
' 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
' 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 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, {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