Common: Rework of DocumentResultList WIP

This commit is contained in:
Jonathan Jenne
2022-01-18 13:27:20 +01:00
parent febd89a3c0
commit f5ec035772
24 changed files with 486 additions and 477 deletions

View File

@@ -0,0 +1,120 @@
Imports DigitalData.Modules.EDMI.API.Client
Namespace DocumentResultList
Public Class Cache
Implements ICollection(Of Document)
Private Const _DefaultCapacity As Long = 1000
Public Shared ReadOnly Property DefaultCapacity As Long
Get
Return _DefaultCapacity
End Get
End Property
Friend ReadOnly List As New LinkedList(Of Document)
Private ReadOnly Index As New Dictionary(Of String, LinkedListNode(Of Document))
Private ReadOnly Lock As New Object
Public Sub New()
Me.New(_DefaultCapacity)
End Sub
Public Sub New(capacity As Long)
If capacity < 0 Then
Throw New InvalidOperationException("DocumentResultCache capacity must be positive.")
End If
Me.Capacity = capacity
End Sub
Public Event DiscardingOldestItem As EventHandler
Public Property Capacity As Long
Public Property Count As Integer Implements ICollection(Of Document).Count
Public ReadOnly Property Oldest As Document
Get
Return List.First.Value
End Get
End Property
Public Sub Add(pItem As Document) Implements ICollection(Of Document).Add
SyncLock Lock
If Index.ContainsKey(pItem.Id) Then
List.Remove(Index(pItem.Id))
Index(pItem.Id) = List.AddLast(pItem)
Return
End If
If Count >= Capacity AndAlso Capacity <> 0 Then
RaiseEvent DiscardingOldestItem(Me, New EventArgs())
Remove(Oldest)
End If
Index.Add(pItem.Id, List.AddLast(pItem))
If pItem.Contents IsNot Nothing Then
Count += pItem.Contents?.Length
End If
End SyncLock
End Sub
Public Function Contains(pItem As Document) As Boolean Implements ICollection(Of Document).Contains
Return Index.ContainsKey(pItem.Id)
End Function
Public Sub CopyTo(pArray As Document(), pIndex As Integer) Implements ICollection(Of Document).CopyTo
SyncLock Lock
For Each item As Document In Me
pArray(Math.Min(System.Threading.Interlocked.Increment(pIndex), pIndex - 1)) = item
Next
End SyncLock
End Sub
Public Sub Clear() Implements ICollection(Of Document).Clear
SyncLock Lock
List.Clear()
Index.Clear()
End SyncLock
End Sub
Public ReadOnly Property IsReadOnly As Boolean Implements ICollection(Of Document).IsReadOnly
Get
Return False
End Get
End Property
Public Function Remove(pItem As Document) As Boolean Implements ICollection(Of Document).Remove
SyncLock Lock
If Index.ContainsKey(pItem.Id) Then
List.Remove(Index(pItem.Id))
Index.Remove(pItem.Id)
If pItem.Contents IsNot Nothing Then
Count -= pItem.Contents.Length
End If
Return True
End If
Return False
End SyncLock
End Function
Private Iterator Function GetEnumerator() As IEnumerator(Of Document) Implements ICollection(Of Document).GetEnumerator
Dim node As LinkedListNode(Of Document) = List.First
While node IsNot Nothing
Yield node.Value
node = node.[Next]
End While
End Function
Private Function IEnumerable_GetEnumerator() As IEnumerator Implements IEnumerable.GetEnumerator
Return DirectCast(List, IEnumerable).GetEnumerator()
End Function
End Class
End Namespace

View File

@@ -0,0 +1,13 @@
Imports System.Drawing
Namespace DocumentResultList
Public Class Config
Public Property WindowLocation As Point
Public Property WindowSize As Size
Public Property SplitContainer1Distance As Integer = 500
Public Property SplitContainer1Horizontal As Boolean = True
Public Property SplitContainer2Distance As Integer = 250
Public Property SplitContainer2Horizontal As Boolean = False
End Class
End Namespace

View File

@@ -0,0 +1,35 @@
Imports DigitalData.Modules.EDMI.API.Client
Imports DigitalData.Modules.EDMI.API.Rights
Namespace DocumentResultList
Public Class Document
''' <summary>
''' Primary identifier of the Document.
''' Can be a Windream DocId or an IDB ObjectId.
''' </summary>
Public Property Id As Long
Public Property AccessRight As AccessRight
''' <summary>
''' Extension is needed for determining the type of file
''' and showing it in the DocumentViewer
''' </summary>
Public Property Extension As String
''' <summary>
''' Binary contents of the file.
''' </summary>
Public Property Contents As Byte()
' Optional properties
Public Property LastWriteTime As Date = Nothing
Public Property FullPath As String = Nothing
Public Property TempPath As String = Nothing
Public Sub New(pPrimaryKey As Long)
Id = pPrimaryKey
End Sub
End Class
End Namespace

View File

@@ -1,102 +0,0 @@
Imports System.IO
Imports DigitalData.Modules.EDMI.API
Imports DigitalData.Modules.EDMI.API.Client
Imports DigitalData.Modules.EDMI.API.EDMIServiceReference
Imports DigitalData.Modules.Logging
Imports DigitalData.Modules.ZooFlow.Constants
Imports DigitalData.Modules.ZooFlow.State
Public Class DocumentLoader
Inherits Modules.ZooFlow.Base.BaseClass
Private ReadOnly Client As Client
Private ReadOnly Mode As OperationMode
Private ReadOnly User As DigitalData.Modules.ZooFlow.State.UserState
Public Sub New(pLogConfig As LogConfig, pMode As OperationMode, pClient As Client, pUser As DigitalData.Modules.ZooFlow.State.UserState)
MyBase.New(pLogConfig)
Client = pClient
Mode = pMode
User = pUser
End Sub
Public Function Load(pObjectId As Long, pFullPath As String) As DocumentResultInfo
Select Case Mode
Case OperationMode.NoAppServer
Return Load_FromWindream(pObjectId, pFullPath)
Case OperationMode.WithAppServer
Return Load_FromIDB(pObjectId)
Case OperationMode.ZooFlow
Return Load_FromZooflow(pObjectId)
Case Else
Return Nothing
End Select
End Function
Private Function Load_FromWindream(pObjectId As Long, pFullPath As String) As DocumentResultInfo
Dim oFileInfo As New FileInfo(pFullPath)
Dim oResultDocumentInfo = New DocumentResultInfo(pObjectId) With {
.Contents = Load_FromDisk(pFullPath),
.AccessRight = Rights.AccessRight.FULL,
.FullPath = pFullPath,
.Extension = oFileInfo.Extension.Substring(1)
}
Return oResultDocumentInfo
End Function
Private Function Load_FromIDB(pObjectId As Long) As DocumentResultInfo
Try
Dim oDocumentInfo As DocumentInfo = Client.GetDocumentInfo(User.UserId, pObjectId)
Dim oFileInfo As New FileInfo(oDocumentInfo.FullPath)
Dim oResultDocumentInfo As New DocumentResultInfo(pObjectId) With {
.Contents = Load_FromDisk(oDocumentInfo.FullPath),
.AccessRight = oDocumentInfo.AccessRight,
.FullPath = oDocumentInfo.FullPath,
.Extension = oFileInfo.Extension.Substring(1)
}
Return oResultDocumentInfo
Catch ex As Exception
Logger.Error(ex)
Return Nothing
End Try
End Function
Private Function Load_FromZooflow(pObjectId As Long) As DocumentResultInfo
Dim oFileObject As FileObject = Client.Zooflow_GetFileObject(pObjectId, pLoadFileContents:=True)
If oFileObject Is Nothing Then
Return Nothing
End If
Dim oResultDocumentInfo As New DocumentResultInfo(pObjectId) With {
.Contents = oFileObject._FileContents,
.Extension = oFileObject._FileExtension,
.AccessRight = Rights.AccessRight.FULL,
.FullPath = Nothing
}
Return oResultDocumentInfo
End Function
Private Function Load_FromDisk(pFullPath) As Byte()
Try
Logger.Debug("Loading file [{0}]", pFullPath)
Using oStream = File.OpenRead(pFullPath)
Using oMemoryStream = New MemoryStream()
oStream.CopyTo(oMemoryStream)
Logger.Debug("Loaded file [{0}] successfully.", pFullPath)
Return oMemoryStream.ToArray()
End Using
End Using
Catch ex As Exception
Logger.Warn("Loading file [{0}] failed.", pFullPath)
Logger.Error(ex)
Return Nothing
End Try
End Function
End Class

View File

@@ -1,116 +0,0 @@
Imports DigitalData.Modules.EDMI.API.Client
Public Class DocumentResultCache
Implements ICollection(Of DocumentResultInfo)
Private Const _DefaultCapacity As Long = 1000
Public Shared ReadOnly Property DefaultCapacity As Long
Get
Return _DefaultCapacity
End Get
End Property
Friend ReadOnly List As New LinkedList(Of DocumentResultInfo)
Private ReadOnly Index As New Dictionary(Of String, LinkedListNode(Of DocumentResultInfo))
Private ReadOnly Lock As New Object
Public Sub New()
Me.New(_DefaultCapacity)
End Sub
Public Sub New(capacity As Long)
If capacity < 0 Then
Throw New InvalidOperationException("DocumentResultCache capacity must be positive.")
End If
Me.Capacity = capacity
End Sub
Public Event DiscardingOldestItem As EventHandler
Public Property Capacity As Long
Public Property Count As Integer Implements ICollection(Of DocumentResultInfo).Count
Public ReadOnly Property Oldest As DocumentResultInfo
Get
Return List.First.Value
End Get
End Property
Public Sub Add(pItem As DocumentResultInfo) Implements ICollection(Of DocumentResultInfo).Add
SyncLock Lock
If Index.ContainsKey(pItem.Id) Then
List.Remove(Index(pItem.Id))
Index(pItem.Id) = List.AddLast(pItem)
Return
End If
If Count >= Capacity AndAlso Capacity <> 0 Then
RaiseEvent DiscardingOldestItem(Me, New EventArgs())
Remove(Oldest)
End If
Index.Add(pItem.Id, List.AddLast(pItem))
If pItem.Contents IsNot Nothing Then
Count += pItem.Contents?.Length
End If
End SyncLock
End Sub
Public Function Contains(pItem As DocumentResultInfo) As Boolean Implements ICollection(Of DocumentResultInfo).Contains
Return Index.ContainsKey(pItem.Id)
End Function
Public Sub CopyTo(pArray As DocumentResultInfo(), pIndex As Integer) Implements ICollection(Of DocumentResultInfo).CopyTo
SyncLock Lock
For Each item As DocumentResultInfo In Me
pArray(Math.Min(System.Threading.Interlocked.Increment(pIndex), pIndex - 1)) = item
Next
End SyncLock
End Sub
Public Sub Clear() Implements ICollection(Of DocumentResultInfo).Clear
SyncLock Lock
List.Clear()
Index.Clear()
End SyncLock
End Sub
Public ReadOnly Property IsReadOnly As Boolean Implements ICollection(Of DocumentResultInfo).IsReadOnly
Get
Return False
End Get
End Property
Public Function Remove(pItem As DocumentResultInfo) As Boolean Implements ICollection(Of DocumentResultInfo).Remove
SyncLock Lock
If Index.ContainsKey(pItem.Id) Then
List.Remove(Index(pItem.Id))
Index.Remove(pItem.Id)
If pItem.Contents IsNot Nothing Then
Count -= pItem.Contents.Length
End If
Return True
End If
Return False
End SyncLock
End Function
Private Iterator Function GetEnumerator() As IEnumerator(Of DocumentResultInfo) Implements ICollection(Of DocumentResultInfo).GetEnumerator
Dim node As LinkedListNode(Of DocumentResultInfo) = List.First
While node IsNot Nothing
Yield node.Value
node = node.[Next]
End While
End Function
Private Function IEnumerable_GetEnumerator() As IEnumerator Implements IEnumerable.GetEnumerator
Return DirectCast(List, IEnumerable).GetEnumerator()
End Function
End Class

View File

@@ -1,10 +0,0 @@
Imports System.Drawing
Public Class DocumentResultConfig
Public Property WindowLocation As Point
Public Property WindowSize As Size
Public Property SplitContainer1Distance As Integer = 500
Public Property SplitContainer1Horizontal As Boolean = True
Public Property SplitContainer2Distance As Integer = 250
Public Property SplitContainer2Horizontal As Boolean = False
End Class

View File

@@ -1,33 +0,0 @@
Imports DigitalData.Modules.EDMI.API.Client
Imports DigitalData.Modules.EDMI.API.Rights
Public Class DocumentResultInfo
''' <summary>
''' Primary identifier of the Document.
''' Can be a Windream DocId or an IDB ObjectId.
''' </summary>
Public Property Id As Long
Public Property AccessRight As AccessRight
''' <summary>
''' Extension is needed for determining the type of file
''' and showing it in the DocumentViewer
''' </summary>
Public Property Extension As String
''' <summary>
''' Binary contents of the file.
''' </summary>
Public Property Contents As Byte()
' Optional properties
Public Property LastWriteTime As Date = Nothing
Public Property FullPath As String = Nothing
Public Property TempPath As String = Nothing
Public Sub New(pPrimaryKey As Long)
Id = pPrimaryKey
End Sub
End Class

View File

@@ -1,61 +0,0 @@
Imports System.Drawing
Imports System.IO
Imports DevExpress.XtraGrid.Views.Base
Imports DigitalData.Modules.Logging
Public Class DocumentResultList
Private ReadOnly Logger As Logger
Public Property ActiveRowHandle As Integer = Constants.NO_ROW_HANDLE
Public Sub New(LogConfig As LogConfig)
Logger = LogConfig.GetLogger()
End Sub
Public Sub SetRowHandle(e As FocusedRowChangedEventArgs)
ActiveRowHandle = e.FocusedRowHandle
End Sub
Public Function GetIconByExtension(FilePath As String) As Bitmap
Dim oFileextension = Path.GetExtension(FilePath)
Select Case oFileextension.ToUpper
Case ".csv".ToUpper
Return My.Resources.xls
Case ".txt".ToUpper
Return My.Resources.txt
Case ".pdf".ToUpper
Return My.Resources.pdf
Case ".doc".ToUpper
Return My.Resources.doc
Case ".docx".ToUpper
Return My.Resources.doc
Case ".xls".ToUpper
Return My.Resources.xls
Case ".xlsx".ToUpper
Return My.Resources.xls
Case ".xlsm".ToUpper
Return My.Resources.xls
Case ".ppt".ToUpper
Return My.Resources.ppt
Case ".pptx".ToUpper
Return My.Resources.ppt
Case ".dwg".ToUpper
Return My.Resources.dwg
Case ".dxf".ToUpper
Return My.Resources.dxf
Case ".msg".ToUpper
Return My.Resources._page
Case ".msg".ToUpper
Return My.Resources._page
Case ".tif".ToUpper
Return My.Resources.tiff
Case ".tiff".ToUpper
Return My.Resources.tiff
Case ".jpg".ToUpper
Return My.Resources.jpg
Case Else
Return My.Resources._blank
End Select
End Function
End Class

View File

@@ -1,23 +0,0 @@
Imports DigitalData.Modules.ZooFlow.Constants
Public Class DocumentResultParams
''' <summary>
''' WindowGuid is used to save layout data
''' </summary>
Public WindowGuid As String
Public WindowTitle As String = ""
Public Results As New List(Of DocumentResult)
Public ColumnNames As New ColumnNames
Public OperationModeOverride As OperationMode = OperationMode.None
End Class
Public Class DocumentResult
Inherits BaseResult
End Class
Public Class ColumnNames
Public ObjectIdColumn As String = "DocId"
Public FullPathColumn As String = "FULL_FILENAME"
Public FilenameColumn As String = "Name"
Public IconColumn As String = "ICON"
End Class

View File

@@ -0,0 +1,63 @@
Imports System.Drawing
Imports System.IO
Imports DevExpress.XtraGrid.Views.Base
Imports DigitalData.Modules.Logging
Namespace DocumentResultList
Public Class Helpers
Private ReadOnly Logger As Logger
Public Property ActiveRowHandle As Integer = Constants.NO_ROW_HANDLE
Public Sub New(LogConfig As LogConfig)
Logger = LogConfig.GetLogger()
End Sub
Public Sub SetRowHandle(e As FocusedRowChangedEventArgs)
ActiveRowHandle = e.FocusedRowHandle
End Sub
Public Function GetIconByExtension(FilePath As String) As Bitmap
Dim oFileextension = Path.GetExtension(FilePath)
Select Case oFileextension.ToUpper
Case ".csv".ToUpper
Return My.Resources.xls
Case ".txt".ToUpper
Return My.Resources.txt
Case ".pdf".ToUpper
Return My.Resources.pdf
Case ".doc".ToUpper
Return My.Resources.doc
Case ".docx".ToUpper
Return My.Resources.doc
Case ".xls".ToUpper
Return My.Resources.xls
Case ".xlsx".ToUpper
Return My.Resources.xls
Case ".xlsm".ToUpper
Return My.Resources.xls
Case ".ppt".ToUpper
Return My.Resources.ppt
Case ".pptx".ToUpper
Return My.Resources.ppt
Case ".dwg".ToUpper
Return My.Resources.dwg
Case ".dxf".ToUpper
Return My.Resources.dxf
Case ".msg".ToUpper
Return My.Resources._page
Case ".msg".ToUpper
Return My.Resources._page
Case ".tif".ToUpper
Return My.Resources.tiff
Case ".tiff".ToUpper
Return My.Resources.tiff
Case ".jpg".ToUpper
Return My.Resources.jpg
Case Else
Return My.Resources._blank
End Select
End Function
End Class
End Namespace

View File

@@ -0,0 +1,105 @@
Imports System.IO
Imports DigitalData.Modules.EDMI.API
Imports DigitalData.Modules.EDMI.API.Client
Imports DigitalData.Modules.EDMI.API.EDMIServiceReference
Imports DigitalData.Modules.Logging
Imports DigitalData.Modules.ZooFlow.Constants
Imports DigitalData.Modules.ZooFlow.State
Namespace DocumentResultList
Public Class Loader
Inherits Modules.ZooFlow.Base.BaseClass
Private ReadOnly Client As Client
Private ReadOnly Mode As OperationMode
Private ReadOnly User As DigitalData.Modules.ZooFlow.State.UserState
Public Sub New(pLogConfig As LogConfig, pMode As OperationMode, pClient As Client, pUser As DigitalData.Modules.ZooFlow.State.UserState)
MyBase.New(pLogConfig)
Client = pClient
Mode = pMode
User = pUser
End Sub
Public Function Load(pObjectId As Long, pFullPath As String) As Document
Select Case Mode
Case OperationMode.NoAppServer
Return Load_FromWindream(pObjectId, pFullPath)
Case OperationMode.WithAppServer
Return Load_FromIDB(pObjectId)
Case OperationMode.ZooFlow
Return Load_FromZooflow(pObjectId)
Case Else
Return Nothing
End Select
End Function
Private Function Load_FromWindream(pObjectId As Long, pFullPath As String) As Document
Dim oFileInfo As New FileInfo(pFullPath)
Dim oResultDocumentInfo = New Document(pObjectId) With {
.Contents = Load_FromDisk(pFullPath),
.AccessRight = Rights.AccessRight.FULL,
.FullPath = pFullPath,
.Extension = oFileInfo.Extension.Substring(1)
}
Return oResultDocumentInfo
End Function
Private Function Load_FromIDB(pObjectId As Long) As Document
Try
Dim oDocumentInfo As Client.DocumentInfo = Client.GetDocumentInfo(User.UserId, pObjectId)
Dim oFileInfo As New FileInfo(oDocumentInfo.FullPath)
Dim oResultDocumentInfo As New Document(pObjectId) With {
.Contents = Load_FromDisk(oDocumentInfo.FullPath),
.AccessRight = oDocumentInfo.AccessRight,
.FullPath = oDocumentInfo.FullPath,
.Extension = oFileInfo.Extension.Substring(1)
}
Return oResultDocumentInfo
Catch ex As Exception
Logger.Error(ex)
Return Nothing
End Try
End Function
Private Function Load_FromZooflow(pObjectId As Long) As Document
Dim oFileObject As FileObject = Client.Zooflow_GetFileObject(pObjectId, pLoadFileContents:=True)
If oFileObject Is Nothing Then
Return Nothing
End If
Dim oResultDocumentInfo As New Document(pObjectId) With {
.Contents = oFileObject._FileContents,
.Extension = oFileObject._FileExtension,
.AccessRight = Rights.AccessRight.FULL,
.FullPath = Nothing
}
Return oResultDocumentInfo
End Function
Private Function Load_FromDisk(pFullPath) As Byte()
Try
Logger.Debug("Loading file [{0}]", pFullPath)
Using oStream = File.OpenRead(pFullPath)
Using oMemoryStream = New MemoryStream()
oStream.CopyTo(oMemoryStream)
Logger.Debug("Loaded file [{0}] successfully.", pFullPath)
Return oMemoryStream.ToArray()
End Using
End Using
Catch ex As Exception
Logger.Warn("Loading file [{0}] failed.", pFullPath)
Logger.Error(ex)
Return Nothing
End Try
End Function
End Class
End Namespace

View File

@@ -0,0 +1,51 @@
Imports DigitalData.Modules.Logging
Imports DigitalData.Modules.ZooFlow.Base
Namespace DocumentResultList
Public Class Opener
Inherits BaseClass
Public Sub New(pLogConfig As LogConfig)
MyBase.New(pLogConfig)
End Sub
Public Sub OpenDocument(pDocument As Document)
Dim oProcessId As Integer = Nothing
If pDocument.FullPath Is Nothing OrElse pDocument.FullPath.Trim = String.Empty Then
oProcessId = OpenFileFromPath(pDocument)
ElseIf pDocument.Extension IsNot Nothing AndAlso pDocument.Contents IsNot Nothing Then
End If
End Sub
Private Function OpenFileFromByteArry(pDocument As Document) As Integer
Try
' TODO: Open file from temp folder
Dim oTempPath = IO.Path.GetTempPath()
Catch ex As Exception
End Try
End Function
Private Function OpenFileFromPath(pDocument As Document) As Integer
Try
Dim oProcess = Process.Start(New ProcessStartInfo With {
.FileName = pDocument.FullPath
})
Return oProcess.Id
Catch ex As Exception
Logger.Error(ex)
Return Nothing
End Try
End Function
End Class
End Namespace

View File

@@ -0,0 +1,26 @@
Imports DigitalData.Modules.ZooFlow.Constants
Namespace DocumentResultList
Public Class Params
''' <summary>
''' WindowGuid is used to save layout data
''' </summary>
Public WindowGuid As String
Public WindowTitle As String = ""
Public Results As New List(Of DocumentResult)
Public ColumnNames As New ColumnNames
Public OperationModeOverride As OperationMode = OperationMode.None
End Class
Public Class DocumentResult
Inherits BaseResult
End Class
Public Class ColumnNames
Public ObjectIdColumn As String = "DocId"
Public FullPathColumn As String = "FULL_FILENAME"
Public FilenameColumn As String = "Name"
Public IconColumn As String = "ICON"
End Class
End Namespace

