Option Strict On
Option Explicit On

Imports System
Imports System.Collections.Generic
Imports System.Globalization
Imports System.Windows.Forms
Imports Nexamas.UI.Architecture
Imports Nexamas.UI.Composition
Imports Nexamas.UI.Controls
Imports Nexamas.UI.General
Imports Nexamas.UI.Layout
Imports Nexamas.UI.Rendering
Imports Nexamas.UI.TextRendering
Imports Nexamas.UI.Theming
Imports Nexamas.UI.Values
Imports SkiaSharp

Namespace Nexamas.UI.Components

    Partial Public NotInheritable Class MASDataForm

#Region "Item Model"

        Private NotInheritable Class FieldEntry
            Friend Sub New(label As String,
                           valueText As String,
                           kind As MASDataFormFieldKind,
                           state As MASDataFormFieldState,
                           helperText As String,
                           required As Boolean)
                Dim normalizedKind As MASDataFormFieldKind = MASFormBuilderFieldPolicy.NormalizeKind(kind)
                Dim normalizedState As MASDataFormFieldState = MASFormBuilderFieldPolicy.NormalizeState(state, required)
                Me.Label = MASFormBuilderFieldPolicy.NormalizeLabel(label)
                Me.ValueText = MASFormBuilderFieldPolicy.NormalizeValueText(valueText, normalizedKind)
                Me.Kind = normalizedKind
                Me.State = normalizedState
                Me.HelperText = MASFormBuilderFieldPolicy.NormalizeHelperText(helperText)
                Me.Required = MASFormBuilderFieldPolicy.NormalizeRequired(required, normalizedState)
            End Sub

            Friend ReadOnly Property Label As String
            Friend ReadOnly Property ValueText As String
            Friend ReadOnly Property Kind As MASDataFormFieldKind
            Friend ReadOnly Property State As MASDataFormFieldState
            Friend ReadOnly Property HelperText As String
            Friend ReadOnly Property Required As Boolean
        End Class

#End Region

    End Class

End Namespace
