165 lines
6.2 KiB
VB.net
165 lines
6.2 KiB
VB.net
Imports System.Windows.Forms
|
|
Imports DevExpress.Utils
|
|
Imports DevExpress.XtraBars.Docking
|
|
Imports DevExpress.XtraGrid.Views.BandedGrid
|
|
Imports DevExpress.XtraGrid.Views.Grid
|
|
Imports DigitalData.Modules.Base
|
|
Imports DigitalData.Modules.Config
|
|
Imports DigitalData.Modules.Logging
|
|
Imports DigitalData.Modules.Language
|
|
|
|
Namespace DocumentResultList
|
|
Public Class Layout
|
|
Inherits BaseClass
|
|
|
|
Private ReadOnly Config As ConfigManager(Of Config)
|
|
Private ReadOnly GridViews As List(Of GridView)
|
|
|
|
Public Sub New(pLogConfig As LogConfig, pConfig As ConfigManager(Of DocumentResultList.Config), pGridViews As List(Of GridView))
|
|
MyBase.New(pLogConfig)
|
|
Config = pConfig
|
|
GridViews = pGridViews
|
|
End Sub
|
|
|
|
#Region "Saving and Restoring layout"
|
|
Public Sub Workspace_Save(pWorkspaceManager As WorkspaceManager)
|
|
Try
|
|
Dim oFileName = GetWorkspace_LayoutName()
|
|
pWorkspaceManager.SaveWorkspaces(oFileName)
|
|
Catch ex As Exception
|
|
Logger.Error(ex)
|
|
Logger.Info("Error while restoring Workspaces: " & ex.Message)
|
|
End Try
|
|
End Sub
|
|
|
|
Public Sub Workspace_Restore(pWorkspaceManager As WorkspaceManager)
|
|
Try
|
|
Dim oFileName = GetWorkspace_LayoutName()
|
|
If IO.File.Exists(oFileName) Then
|
|
pWorkspaceManager.LoadWorkspaces(oFileName)
|
|
End If
|
|
Catch ex As Exception
|
|
Logger.Error(ex)
|
|
Logger.Info("Error while restoring Workspaces: " & ex.Message)
|
|
End Try
|
|
End Sub
|
|
|
|
Public Sub DockManager_SaveLayout(pDockManager As DockManager)
|
|
Try
|
|
Dim oFileName As String = GetDockmanager_LayoutName()
|
|
pDockManager.SaveLayoutToXml(oFileName)
|
|
Catch ex As Exception
|
|
Logger.Error(ex)
|
|
Logger.Info("Error while saving GridLayout: " & ex.Message)
|
|
End Try
|
|
End Sub
|
|
|
|
Public Sub DockManager_RestoreLayout(pDockManager As DockManager)
|
|
Try
|
|
Dim oFilename As String = GetDockmanager_LayoutName()
|
|
If IO.File.Exists(oFilename) Then
|
|
pDockManager.RestoreLayoutFromXml(oFilename)
|
|
End If
|
|
Catch ex As Exception
|
|
Logger.Error(ex)
|
|
Logger.Info("Error while restoring GridLayout: " & ex.Message)
|
|
End Try
|
|
End Sub
|
|
|
|
Public Sub GridView_RestoreLayout(pGridView As GridView)
|
|
Try
|
|
Dim oLayoutFile As String = GetGrid_LayoutName(pGridView)
|
|
If IO.File.Exists(oLayoutFile) Then
|
|
pGridView.RestoreLayoutFromXml(oLayoutFile, OptionsLayoutBase.FullLayout)
|
|
End If
|
|
Catch ex As Exception
|
|
Logger.Error(ex)
|
|
Logger.Info("Error while restoring layout: " & ex.Message)
|
|
End Try
|
|
End Sub
|
|
|
|
Public Sub GridView_SaveLayout(pGridView As GridView)
|
|
Try
|
|
Dim oFileName As String = GetGrid_LayoutName(pGridView)
|
|
pGridView.SaveLayoutToXml(oFileName, OptionsLayoutBase.FullLayout)
|
|
Catch ex As Exception
|
|
Logger.Error(ex)
|
|
Logger.Info("Error while saving GridLayout: " & ex.Message)
|
|
End Try
|
|
End Sub
|
|
|
|
Public Function GetDockmanager_LayoutName() As String
|
|
Dim Filename As String = $"DockManagerDocResult_UserLayout.xml"
|
|
Dim oDirectory As String = IO.Path.GetDirectoryName(Config.UserConfigPath)
|
|
Return IO.Path.Combine(oDirectory, Filename)
|
|
End Function
|
|
|
|
Public Function GetGrid_LayoutName(pGridView As GridView) As String
|
|
Dim Filename As String = $"DevExpressGridViewDocResult_{pGridView.Name}UserLayout.xml"
|
|
Dim oDirectory As String = IO.Path.GetDirectoryName(Config.UserConfigPath)
|
|
Return IO.Path.Combine(oDirectory, Filename)
|
|
End Function
|
|
|
|
Public Function GetWorkspace_LayoutName() As String
|
|
Dim Filename As String = $"Workspace_UserLayout.xml"
|
|
Dim oDirectory As String = IO.Path.GetDirectoryName(Config.UserConfigPath)
|
|
Return IO.Path.Combine(oDirectory, Filename)
|
|
End Function
|
|
|
|
Public Sub LoadWindowLocationAndSize(ByRef pForm As Form)
|
|
If Utils.IsVisibleOnAnyScreen(Config.Config.WindowLocation) Then
|
|
If Utils.LocationIsVisible(Config.Config.WindowLocation) Then
|
|
pForm.Location = Config.Config.WindowLocation
|
|
End If
|
|
If Utils.SizeIsVisible(Config.Config.WindowSize) Then
|
|
pForm.Size = Config.Config.WindowSize
|
|
End If
|
|
End If
|
|
End Sub
|
|
|
|
Public Sub SaveWindowLocationAndSize(ByRef pForm As Form)
|
|
Config.Config.WindowLocation = pForm.Location
|
|
Config.Config.WindowSize = pForm.Size
|
|
Config.Save()
|
|
End Sub
|
|
#End Region
|
|
|
|
Public Sub SetGroupPanelVisible(pVisible As Boolean)
|
|
For Each oView In GridViews
|
|
oView.OptionsView.ShowGroupPanel = pVisible
|
|
Next
|
|
End Sub
|
|
|
|
Public Function GetGroupPanelVisible() As Boolean
|
|
Dim oView = GridViews.First()
|
|
Return oView.OptionsView.ShowGroupPanel
|
|
End Function
|
|
|
|
Public Sub SetFilterRowVisible(pVisible As Boolean)
|
|
For Each oView In GridViews
|
|
oView.OptionsView.ShowAutoFilterRow = pVisible
|
|
Next
|
|
End Sub
|
|
|
|
Public Function GetFilterRowVisible() As Boolean
|
|
Dim oView = GridViews.First()
|
|
Return oView.OptionsView.ShowAutoFilterRow
|
|
End Function
|
|
|
|
Public Sub SetBandTitleVisible(pVisible As Boolean)
|
|
For Each oView In GridViews
|
|
DirectCast(oView, BandedGridView).OptionsView.ShowBands = pVisible
|
|
Next
|
|
End Sub
|
|
|
|
Public Function GetBandTitleVisible() As Boolean
|
|
Dim oView = GridViews.First()
|
|
Return DirectCast(oView, BandedGridView).OptionsView.ShowBands
|
|
End Function
|
|
|
|
End Class
|
|
|
|
|
|
|
|
|
|
End Namespace |