View File

@@ -1,574 +0,0 @@
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()>
Partial Class frmDocumentResultList
Inherits DevExpress.XtraBars.Ribbon.RibbonForm
'Form overrides dispose to clean up the component list.
<System.Diagnostics.DebuggerNonUserCode()>
Protected Overrides Sub Dispose(ByVal disposing As Boolean)
If disposing AndAlso components IsNot Nothing Then
components.Dispose()
End If
MyBase.Dispose(disposing)
End Sub
'Required by the Windows Form Designer
Private components As System.ComponentModel.IContainer
'NOTE: The following procedure is required by the Windows Form Designer
'It can be modified using the Windows Form Designer.
'Do not modify it using the code editor.
<System.Diagnostics.DebuggerStepThrough()>
Private Sub InitializeComponent()
Me.components = New System.ComponentModel.Container()
Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(frmDocumentResultList))
Me.SplitContainerControl1 = New DevExpress.XtraEditors.SplitContainerControl()
Me.GridControl1 = New DevExpress.XtraGrid.GridControl()
Me.GridView1 = New DevExpress.XtraGrid.Views.BandedGrid.BandedGridView()
Me.GridBand1 = New DevExpress.XtraGrid.Views.BandedGrid.GridBand()
Me.RibbonControl = New DevExpress.XtraBars.Ribbon.RibbonControl()
Me.SwitchMainContainerHorizontal = New DevExpress.XtraBars.BarToggleSwitchItem()
Me.SwitchDetailContainerHorizontal = New DevExpress.XtraBars.BarToggleSwitchItem()
Me.BarButtonItemExportGrid1 = New DevExpress.XtraBars.BarButtonItem()
Me.BarStaticItem1 = New DevExpress.XtraBars.BarStaticItem()
Me.labelResultCount = New DevExpress.XtraBars.BarStaticItem()
Me.BarButtonBack = New DevExpress.XtraBars.BarButtonItem()
Me.BarButtonResetLayout = New DevExpress.XtraBars.BarButtonItem()
Me.labelCriticalError = New DevExpress.XtraBars.BarStaticItem()
Me.labelWarning = New DevExpress.XtraBars.BarStaticItem()
Me.MenuItemFileOpen = New DevExpress.XtraBars.BarButtonItem()
Me.MenuItemPropertiesIDB = New DevExpress.XtraBars.BarButtonItem()
Me.MenuItemFolderOpen = New DevExpress.XtraBars.BarButtonItem()
Me.MenuItemFilepathCopy = New DevExpress.XtraBars.BarButtonItem()
Me.MenuItemFolderpathCopy = New DevExpress.XtraBars.BarButtonItem()
Me.MenuItemPropertiesECM = New DevExpress.XtraBars.BarButtonItem()
Me.MenuItemsOpenFileZooFlow = New DevExpress.XtraBars.BarButtonItem()
Me.MenuItemPropertiesZooFlow = New DevExpress.XtraBars.BarButtonItem()
Me.RibbonPage1 = New DevExpress.XtraBars.Ribbon.RibbonPage()
Me.RibbonPageGroup_Navigation = New DevExpress.XtraBars.Ribbon.RibbonPageGroup()
Me.RibbonPageGroup_Layout = New DevExpress.XtraBars.Ribbon.RibbonPageGroup()
Me.RibbonPageGroup_Export = New DevExpress.XtraBars.Ribbon.RibbonPageGroup()
Me.RepositoryItemTextEdit1 = New DevExpress.XtraEditors.Repository.RepositoryItemTextEdit()
Me.RepositoryItemTextEdit2 = New DevExpress.XtraEditors.Repository.RepositoryItemTextEdit()
Me.RibbonStatusBar = New DevExpress.XtraBars.Ribbon.RibbonStatusBar()
Me.SplitContainerControl2 = New DevExpress.XtraEditors.SplitContainerControl()
Me.GridControl2 = New DevExpress.XtraGrid.GridControl()
Me.GridView2 = New DevExpress.XtraGrid.Views.BandedGrid.BandedGridView()
Me.GridBand2 = New DevExpress.XtraGrid.Views.BandedGrid.GridBand()
Me.GridControl3 = New DevExpress.XtraGrid.GridControl()
Me.GridView3 = New DevExpress.XtraGrid.Views.BandedGrid.BandedGridView()
Me.GridBand3 = New DevExpress.XtraGrid.Views.BandedGrid.GridBand()
Me.SplitContainerControl3 = New DevExpress.XtraEditors.SplitContainerControl()
Me.DocumentViewer1 = New DigitalData.Controls.DocumentViewer.DocumentViewer()
Me.XtraSaveFileDialog = New DevExpress.XtraEditors.XtraSaveFileDialog(Me.components)
Me.MenuFullAccess_IDB = New DevExpress.XtraBars.PopupMenu(Me.components)
Me.MenuViewAccess_IDB = New DevExpress.XtraBars.PopupMenu(Me.components)
Me.MenuFullAccess_EDM = New DevExpress.XtraBars.PopupMenu(Me.components)
Me.MenuFullAccess_ZOOFLOW = New DevExpress.XtraBars.PopupMenu(Me.components)
CType(Me.SplitContainerControl1, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.SplitContainerControl1.Panel1, System.ComponentModel.ISupportInitialize).BeginInit()
Me.SplitContainerControl1.Panel1.SuspendLayout()
CType(Me.SplitContainerControl1.Panel2, System.ComponentModel.ISupportInitialize).BeginInit()
Me.SplitContainerControl1.Panel2.SuspendLayout()
Me.SplitContainerControl1.SuspendLayout()
CType(Me.GridControl1, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.GridView1, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.RibbonControl, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.RepositoryItemTextEdit1, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.RepositoryItemTextEdit2, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.SplitContainerControl2, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.SplitContainerControl2.Panel1, System.ComponentModel.ISupportInitialize).BeginInit()
Me.SplitContainerControl2.Panel1.SuspendLayout()
CType(Me.SplitContainerControl2.Panel2, System.ComponentModel.ISupportInitialize).BeginInit()
Me.SplitContainerControl2.Panel2.SuspendLayout()
Me.SplitContainerControl2.SuspendLayout()
CType(Me.GridControl2, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.GridView2, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.GridControl3, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.GridView3, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.SplitContainerControl3, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.SplitContainerControl3.Panel1, System.ComponentModel.ISupportInitialize).BeginInit()
Me.SplitContainerControl3.Panel1.SuspendLayout()
CType(Me.SplitContainerControl3.Panel2, System.ComponentModel.ISupportInitialize).BeginInit()
Me.SplitContainerControl3.Panel2.SuspendLayout()
Me.SplitContainerControl3.SuspendLayout()
CType(Me.MenuFullAccess_IDB, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.MenuViewAccess_IDB, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.MenuFullAccess_EDM, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.MenuFullAccess_ZOOFLOW, System.ComponentModel.ISupportInitialize).BeginInit()
Me.SuspendLayout()
'
'SplitContainerControl1
'
Me.SplitContainerControl1.CollapsePanel = DevExpress.XtraEditors.SplitCollapsePanel.Panel2
resources.ApplyResources(Me.SplitContainerControl1, "SplitContainerControl1")
Me.SplitContainerControl1.Name = "SplitContainerControl1"
'
'SplitContainerControl1.Panel1
'
Me.SplitContainerControl1.Panel1.Controls.Add(Me.GridControl1)
resources.ApplyResources(Me.SplitContainerControl1.Panel1, "SplitContainerControl1.Panel1")
'
'SplitContainerControl1.Panel2
'
Me.SplitContainerControl1.Panel2.Controls.Add(Me.SplitContainerControl2)
resources.ApplyResources(Me.SplitContainerControl1.Panel2, "SplitContainerControl1.Panel2")
Me.SplitContainerControl1.SplitterPosition = 382
'
'GridControl1
'
resources.ApplyResources(Me.GridControl1, "GridControl1")
Me.GridControl1.MainView = Me.GridView1
Me.GridControl1.MenuManager = Me.RibbonControl
Me.GridControl1.Name = "GridControl1"
Me.GridControl1.ViewCollection.AddRange(New DevExpress.XtraGrid.Views.Base.BaseView() {Me.GridView1})
'
'GridView1
'
Me.GridView1.Appearance.EvenRow.BackColor = System.Drawing.Color.Gainsboro
Me.GridView1.Appearance.EvenRow.Options.UseBackColor = True
Me.GridView1.Appearance.FocusedRow.BackColor = System.Drawing.Color.FromArgb(CType(CType(224, Byte), Integer), CType(CType(224, Byte), Integer), CType(CType(224, Byte), Integer))
Me.GridView1.Appearance.FocusedRow.Options.UseBackColor = True
Me.GridView1.Bands.AddRange(New DevExpress.XtraGrid.Views.BandedGrid.GridBand() {Me.GridBand1})
Me.GridView1.GridControl = Me.GridControl1
Me.GridView1.Name = "GridView1"
Me.GridView1.OptionsBehavior.Editable = False
Me.GridView1.OptionsBehavior.ReadOnly = True
Me.GridView1.OptionsView.EnableAppearanceEvenRow = True
Me.GridView1.OptionsView.ShowAutoFilterRow = True
'
'GridBand1
'
Me.GridBand1.AppearanceHeader.Font = CType(resources.GetObject("GridBand1.AppearanceHeader.Font"), System.Drawing.Font)
Me.GridBand1.AppearanceHeader.Options.UseFont = True
resources.ApplyResources(Me.GridBand1, "GridBand1")
Me.GridBand1.OptionsBand.AllowHotTrack = False
Me.GridBand1.OptionsBand.AllowMove = False
Me.GridBand1.OptionsBand.AllowPress = False
Me.GridBand1.OptionsBand.AllowSize = False
Me.GridBand1.VisibleIndex = 0
'
'RibbonControl
'
Me.RibbonControl.ExpandCollapseItem.Id = 0
Me.RibbonControl.Items.AddRange(New DevExpress.XtraBars.BarItem() {Me.RibbonControl.ExpandCollapseItem, Me.RibbonControl.SearchEditItem, Me.SwitchMainContainerHorizontal, Me.SwitchDetailContainerHorizontal, Me.BarButtonItemExportGrid1, Me.BarStaticItem1, Me.labelResultCount, Me.BarButtonBack, Me.BarButtonResetLayout, Me.labelCriticalError, Me.labelWarning, Me.MenuItemFileOpen, Me.MenuItemPropertiesIDB, Me.MenuItemFolderOpen, Me.MenuItemFilepathCopy, Me.MenuItemFolderpathCopy, Me.MenuItemPropertiesECM, Me.MenuItemsOpenFileZooFlow, Me.MenuItemPropertiesZooFlow})
resources.ApplyResources(Me.RibbonControl, "RibbonControl")
Me.RibbonControl.MaxItemId = 29
Me.RibbonControl.Name = "RibbonControl"
Me.RibbonControl.Pages.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPage() {Me.RibbonPage1})
Me.RibbonControl.RepositoryItems.AddRange(New DevExpress.XtraEditors.Repository.RepositoryItem() {Me.RepositoryItemTextEdit1, Me.RepositoryItemTextEdit2})
Me.RibbonControl.ShowApplicationButton = DevExpress.Utils.DefaultBoolean.[False]
Me.RibbonControl.ShowPageHeadersMode = DevExpress.XtraBars.Ribbon.ShowPageHeadersMode.Hide
Me.RibbonControl.ShowToolbarCustomizeItem = False
Me.RibbonControl.StatusBar = Me.RibbonStatusBar
Me.RibbonControl.Toolbar.ShowCustomizeItem = False
'
'SwitchMainContainerHorizontal
'
Me.SwitchMainContainerHorizontal.BindableChecked = True
resources.ApplyResources(Me.SwitchMainContainerHorizontal, "SwitchMainContainerHorizontal")
Me.SwitchMainContainerHorizontal.Checked = True
Me.SwitchMainContainerHorizontal.Id = 1
Me.SwitchMainContainerHorizontal.Name = "SwitchMainContainerHorizontal"
'
'SwitchDetailContainerHorizontal
'
resources.ApplyResources(Me.SwitchDetailContainerHorizontal, "SwitchDetailContainerHorizontal")
Me.SwitchDetailContainerHorizontal.Id = 2
Me.SwitchDetailContainerHorizontal.Name = "SwitchDetailContainerHorizontal"
'
'BarButtonItemExportGrid1
'
resources.ApplyResources(Me.BarButtonItemExportGrid1, "BarButtonItemExportGrid1")
Me.BarButtonItemExportGrid1.Id = 3
Me.BarButtonItemExportGrid1.ImageOptions.SvgImage = CType(resources.GetObject("BarButtonItemExportGrid1.ImageOptions.SvgImage"), DevExpress.Utils.Svg.SvgImage)
Me.BarButtonItemExportGrid1.Name = "BarButtonItemExportGrid1"
Me.BarButtonItemExportGrid1.Visibility = DevExpress.XtraBars.BarItemVisibility.OnlyInCustomizing
'
'BarStaticItem1
'
resources.ApplyResources(Me.BarStaticItem1, "BarStaticItem1")
Me.BarStaticItem1.Id = 7
Me.BarStaticItem1.Name = "BarStaticItem1"
Me.BarStaticItem1.Tag = "{0} Ergebnisse"
'
'labelResultCount
'
resources.ApplyResources(Me.labelResultCount, "labelResultCount")
Me.labelResultCount.Id = 8
Me.labelResultCount.Name = "labelResultCount"
'
'BarButtonBack
'
resources.ApplyResources(Me.BarButtonBack, "BarButtonBack")
Me.BarButtonBack.Id = 9
Me.BarButtonBack.ImageOptions.Image = CType(resources.GetObject("BarButtonBack.ImageOptions.Image"), System.Drawing.Image)
Me.BarButtonBack.ImageOptions.LargeImage = CType(resources.GetObject("BarButtonBack.ImageOptions.LargeImage"), System.Drawing.Image)
Me.BarButtonBack.Name = "BarButtonBack"
'
'BarButtonResetLayout
'
resources.ApplyResources(Me.BarButtonResetLayout, "BarButtonResetLayout")
Me.BarButtonResetLayout.Id = 10
Me.BarButtonResetLayout.ImageOptions.SvgImage = CType(resources.GetObject("BarButtonItem5.ImageOptions.SvgImage"), DevExpress.Utils.Svg.SvgImage)
Me.BarButtonResetLayout.Name = "BarButtonResetLayout"
Me.BarButtonResetLayout.Visibility = DevExpress.XtraBars.BarItemVisibility.OnlyInCustomizing
'
'labelCriticalError
'
Me.labelCriticalError.Alignment = DevExpress.XtraBars.BarItemLinkAlignment.Right
resources.ApplyResources(Me.labelCriticalError, "labelCriticalError")
Me.labelCriticalError.Id = 14
Me.labelCriticalError.ImageOptions.SvgImage = CType(resources.GetObject("labelCriticalError.ImageOptions.SvgImage"), DevExpress.Utils.Svg.SvgImage)
Me.labelCriticalError.ItemAppearance.Normal.BackColor = System.Drawing.Color.White
Me.labelCriticalError.ItemAppearance.Normal.ForeColor = DevExpress.LookAndFeel.DXSkinColors.ForeColors.Critical
Me.labelCriticalError.ItemAppearance.Normal.Options.UseBackColor = True
Me.labelCriticalError.ItemAppearance.Normal.Options.UseForeColor = True
Me.labelCriticalError.Name = "labelCriticalError"
Me.labelCriticalError.PaintStyle = DevExpress.XtraBars.BarItemPaintStyle.CaptionGlyph
Me.labelCriticalError.Visibility = DevExpress.XtraBars.BarItemVisibility.OnlyInCustomizing
'
'labelWarning
'
Me.labelWarning.Alignment = DevExpress.XtraBars.BarItemLinkAlignment.Right
resources.ApplyResources(Me.labelWarning, "labelWarning")
Me.labelWarning.Id = 15
Me.labelWarning.ImageOptions.SvgImage = CType(resources.GetObject("labelWarning.ImageOptions.SvgImage"), DevExpress.Utils.Svg.SvgImage)
Me.labelWarning.ItemAppearance.Normal.BackColor = System.Drawing.Color.White
Me.labelWarning.ItemAppearance.Normal.Options.UseBackColor = True
Me.labelWarning.Name = "labelWarning"
Me.labelWarning.PaintStyle = DevExpress.XtraBars.BarItemPaintStyle.CaptionGlyph
Me.labelWarning.Visibility = DevExpress.XtraBars.BarItemVisibility.OnlyInCustomizing
'
'MenuItemFileOpen
'
resources.ApplyResources(Me.MenuItemFileOpen, "MenuItemFileOpen")
Me.MenuItemFileOpen.Id = 16
Me.MenuItemFileOpen.ImageOptions.SvgImage = Global.DigitalData.GUIs.Common.My.Resources.Resources.singlepageview
Me.MenuItemFileOpen.Name = "MenuItemFileOpen"
'
'MenuItemPropertiesIDB
'
resources.ApplyResources(Me.MenuItemPropertiesIDB, "MenuItemPropertiesIDB")
Me.MenuItemPropertiesIDB.Id = 17
Me.MenuItemPropertiesIDB.ImageOptions.SvgImage = CType(resources.GetObject("MenuItemPropertiesIDB.ImageOptions.SvgImage"), DevExpress.Utils.Svg.SvgImage)
Me.MenuItemPropertiesIDB.Name = "MenuItemPropertiesIDB"
'
'MenuItemFolderOpen
'
resources.ApplyResources(Me.MenuItemFolderOpen, "MenuItemFolderOpen")
Me.MenuItemFolderOpen.Id = 18
Me.MenuItemFolderOpen.ImageOptions.SvgImage = CType(resources.GetObject("MenuItemFolderOpen.ImageOptions.SvgImage"), DevExpress.Utils.Svg.SvgImage)
Me.MenuItemFolderOpen.Name = "MenuItemFolderOpen"
'
'MenuItemFilepathCopy
'
resources.ApplyResources(Me.MenuItemFilepathCopy, "MenuItemFilepathCopy")
Me.MenuItemFilepathCopy.Id = 19
Me.MenuItemFilepathCopy.ImageOptions.SvgImage = Global.DigitalData.GUIs.Common.My.Resources.Resources.copy
Me.MenuItemFilepathCopy.Name = "MenuItemFilepathCopy"
'
'MenuItemFolderpathCopy
'
resources.ApplyResources(Me.MenuItemFolderpathCopy, "MenuItemFolderpathCopy")
Me.MenuItemFolderpathCopy.Id = 20
Me.MenuItemFolderpathCopy.ImageOptions.SvgImage = Global.DigitalData.GUIs.Common.My.Resources.Resources.open
Me.MenuItemFolderpathCopy.Name = "MenuItemFolderpathCopy"
'
'MenuItemPropertiesECM
'
resources.ApplyResources(Me.MenuItemPropertiesECM, "MenuItemPropertiesECM")
Me.MenuItemPropertiesECM.Id = 26
Me.MenuItemPropertiesECM.ImageOptions.SvgImage = CType(resources.GetObject("MenuItemPropertiesECM.ImageOptions.SvgImage"), DevExpress.Utils.Svg.SvgImage)
Me.MenuItemPropertiesECM.Name = "MenuItemPropertiesECM"
'
'MenuItemsOpenFileZooFlow
'
resources.ApplyResources(Me.MenuItemsOpenFileZooFlow, "MenuItemsOpenFileZooFlow")
Me.MenuItemsOpenFileZooFlow.Id = 27
Me.MenuItemsOpenFileZooFlow.ImageOptions.SvgImage = Global.DigitalData.GUIs.Common.My.Resources.Resources.singlepageview1
Me.MenuItemsOpenFileZooFlow.Name = "MenuItemsOpenFileZooFlow"
'
'MenuItemPropertiesZooFlow
'
resources.ApplyResources(Me.MenuItemPropertiesZooFlow, "MenuItemPropertiesZooFlow")
Me.MenuItemPropertiesZooFlow.Id = 28
Me.MenuItemPropertiesZooFlow.ImageOptions.SvgImage = Global.DigitalData.GUIs.Common.My.Resources.Resources.editcolors
Me.MenuItemPropertiesZooFlow.Name = "MenuItemPropertiesZooFlow"
'
'RibbonPage1
'
Me.RibbonPage1.Groups.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPageGroup() {Me.RibbonPageGroup_Navigation, Me.RibbonPageGroup_Layout, Me.RibbonPageGroup_Export})
Me.RibbonPage1.Name = "RibbonPage1"
resources.ApplyResources(Me.RibbonPage1, "RibbonPage1")
'
'RibbonPageGroup_Navigation
'
Me.RibbonPageGroup_Navigation.AllowTextClipping = False
Me.RibbonPageGroup_Navigation.ItemLinks.Add(Me.BarButtonBack)
Me.RibbonPageGroup_Navigation.Name = "RibbonPageGroup_Navigation"
resources.ApplyResources(Me.RibbonPageGroup_Navigation, "RibbonPageGroup_Navigation")
'
'RibbonPageGroup_Layout
'
Me.RibbonPageGroup_Layout.Alignment = DevExpress.XtraBars.Ribbon.RibbonPageGroupAlignment.Far
Me.RibbonPageGroup_Layout.ItemLinks.Add(Me.SwitchMainContainerHorizontal)
Me.RibbonPageGroup_Layout.ItemLinks.Add(Me.SwitchDetailContainerHorizontal)
Me.RibbonPageGroup_Layout.ItemLinks.Add(Me.BarButtonResetLayout)
Me.RibbonPageGroup_Layout.Name = "RibbonPageGroup_Layout"
resources.ApplyResources(Me.RibbonPageGroup_Layout, "RibbonPageGroup_Layout")
'
'RibbonPageGroup_Export
'
Me.RibbonPageGroup_Export.Alignment = DevExpress.XtraBars.Ribbon.RibbonPageGroupAlignment.Far
Me.RibbonPageGroup_Export.ItemLinks.Add(Me.BarButtonItemExportGrid1)
Me.RibbonPageGroup_Export.Name = "RibbonPageGroup_Export"
resources.ApplyResources(Me.RibbonPageGroup_Export, "RibbonPageGroup_Export")
'
'RepositoryItemTextEdit1
'
resources.ApplyResources(Me.RepositoryItemTextEdit1, "RepositoryItemTextEdit1")
Me.RepositoryItemTextEdit1.Name = "RepositoryItemTextEdit1"
'
'RepositoryItemTextEdit2
'
resources.ApplyResources(Me.RepositoryItemTextEdit2, "RepositoryItemTextEdit2")
Me.RepositoryItemTextEdit2.Name = "RepositoryItemTextEdit2"
'
'RibbonStatusBar
'
Me.RibbonStatusBar.ItemLinks.Add(Me.labelResultCount)
Me.RibbonStatusBar.ItemLinks.Add(Me.labelCriticalError)
Me.RibbonStatusBar.ItemLinks.Add(Me.labelWarning)
resources.ApplyResources(Me.RibbonStatusBar, "RibbonStatusBar")
Me.RibbonStatusBar.Name = "RibbonStatusBar"
Me.RibbonStatusBar.Ribbon = Me.RibbonControl
'
'SplitContainerControl2
'
Me.SplitContainerControl2.CollapsePanel = DevExpress.XtraEditors.SplitCollapsePanel.Panel2
resources.ApplyResources(Me.SplitContainerControl2, "SplitContainerControl2")
Me.SplitContainerControl2.Horizontal = False
Me.SplitContainerControl2.Name = "SplitContainerControl2"
'
'SplitContainerControl2.Panel1
'
Me.SplitContainerControl2.Panel1.Controls.Add(Me.GridControl2)
resources.ApplyResources(Me.SplitContainerControl2.Panel1, "SplitContainerControl2.Panel1")
'
'SplitContainerControl2.Panel2
'
Me.SplitContainerControl2.Panel2.Controls.Add(Me.GridControl3)
resources.ApplyResources(Me.SplitContainerControl2.Panel2, "SplitContainerControl2.Panel2")
Me.SplitContainerControl2.SplitterPosition = 223
'
'GridControl2
'
resources.ApplyResources(Me.GridControl2, "GridControl2")
Me.GridControl2.MainView = Me.GridView2
Me.GridControl2.MenuManager = Me.RibbonControl
Me.GridControl2.Name = "GridControl2"
Me.GridControl2.ViewCollection.AddRange(New DevExpress.XtraGrid.Views.Base.BaseView() {Me.GridView2})
'
'GridView2
'
Me.GridView2.Appearance.EvenRow.BackColor = System.Drawing.Color.Gainsboro
Me.GridView2.Appearance.EvenRow.Options.UseBackColor = True
Me.GridView2.Bands.AddRange(New DevExpress.XtraGrid.Views.BandedGrid.GridBand() {Me.GridBand2})
Me.GridView2.GridControl = Me.GridControl2
Me.GridView2.Name = "GridView2"
Me.GridView2.OptionsView.EnableAppearanceEvenRow = True
Me.GridView2.OptionsView.ShowAutoFilterRow = True
'
'GridBand2
'
Me.GridBand2.AppearanceHeader.Font = CType(resources.GetObject("GridBand2.AppearanceHeader.Font"), System.Drawing.Font)
Me.GridBand2.AppearanceHeader.Options.UseFont = True
resources.ApplyResources(Me.GridBand2, "GridBand2")
Me.GridBand2.OptionsBand.AllowHotTrack = False
Me.GridBand2.OptionsBand.AllowMove = False
Me.GridBand2.OptionsBand.AllowPress = False
Me.GridBand2.OptionsBand.AllowSize = False
Me.GridBand2.VisibleIndex = 0
'
'GridControl3
'
resources.ApplyResources(Me.GridControl3, "GridControl3")
Me.GridControl3.MainView = Me.GridView3
Me.GridControl3.MenuManager = Me.RibbonControl
Me.GridControl3.Name = "GridControl3"
Me.GridControl3.ViewCollection.AddRange(New DevExpress.XtraGrid.Views.Base.BaseView() {Me.GridView3})
'
'GridView3
'
Me.GridView3.Appearance.EvenRow.BackColor = System.Drawing.Color.Gainsboro
Me.GridView3.Appearance.EvenRow.Options.UseBackColor = True
Me.GridView3.Bands.AddRange(New DevExpress.XtraGrid.Views.BandedGrid.GridBand() {Me.GridBand3})
Me.GridView3.GridControl = Me.GridControl3
Me.GridView3.Name = "GridView3"
Me.GridView3.OptionsView.EnableAppearanceEvenRow = True
Me.GridView3.OptionsView.ShowAutoFilterRow = True
'
'GridBand3
'
Me.GridBand3.AppearanceHeader.Font = CType(resources.GetObject("GridBand3.AppearanceHeader.Font"), System.Drawing.Font)
Me.GridBand3.AppearanceHeader.Options.UseFont = True
resources.ApplyResources(Me.GridBand3, "GridBand3")
Me.GridBand3.OptionsBand.AllowHotTrack = False
Me.GridBand3.OptionsBand.AllowMove = False
Me.GridBand3.OptionsBand.AllowPress = False
Me.GridBand3.OptionsBand.AllowSize = False
Me.GridBand3.VisibleIndex = 0
'
'SplitContainerControl3
'
Me.SplitContainerControl3.BorderStyle = DevExpress.XtraEditors.Controls.BorderStyles.[Default]
resources.ApplyResources(Me.SplitContainerControl3, "SplitContainerControl3")
Me.SplitContainerControl3.Name = "SplitContainerControl3"
'
'SplitContainerControl3.Panel1
'
Me.SplitContainerControl3.Panel1.Controls.Add(Me.SplitContainerControl1)
resources.ApplyResources(Me.SplitContainerControl3.Panel1, "SplitContainerControl3.Panel1")
'
'SplitContainerControl3.Panel2
'
Me.SplitContainerControl3.Panel2.Controls.Add(Me.DocumentViewer1)
resources.ApplyResources(Me.SplitContainerControl3.Panel2, "SplitContainerControl3.Panel2")
Me.SplitContainerControl3.SplitterPosition = 762
'
'DocumentViewer1
'
resources.ApplyResources(Me.DocumentViewer1, "DocumentViewer1")
Me.DocumentViewer1.FileLoaded = False
Me.DocumentViewer1.Name = "DocumentViewer1"
'
'XtraSaveFileDialog
'
Me.XtraSaveFileDialog.FileName = "XtraSaveFileDialog1"
'
'MenuFullAccess_IDB
'
Me.MenuFullAccess_IDB.ItemLinks.Add(Me.MenuItemFileOpen)
Me.MenuFullAccess_IDB.ItemLinks.Add(Me.MenuItemFolderOpen)
Me.MenuFullAccess_IDB.ItemLinks.Add(Me.MenuItemFilepathCopy)
Me.MenuFullAccess_IDB.ItemLinks.Add(Me.MenuItemFolderpathCopy)
Me.MenuFullAccess_IDB.ItemLinks.Add(Me.MenuItemPropertiesIDB)
Me.MenuFullAccess_IDB.Name = "MenuFullAccess_IDB"
Me.MenuFullAccess_IDB.Ribbon = Me.RibbonControl
'
'MenuViewAccess_IDB
'
Me.MenuViewAccess_IDB.ItemLinks.Add(Me.MenuItemPropertiesIDB)
Me.MenuViewAccess_IDB.Name = "MenuViewAccess_IDB"
Me.MenuViewAccess_IDB.Ribbon = Me.RibbonControl
'
'MenuFullAccess_EDM
'
Me.MenuFullAccess_EDM.ItemLinks.Add(Me.MenuItemFileOpen)
Me.MenuFullAccess_EDM.ItemLinks.Add(Me.MenuItemFolderOpen)
Me.MenuFullAccess_EDM.ItemLinks.Add(Me.MenuItemFilepathCopy)
Me.MenuFullAccess_EDM.ItemLinks.Add(Me.MenuItemFolderpathCopy)
Me.MenuFullAccess_EDM.ItemLinks.Add(Me.MenuItemPropertiesECM)
Me.MenuFullAccess_EDM.Name = "MenuFullAccess_EDM"
Me.MenuFullAccess_EDM.Ribbon = Me.RibbonControl
'
'MenuFullAccess_ZOOFLOW
'
Me.MenuFullAccess_ZOOFLOW.ItemLinks.Add(Me.MenuItemsOpenFileZooFlow)
Me.MenuFullAccess_ZOOFLOW.ItemLinks.Add(Me.MenuItemPropertiesZooFlow)
Me.MenuFullAccess_ZOOFLOW.Name = "MenuFullAccess_ZOOFLOW"
Me.MenuFullAccess_ZOOFLOW.Ribbon = Me.RibbonControl
'
'frmDocumentResultList
'
Me.AllowFormGlass = DevExpress.Utils.DefaultBoolean.[True]
resources.ApplyResources(Me, "$this")
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
Me.Controls.Add(Me.SplitContainerControl3)
Me.Controls.Add(Me.RibbonStatusBar)
Me.Controls.Add(Me.RibbonControl)
Me.IconOptions.Icon = CType(resources.GetObject("frmDocumentResultList.IconOptions.Icon"), System.Drawing.Icon)
Me.IconOptions.SvgImage = CType(resources.GetObject("frmDocumentResultList.IconOptions.SvgImage"), DevExpress.Utils.Svg.SvgImage)
Me.Name = "frmDocumentResultList"
Me.Ribbon = Me.RibbonControl
Me.StatusBar = Me.RibbonStatusBar
CType(Me.SplitContainerControl1.Panel1, System.ComponentModel.ISupportInitialize).EndInit()
Me.SplitContainerControl1.Panel1.ResumeLayout(False)
CType(Me.SplitContainerControl1.Panel2, System.ComponentModel.ISupportInitialize).EndInit()
Me.SplitContainerControl1.Panel2.ResumeLayout(False)
CType(Me.SplitContainerControl1, System.ComponentModel.ISupportInitialize).EndInit()
Me.SplitContainerControl1.ResumeLayout(False)
CType(Me.GridControl1, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.GridView1, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.RibbonControl, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.RepositoryItemTextEdit1, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.RepositoryItemTextEdit2, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.SplitContainerControl2.Panel1, System.ComponentModel.ISupportInitialize).EndInit()
Me.SplitContainerControl2.Panel1.ResumeLayout(False)
CType(Me.SplitContainerControl2.Panel2, System.ComponentModel.ISupportInitialize).EndInit()
Me.SplitContainerControl2.Panel2.ResumeLayout(False)
CType(Me.SplitContainerControl2, System.ComponentModel.ISupportInitialize).EndInit()
Me.SplitContainerControl2.ResumeLayout(False)
CType(Me.GridControl2, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.GridView2, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.GridControl3, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.GridView3, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.SplitContainerControl3.Panel1, System.ComponentModel.ISupportInitialize).EndInit()
Me.SplitContainerControl3.Panel1.ResumeLayout(False)
CType(Me.SplitContainerControl3.Panel2, System.ComponentModel.ISupportInitialize).EndInit()
Me.SplitContainerControl3.Panel2.ResumeLayout(False)
CType(Me.SplitContainerControl3, System.ComponentModel.ISupportInitialize).EndInit()
Me.SplitContainerControl3.ResumeLayout(False)
CType(Me.MenuFullAccess_IDB, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.MenuViewAccess_IDB, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.MenuFullAccess_EDM, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.MenuFullAccess_ZOOFLOW, System.ComponentModel.ISupportInitialize).EndInit()
Me.ResumeLayout(False)
Me.PerformLayout()
End Sub
Friend WithEvents RibbonControl As DevExpress.XtraBars.Ribbon.RibbonControl
Friend WithEvents RibbonPage1 As DevExpress.XtraBars.Ribbon.RibbonPage
Friend WithEvents RibbonPageGroup_Layout As DevExpress.XtraBars.Ribbon.RibbonPageGroup
Friend WithEvents RibbonStatusBar As DevExpress.XtraBars.Ribbon.RibbonStatusBar
Friend WithEvents SwitchMainContainerHorizontal As DevExpress.XtraBars.BarToggleSwitchItem
Friend WithEvents SwitchDetailContainerHorizontal As DevExpress.XtraBars.BarToggleSwitchItem
Friend WithEvents SplitContainerControl1 As DevExpress.XtraEditors.SplitContainerControl
Friend WithEvents GridControl1 As DevExpress.XtraGrid.GridControl
Friend WithEvents SplitContainerControl2 As DevExpress.XtraEditors.SplitContainerControl
Friend WithEvents GridControl2 As DevExpress.XtraGrid.GridControl
Friend WithEvents GridControl3 As DevExpress.XtraGrid.GridControl
Friend WithEvents GridView2 As DevExpress.XtraGrid.Views.BandedGrid.BandedGridView
Friend WithEvents GridBand2 As DevExpress.XtraGrid.Views.BandedGrid.GridBand
Friend WithEvents GridView3 As DevExpress.XtraGrid.Views.BandedGrid.BandedGridView
Friend WithEvents GridBand3 As DevExpress.XtraGrid.Views.BandedGrid.GridBand
Friend WithEvents BarButtonItemExportGrid1 As DevExpress.XtraBars.BarButtonItem
Friend WithEvents RibbonPageGroup_Export As DevExpress.XtraBars.Ribbon.RibbonPageGroup
Friend WithEvents SplitContainerControl3 As DevExpress.XtraEditors.SplitContainerControl
Friend WithEvents DocumentViewer1 As DigitalData.Controls.DocumentViewer.DocumentViewer
Friend WithEvents BarStaticItem1 As DevExpress.XtraBars.BarStaticItem
Friend WithEvents labelResultCount As DevExpress.XtraBars.BarStaticItem
Friend WithEvents XtraSaveFileDialog As DevExpress.XtraEditors.XtraSaveFileDialog
Friend WithEvents BarButtonBack As DevExpress.XtraBars.BarButtonItem
Friend WithEvents RibbonPageGroup_Navigation As DevExpress.XtraBars.Ribbon.RibbonPageGroup
Friend WithEvents BarButtonResetLayout As DevExpress.XtraBars.BarButtonItem
Friend WithEvents RepositoryItemTextEdit1 As DevExpress.XtraEditors.Repository.RepositoryItemTextEdit
Friend WithEvents RepositoryItemTextEdit2 As DevExpress.XtraEditors.Repository.RepositoryItemTextEdit
Friend WithEvents labelCriticalError As DevExpress.XtraBars.BarStaticItem
Friend WithEvents labelWarning As DevExpress.XtraBars.BarStaticItem
Friend WithEvents GridView1 As DevExpress.XtraGrid.Views.BandedGrid.BandedGridView
Friend WithEvents GridBand1 As DevExpress.XtraGrid.Views.BandedGrid.GridBand
Friend WithEvents MenuFullAccess_IDB As DevExpress.XtraBars.PopupMenu
Friend WithEvents MenuItemFileOpen As DevExpress.XtraBars.BarButtonItem
Friend WithEvents MenuItemPropertiesIDB As DevExpress.XtraBars.BarButtonItem
Friend WithEvents MenuItemFolderOpen As DevExpress.XtraBars.BarButtonItem
Friend WithEvents MenuItemFilepathCopy As DevExpress.XtraBars.BarButtonItem
Friend WithEvents MenuItemFolderpathCopy As DevExpress.XtraBars.BarButtonItem
Friend WithEvents MenuViewAccess_IDB As DevExpress.XtraBars.PopupMenu
Friend WithEvents MenuFullAccess_EDM As DevExpress.XtraBars.PopupMenu
Friend WithEvents MenuItemPropertiesECM As DevExpress.XtraBars.BarButtonItem
Friend WithEvents MenuFullAccess_ZOOFLOW As DevExpress.XtraBars.PopupMenu
Friend WithEvents MenuItemsOpenFileZooFlow As DevExpress.XtraBars.BarButtonItem
Friend WithEvents MenuItemPropertiesZooFlow As DevExpress.XtraBars.BarButtonItem
End Class

