Option Strict On
Option Explicit On

Namespace Nexamas.UI.Controls

    Public NotInheritable Class MASTabItem

        Public Sub New(text As String,
                       Optional key As String = "",
                       Optional enabled As Boolean = True)

            Me.Text = If(text, String.Empty)
            Me.Key = If(key, String.Empty)
            Me.Enabled = enabled
        End Sub

        Public Property Text As String
        Public Property Key As String
        Public Property Enabled As Boolean = True

#Region "SDK Fluent API"

        Public Shared Function Create(text As String,
                                      Optional key As String = "",
                                      Optional enabled As Boolean = True) As MASTabItem

            Return New MASTabItem(text, key, enabled)
        End Function

        Public Function WithText(text As String) As MASTabItem
            Me.Text = If(text, String.Empty)
            Return Me
        End Function

        Public Function WithKey(key As String) As MASTabItem
            Me.Key = If(key, String.Empty)
            Return Me
        End Function

        Public Function EnabledItem(Optional value As Boolean = True) As MASTabItem
            Me.Enabled = value
            Return Me
        End Function

        Public Function DisabledItem() As MASTabItem
            Me.Enabled = False
            Return Me
        End Function

#End Region

    End Class

End Namespace