Modules/EDMI_ClientSuite/ClassLayout.vb

67 lines
2.7 KiB
VB.net

Imports System.IO
Imports DevExpress.XtraGrid.Views.Base
''' <summary>
''' Helper Class to save DevExpress layouts
'''
''' Example:
'''
''' Layout 1 (for frmMain)
''' ----------------------------------------------
''' | Component 1 Component 2 |
''' | |-------------| |----------------| |
''' | | MainGrid | | DocumentGrid | |
''' | |-------------| |----------------| |
''' | |
''' |---------------------------------------------
''' </summary>
Public Class ClassLayout
Public Enum GroupName
LayoutMain
LayoutUserManager
End Enum
Public Enum LayoutComponent
DockManager
DocumentManager
End Enum
''' <summary>
''' Returns a path for the chosen Devexpress layout file
''' </summary>
''' <param name="Group">The Group to which the the component belongs to. For example, a form could be a Layout</param>
''' <param name="Component">The component to which the layout belongs to</param>
''' <returns></returns>
Public Shared Function GetLayoutPath(Group As GroupName, Component As LayoutComponent) As String
Dim oFileName As String = $"{Group.ToString}-{Component.ToString}.xml"
Return Path.Combine(GetLayoutDirectory(), oFileName)
End Function
''' <summary>
''' Returns a path for the chosen Devexpress layout file
''' </summary>
''' <param name="Group">The Group to which the the component belongs to. For example, a form could be a Layout</param>
''' <param name="Component">The component to which the layout belongs to</param>
''' <returns></returns>
Public Shared Function GetLayoutPath(Group As GroupName, Component As String) As String
Dim oFileName As String = $"{Group.ToString}-{Component}.xml"
Return Path.Combine(GetLayoutDirectory(), oFileName)
End Function
''' <summary>
''' Returns a path for the chosen Devexpress layout file
''' </summary>
''' <param name="Group">The Group to which the the component belongs to. For example, a form could be a Layout</param>
''' <param name="Component">The component to which the layout belongs to</param>
''' <param name="SubComponent">The sub component under the component</param>
''' <returns></returns>
Public Shared Function GetLayoutPath(Group As GroupName, Component As String, SubComponent As String) As String
Dim oFileName As String = $"{Group.ToString}-{Component}-{SubComponent}.xml"
Return Path.Combine(GetLayoutDirectory(), oFileName)
End Function
Public Shared Function GetLayoutDirectory() As String
Return Path.Combine(Application.UserAppDataPath, ClassConstants.FOLDER_NAME_LAYOUT)
End Function
End Class