View File

@@ -1,437 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="SwitchMainContainerHorizontal.Caption" xml:space="preserve">
<value>Main Grid Horizontal</value>
</data>
<data name="SwitchDetailContainerHorizontal.Caption" xml:space="preserve">
<value>Detail Grid Horizontal</value>
</data>
<data name="BarButtonItemExportGrid1.Caption" xml:space="preserve">
<value>Export XLSX</value>
</data>
<assembly alias="DevExpress.Data.v21.2" name="DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<data name="BarButtonItemExportGrid1.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjE5LjIsIFZlcnNpb249MTkuMi4z
LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl
dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAAHYNAAAC77u/
PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi
IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh
Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXJfMSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAg
MzIgMzIiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLkJsdWV7ZmlsbDojMTE3N0Q3O30KCS5H
cmVlbntmaWxsOiMwMzlDMjM7fQoJLkJsYWNre2ZpbGw6IzcyNzI3Mjt9Cgkuc3Qwe29wYWNpdHk6MC4z
O30KPC9zdHlsZT4NCiAgPHBhdGggZD0iTTgsNGgxOHY2aDJWM2MwLTAuNS0wLjUtMS0xLTFIN0M2LjUs
Miw2LDIuNSw2LDN2N2gyVjR6IiBjbGFzcz0iQmxhY2siIC8+DQogIDxwYXRoIGQ9Ik0yNiwyNkg4di04
SDZ2OWMwLDAuNSwwLjUsMSwxLDFoMjBjMC41LDAsMS0wLjUsMS0xdi05aC0yVjI2eiIgY2xhc3M9IkJs
YWNrIiAvPg0KICA8cGF0aCBkPSJNMzEsOEgzQzIuNCw4LDIsOC40LDIsOXYxMGMwLDAuNiwwLjQsMSwx
LDFoMjhjMC42LDAsMS0wLjQsMS0xVjlDMzIsOC40LDMxLjYsOCwzMSw4eiBNOS4xLDE4bC0xLjMtMi41
ICBjLTAuMS0wLjEtMC4xLTAuMy0wLjItMC41aDBjMCwwLjEtMC4xLDAuMy0wLjIsMC41TDYuMSwxOEg0
bDIuNS0zLjlsLTIuMi0zLjloMi4xbDEuMSwyLjNjMC4xLDAuMiwwLjIsMC40LDAuMiwwLjdoMCAgYzAt
MC4yLDAuMS0wLjQsMC4yLTAuN2wxLjItMi4zaDEuOWwtMi4zLDMuOGwyLjQsMy45SDkuMXogTTE2Ljcs
MThoLTQuNnYtNy43aDEuN3Y2LjNoMi45VjE4eiBNMjIuNCwxNi45Yy0wLjIsMC4zLTAuNCwwLjUtMC43
LDAuNyAgcy0wLjYsMC4zLTEsMC40Yy0wLjQsMC4xLTAuOCwwLjEtMS4yLDAuMWMtMC40LDAtMC44LDAt
MS4yLTAuMWMtMC40LTAuMS0wLjctMC4yLTEtMC4zVjE2YzAuMywwLjMsMC42LDAuNSwxLDAuNnMwLjcs
MC4yLDEuMSwwLjIgIGMwLjIsMCwwLjQsMCwwLjYtMC4xczAuMy0wLjEsMC40LTAuMmMwLjEtMC4xLDAu
Mi0wLjIsMC4yLTAuMmMwLjEtMC4xLDAuMS0wLjIsMC4xLTAuM2MwLTAuMiwwLTAuMy0wLjEtMC40ICBj
LTAuMS0wLjEtMC4yLTAuMi0wLjQtMC4zUzIwLDE1LjEsMTkuOCwxNXMtMC40LTAuMi0wLjctMC4zYy0w
LjYtMC4zLTEuMS0wLjYtMS4zLTAuOWMtMC4zLTAuNC0wLjQtMC44LTAuNC0xLjMgIGMwLTAuNCwwLjEt
MC43LDAuMi0xYzAuMi0wLjMsMC40LTAuNSwwLjctMC43YzAuMy0wLjIsMC42LTAuMywxLTAuNHMwLjgt
MC4xLDEuMi0wLjFjMC40LDAsMC44LDAsMS4xLDAuMWMwLjMsMCwwLjYsMC4xLDAuOSwwLjIgIHYxLjZj
LTAuMS0wLjEtMC4zLTAuMi0wLjQtMC4ycy0wLjMtMC4xLTAuNS0wLjJjLTAuMiwwLTAuMy0wLjEtMC41
LTAuMXMtMC4zLDAtMC41LDBjLTAuMiwwLTAuNCwwLTAuNSwwLjFjLTAuMiwwLTAuMywwLjEtMC40LDAu
MiAgYy0wLjEsMC4xLTAuMiwwLjEtMC4zLDAuMmMtMC4xLDAuMS0wLjEsMC4yLTAuMSwwLjNjMCwwLjEs
MCwwLjIsMC4xLDAuM2MwLjEsMC4xLDAuMiwwLjIsMC4zLDAuM2MwLjEsMC4xLDAuMywwLjIsMC41LDAu
MyAgczAuNCwwLjIsMC42LDAuM2MwLjMsMC4xLDAuNiwwLjMsMC44LDAuNGMwLjIsMC4xLDAuNSwwLjMs
MC42LDAuNWMwLjIsMC4yLDAuMywwLjQsMC40LDAuNnMwLjEsMC41LDAuMSwwLjggIEMyMi42LDE2LjMs
MjIuNSwxNi42LDIyLjQsMTYuOXogTTI4LjEsMThsLTEuMy0yLjVjLTAuMS0wLjEtMC4xLTAuMy0wLjIt
MC41aDBjMCwwLjEtMC4xLDAuMy0wLjIsMC41TDI1LjEsMThIMjNsMi41LTMuOWwtMi4yLTMuOSAgaDIu
MWwxLjEsMi4zYzAuMSwwLjIsMC4yLDAuNCwwLjIsMC43aDBjMC0wLjIsMC4xLTAuNCwwLjItMC43bDEu
Mi0yLjNoMS45bC0yLjMsMy44bDIuNCwzLjlIMjguMXoiIGNsYXNzPSJHcmVlbiIgLz4NCiAgPGcgY2xh
c3M9InN0MCI+DQogICAgPHBhdGggZD0iTTMxLDhIM0MyLjQsOCwyLDguNCwyLDl2MTBjMCwwLjYsMC40
LDEsMSwxaDI4YzAuNiwwLDEtMC40LDEtMVY5QzMyLDguNCwzMS42LDgsMzEsOHogTTkuMSwxOGwtMS4z
LTIuNSAgIGMtMC4xLTAuMS0wLjEtMC4zLTAuMi0wLjVoMGMwLDAuMS0wLjEsMC4zLTAuMiwwLjVMNi4x
LDE4SDRsMi41LTMuOWwtMi4yLTMuOWgyLjFsMS4xLDIuM2MwLjEsMC4yLDAuMiwwLjQsMC4yLDAuN2gw
ICAgYzAtMC4yLDAuMS0wLjQsMC4yLTAuN2wxLjItMi4zaDEuOWwtMi4zLDMuOGwyLjQsMy45SDkuMXog
TTE2LjcsMThoLTQuNnYtNy43aDEuN3Y2LjNoMi45VjE4eiBNMjIuNCwxNi45ICAgYy0wLjIsMC4zLTAu
NCwwLjUtMC43LDAuN3MtMC42LDAuMy0xLDAuNGMtMC40LDAuMS0wLjgsMC4xLTEuMiwwLjFjLTAuNCww
LTAuOCwwLTEuMi0wLjFjLTAuNC0wLjEtMC43LTAuMi0xLTAuM1YxNiAgIGMwLjMsMC4zLDAuNiwwLjUs
MSwwLjZzMC43LDAuMiwxLjEsMC4yYzAuMiwwLDAuNCwwLDAuNi0wLjFzMC4zLTAuMSwwLjQtMC4yYzAu
MS0wLjEsMC4yLTAuMiwwLjItMC4yYzAuMS0wLjEsMC4xLTAuMiwwLjEtMC4zICAgYzAtMC4yLDAtMC4z
LTAuMS0wLjRjLTAuMS0wLjEtMC4yLTAuMi0wLjQtMC4zUzIwLDE1LjEsMTkuOCwxNXMtMC40LTAuMi0w
LjctMC4zYy0wLjYtMC4zLTEuMS0wLjYtMS4zLTAuOSAgIGMtMC4zLTAuNC0wLjQtMC44LTAuNC0xLjNj
MC0wLjQsMC4xLTAuNywwLjItMWMwLjItMC4zLDAuNC0wLjUsMC43LTAuN2MwLjMtMC4yLDAuNi0wLjMs
MS0wLjRzMC44LTAuMSwxLjItMC4xICAgYzAuNCwwLDAuOCwwLDEuMSwwLjFjMC4zLDAsMC42LDAuMSww
LjksMC4ydjEuNmMtMC4xLTAuMS0wLjMtMC4yLTAuNC0wLjJzLTAuMy0wLjEtMC41LTAuMmMtMC4yLDAt
MC4zLTAuMS0wLjUtMC4xcy0wLjMsMC0wLjUsMCAgIGMtMC4yLDAtMC40LDAtMC41LDAuMWMtMC4yLDAt
MC4zLDAuMS0wLjQsMC4yYy0wLjEsMC4xLTAuMiwwLjEtMC4zLDAuMmMtMC4xLDAuMS0wLjEsMC4yLTAu
MSwwLjNjMCwwLjEsMCwwLjIsMC4xLDAuMyAgIGMwLjEsMC4xLDAuMiwwLjIsMC4zLDAuM2MwLjEsMC4x
LDAuMywwLjIsMC41LDAuM3MwLjQsMC4yLDAuNiwwLjNjMC4zLDAuMSwwLjYsMC4zLDAuOCwwLjRjMC4y
LDAuMSwwLjUsMC4zLDAuNiwwLjUgICBjMC4yLDAuMiwwLjMsMC40LDAuNCwwLjZzMC4xLDAuNSwwLjEs
MC44QzIyLjYsMTYuMywyMi41LDE2LjYsMjIuNCwxNi45eiBNMjguMSwxOGwtMS4zLTIuNWMtMC4xLTAu
MS0wLjEtMC4zLTAuMi0wLjVoMCAgIGMwLDAuMS0wLjEsMC4zLTAuMiwwLjVMMjUuMSwxOEgyM2wyLjUt
My45bC0yLjItMy45aDIuMWwxLjEsMi4zYzAuMSwwLjIsMC4yLDAuNCwwLjIsMC43aDBjMC0wLjIsMC4x
LTAuNCwwLjItMC43bDEuMi0yLjNoMS45ICAgbC0yLjMsMy44bDIuNCwzLjlIMjguMXoiIGNsYXNzPSJC
bHVlIiAvPg0KICA8L2c+DQo8L3N2Zz4L
</value>
</data>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="BarButtonItem1.ImageOptions.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m
dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAddEVYdFRpdGxlAEFydGljbGU7TG9hZDtPcGVuO0lz
c3VlwgbP1QAAAIJJREFUOE+lkQEOgCAIRb0gl+kIzUN1gM7TDRiBG8wlitrf3jKCp7NERL+wRc6ZFvAF
oyBieTYCfgEpqADOq4vEE5SCCqKEAm9nRRIKooQCb2dFUvVPn0AvuYG/uQJgrOm5D2CoA3wF0jwaaKgF
y8OMnWBrmCl3sD0s2P/cxS3OQ+kF2uLi3IrZfvEAAAAASUVORK5CYII=
</value>
</data>
<data name="BarButtonItem1.ImageOptions.LargeImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m
dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAddEVYdFRpdGxlAEFydGljbGU7TG9hZDtPcGVuO0lz
c3VlwgbP1QAAARFJREFUWEfdkkEOwkAIRb3gXMaNe9MLufMArj2KVxj5BpKh+dh2xtJEkpcCKZ9P01Ot
9VBoMxPazIQ2M6FNME1T/RFU36BNgOHR+C8D5XpfRRubDcjLxYbwHA3TkjTEFTpADbBrGW2YlqQhrtAB
aqAnTEvSEFfoADXArmW0YVqShrhCB6iBnjAtSUNcoQPUALuW0YZpSRriCh2gBnrCtCQNcYUOUAPsWkYb
piVpiCt0gBpYiCI4LbC0HLii0wCWg/p6nLdS1hqgFyq9yz84scBAkRcBFRhk8Qvsulz4+g/svhxEBsrz
dtl9OWAGUi435gZSlwNnQBqpy8HcABseJVwOnIEjoM1MaDMT2syENvOopzdUfCMZg5IrCQAAAABJRU5E
rkJggg==
</value>
</data>
<data name="BarButtonItem2.ImageOptions.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m
dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAArdEVYdFRpdGxlAE9wZW47Rm9sZGVyO0JhcnM7Umli
Ym9uO1N0YW5kYXJkO0xvYWTxw8RjAAAAb0lEQVQ4T6XQ0Q2AIAwEUBbsMs7Q0ZzHFeqVRIJ6VQof7+fC
XUiLmS2hYQYNM4qqChjhOS31fICVL8JKvb+BSBueHUB3cQCGB+oxmWjgVjj2TcAC8hzwx1+Fl34gXYb2
g6ky1BtMl1295AoajrNyArCYwjN4ThJYAAAAAElFTkSuQmCC
</value>
</data>
<data name="BarButtonItem2.ImageOptions.LargeImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m
dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAArdEVYdFRpdGxlAE9wZW47Rm9sZGVyO0JhcnM7Umli
Ym9uO1N0YW5kYXJkO0xvYWTxw8RjAAAA0UlEQVRYR8XU0RHCMAwD0C6YZZihozEPK5j4h4t0ShvSVP14
H9bVleE4toh4lAydZOgkQycZOsnQSYZOMnSCYd/3UsWgfBb2Z8BABSNgfwYMouAM7M+AQRSsUNoOBoNY
XqLtYDCo5RXaDgaDWl6h7WAwqOUV2g4Gg1oeNP2fAAO9dFT5vF8pJpTRA7qfMF9CL/0LvIxKf+X1wUsl
B06/gVvLq8PfwO3lqXeApTypA2zliQ+wlic4oAbW8sQHqOWruuUJDniCDJ1k6CRDJxn6xPYFX3CGNwSC
woYAAAAASUVORK5CYII=
</value>
</data>
<data name="BarButtonItem3.ImageOptions.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m
dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAldEVYdFRpdGxlAENvcHk7QmFycztSaWJib247U3Rh
bmRhcmQ7Q2xvbmVtDt9bAAAAb0lEQVQ4T+2OwQ2AIBAE6ckW700HlOaXIny4cgbIokE5w9NNJhC4HXAA
GkQEHfa8LjzflBUd6kXvvPcrS8yClI0ltfREjFGLt3PtDr0aQqiSEpNAc5WYBExJ3r8LOL9gkoBJ+fSD
s1OYJxiFywDcAUEvVDi/LQTFAAAAAElFTkSuQmCC
</value>
</data>
<data name="BarButtonItem3.ImageOptions.LargeImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m
dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAldEVYdFRpdGxlAENvcHk7QmFycztSaWJib247U3Rh
bmRhcmQ7Q2xvbmVtDt9bAAAA50lEQVRYR+2TwQqDMAyGfT6fq1dRevfJxFNhD7EdsvysgukSp1vtBusH
P5K0id9BGyL6atRmyajNNM45OpjAaTmYfcp6tyis8BA/9oP7XdfdxnFsuUx3iVoUVt4RmOdZlSgmADSJ
ogIgldgUwOCReO9pmiYeleBsTZS4QoLPxDtFkQ6+Avf7vqcQQuw80PYsEnwmvomPBbA4lUB/Ixe+kk8A
aBIWcSavANgrcZoA2CNxqgBYJLS/A2QXsDIMQ7wlwRmTR2ALa1cVqAJVoAr8l4AVpowAI/ZrEUUV+AmB
nFnvtqI2y4WaO7s+m1CnlB8XAAAAAElFTkSuQmCC
</value>
</data>
<data name="BarButtonBack.Caption" xml:space="preserve">
<value>Back</value>
</data>
<data name="BarButtonBack.ImageOptions.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m
dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAPdEVYdFRpdGxlAEJhY2s7UHJldj1cl8kAAAEJSURB
VDhPpZOhCgJBEIava7IICmIx+AZyRdM1X0EQfI8Ds3a70Re4ahKTb2BTsIhR0/p/x57MHmsQwwe788/8
tzO7l0yXRZ1MrMVBPDysiaEF+XbTFyuxF7kYi5aHNTE0csgNDAhsxUYMnHNJDDSfQ25pUhngitCIFVrI
8bnUlAb0xdGCL2vfFkfhxFPMjcZJqMnYMJy8VjwUZ0HxRYys7nOYyZoFEx4bYSLugmK0ji00eQz2wIJr
avngTLwExVGMAbfziBnQb7QYYgb1FlJxExQwxG6lWRT/tBAbYk+cBCZXkVrd53yG+O0am2InMKGthdGC
a4S/HhL8/ZQrE1w52s8/k+WH37lI3sUnQlO0bha7AAAAAElFTkSuQmCC
</value>
</data>
<data name="BarButtonBack.ImageOptions.LargeImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m
dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAPdEVYdFRpdGxlAEJhY2s7UHJldj1cl8kAAAJwSURB
VFhHxZe/Sh1BFMZNJbeUKIhgZ5fOMp2teBsRkaRIlZA0AZ9AsRZrX8E3EO59A9H8gRAIBOxSpAkEIoaY
zfdb5pO54+ze8Rrd4ifuOd85c3b3zJm9U1VVdUr9p793XMKC2BIHYijOxUWA/7HhQ4M2l2OE0gKeiF3x
QVSFoCWG2FzOmnEFPBKvxakg6V8xEDtiTSyJXoD/seFDg5YYYslBrhtrtBUwL/aF7+hIrKMtAW2IcTy5
yDmyDloHxCA8FAR+FdtiOl6gBGJCLDnIRc6RItBZbHhUvvN3YiNOOgnkCLn8JK5fB36LDO/Ld37nxQ25
Qk5ys0a2ADrWDbcdJ0iRvy8ug9Z8EYs5PcjH60DHGvXuwG4nsG0Q0DyN71w+Gixd/LNYyOmN/PSEG5O1
arudDA72Ltunsdvl2xS/Rbz4JzGf06dIR/GswVp1wXYwvUg2iANi5Hsm/gSdIdFcTt+E9MwJYre4tpER
inEnFhvZX4h08TPxOKdvQzEMK+IPuLaROY5xLRYH30txFfzmRMyk2hIUx8Qkx5BrGzlMMC4l4jfCY3Vi
kpyMbeznXNvIiYaxFwnfijsvDs4Z8nJ2YL/guq2AVyJ99BPhnCFvtoCmV/BcpM13a5Kc2VfQ1oS5wTPR
DgDFZZtw3DZcFb+CxnDA/LdtWDKIVsTPoIuLmM3pm5A+O4hKR/FT8UPERbwXRdNQusZRDKWH0bL4HrTF
RcjfehjBbY5jtN+C1nwUjUXIN/Y4hk4/SKDzTzLo9KPUIPSTAJrnwT7LDY+K9+XGZPs82A+TGDqWbcPe
9R2NAy0xdbc3UVqAub8fp91RTf0DZ0rWioS6adsAAAAASUVORK5CYII=
</value>
</data>
<data name="BarButtonItem5.Caption" xml:space="preserve">
<value>Reset Layout</value>
</data>
<data name="BarButtonItem5.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjE5LjIsIFZlcnNpb249MTkuMi4z
LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl
dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAALICAAAC77u/
PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi
IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh
Y2U9InByZXNlcnZlIiBpZD0iUmVzZXRfUmFuZ2UiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcg
MCAwIDMyIDMyIj4NCiAgPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KCS5CbHVle2ZpbGw6IzExNzdENzt9
CgkuUmVke2ZpbGw6I0QxMUMxQzt9Cgkuc3Qwe29wYWNpdHk6MC41O30KPC9zdHlsZT4NCiAgPGcgY2xh
c3M9InN0MCI+DQogICAgPHBhdGggZD0iTTI5LDJIM0MyLjUsMiwyLDIuNSwyLDN2MjZjMCwwLjUsMC41
LDEsMSwxaDI2YzAuNSwwLDEtMC41LDEtMVYzQzMwLDIuNSwyOS41LDIsMjksMnogTTI4LDEyaC0zLjJs
LTQsNGwyLDIgICBIMjh2MTBINFYxNGg1LjJsLTItMkg0VjRoMTJ2NGgzLjJMMjAsNy4yTDIwLjgsOEgy
OFYxMnoiIGNsYXNzPSJCbHVlIiAvPg0KICA8L2c+DQogIDxwb2x5Z29uIHBvaW50cz0iMjIsMTIgMjAs
MTAgMTYsMTQgMTIsMTAgMTAsMTIgMTQsMTYgMTAsMjAgMTIsMjIgMTYsMTggMjAsMjIgMjIsMjAgMTgs
MTYgIiBjbGFzcz0iUmVkIiAvPg0KPC9zdmc+Cw==
</value>
</data>
<data name="labelCriticalError.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjE5LjIsIFZlcnNpb249MTkuMi4z
LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl
dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAALMCAAAC77u/
PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi
IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh
Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXJfMSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAg
MzIgMzIiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLkJsdWV7ZmlsbDojMTE3N0Q3O30KCS5Z
ZWxsb3d7ZmlsbDojRkZCMTE1O30KCS5CbGFja3tmaWxsOiM3MjcyNzI7fQoJLkdyZWVue2ZpbGw6IzAz
OUMyMzt9CgkuUmVke2ZpbGw6I0QxMUMxQzt9Cgkuc3Qwe29wYWNpdHk6MC43NTt9Cgkuc3Qxe29wYWNp
dHk6MC41O30KPC9zdHlsZT4NCiAgPGcgaWQ9IkRlbGV0ZUNpcmNsZWQiPg0KICAgIDxwYXRoIGQ9Ik0x
Niw0QzkuNCw0LDQsOS40LDQsMTZzNS40LDEyLDEyLDEyczEyLTUuNCwxMi0xMlMyMi42LDQsMTYsNHog
TTIzLjEsMjAuMmwtMi44LDIuOEwxNiwxOC44bC00LjIsNC4yICAgbC0yLjgtMi44bDQuMi00LjJsLTQu
Mi00LjJsMi44LTIuOGw0LjIsNC4ybDQuMi00LjJsMi44LDIuOEwxOC44LDE2TDIzLjEsMjAuMnoiIGNs
YXNzPSJSZWQiIC8+DQogIDwvZz4NCjwvc3ZnPgs=
</value>
</data>
<data name="labelWarning.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjE5LjIsIFZlcnNpb249MTkuMi4z
LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl
dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAABkEAAAC77u/
PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi
IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh
Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXJfMSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAg
MzIgMzIiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLkJsdWV7ZmlsbDojMTE3N0Q3O30KCS5Z
ZWxsb3d7ZmlsbDojRkZCMTE1O30KCS5SZWR7ZmlsbDojRDExQzFDO30KCS5HcmVlbntmaWxsOiMwMzlD
MjM7fQoJLkJsYWNre2ZpbGw6IzcyNzI3Mjt9CgkuV2hpdGV7ZmlsbDojRkZGRkZGO30KCS5zdDB7b3Bh
Y2l0eTowLjU7fQoJLnN0MXtvcGFjaXR5OjAuNzU7fQoJLnN0MntkaXNwbGF5Om5vbmU7fQoJLnN0M3tk
aXNwbGF5OmlubGluZTtmaWxsOiNGRkIxMTU7fQoJLnN0NHtkaXNwbGF5OmlubGluZTt9Cgkuc3Q1e2Rp
c3BsYXk6aW5saW5lO29wYWNpdHk6MC43NTt9Cgkuc3Q2e2Rpc3BsYXk6aW5saW5lO29wYWNpdHk6MC41
O30KCS5zdDd7ZGlzcGxheTppbmxpbmU7ZmlsbDojMDM5QzIzO30KCS5zdDh7ZGlzcGxheTppbmxpbmU7
ZmlsbDojRDExQzFDO30KCS5zdDl7ZGlzcGxheTppbmxpbmU7ZmlsbDojMTE3N0Q3O30KCS5zdDEwe2Rp
c3BsYXk6aW5saW5lO2ZpbGw6I0ZGRkZGRjt9Cjwvc3R5bGU+DQogIDxnIGlkPSJBdHRlbnRpb24iPg0K
ICAgIDxwYXRoIGQ9Ik0xNS4xLDIuNUwyLjEsMjYuNUMxLjgsMjcuMiwyLjMsMjgsMy4xLDI4aDI1Ljlj
MC44LDAsMS4zLTAuOCwwLjktMS41TDE2LjksMi41ICAgQzE2LjUsMS44LDE1LjUsMS44LDE1LjEsMi41
eiIgY2xhc3M9IlllbGxvdyIgLz4NCiAgICA8cGF0aCBkPSJNMTYsMjBjMS4xLDAsMiwwLjksMiwycy0w
LjksMi0yLDJzLTItMC45LTItMlMxNC45LDIwLDE2LDIweiBNMTQsMTBoNHY4aC00VjEweiIgY2xhc3M9
IkJsYWNrIiAvPg0KICA8L2c+DQo8L3N2Zz4L
</value>
</data>
<data name="frmDocumentResultList.IconOptions.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAABAAMAEBAQAAEABAAoAQAANgAAABAQAAABAAgAaAUAAF4BAAAQEAAAAQAgAGgEAADGBgAAKAAAABAA
AAAgAAAAAQAEAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAIAAAACAgACAAAAAgACAAICA
AACAgIAAwMDAAAAA/wAA/wAAAP//AP8AAAD/AP8A//8AAP///wAAAAAAAAAAAAAP8AAAAAAAAPd/AAAA
AAAPd3fwAAAAAA93d38AAAAAAPd3d///8AAAD3d3d3d/8AAA93d3d3fwAAAPd3//d38AAA93///3fwAA
D3f///d/AAAPd///938AAA93f/93fwAAAPd3d3fwAAAA/3d3f/AAAAAA///wAP//AADn/wAAw/8AAIH/
AACA/wAAwAcAAOABAADwAQAA+AAAAPgAAAD4AAAA+AAAAPgAAAD8AQAA/AEAAP8HAAAoAAAAEAAAACAA
AAABAAgAAAAAAAABAAAAAAAAAAAAAAABAAAAAQAAAAAAAEJCQgBNTU0AWFhYAGRkZABubW4AeXl5AIaG
hgDg4OAA5uTlAOvr6wDx7/AA9vb2APr6+gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////AAAAAAAAAAAAAAAAAAAAAAAAAAAMDAAAAAAA
AAAAAAAAAAAKBAcMAAAAAAAAAAAAAAAMBAEBBwwAAAAAAAAAAAAADAQBAQEHDAAAAAAAAAAAAAAKBAEB
AQcMDAwMDAAAAAAAAAoEAQEBBAEBAQYIDQAAAAAACgQBAQEBAQEBAggAAAAAAAAKAwEGCAsIBQEGDAAA
AAAADAEBCAsLCwgBAQwAAAAAAAgBAQsLCwsLAwEMAAAAAAAMAQEICwsLCAEBDAAAAAAADAYBBggLCAUB
BgwAAAAAAAAIAgEBAQEBAggAAAAAAAAADQgGAQEBBggNAAAAAAAAAAAADAwMDAwAAAD//wAA5/8AAMP/
AACB/wAAgP8AAMAHAADgAQAA8AEAAPgAAAD4AAAA+AAAAPgAAAD4AAAA/AEAAPwBAAD/BwAAKAAAABAA
AAAgAAAAAQAgAAAAAABABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPb29jD29vYwAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPb29jD29vbv9vb27/b2
9jAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPb29jDq6urvZGRk/4aG
hv/29vbv9vb2MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPb29jD29vbvZGRk/0JC
Qv9CQkL/hoaG//b29u/29vYwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD29vYw9vb272Rk
ZP9CQkL/QkJC/0JCQv+Ghob/9vb27/b29jAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPb2
9jDq6urvZGRk/0JCQv9CQkL/QkJC/4aGhv/29vb/9vb2//b29v/29vb/9vb2z/b29lAAAAAAAAAAAAAA
AAAAAAAA9vb2MOrq6u9kZGT/QkJC/0JCQv9CQkL/ZGRk/0JCQv9CQkL/QkJC/3p6ev/g4OD/9vb2gAAA
AAAAAAAAAAAAAAAAAAD29vYw6urq72RkZP9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/TU1N/+Dg
4P/29vZQAAAAAAAAAAAAAAAAAAAAAPb29jDr6+v/WVlZ/0JCQv95eHj/5uTl//Hv8P/m5OX/bm1u/0JC
Qv96enr/9vb2zwAAAAAAAAAAAAAAAAAAAAAAAAAA9vb2/0JCQv9CQkL/5uTl//Hv8P/x7/D/8e/w/+bk
5f9CQkL/QkJC//b29v8AAAAAAAAAAAAAAAAAAAAAAAAAAODg4P9CQkL/QkJC//Hv8P/x7/D/8e/w//Hv
8P/x7/D/WFhY/0JCQv/29vb/AAAAAAAAAAAAAAAAAAAAAAAAAAD29vb/QkJC/0JCQv/m5OX/8e/w//Hv
8P/x7/D/5uTl/0JCQv9CQkL/9vb2/wAAAAAAAAAAAAAAAAAAAAAAAAAA9vb2z3p6ev9CQkL/eXh4/+bk
5f/x7/D/5uTl/25tbv9CQkL/enp6//b29s8AAAAAAAAAAAAAAAAAAAAAAAAAAPb29lDg4OD/TU1N/0JC
Qv9CQkL/QkJC/0JCQv9CQkL/TU1N/+Dg4P/29vZQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9vb2gODg
4P96enr/QkJC/0JCQv9CQkL/enp6/+Dg4P/29vaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAD29vZQ9vb2z/b29v/29vb/9vb2//b29s/29vZQAAAAAAAAAADn/wAAw/8AAIH/AAAA/wAAAH8AAIAD
AADAAQAA4AAAAPAAAAD4AAAA+AAAAPgAAAD4AAAA+AAAAPwBAAD+AwAA
</value>
</data>
<data name="frmDocumentResultList.IconOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjE5LjIsIFZlcnNpb249MTkuMi4z
LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl
dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAALMEAAAC77u/
PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi
IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh
Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXJfMSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAg
MzIgMzIiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLkJsdWV7ZmlsbDojMTE3N0Q3O30KCS5Z
ZWxsb3d7ZmlsbDojRkZCMTE1O30KCS5SZWR7ZmlsbDojRDExQzFDO30KCS5HcmVlbntmaWxsOiMwMzlD
MjM7fQoJLkJsYWNre2ZpbGw6IzcyNzI3Mjt9CgkuV2hpdGV7ZmlsbDojRkZGRkZGO30KCS5zdDB7b3Bh
Y2l0eTowLjU7fQoJLnN0MXtvcGFjaXR5OjAuNzU7fQoJLnN0MntkaXNwbGF5Om5vbmU7fQoJLnN0M3tk
aXNwbGF5OmlubGluZTtmaWxsOiNGRkIxMTU7fQoJLnN0NHtkaXNwbGF5OmlubGluZTt9Cgkuc3Q1e2Rp
c3BsYXk6aW5saW5lO29wYWNpdHk6MC43NTt9Cgkuc3Q2e2Rpc3BsYXk6aW5saW5lO29wYWNpdHk6MC41
O30KCS5zdDd7ZGlzcGxheTppbmxpbmU7ZmlsbDojMDM5QzIzO30KCS5zdDh7ZGlzcGxheTppbmxpbmU7
ZmlsbDojRDExQzFDO30KCS5zdDl7ZGlzcGxheTppbmxpbmU7ZmlsbDojMTE3N0Q3O30KCS5zdDEwe2Rp
c3BsYXk6aW5saW5lO2ZpbGw6I0ZGRkZGRjt9Cjwvc3R5bGU+DQogIDxnIGlkPSJBcHBlYXJhbmNlIj4N
CiAgICA8cmVjdCB4PSIxMiIgeT0iNCIgd2lkdGg9IjgiIGhlaWdodD0iNiIgcng9IjAiIHJ5PSIwIiBj
bGFzcz0iWWVsbG93IiAvPg0KICAgIDxyZWN0IHg9IjIiIHk9IjEyIiB3aWR0aD0iOCIgaGVpZ2h0PSI2
IiByeD0iMCIgcnk9IjAiIGNsYXNzPSJSZWQiIC8+DQogICAgPHJlY3QgeD0iMjIiIHk9IjIwIiB3aWR0
aD0iOCIgaGVpZ2h0PSI2IiByeD0iMCIgcnk9IjAiIGNsYXNzPSJHcmVlbiIgLz4NCiAgICA8ZyBjbGFz
cz0ic3QwIj4NCiAgICAgIDxwYXRoIGQ9Ik0xMiwxMmg4djZoLThWMTJ6IE0xMCwxMFY0SDJ2NkgxMHog
TTIyLDEwaDhWNGgtOFYxMHogTTIyLDE4aDh2LTZoLThWMTh6IE0xMiwyMHY2aDh2LTZIMTJ6IE0xMCwy
NnYtNkgydjYgICAgSDEweiIgY2xhc3M9IkJsYWNrIiAvPg0KICAgIDwvZz4NCiAgPC9nPg0KPC9zdmc+
Cw==
</value>
</data>
<data name="$this.Text" xml:space="preserve">
<value>Document Search</value>
</data>
</root>

