Imports System
Imports System.ComponentModel

Imports DevExpress.Xpo
Imports DevExpress.Data.Filtering

Imports DevExpress.ExpressApp
Imports DevExpress.Persistent.Base
Imports DevExpress.Persistent.BaseImpl
Imports DevExpress.Persistent.Validation
Imports DevExpress.ExpressApp.ConditionalAppearance

Public Enum DashboardViewMode
    Viewer = 0
    Designer = 1
End Enum

<DefaultClassOptions()> _
<CreatableItem(False)> _
<NavigationItem(False)> _
<NonPersistent()> _
<Appearance("Hide DashboardDesigner, when DashboardViewMode = 0", AppearanceItemType.ViewItem, "DashboardViewMode = 0", TargetItems:="DashboardDesigner", visibility:=Editors.ViewItemVisibility.Hide)> _
<Appearance("Hide DashboardViewer, when DashboardViewMode = 1", AppearanceItemType.ViewItem, "DashboardViewMode = 1", TargetItems:="DashboardViewer", visibility:=Editors.ViewItemVisibility.Hide)> _
Public Class Dashboard
    Inherits BaseObject

    Private _DashboardViewMode As DashboardViewMode
    Private _DashboardViewer As String
    Private _DashboardDesigner As String
    Private _SQLServer As String
    Private _SQLType As eSQLType
    Private _Database As String
    Private _UserName As String
    Private _Password As String
    Private _XMLFileData As FileData
    Private _Object_Oid As String
    Private _Object_Type As System.Type
    Private _IsNewDashboard As Boolean

    Public Sub New(ByVal session As Session)
        MyBase.New(session)
    End Sub
    Public Overrides Sub AfterConstruction()
        MyBase.AfterConstruction()
        IsNewDashboard = False
    End Sub

    <ImmediatePostData()> _
    Property DashboardViewMode As DashboardViewMode
        Get
            Return _DashboardViewMode
        End Get
        Set(value As DashboardViewMode)
            SetPropertyValue("DashboardViewMode", _DashboardViewMode, value)
        End Set
    End Property
    <Size(-1)> _
    Property DashboardViewer As String
        Get
            Return _DashboardViewer
        End Get
        Set(value As String)
            SetPropertyValue("DashboardViewer", _DashboardViewer, value)
        End Set
    End Property
    <Size(-1)> _
    Property DashboardDesigner As String
        Get
            Return _DashboardDesigner
        End Get
        Set(value As String)
            SetPropertyValue("DashboardDesigner", _DashboardDesigner, value)
        End Set
    End Property
    Property SQLServer As String
        Get
            Return _SQLServer
        End Get
        Set(value As String)
            SetPropertyValue("SQLServer", _SQLServer, value)
        End Set
    End Property
    Property SQLType As eSQLType
        Get
            Return _SQLType
        End Get
        Set(value As eSQLType)
            SetPropertyValue("SQLType", _SQLType, value)
        End Set
    End Property
    Property Database As String
        Get
            Return _Database
        End Get
        Set(value As String)
            SetPropertyValue("Database", _Database, value)
        End Set
    End Property
    Property UserName As String
        Get
            Return _UserName
        End Get
        Set(value As String)
            SetPropertyValue("UserName", _UserName, value)
        End Set
    End Property
    Property Password As String
        Get
            Return _Password
        End Get
        Set(value As String)
            SetPropertyValue("Password", _Password, value)
        End Set
    End Property
    Property XMLFileData As FileData
        Get
            Return _XMLFileData
        End Get
        Set(value As FileData)
            SetPropertyValue("XMLFileData", _XMLFileData, value)
        End Set
    End Property
    Property Object_Oid As String
        Get
            Return _Object_Oid
        End Get
        Set(value As String)
            SetPropertyValue("Object_Oid", _Object_Oid, value)
        End Set
    End Property
    Property Object_Type As System.Type
        Get
            Return _Object_Type
        End Get
        Set(value As System.Type)
            SetPropertyValue("Object_Type", _Object_Type, value)
        End Set
    End Property
    Property IsNewDashboard As Boolean
        Get
            Return _IsNewDashboard
        End Get
        Set(value As Boolean)
            SetPropertyValue("IsNewDashboard", _IsNewDashboard, value)
        End Set
    End Property
End Class