View File

@@ -1,452 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="DevExpress.Data.v21.2" name="DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<data name="BarButtonItemExportGrid1.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjE5LjIsIFZlcnNpb249MTkuMi4z
LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl
dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAAHYNAAAC77u/
PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi
IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh
Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXJfMSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAg
MzIgMzIiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLkJsdWV7ZmlsbDojMTE3N0Q3O30KCS5H
cmVlbntmaWxsOiMwMzlDMjM7fQoJLkJsYWNre2ZpbGw6IzcyNzI3Mjt9Cgkuc3Qwe29wYWNpdHk6MC4z
O30KPC9zdHlsZT4NCiAgPHBhdGggZD0iTTgsNGgxOHY2aDJWM2MwLTAuNS0wLjUtMS0xLTFIN0M2LjUs
Miw2LDIuNSw2LDN2N2gyVjR6IiBjbGFzcz0iQmxhY2siIC8+DQogIDxwYXRoIGQ9Ik0yNiwyNkg4di04
SDZ2OWMwLDAuNSwwLjUsMSwxLDFoMjBjMC41LDAsMS0wLjUsMS0xdi05aC0yVjI2eiIgY2xhc3M9IkJs
YWNrIiAvPg0KICA8cGF0aCBkPSJNMzEsOEgzQzIuNCw4LDIsOC40LDIsOXYxMGMwLDAuNiwwLjQsMSwx
LDFoMjhjMC42LDAsMS0wLjQsMS0xVjlDMzIsOC40LDMxLjYsOCwzMSw4eiBNOS4xLDE4bC0xLjMtMi41
ICBjLTAuMS0wLjEtMC4xLTAuMy0wLjItMC41aDBjMCwwLjEtMC4xLDAuMy0wLjIsMC41TDYuMSwxOEg0
bDIuNS0zLjlsLTIuMi0zLjloMi4xbDEuMSwyLjNjMC4xLDAuMiwwLjIsMC40LDAuMiwwLjdoMCAgYzAt
MC4yLDAuMS0wLjQsMC4yLTAuN2wxLjItMi4zaDEuOWwtMi4zLDMuOGwyLjQsMy45SDkuMXogTTE2Ljcs
MThoLTQuNnYtNy43aDEuN3Y2LjNoMi45VjE4eiBNMjIuNCwxNi45Yy0wLjIsMC4zLTAuNCwwLjUtMC43
LDAuNyAgcy0wLjYsMC4zLTEsMC40Yy0wLjQsMC4xLTAuOCwwLjEtMS4yLDAuMWMtMC40LDAtMC44LDAt
MS4yLTAuMWMtMC40LTAuMS0wLjctMC4yLTEtMC4zVjE2YzAuMywwLjMsMC42LDAuNSwxLDAuNnMwLjcs
MC4yLDEuMSwwLjIgIGMwLjIsMCwwLjQsMCwwLjYtMC4xczAuMy0wLjEsMC40LTAuMmMwLjEtMC4xLDAu
Mi0wLjIsMC4yLTAuMmMwLjEtMC4xLDAuMS0wLjIsMC4xLTAuM2MwLTAuMiwwLTAuMy0wLjEtMC40ICBj
LTAuMS0wLjEtMC4yLTAuMi0wLjQtMC4zUzIwLDE1LjEsMTkuOCwxNXMtMC40LTAuMi0wLjctMC4zYy0w
LjYtMC4zLTEuMS0wLjYtMS4zLTAuOWMtMC4zLTAuNC0wLjQtMC44LTAuNC0xLjMgIGMwLTAuNCwwLjEt
MC43LDAuMi0xYzAuMi0wLjMsMC40LTAuNSwwLjctMC43YzAuMy0wLjIsMC42LTAuMywxLTAuNHMwLjgt
MC4xLDEuMi0wLjFjMC40LDAsMC44LDAsMS4xLDAuMWMwLjMsMCwwLjYsMC4xLDAuOSwwLjIgIHYxLjZj
LTAuMS0wLjEtMC4zLTAuMi0wLjQtMC4ycy0wLjMtMC4xLTAuNS0wLjJjLTAuMiwwLTAuMy0wLjEtMC41
LTAuMXMtMC4zLDAtMC41LDBjLTAuMiwwLTAuNCwwLTAuNSwwLjFjLTAuMiwwLTAuMywwLjEtMC40LDAu
MiAgYy0wLjEsMC4xLTAuMiwwLjEtMC4zLDAuMmMtMC4xLDAuMS0wLjEsMC4yLTAuMSwwLjNjMCwwLjEs
MCwwLjIsMC4xLDAuM2MwLjEsMC4xLDAuMiwwLjIsMC4zLDAuM2MwLjEsMC4xLDAuMywwLjIsMC41LDAu
MyAgczAuNCwwLjIsMC42LDAuM2MwLjMsMC4xLDAuNiwwLjMsMC44LDAuNGMwLjIsMC4xLDAuNSwwLjMs
MC42LDAuNWMwLjIsMC4yLDAuMywwLjQsMC40LDAuNnMwLjEsMC41LDAuMSwwLjggIEMyMi42LDE2LjMs
MjIuNSwxNi42LDIyLjQsMTYuOXogTTI4LjEsMThsLTEuMy0yLjVjLTAuMS0wLjEtMC4xLTAuMy0wLjIt
MC41aDBjMCwwLjEtMC4xLDAuMy0wLjIsMC41TDI1LjEsMThIMjNsMi41LTMuOWwtMi4yLTMuOSAgaDIu
MWwxLjEsMi4zYzAuMSwwLjIsMC4yLDAuNCwwLjIsMC43aDBjMC0wLjIsMC4xLTAuNCwwLjItMC43bDEu
Mi0yLjNoMS45bC0yLjMsMy44bDIuNCwzLjlIMjguMXoiIGNsYXNzPSJHcmVlbiIgLz4NCiAgPGcgY2xh
c3M9InN0MCI+DQogICAgPHBhdGggZD0iTTMxLDhIM0MyLjQsOCwyLDguNCwyLDl2MTBjMCwwLjYsMC40
LDEsMSwxaDI4YzAuNiwwLDEtMC40LDEtMVY5QzMyLDguNCwzMS42LDgsMzEsOHogTTkuMSwxOGwtMS4z
LTIuNSAgIGMtMC4xLTAuMS0wLjEtMC4zLTAuMi0wLjVoMGMwLDAuMS0wLjEsMC4zLTAuMiwwLjVMNi4x
LDE4SDRsMi41LTMuOWwtMi4yLTMuOWgyLjFsMS4xLDIuM2MwLjEsMC4yLDAuMiwwLjQsMC4yLDAuN2gw
ICAgYzAtMC4yLDAuMS0wLjQsMC4yLTAuN2wxLjItMi4zaDEuOWwtMi4zLDMuOGwyLjQsMy45SDkuMXog
TTE2LjcsMThoLTQuNnYtNy43aDEuN3Y2LjNoMi45VjE4eiBNMjIuNCwxNi45ICAgYy0wLjIsMC4zLTAu
NCwwLjUtMC43LDAuN3MtMC42LDAuMy0xLDAuNGMtMC40LDAuMS0wLjgsMC4xLTEuMiwwLjFjLTAuNCww
LTAuOCwwLTEuMi0wLjFjLTAuNC0wLjEtMC43LTAuMi0xLTAuM1YxNiAgIGMwLjMsMC4zLDAuNiwwLjUs
MSwwLjZzMC43LDAuMiwxLjEsMC4yYzAuMiwwLDAuNCwwLDAuNi0wLjFzMC4zLTAuMSwwLjQtMC4yYzAu
MS0wLjEsMC4yLTAuMiwwLjItMC4yYzAuMS0wLjEsMC4xLTAuMiwwLjEtMC4zICAgYzAtMC4yLDAtMC4z
LTAuMS0wLjRjLTAuMS0wLjEtMC4yLTAuMi0wLjQtMC4zUzIwLDE1LjEsMTkuOCwxNXMtMC40LTAuMi0w
LjctMC4zYy0wLjYtMC4zLTEuMS0wLjYtMS4zLTAuOSAgIGMtMC4zLTAuNC0wLjQtMC44LTAuNC0xLjNj
MC0wLjQsMC4xLTAuNywwLjItMWMwLjItMC4zLDAuNC0wLjUsMC43LTAuN2MwLjMtMC4yLDAuNi0wLjMs
MS0wLjRzMC44LTAuMSwxLjItMC4xICAgYzAuNCwwLDAuOCwwLDEuMSwwLjFjMC4zLDAsMC42LDAuMSww
LjksMC4ydjEuNmMtMC4xLTAuMS0wLjMtMC4yLTAuNC0wLjJzLTAuMy0wLjEtMC41LTAuMmMtMC4yLDAt
MC4zLTAuMS0wLjUtMC4xcy0wLjMsMC0wLjUsMCAgIGMtMC4yLDAtMC40LDAtMC41LDAuMWMtMC4yLDAt
MC4zLDAuMS0wLjQsMC4yYy0wLjEsMC4xLTAuMiwwLjEtMC4zLDAuMmMtMC4xLDAuMS0wLjEsMC4yLTAu
MSwwLjNjMCwwLjEsMCwwLjIsMC4xLDAuMyAgIGMwLjEsMC4xLDAuMiwwLjIsMC4zLDAuM2MwLjEsMC4x
LDAuMywwLjIsMC41LDAuM3MwLjQsMC4yLDAuNiwwLjNjMC4zLDAuMSwwLjYsMC4zLDAuOCwwLjRjMC4y
LDAuMSwwLjUsMC4zLDAuNiwwLjUgICBjMC4yLDAuMiwwLjMsMC40LDAuNCwwLjZzMC4xLDAuNSwwLjEs
MC44QzIyLjYsMTYuMywyMi41LDE2LjYsMjIuNCwxNi45eiBNMjguMSwxOGwtMS4zLTIuNWMtMC4xLTAu
MS0wLjEtMC4zLTAuMi0wLjVoMCAgIGMwLDAuMS0wLjEsMC4zLTAuMiwwLjVMMjUuMSwxOEgyM2wyLjUt
My45bC0yLjItMy45aDIuMWwxLjEsMi4zYzAuMSwwLjIsMC4yLDAuNCwwLjIsMC43aDBjMC0wLjIsMC4x
LTAuNCwwLjItMC43bDEuMi0yLjNoMS45ICAgbC0yLjMsMy44bDIuNCwzLjlIMjguMXoiIGNsYXNzPSJC
bHVlIiAvPg0KICA8L2c+DQo8L3N2Zz4L
</value>
</data>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="BarButtonItem1.ImageOptions.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m
dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAddEVYdFRpdGxlAEFydGljbGU7TG9hZDtPcGVuO0lz
c3VlwgbP1QAAAIJJREFUOE+lkQEOgCAIRb0gl+kIzUN1gM7TDRiBG8wlitrf3jKCp7NERL+wRc6ZFvAF
oyBieTYCfgEpqADOq4vEE5SCCqKEAm9nRRIKooQCb2dFUvVPn0AvuYG/uQJgrOm5D2CoA3wF0jwaaKgF
y8OMnWBrmCl3sD0s2P/cxS3OQ+kF2uLi3IrZfvEAAAAASUVORK5CYII=
</value>
</data>
<data name="BarButtonItem1.ImageOptions.LargeImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m
dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAddEVYdFRpdGxlAEFydGljbGU7TG9hZDtPcGVuO0lz
c3VlwgbP1QAAARFJREFUWEfdkkEOwkAIRb3gXMaNe9MLufMArj2KVxj5BpKh+dh2xtJEkpcCKZ9P01Ot
9VBoMxPazIQ2M6FNME1T/RFU36BNgOHR+C8D5XpfRRubDcjLxYbwHA3TkjTEFTpADbBrGW2YlqQhrtAB
aqAnTEvSEFfoADXArmW0YVqShrhCB6iBnjAtSUNcoQPUALuW0YZpSRriCh2gBnrCtCQNcYUOUAPsWkYb
piVpiCt0gBpYiCI4LbC0HLii0wCWg/p6nLdS1hqgFyq9yz84scBAkRcBFRhk8Qvsulz4+g/svhxEBsrz
dtl9OWAGUi435gZSlwNnQBqpy8HcABseJVwOnIEjoM1MaDMT2syENvOopzdUfCMZg5IrCQAAAABJRU5E
rkJggg==
</value>
</data>
<data name="BarButtonItem2.ImageOptions.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m
dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAArdEVYdFRpdGxlAE9wZW47Rm9sZGVyO0JhcnM7Umli
Ym9uO1N0YW5kYXJkO0xvYWTxw8RjAAAAb0lEQVQ4T6XQ0Q2AIAwEUBbsMs7Q0ZzHFeqVRIJ6VQof7+fC
XUiLmS2hYQYNM4qqChjhOS31fICVL8JKvb+BSBueHUB3cQCGB+oxmWjgVjj2TcAC8hzwx1+Fl34gXYb2
g6ky1BtMl1295AoajrNyArCYwjN4ThJYAAAAAElFTkSuQmCC
</value>
</data>
<data name="BarButtonItem2.ImageOptions.LargeImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m
dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAArdEVYdFRpdGxlAE9wZW47Rm9sZGVyO0JhcnM7Umli
Ym9uO1N0YW5kYXJkO0xvYWTxw8RjAAAA0UlEQVRYR8XU0RHCMAwD0C6YZZihozEPK5j4h4t0ShvSVP14
H9bVleE4toh4lAydZOgkQycZOsnQSYZOMnSCYd/3UsWgfBb2Z8BABSNgfwYMouAM7M+AQRSsUNoOBoNY
XqLtYDCo5RXaDgaDWl6h7WAwqOUV2g4Gg1oeNP2fAAO9dFT5vF8pJpTRA7qfMF9CL/0LvIxKf+X1wUsl
B06/gVvLq8PfwO3lqXeApTypA2zliQ+wlic4oAbW8sQHqOWruuUJDniCDJ1k6CRDJxn6xPYFX3CGNwSC
woYAAAAASUVORK5CYII=
</value>
</data>
<data name="BarButtonItem3.ImageOptions.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m
dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAldEVYdFRpdGxlAENvcHk7QmFycztSaWJib247U3Rh
bmRhcmQ7Q2xvbmVtDt9bAAAAb0lEQVQ4T+2OwQ2AIBAE6ckW700HlOaXIny4cgbIokE5w9NNJhC4HXAA
GkQEHfa8LjzflBUd6kXvvPcrS8yClI0ltfREjFGLt3PtDr0aQqiSEpNAc5WYBExJ3r8LOL9gkoBJ+fSD
s1OYJxiFywDcAUEvVDi/LQTFAAAAAElFTkSuQmCC
</value>
</data>
<data name="BarButtonItem3.ImageOptions.LargeImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m
dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAldEVYdFRpdGxlAENvcHk7QmFycztSaWJib247U3Rh
bmRhcmQ7Q2xvbmVtDt9bAAAA50lEQVRYR+2TwQqDMAyGfT6fq1dRevfJxFNhD7EdsvysgukSp1vtBusH
P5K0id9BGyL6atRmyajNNM45OpjAaTmYfcp6tyis8BA/9oP7XdfdxnFsuUx3iVoUVt4RmOdZlSgmADSJ
ogIgldgUwOCReO9pmiYeleBsTZS4QoLPxDtFkQ6+Avf7vqcQQuw80PYsEnwmvomPBbA4lUB/Ixe+kk8A
aBIWcSavANgrcZoA2CNxqgBYJLS/A2QXsDIMQ7wlwRmTR2ALa1cVqAJVoAr8l4AVpowAI/ZrEUUV+AmB
nFnvtqI2y4WaO7s+m1CnlB8XAAAAAElFTkSuQmCC
</value>
</data>
<data name="BarButtonBack.Caption" xml:space="preserve">
<value>Retour</value>
</data>
<data name="BarButtonBack.ImageOptions.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m
dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAPdEVYdFRpdGxlAEJhY2s7UHJldj1cl8kAAAEJSURB
VDhPpZOhCgJBEIava7IICmIx+AZyRdM1X0EQfI8Ds3a70Re4ahKTb2BTsIhR0/p/x57MHmsQwwe788/8
tzO7l0yXRZ1MrMVBPDysiaEF+XbTFyuxF7kYi5aHNTE0csgNDAhsxUYMnHNJDDSfQ25pUhngitCIFVrI
8bnUlAb0xdGCL2vfFkfhxFPMjcZJqMnYMJy8VjwUZ0HxRYys7nOYyZoFEx4bYSLugmK0ji00eQz2wIJr
avngTLwExVGMAbfziBnQb7QYYgb1FlJxExQwxG6lWRT/tBAbYk+cBCZXkVrd53yG+O0am2InMKGthdGC
a4S/HhL8/ZQrE1w52s8/k+WH37lI3sUnQlO0bha7AAAAAElFTkSuQmCC
</value>
</data>
<data name="BarButtonBack.ImageOptions.LargeImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m
dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAPdEVYdFRpdGxlAEJhY2s7UHJldj1cl8kAAAJwSURB
VFhHxZe/Sh1BFMZNJbeUKIhgZ5fOMp2teBsRkaRIlZA0AZ9AsRZrX8E3EO59A9H8gRAIBOxSpAkEIoaY
zfdb5pO54+ze8Rrd4ifuOd85c3b3zJm9U1VVdUr9p793XMKC2BIHYijOxUWA/7HhQ4M2l2OE0gKeiF3x
QVSFoCWG2FzOmnEFPBKvxakg6V8xEDtiTSyJXoD/seFDg5YYYslBrhtrtBUwL/aF7+hIrKMtAW2IcTy5
yDmyDloHxCA8FAR+FdtiOl6gBGJCLDnIRc6RItBZbHhUvvN3YiNOOgnkCLn8JK5fB36LDO/Ld37nxQ25
Qk5ys0a2ADrWDbcdJ0iRvy8ug9Z8EYs5PcjH60DHGvXuwG4nsG0Q0DyN71w+Gixd/LNYyOmN/PSEG5O1
arudDA72Ltunsdvl2xS/Rbz4JzGf06dIR/GswVp1wXYwvUg2iANi5Hsm/gSdIdFcTt+E9MwJYre4tpER
inEnFhvZX4h08TPxOKdvQzEMK+IPuLaROY5xLRYH30txFfzmRMyk2hIUx8Qkx5BrGzlMMC4l4jfCY3Vi
kpyMbeznXNvIiYaxFwnfijsvDs4Z8nJ2YL/guq2AVyJ99BPhnCFvtoCmV/BcpM13a5Kc2VfQ1oS5wTPR
DgDFZZtw3DZcFb+CxnDA/LdtWDKIVsTPoIuLmM3pm5A+O4hKR/FT8UPERbwXRdNQusZRDKWH0bL4HrTF
RcjfehjBbY5jtN+C1nwUjUXIN/Y4hk4/SKDzTzLo9KPUIPSTAJrnwT7LDY+K9+XGZPs82A+TGDqWbcPe
9R2NAy0xdbc3UVqAub8fp91RTf0DZ0rWioS6adsAAAAASUVORK5CYII=
</value>
</data>
<data name="BarButtonItem5.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjE5LjIsIFZlcnNpb249MTkuMi4z
LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl
dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAALICAAAC77u/
PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi
IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh
Y2U9InByZXNlcnZlIiBpZD0iUmVzZXRfUmFuZ2UiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcg
MCAwIDMyIDMyIj4NCiAgPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KCS5CbHVle2ZpbGw6IzExNzdENzt9
CgkuUmVke2ZpbGw6I0QxMUMxQzt9Cgkuc3Qwe29wYWNpdHk6MC41O30KPC9zdHlsZT4NCiAgPGcgY2xh
c3M9InN0MCI+DQogICAgPHBhdGggZD0iTTI5LDJIM0MyLjUsMiwyLDIuNSwyLDN2MjZjMCwwLjUsMC41
LDEsMSwxaDI2YzAuNSwwLDEtMC41LDEtMVYzQzMwLDIuNSwyOS41LDIsMjksMnogTTI4LDEyaC0zLjJs
LTQsNGwyLDIgICBIMjh2MTBINFYxNGg1LjJsLTItMkg0VjRoMTJ2NGgzLjJMMjAsNy4yTDIwLjgsOEgy
OFYxMnoiIGNsYXNzPSJCbHVlIiAvPg0KICA8L2c+DQogIDxwb2x5Z29uIHBvaW50cz0iMjIsMTIgMjAs
MTAgMTYsMTQgMTIsMTAgMTAsMTIgMTQsMTYgMTAsMjAgMTIsMjIgMTYsMTggMjAsMjIgMjIsMjAgMTgs
MTYgIiBjbGFzcz0iUmVkIiAvPg0KPC9zdmc+Cw==
</value>
</data>
<data name="labelCriticalError.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjE5LjIsIFZlcnNpb249MTkuMi4z
LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl
dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAALMCAAAC77u/
PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi
IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh
Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXJfMSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAg
MzIgMzIiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLkJsdWV7ZmlsbDojMTE3N0Q3O30KCS5Z
ZWxsb3d7ZmlsbDojRkZCMTE1O30KCS5CbGFja3tmaWxsOiM3MjcyNzI7fQoJLkdyZWVue2ZpbGw6IzAz
OUMyMzt9CgkuUmVke2ZpbGw6I0QxMUMxQzt9Cgkuc3Qwe29wYWNpdHk6MC43NTt9Cgkuc3Qxe29wYWNp
dHk6MC41O30KPC9zdHlsZT4NCiAgPGcgaWQ9IkRlbGV0ZUNpcmNsZWQiPg0KICAgIDxwYXRoIGQ9Ik0x
Niw0QzkuNCw0LDQsOS40LDQsMTZzNS40LDEyLDEyLDEyczEyLTUuNCwxMi0xMlMyMi42LDQsMTYsNHog
TTIzLjEsMjAuMmwtMi44LDIuOEwxNiwxOC44bC00LjIsNC4yICAgbC0yLjgtMi44bDQuMi00LjJsLTQu
Mi00LjJsMi44LTIuOGw0LjIsNC4ybDQuMi00LjJsMi44LDIuOEwxOC44LDE2TDIzLjEsMjAuMnoiIGNs
YXNzPSJSZWQiIC8+DQogIDwvZz4NCjwvc3ZnPgs=
</value>
</data>
<data name="labelWarning.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjE5LjIsIFZlcnNpb249MTkuMi4z
LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl
dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAABkEAAAC77u/
PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi
IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh
Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXJfMSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAg
MzIgMzIiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLkJsdWV7ZmlsbDojMTE3N0Q3O30KCS5Z
ZWxsb3d7ZmlsbDojRkZCMTE1O30KCS5SZWR7ZmlsbDojRDExQzFDO30KCS5HcmVlbntmaWxsOiMwMzlD
MjM7fQoJLkJsYWNre2ZpbGw6IzcyNzI3Mjt9CgkuV2hpdGV7ZmlsbDojRkZGRkZGO30KCS5zdDB7b3Bh
Y2l0eTowLjU7fQoJLnN0MXtvcGFjaXR5OjAuNzU7fQoJLnN0MntkaXNwbGF5Om5vbmU7fQoJLnN0M3tk
aXNwbGF5OmlubGluZTtmaWxsOiNGRkIxMTU7fQoJLnN0NHtkaXNwbGF5OmlubGluZTt9Cgkuc3Q1e2Rp
c3BsYXk6aW5saW5lO29wYWNpdHk6MC43NTt9Cgkuc3Q2e2Rpc3BsYXk6aW5saW5lO29wYWNpdHk6MC41
O30KCS5zdDd7ZGlzcGxheTppbmxpbmU7ZmlsbDojMDM5QzIzO30KCS5zdDh7ZGlzcGxheTppbmxpbmU7
ZmlsbDojRDExQzFDO30KCS5zdDl7ZGlzcGxheTppbmxpbmU7ZmlsbDojMTE3N0Q3O30KCS5zdDEwe2Rp
c3BsYXk6aW5saW5lO2ZpbGw6I0ZGRkZGRjt9Cjwvc3R5bGU+DQogIDxnIGlkPSJBdHRlbnRpb24iPg0K
ICAgIDxwYXRoIGQ9Ik0xNS4xLDIuNUwyLjEsMjYuNUMxLjgsMjcuMiwyLjMsMjgsMy4xLDI4aDI1Ljlj
MC44LDAsMS4zLTAuOCwwLjktMS41TDE2LjksMi41ICAgQzE2LjUsMS44LDE1LjUsMS44LDE1LjEsMi41
eiIgY2xhc3M9IlllbGxvdyIgLz4NCiAgICA8cGF0aCBkPSJNMTYsMjBjMS4xLDAsMiwwLjksMiwycy0w
LjksMi0yLDJzLTItMC45LTItMlMxNC45LDIwLDE2LDIweiBNMTQsMTBoNHY4aC00VjEweiIgY2xhc3M9
IkJsYWNrIiAvPg0KICA8L2c+DQo8L3N2Zz4L
</value>
</data>
<data name="RibbonControl.Size" type="System.Drawing.Size, System.Drawing">
<value>1189, 132</value>
</data>
<data name="RibbonStatusBar.Location" type="System.Drawing.Point, System.Drawing">
<value>0, 647</value>
</data>
<data name="RibbonStatusBar.Size" type="System.Drawing.Size, System.Drawing">
<value>1189, 24</value>
</data>
<data name="GridControl1.Size" type="System.Drawing.Size, System.Drawing">
<value>382, 515</value>
</data>
<data name="GridControl3.Size" type="System.Drawing.Size, System.Drawing">
<value>370, 282</value>
</data>
<data name="SplitContainerControl2.Size" type="System.Drawing.Size, System.Drawing">
<value>370, 515</value>
</data>
<data name="SplitContainerControl1.Size" type="System.Drawing.Size, System.Drawing">
<value>762, 515</value>
</data>
<data name="SplitContainerControl3.Location" type="System.Drawing.Point, System.Drawing">
<value>0, 132</value>
</data>
<data name="DocumentViewer1.Size" type="System.Drawing.Size, System.Drawing">
<value>417, 515</value>
</data>
<data name="SplitContainerControl3.Size" type="System.Drawing.Size, System.Drawing">
<value>1189, 515</value>
</data>
<data name="frmDocumentResultList.IconOptions.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAABAAMAEBAQAAEABAAoAQAANgAAABAQAAABAAgAaAUAAF4BAAAQEAAAAQAgAGgEAADGBgAAKAAAABAA
AAAgAAAAAQAEAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAIAAAACAgACAAAAAgACAAICA
AACAgIAAwMDAAAAA/wAA/wAAAP//AP8AAAD/AP8A//8AAP///wAAAAAAAAAAAAAP8AAAAAAAAPd/AAAA
AAAPd3fwAAAAAA93d38AAAAAAPd3d///8AAAD3d3d3d/8AAA93d3d3fwAAAPd3//d38AAA93///3fwAA
D3f///d/AAAPd///938AAA93f/93fwAAAPd3d3fwAAAA/3d3f/AAAAAA///wAP//AADn/wAAw/8AAIH/
AACA/wAAwAcAAOABAADwAQAA+AAAAPgAAAD4AAAA+AAAAPgAAAD8AQAA/AEAAP8HAAAoAAAAEAAAACAA
AAABAAgAAAAAAAABAAAAAAAAAAAAAAABAAAAAQAAAAAAAEJCQgBNTU0AWFhYAGRkZABubW4AeXl5AIaG
hgDg4OAA5uTlAOvr6wDx7/AA9vb2APr6+gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////AAAAAAAAAAAAAAAAAAAAAAAAAAAMDAAAAAAA
AAAAAAAAAAAKBAcMAAAAAAAAAAAAAAAMBAEBBwwAAAAAAAAAAAAADAQBAQEHDAAAAAAAAAAAAAAKBAEB
AQcMDAwMDAAAAAAAAAoEAQEBBAEBAQYIDQAAAAAACgQBAQEBAQEBAggAAAAAAAAKAwEGCAsIBQEGDAAA
AAAADAEBCAsLCwgBAQwAAAAAAAgBAQsLCwsLAwEMAAAAAAAMAQEICwsLCAEBDAAAAAAADAYBBggLCAUB
BgwAAAAAAAAIAgEBAQEBAggAAAAAAAAADQgGAQEBBggNAAAAAAAAAAAADAwMDAwAAAD//wAA5/8AAMP/
AACB/wAAgP8AAMAHAADgAQAA8AEAAPgAAAD4AAAA+AAAAPgAAAD4AAAA/AEAAPwBAAD/BwAAKAAAABAA
AAAgAAAAAQAgAAAAAABABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPb29jD29vYwAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPb29jD29vbv9vb27/b2
9jAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPb29jDq6urvZGRk/4aG
hv/29vbv9vb2MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPb29jD29vbvZGRk/0JC
Qv9CQkL/hoaG//b29u/29vYwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD29vYw9vb272Rk
ZP9CQkL/QkJC/0JCQv+Ghob/9vb27/b29jAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPb2
9jDq6urvZGRk/0JCQv9CQkL/QkJC/4aGhv/29vb/9vb2//b29v/29vb/9vb2z/b29lAAAAAAAAAAAAAA
AAAAAAAA9vb2MOrq6u9kZGT/QkJC/0JCQv9CQkL/ZGRk/0JCQv9CQkL/QkJC/3p6ev/g4OD/9vb2gAAA
AAAAAAAAAAAAAAAAAAD29vYw6urq72RkZP9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/TU1N/+Dg
4P/29vZQAAAAAAAAAAAAAAAAAAAAAPb29jDr6+v/WVlZ/0JCQv95eHj/5uTl//Hv8P/m5OX/bm1u/0JC
Qv96enr/9vb2zwAAAAAAAAAAAAAAAAAAAAAAAAAA9vb2/0JCQv9CQkL/5uTl//Hv8P/x7/D/8e/w/+bk
5f9CQkL/QkJC//b29v8AAAAAAAAAAAAAAAAAAAAAAAAAAODg4P9CQkL/QkJC//Hv8P/x7/D/8e/w//Hv
8P/x7/D/WFhY/0JCQv/29vb/AAAAAAAAAAAAAAAAAAAAAAAAAAD29vb/QkJC/0JCQv/m5OX/8e/w//Hv
8P/x7/D/5uTl/0JCQv9CQkL/9vb2/wAAAAAAAAAAAAAAAAAAAAAAAAAA9vb2z3p6ev9CQkL/eXh4/+bk
5f/x7/D/5uTl/25tbv9CQkL/enp6//b29s8AAAAAAAAAAAAAAAAAAAAAAAAAAPb29lDg4OD/TU1N/0JC
Qv9CQkL/QkJC/0JCQv9CQkL/TU1N/+Dg4P/29vZQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9vb2gODg
4P96enr/QkJC/0JCQv9CQkL/enp6/+Dg4P/29vaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAD29vZQ9vb2z/b29v/29vb/9vb2//b29s/29vZQAAAAAAAAAADn/wAAw/8AAIH/AAAA/wAAAH8AAIAD
AADAAQAA4AAAAPAAAAD4AAAA+AAAAPgAAAD4AAAA+AAAAPwBAAD+AwAA
</value>
</data>
<data name="frmDocumentResultList.IconOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjE5LjIsIFZlcnNpb249MTkuMi4z
LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl
dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAALMEAAAC77u/
PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi
IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh
Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXJfMSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAg
MzIgMzIiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLkJsdWV7ZmlsbDojMTE3N0Q3O30KCS5Z
ZWxsb3d7ZmlsbDojRkZCMTE1O30KCS5SZWR7ZmlsbDojRDExQzFDO30KCS5HcmVlbntmaWxsOiMwMzlD
MjM7fQoJLkJsYWNre2ZpbGw6IzcyNzI3Mjt9CgkuV2hpdGV7ZmlsbDojRkZGRkZGO30KCS5zdDB7b3Bh
Y2l0eTowLjU7fQoJLnN0MXtvcGFjaXR5OjAuNzU7fQoJLnN0MntkaXNwbGF5Om5vbmU7fQoJLnN0M3tk
aXNwbGF5OmlubGluZTtmaWxsOiNGRkIxMTU7fQoJLnN0NHtkaXNwbGF5OmlubGluZTt9Cgkuc3Q1e2Rp
c3BsYXk6aW5saW5lO29wYWNpdHk6MC43NTt9Cgkuc3Q2e2Rpc3BsYXk6aW5saW5lO29wYWNpdHk6MC41
O30KCS5zdDd7ZGlzcGxheTppbmxpbmU7ZmlsbDojMDM5QzIzO30KCS5zdDh7ZGlzcGxheTppbmxpbmU7
ZmlsbDojRDExQzFDO30KCS5zdDl7ZGlzcGxheTppbmxpbmU7ZmlsbDojMTE3N0Q3O30KCS5zdDEwe2Rp
c3BsYXk6aW5saW5lO2ZpbGw6I0ZGRkZGRjt9Cjwvc3R5bGU+DQogIDxnIGlkPSJBcHBlYXJhbmNlIj4N
CiAgICA8cmVjdCB4PSIxMiIgeT0iNCIgd2lkdGg9IjgiIGhlaWdodD0iNiIgcng9IjAiIHJ5PSIwIiBj
bGFzcz0iWWVsbG93IiAvPg0KICAgIDxyZWN0IHg9IjIiIHk9IjEyIiB3aWR0aD0iOCIgaGVpZ2h0PSI2
IiByeD0iMCIgcnk9IjAiIGNsYXNzPSJSZWQiIC8+DQogICAgPHJlY3QgeD0iMjIiIHk9IjIwIiB3aWR0
aD0iOCIgaGVpZ2h0PSI2IiByeD0iMCIgcnk9IjAiIGNsYXNzPSJHcmVlbiIgLz4NCiAgICA8ZyBjbGFz
cz0ic3QwIj4NCiAgICAgIDxwYXRoIGQ9Ik0xMiwxMmg4djZoLThWMTJ6IE0xMCwxMFY0SDJ2NkgxMHog
TTIyLDEwaDhWNGgtOFYxMHogTTIyLDE4aDh2LTZoLThWMTh6IE0xMiwyMHY2aDh2LTZIMTJ6IE0xMCwy
NnYtNkgydjYgICAgSDEweiIgY2xhc3M9IkJsYWNrIiAvPg0KICAgIDwvZz4NCiAgPC9nPg0KPC9zdmc+
Cw==
</value>
</data>
</root>

File diff suppressed because it is too large Load Diff

View File

@@ -1,913 +0,0 @@
Imports System.ComponentModel
Imports System.Drawing
Imports System.IO
Imports System.Windows.Forms
Imports DevExpress.Utils
Imports DevExpress.XtraBars
Imports DevExpress.XtraEditors
Imports DevExpress.XtraGrid
Imports DevExpress.XtraGrid.Columns
Imports DevExpress.XtraGrid.Views.BandedGrid
Imports DevExpress.XtraGrid.Views.Base
Imports DevExpress.XtraGrid.Views.Grid
Imports DevExpress.XtraGrid.Views.Grid.ViewInfo
Imports DevExpress.XtraPrinting
Imports DigitalData.Modules.Config
Imports DigitalData.Modules.EDMI.API
Imports DigitalData.Modules.EDMI.API.Client
Imports DigitalData.Modules.EDMI.API.EDMIServiceReference
Imports DigitalData.Modules.Language
Imports DigitalData.Modules.Logging
Imports DigitalData.Modules.ZooFlow
Imports DigitalData.Modules.ZooFlow.Constants
Public Class frmDocumentResultList
Implements IResultForm
' These are NOT constants, only defaults
' Can be changed when calling frmDocumentResultList
Private ReadOnly COLUMN_FILEPATH As String = "FULL_FILENAME"
Private ReadOnly COLUMN_FILENAME As String = "Filename"
Private ReadOnly COLUMN_DOCID As String = "DocID"
Private ReadOnly COLUMN_ICON As String = "ICON"
' Constants
Private Const OPEN_FILE As String = "Datei öffnen"
Private Const OPEN_DIRECTORY As String = "Ordner öffnen"
Private Const COPY_FILE_PATH As String = "Dateipfad kopieren"
Private Const COPY_FOLDER_PATH As String = "Ordnerpfad kopieren"
Private Const OPEN_PROPERTIES As String = "Eigenschaften"
Private Const FILE_OPEN_TIMER_INTERVAL As Integer = 500
' Helper Classes
Private _IDBClient As Client
Private ReadOnly _LogConfig As LogConfig
Private ReadOnly _Logger As Logger
Private ReadOnly _Config As ConfigManager(Of DocumentResultConfig)
Private ReadOnly _Environment As Environment
Private ReadOnly _Params As DocumentResultParams
Private ReadOnly _ResultLists As List(Of DocumentResult)
Private ReadOnly _Helpers As DocumentResultList
Private ReadOnly _Filesystem As Modules.Filesystem.File
Private ReadOnly _GridBuilder As GridBuilder
Private ReadOnly _File As Modules.Windows.File
Private ReadOnly _Cache As New DocumentResultCache(50000000)
' Runtime variables
Private _IsLoading As Boolean = True
Private _ActiveGrid As GridControl = Nothing
Private _ActiveGridBand As GridBand = Nothing
Private _documentloader As DocumentLoader
Private _tempDocuments As New List(Of DocumentResultList)
' TODO: Hashes for checking if the opened file was modified externally
'Private _HashOriginalFile As String = Nothing
'Private _HashOpenedFile As String = Nothing
Private _DragBoxFromMouseDown As Rectangle
Private _ScreenOffset As Point
Private Property _CurrentDocument As DocumentResultInfo = Nothing
Private ReadOnly _Language As String
Private WithEvents _FileOpenTimer As New Timer
Private Property OperationMode As OperationMode Implements IResultForm.OperationMode
Public Property ShouldReturnToPreviousForm As Boolean = False Implements IResultForm.ShouldReturnToPreviousForm
Public Sub New(LogConfig As LogConfig, Environment As Environment, Params As DocumentResultParams)
' Dieser Aufruf ist für den Designer erforderlich.
InitializeComponent()
' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu.
Dim oConfigPath As String = Path.Combine(Application.UserAppDataPath, "ResultList", Params.WindowGuid)
COLUMN_DOCID = Params.ColumnNames.ObjectIdColumn
COLUMN_FILENAME = Params.ColumnNames.FilenameColumn
COLUMN_FILEPATH = Params.ColumnNames.FullPathColumn
COLUMN_ICON = Params.ColumnNames.IconColumn
_LogConfig = LogConfig
_Logger = LogConfig.GetLogger()
_Config = New ConfigManager(Of DocumentResultConfig)(LogConfig, oConfigPath, oConfigPath)
_Helpers = New DocumentResultList(LogConfig)
_Filesystem = New Modules.Filesystem.File(_LogConfig)
_GridBuilder = New GridBuilder(New List(Of GridView) From {GridView1, GridView2, GridView3})
_Environment = Environment
_Params = Params
_File = New Modules.Windows.File(LogConfig)
_ResultLists = Params.Results
_Language = Utils.NotNull(_Environment.User.Language, State.UserState.LANG_EN_US)
End Sub
Private Function GetOperationMode() As OperationMode
Dim oOperationMode As OperationMode
If _Environment.Service.IsActive AndAlso _Environment.Service.Address <> String.Empty Then
oOperationMode = OperationMode.WithAppServer
Else
oOperationMode = OperationMode.NoAppServer
End If
If _Params.OperationModeOverride <> OperationMode.None Then
oOperationMode = _Params.OperationModeOverride
End If
Return oOperationMode
End Function
Private Sub frmDocumentResultList_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Try
' Operation mode is either guessed from service settings
' or explictly set from OperationModeOverride in Params
OperationMode = GetOperationMode()
If OperationMode = OperationMode.WithAppServer Or OperationMode = OperationMode.ZooFlow Then
InitAppServer()
End If
_documentLoader = New DocumentLoader(_LogConfig, OperationMode, _IDBClient, _Environment.User)
If _Params.WindowTitle <> "" Then
Text = $"{Text} - {_Params.WindowTitle}"
End If
' Initialize Viewer with GDPicture.NET License
If _Environment.Settings.GdPictureKey = String.Empty Then
Throw New ApplicationException("GDPicture Licensekey is missing!")
End If
DocumentViewer1.Init(_LogConfig, _Environment.Settings.GdPictureKey)
'Load config
SplitContainerControl1.SplitterPosition = _Config.Config.SplitContainer1Distance
SwitchMainContainerHorizontal.Checked = _Config.Config.SplitContainer1Horizontal
SplitContainerControl2.SplitterPosition = _Config.Config.SplitContainer2Distance
SwitchDetailContainerHorizontal.Checked = _Config.Config.SplitContainer2Horizontal
If OperationMode <> OperationMode.NoAppServer Then
' Location and size will be managed by the ZooFlow Search Window
If Utils.IsVisibleOnAnyScreen(_Config.Config.WindowLocation) Then
If Utils.LocationIsVisible(_Config.Config.WindowLocation) Then
Location = _Config.Config.WindowLocation
End If
If Utils.SizeIsVisible(_Config.Config.WindowSize) Then
Size = _Config.Config.WindowSize
End If
End If
SwitchMainContainerHorizontal.Visibility = BarItemVisibility.Never
SwitchDetailContainerHorizontal.Visibility = BarItemVisibility.Never
End If
_GridBuilder.
WithDefaults().
WithReadOnlyOptions()
AddHandler GridView1.FocusedRowChanged, AddressOf GridView_FocusedRowChanged
AddHandler GridView2.FocusedRowChanged, AddressOf GridView_FocusedRowChanged
AddHandler GridView3.FocusedRowChanged, AddressOf GridView_FocusedRowChanged
UpdateTotalResults()
UpdateGridData()
Catch ex As Exception
_Logger.Error(ex)
MessageBox.Show("Error while loading results:" & vbNewLine & vbNewLine & ex.Message, Text)
Finally
_IsLoading = False
End Try
End Sub
Private Sub frmDocumentResultList_Closing(sender As Object, e As CancelEventArgs) Handles Me.FormClosing
Try
GridViewSave_Layout(_ActiveGrid.MainView)
_Config.Config.WindowLocation = Location
_Config.Config.WindowSize = Size
_Config.Save()
DocumentViewer1.Done()
Catch ex As Exception
_Logger.Error(ex)
End Try
End Sub
Private Sub GridView_FocusedRowChanged(sender As GridView, e As FocusedRowChangedEventArgs)
_Helpers.SetRowHandle(e)
Try
Reset_Errors()
Cursor = Cursors.WaitCursor
If e.FocusedRowHandle >= 0 Then
Dim oRow = sender.GetDataRow(_Helpers.ActiveRowHandle)
Dim oObjectId = oRow.ItemEx(Of Long)(COLUMN_DOCID, 0)
Dim oFullPath = oRow.ItemEx(Of String)(COLUMN_FILEPATH, "")
Dim oDocumentInfo As DocumentResultInfo = Nothing
DocumentViewer1.CloseDocument()
oDocumentInfo = _documentloader.Load(oObjectId, oFullPath)
' Check DocumentInfo
If IsNothing(oDocumentInfo) Then
Show_Warning("File could not be loaded!")
Exit Sub
End If
Dim oFileName = $"{oObjectId}.{oDocumentInfo.Extension}"
DocumentViewer1.LoadFile(oFileName, New MemoryStream(oDocumentInfo.Contents))
' Save reference to current
_CurrentDocument = oDocumentInfo
If oDocumentInfo.AccessRight = Rights.AccessRight.VIEW_ONLY Then
DocumentViewer1.SetViewOnly(True)
RibbonPageGroup_Export.Visible = False
Else
DocumentViewer1.SetViewOnly(False)
RibbonPageGroup_Export.Visible = True
End If
End If
Catch ex As Exception
_Logger.Error(ex)
Show_CriticalError(ex.Message)
Finally
Cursor = Cursors.Default
End Try
End Sub
Private Function InitAppServer() As Boolean
Dim oSplit As List(Of String) = _Environment.Service.Address.Split(":").ToList()
Dim oAddress As String = oSplit.Item(0)
Dim oPort As Integer = oSplit.Item(1)
_IDBClient = New Client(_LogConfig, oAddress, oPort)
If Not _IDBClient.Connect() Then
_Logger.Warn("Client could not connect to Service at [{0}]", _Environment.Service.Address)
Return False
End If
Return True
End Function
'Private Function LoadFile_AsByteArray(DocumentInfo As DocumentResultInfo) As DocumentResultInfo
' Try
' _Logger.Debug("Loading File [{0}]", DocumentInfo.FullPath)
' Dim oFullPath As String = DocumentInfo.FullPath
' Dim oPathExists = From oFile In _Cache
' Where oFile.FullPath = oFullPath And oFile.Contents IsNot Nothing
' Select oFile
' Dim oExistsInCache = oPathExists.Count() > 0
' Dim oSizeChanged = False
' Dim oWriteTimeChanged = False
' _Logger.Debug("File exists in Cache: [{0}]", oExistsInCache)
' ' Get Information about the file on the filesystem
' Dim oFileInfo As New FileInfo(oFullPath)
' If oExistsInCache Then
' _Logger.Debug("Loading file from cache.")
' Dim oCachedItem = oPathExists.First()
' If oCachedItem.Contents Is Nothing Then
' oSizeChanged = False
' Else
' oSizeChanged = Not (oFileInfo.Length = oCachedItem.Contents.Length)
' End If
' _Logger.Debug("Filesize changed: [{0}]", oSizeChanged)
' If oCachedItem.LastWriteTime = Nothing Then
' oWriteTimeChanged = False
' Else
' oWriteTimeChanged = Not oFileInfo.LastWriteTime.Equals(oCachedItem.LastWriteTime)
' End If
' _Logger.Debug("Write-time changed: [{0}]", oWriteTimeChanged)
' If oSizeChanged Or oWriteTimeChanged Then
' _Logger.Debug("Size or Write-time changed, loading from disk.")
' Return LoadFile_FromDisk(DocumentInfo, oFileInfo)
' Else
' _Logger.Debug("Loading from cache")
' Return oCachedItem
' End If
' Else
' _Logger.Debug("File exists in cache, loading from disk.")
' Return LoadFile_FromDisk(DocumentInfo, oFileInfo)
' End If
' Catch ex As Exception
' _Logger.Error(ex)
' Return DocumentInfo
' End Try
'End Function
Public Function RefreshResults(pResults As IEnumerable(Of BaseResult)) As Boolean Implements IResultForm.RefreshResults
_IsLoading = True
Try
UpdateTotalResults()
UpdateGridData()
Return True
Catch ex As Exception
_Logger.Error(ex)
MessageBox.Show("Error while loading results:" & vbNewLine & vbNewLine & ex.Message, Text)
Return False
Finally
_IsLoading = False
End Try
End Function
Private Sub LoadGridData(Result As DocumentResult)
If Result.Datatable.Columns.Contains(COLUMN_DOCID) = False Then
Throw New ApplicationException($"Datatable is missing DocId Column [{COLUMN_DOCID}] for search {Result.Title}!")
End If
If OperationMode = OperationMode.NoAppServer And Result.Datatable.Columns.Contains(COLUMN_FILEPATH) = False Then
Throw New ApplicationException($"Datatable is missing Filepath Column [{COLUMN_FILEPATH}] for search {Result.Title}!")
End If
GridControl1.DataSource = Result.Datatable
GridControl1.ForceInitialize()
End Sub
Private Sub UpdateGridData()
' Load Grids
For oIndex = 0 To _ResultLists.Count - 1
Select Case oIndex
Case 0
Dim oResult As DocumentResult = _ResultLists.Item(0)
LoadGridData(oResult)
CreateDocumentGrid(GridView1, oResult)
RestoreLayout(GridView1)
UpdateGridHeader(_ResultLists, oIndex, oResult.Datatable.Rows.Count)
Case 1
Dim oResult As DocumentResult = _ResultLists.Item(1)
LoadGridData(oResult)
CreateDocumentGrid(GridView2, oResult)
RestoreLayout(GridView2)
UpdateGridHeader(_ResultLists, oIndex, oResult.Datatable.Rows.Count)
Case 2
Dim oResult As DocumentResult = _ResultLists.Item(2)
LoadGridData(oResult)
CreateDocumentGrid(GridView3, oResult)
RestoreLayout(GridView3)
UpdateGridHeader(_ResultLists, oIndex, oResult.Datatable.Rows.Count)
Case Else
MessageBox.Show(Constants.MESSAGE_TOO_MANY_SEARCHES, Text, MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
Exit For
End Select
Next
' Hide Grids depending on Result count
Select Case _ResultLists.Count
Case 0
SplitContainerControl1.SetPanelCollapsed(True)
SplitContainerControl2.SetPanelCollapsed(True)
SwitchMainContainerHorizontal.Enabled = False
SwitchDetailContainerHorizontal.Enabled = False
MessageBox.Show(Constants.MESSAGE_ERROR_IN_SEARCHES, Text, MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
Case 1
SplitContainerControl1.PanelVisibility = DevExpress.XtraEditors.SplitPanelVisibility.Panel1
SplitContainerControl2.PanelVisibility = DevExpress.XtraEditors.SplitPanelVisibility.Panel1
SplitContainerControl1.SetPanelCollapsed(True)
SplitContainerControl2.SetPanelCollapsed(True)
SwitchMainContainerHorizontal.Enabled = False
SwitchDetailContainerHorizontal.Enabled = False
Case 2
SplitContainerControl1.PanelVisibility = DevExpress.XtraEditors.SplitPanelVisibility.Both
SplitContainerControl2.PanelVisibility = DevExpress.XtraEditors.SplitPanelVisibility.Panel1
SplitContainerControl2.SetPanelCollapsed(True)
SwitchDetailContainerHorizontal.Enabled = False
End Select
End Sub
Private Sub UpdateTotalResults()
Dim oTotalResults = 0
For Each oList In _ResultLists
oTotalResults += oList.Datatable.Rows.Count
Next
labelResultCount.Caption = String.Format(labelResultCount.Caption, oTotalResults)
End Sub
Private Sub UpdateGridHeader(pResultList As List(Of DocumentResult), pIndex As Integer, pCount As Integer)
Select Case pIndex
Case 0
Dim oResult = pResultList.Item(0)
GridBand1.Caption = $"{oResult.Title} ({pCount})"
Case 1
Dim oResult = pResultList.Item(1)
GridBand2.Caption = $"{oResult.Title} ({pCount})"
Case 2
Dim oResult = pResultList.Item(2)
GridBand3.Caption = $"{oResult.Title} ({pCount})"
End Select
End Sub
Private Sub CreateDocumentGrid(GridView As BandedGridView, Result As DocumentResult)
Try
If IsNothing(GridView.Columns("ICON")) Then
Dim oIconColumn = GridView.Columns.AddVisible("ICON", "ICON")
With oIconColumn
.OptionsColumn.AllowSort = False
.OptionsColumn.AllowSize = False
.OptionsColumn.ShowCaption = False
.OptionsColumn.FixedWidth = True
.Width = 20
.MaxWidth = 20
.MinWidth = 20
End With
Dim oFirstBand As GridBand = GridView.Bands.First()
oFirstBand.Columns.Add(oIconColumn)
oFirstBand.Columns.MoveTo(0, oIconColumn)
End If
Dim oCreated, oChanged As String
If _Language = State.UserState.LANG_DE_DE Then
oChanged = "Geändert"
oCreated = "Erstellt"
Else
oCreated = "Created"
oChanged = "Changed"
End If
Try
Dim oDocIdColumn As GridColumn = GridView.Columns(COLUMN_DOCID)
If Not IsNothing(oDocIdColumn) Then
oDocIdColumn.Visible = False
End If
Dim oFilePathColumn As GridColumn = GridView.Columns(COLUMN_FILEPATH)
If Not IsNothing(oFilePathColumn) Then
oFilePathColumn.Visible = False
' Hide Fullpath column completely in AppServer-Mode
If OperationMode = OperationMode.WithAppServer Then
oFilePathColumn.OptionsColumn.ShowInCustomizationForm = False
End If
End If
Dim oCreatedColumn = GridView.Columns(oCreated)
If Not IsNothing(oCreatedColumn) Then
oCreatedColumn.DisplayFormat.FormatType = FormatType.DateTime
oCreatedColumn.DisplayFormat.FormatString = _Environment.User.DateFormat & " HH:MM:ss"
End If
Dim oChangedColumn = GridView.Columns(oChanged)
If Not IsNothing(oChangedColumn) Then
oChangedColumn.DisplayFormat.FormatType = FormatType.DateTime
oChangedColumn.DisplayFormat.FormatString = _Environment.User.DateFormat & " HH:MM:ss"
End If
Catch ex As Exception
_Logger.Error(ex)
End Try
GridView.OptionsView.BestFitMaxRowCount = 30
GridView.BestFitColumns()
Catch ex As ApplicationException
MsgBox($"Error while loading grid data for search {Result.Title}: {vbNewLine}{vbNewLine}{ex.Message}", MsgBoxStyle.Critical, Text)
_Logger.Error(ex)
Catch ex As Exception
_Logger.Error(ex)
End Try
End Sub
Private Sub GridView1_CustomDrawCell(sender As Object, e As RowCellCustomDrawEventArgs) Handles GridView1.CustomDrawCell
Try
If e.RowHandle < 0 Then
Exit Sub
End If
e.DefaultDraw()
Dim oView As GridView = TryCast(sender, GridView)
Dim oCellInfo As GridCellInfo = TryCast(e.Cell, GridCellInfo)
Dim oRow As DataRow = oView.GetDataRow(e.RowHandle)
Dim oValue = oRow.Item(COLUMN_FILENAME)
If e.Column.FieldName = COLUMN_ICON Then
Dim oIcon = _Helpers.GetIconByExtension(oValue)
Dim offsetX = 0
Dim offsetY = 0
e.Cache.DrawImage(oIcon, e.Bounds.X + offsetX, e.Bounds.Y + offsetY, 18, 18)
End If
Catch ex As Exception
_Logger.Error(ex)
End Try
End Sub
Private Sub BarButtonItemExportGrid1_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarButtonItemExportGrid1.ItemClick
Dim oActiveGrid = GetActiveGridControl()
If oActiveGrid IsNot Nothing Then
Dim oGridBand = _ActiveGridBand
XtraSaveFileDialog.FileName = Utils.ConvertTextToSlug(oGridBand.Caption) & ".xlsx"
XtraSaveFileDialog.DefaultExt = ".xlsx"
If XtraSaveFileDialog.ShowDialog() = Windows.Forms.DialogResult.OK Then
Dim oOptions As New XlsxExportOptions() With {
.ExportMode = XlsxExportMode.SingleFile
}
oActiveGrid.ExportToXlsx(XtraSaveFileDialog.FileName, oOptions)
End If
Else
If _Language = State.UserState.LANG_DE_DE Then
MessageBox.Show("Bitte wählen Sie eine Tabelle aus, die Sie exportieren möchten", Text, MessageBoxButtons.OK, MessageBoxIcon.Information)
Else
MessageBox.Show("Please select a table that you want to export", Text, MessageBoxButtons.OK, MessageBoxIcon.Information)
End If
End If
End Sub
Private Function GetActiveRow() As DataRow
Dim oActiveGrid = GetActiveGridControl()
Dim oActiveRowhandle = _Helpers.ActiveRowHandle
If oActiveGrid IsNot Nothing And oActiveRowhandle <> Constants.NO_ROW_HANDLE Then
Dim oView = DirectCast(oActiveGrid.DefaultView, GridView)
Dim oRow = oView.GetDataRow(oActiveRowhandle)
Return oRow
Else
Return Nothing
End If
End Function
Private Function GetActiveGridControl() As GridControl
If _ActiveGrid Is Nothing Then
Return Nothing
End If
Return _ActiveGrid
End Function
Private Sub GridControl_Enter(sender As GridControl, e As EventArgs) Handles GridControl1.Enter, GridControl2.Enter, GridControl3.Enter
_ActiveGrid = sender
BarButtonResetLayout.Visibility = DevExpress.XtraBars.BarItemVisibility.Always
BarButtonItemExportGrid1.Visibility = DevExpress.XtraBars.BarItemVisibility.Always
SetActiveGridBand()
End Sub
Private Sub GridView1_FocusedRowChanged(sender As GridView, e As FocusedRowChangedEventArgs) Handles GridView1.FocusedRowChanged, GridView2.FocusedRowChanged, GridView3.FocusedRowChanged
Dim oGrid As GridControl = sender.GridControl
_ActiveGrid = oGrid
End Sub
Private Sub SetActiveGridBand()
If _ActiveGrid.Equals(GridControl1) Then
_ActiveGridBand = GridBand1
ElseIf _ActiveGrid.Equals(GridControl2) Then
_ActiveGridBand = GridBand2
ElseIf _ActiveGrid.Equals(GridControl3) Then
_ActiveGridBand = GridBand3
Else
_ActiveGridBand = Nothing
End If
End Sub
Private Sub GridView1_ColumnFilterChanged(sender As GridView, e As EventArgs) Handles GridView1.ColumnFilterChanged
Dim oRowCount = sender.RowCount
UpdateGridHeader(_ResultLists, 0, oRowCount)
End Sub
Private Sub GridView2_ColumnFilterChanged(sender As GridView, e As EventArgs) Handles GridView2.ColumnFilterChanged
Dim oRowCount = sender.RowCount
UpdateGridHeader(_ResultLists, 1, oRowCount)
End Sub
Private Sub GridView3_ColumnFilterChanged(sender As GridView, e As EventArgs) Handles GridView3.ColumnFilterChanged
Dim oRowCount = sender.RowCount
UpdateGridHeader(_ResultLists, 2, oRowCount)
End Sub
Private Sub BarButtonItem4_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarButtonBack.ItemClick
ShouldReturnToPreviousForm = True
Close()
End Sub
Private Sub GridControl_DoubleClick(sender As Object, e As EventArgs) Handles GridControl1.DoubleClick, GridControl2.DoubleClick, GridControl3.DoubleClick
If _CurrentDocument IsNot Nothing AndAlso _CurrentDocument.AccessRight > Rights.AccessRight.VIEW_ONLY Then
Process.Start(New ProcessStartInfo With {
.FileName = _CurrentDocument.FullPath
})
End If
End Sub
Public Sub Show_CriticalError(Message As String)
labelCriticalError.Visibility = BarItemVisibility.Always
labelCriticalError.Caption = Message
End Sub
Public Sub Show_Warning(Message As String)
labelWarning.Visibility = BarItemVisibility.Always
labelWarning.Caption = Message
End Sub
Public Sub Reset_Errors()
labelCriticalError.Visibility = BarItemVisibility.Never
labelWarning.Visibility = BarItemVisibility.Never
End Sub
Private Sub BarButtonResetLayout_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarButtonResetLayout.ItemClick
If Not IsNothing(_ActiveGrid) Then
Try
Dim oFile = GetDevexpressGrid_LayoutName(_ActiveGrid.MainView)
If IO.File.Exists(oFile) Then
IO.File.Delete(oFile)
End If
UpdateGridData()
Catch ex As Exception
_Logger.Error(ex)
End Try
End If
End Sub
Private Function TestPathExists(pTitle As String) As Boolean
If IO.File.Exists(_CurrentDocument.FullPath) = False Then
MessageBox.Show($"Datei {_CurrentDocument.FullPath} existiert nicht oder wurde verschoben!", pTitle, MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
Return False
Else
Return True
End If
End Function
Private Function TestObjectIdExists(pObjectId As Long, pTitle As String) As Boolean
If pObjectId = 0 Then
MessageBox.Show($"Objekt {pObjectId} existiert nicht oder wurde verschoben!", pTitle, MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
Return False
Else
Return True
End If
End Function
Public Sub FileOpenTimer_Elapsed() Handles _FileOpenTimer.Tick
'Try
' Dim oProcesses = Process.GetProcesses()
' Dim oIds = (From oProc In oProcesses
' Select oProc.Id).
' ToList()
' Dim oNewFileOpenList As New Dictionary(Of Integer, String)
' For Each oOpenFile In _FileOpenList
' If oIds.Contains(oOpenFile.Key) Then
' oNewFileOpenList.Add(oOpenFile.Key, oOpenFile.Value)
' End If
' Next
' If oNewFileOpenList.Count < _FileOpenList.Count Then
' Dim oClosedFiles = _FileOpenList.
' Except(oNewFileOpenList).
' ToList()
' If oClosedFiles.Count = 1 Then
' Dim oOpenFile = oClosedFiles.First()
' DocumentViewer1.LoadFile(oOpenFile.Value)
' Else
' ClearGridData()
' UpdateGridData()
' End If
' _FileOpenList = oNewFileOpenList
' End If
'Catch ex As Exception
' _Logger.Error(ex)
'End Try
End Sub
#Region "Context Menu"
Private Sub GridView_PopupMenuShowing(sender As Object, e As PopupMenuShowingEventArgs) Handles GridView2.PopupMenuShowing, GridView3.PopupMenuShowing, GridView1.PopupMenuShowing
Try
Dim oView As GridView = sender
If e.MenuType = GridMenuType.Row Then
Dim oRowHandle = e.HitInfo.RowHandle
Dim oRow As DataRow = oView.GetDataRow(oRowHandle)
Dim oObjectId As Long = oRow.Item(COLUMN_DOCID)
Dim oPoint As Point = oView.GridControl.PointToScreen(e.HitInfo.HitPoint)
Dim oRight As Rights.AccessRight = _CurrentDocument.AccessRight
'_CurrentDocumentId = oObjectId
_CurrentDocument.Id = oObjectId
If OperationMode = OperationMode.WithAppServer Then
If oRight = Rights.AccessRight.FULL Or oRight = Rights.AccessRight.VIEW_EXPORT Then
MenuFullAccess_IDB.ShowPopup(oPoint)
Else
MenuViewAccess_IDB.ShowPopup(oPoint)
End If
ElseIf OperationMode = OperationMode.ZooFlow Then
MenuFullAccess_ZOOFLOW.ShowPopup(oPoint)
Else
MenuFullAccess_EDM.ShowPopup(oPoint)
End If
Else
'_CurrentDocumentId = Nothing
_CurrentDocument.Id = Nothing
End If
Catch ex As Exception
_Logger.Error(ex)
MsgBox("Unexpected Error while preparing context menu", MsgBoxStyle.Critical, Text)
End Try
End Sub
Private Sub MenuItemFolderpathCopyECM_ItemClick(sender As Object, e As ItemClickEventArgs) Handles MenuItemFolderpathCopy.ItemClick
Dim oFolderPath = IO.Path.GetDirectoryName(_CurrentDocument.FullPath)
Clipboard.SetText(oFolderPath)
End Sub
Private Sub MenuItemPropertiesECM_ItemClick(sender As Object, e As ItemClickEventArgs) Handles MenuItemPropertiesECM.ItemClick
If TestPathExists(OPEN_PROPERTIES) = False Then
Exit Sub
End If
_File.OpenFileProperties(_CurrentDocument.FullPath)
End Sub
Private Sub MenuItemFilepathCopyIDB_ItemClick(sender As Object, e As ItemClickEventArgs) Handles MenuItemFilepathCopy.ItemClick
Clipboard.SetText(_CurrentDocument.FullPath)
End Sub
Private Sub MenuItemFolderOpen_ItemClick(sender As Object, e As ItemClickEventArgs) Handles MenuItemFolderOpen.ItemClick
If TestPathExists(OPEN_DIRECTORY) = False Then
Exit Sub
End If
Dim oArgs As String = $"/e, /select, ""{_CurrentDocument.FullPath}"""
Dim oInfo As New ProcessStartInfo() With {
.Arguments = oArgs,
.FileName = "explorer"
}
Process.Start(oInfo)
End Sub
Private Sub MenuItemPropertiesIDB_ItemClick(sender As Object, e As ItemClickEventArgs) Handles MenuItemPropertiesIDB.ItemClick
If TestObjectIdExists(_CurrentDocument.Id, OPEN_PROPERTIES) = False Then
Exit Sub
End If
Dim oPropertyDialog As New frmObjectPropertyDialog(_LogConfig, _Environment, _IDBClient, _CurrentDocument.Id)
oPropertyDialog.Show()
End Sub
Private Sub MenuItemFileOpen_ItemClick(sender As Object, e As ItemClickEventArgs) Handles MenuItemFileOpen.ItemClick
If TestPathExists(OPEN_FILE) = False Then
Exit Sub
End If
Try
Process.Start(New ProcessStartInfo With {
.FileName = _CurrentDocument.FullPath
})
Catch ex As Exception
_Logger.Error(ex)
End Try
End Sub
Private Sub MenuItemPropertiesZooFlow_ItemClick(sender As Object, e As ItemClickEventArgs) Handles MenuItemPropertiesZooFlow.ItemClick
If TestObjectIdExists(_CurrentDocument.Id, OPEN_PROPERTIES) = False Then
Exit Sub
End If
Dim oPropertyDialog As New frmObjectPropertyDialog(_LogConfig, _Environment, _IDBClient, _CurrentDocument.Id)
oPropertyDialog.Show()
End Sub
Private Sub MenuItemsOpenFileZooFlow_ItemClick(sender As Object, e As ItemClickEventArgs) Handles MenuItemsOpenFileZooFlow.ItemClick
'TODO: Save file to temp dir and then open
End Sub
#End Region
#Region "Drag to Export"
Private Sub GridView1_MouseDown(sender As GridView, e As MouseEventArgs) Handles GridView1.MouseDown
If sender.FocusedRowHandle >= 0 Then
Dim oDragSize As Size = SystemInformation.DragSize
_DragBoxFromMouseDown = New Rectangle(New Point(e.X - (oDragSize.Width / 2), e.Y - (oDragSize.Height / 2)), oDragSize)
Else
_DragBoxFromMouseDown = Rectangle.Empty
End If
End Sub
Private Sub GridView1_MouseUp(sender As GridView, e As MouseEventArgs) Handles GridView1.MouseUp
_DragBoxFromMouseDown = Rectangle.Empty
End Sub
Private Sub GridView1_MouseMove(sender As GridView, e As MouseEventArgs) Handles GridView1.MouseMove
If e.Button AndAlso e.Button = MouseButtons.Left Then
If _DragBoxFromMouseDown <> Rectangle.Empty And Not _DragBoxFromMouseDown.Contains(e.X, e.Y) Then
Dim oHitInfo = sender.CalcHitInfo(e.Location)
If oHitInfo.InRow Then
If _CurrentDocument IsNot Nothing AndAlso _CurrentDocument.AccessRight >= Rights.AccessRight.VIEW_EXPORT Then
_ScreenOffset = SystemInformation.WorkingArea.Location
Dim oFullPath As String = _CurrentDocument.FullPath
Dim oFiles As String() = {oFullPath}
Dim oData As New DataObject(DataFormats.FileDrop, oFiles)
sender.GridControl.DoDragDrop(oData, DragDropEffects.All)
End If
End If
End If
End If
End Sub
#End Region
#Region "Layout"
Private Sub SplitContainerControl1_SplitterPositionChanged(sender As Object, e As EventArgs) Handles SplitContainerControl1.SplitterPositionChanged
If _IsLoading = False Then
_Config.Config.SplitContainer1Distance = SplitContainerControl1.SplitterPosition
End If
End Sub
Private Sub SplitContainerControl2_SplitterPositionChanged(sender As Object, e As EventArgs) Handles SplitContainerControl2.SplitterPositionChanged
If _IsLoading = False Then
_Config.Config.SplitContainer2Distance = SplitContainerControl2.SplitterPosition
End If
End Sub
Private Sub SwitchMainContainerHorizontal_CheckedChanged(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles SwitchMainContainerHorizontal.CheckedChanged
SplitContainerControl1.Horizontal = SwitchMainContainerHorizontal.Checked
If _Config IsNot Nothing And _IsLoading = False Then
_Config.Config.SplitContainer1Horizontal = SwitchMainContainerHorizontal.Checked
End If
End Sub
Private Sub SwitchDetailContainerHorizontal2_CheckedChanged(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles SwitchDetailContainerHorizontal.CheckedChanged
SplitContainerControl2.Horizontal = SwitchDetailContainerHorizontal.Checked
If _Config IsNot Nothing And _IsLoading = False Then
_Config.Config.SplitContainer2Horizontal = SwitchDetailContainerHorizontal.Checked
End If
End Sub
Private Function GetDevexpressGrid_LayoutName(pGridView As GridView)
Dim Filename As String = $"DevExpressGridViewDocResult_{pGridView.Name}UserLayout.xml"
Return Path.Combine(_Config.UserConfigPath.Replace("UserConfig.xml", ""), Filename)
End Function
Private Sub GridViewSave_Layout(pGridView As GridView)
Try
Dim oXml As String = GetDevexpressGrid_LayoutName(pGridView)
pGridView.SaveLayoutToXml(oXml, OptionsLayoutBase.FullLayout)
Catch ex As Exception
_Logger.Error(ex)
_Logger.Info("Error while saving GridLayout: " & ex.Message)
End Try
End Sub
Private Sub RestoreLayout(pGridView As GridView)
Try
Dim oLayoutFile As String = GetDevexpressGrid_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
#End Region
End Class