diff --git a/GUIs.Common/Common.vbproj b/GUIs.Common/Common.vbproj index 4dadd9fc..9b288c84 100644 --- a/GUIs.Common/Common.vbproj +++ b/GUIs.Common/Common.vbproj @@ -104,6 +104,7 @@ + frmDocumentResultList.vb diff --git a/GUIs.Common/DataResultList/frmDataResultList.vb b/GUIs.Common/DataResultList/frmDataResultList.vb index cb158cbe..dedbca7c 100644 --- a/GUIs.Common/DataResultList/frmDataResultList.vb +++ b/GUIs.Common/DataResultList/frmDataResultList.vb @@ -25,7 +25,7 @@ Public Class frmDataResultList Private _ActiveGrid As GridControl = Nothing Private _ActiveGridBand As GridBand = Nothing - Private _ActiveRowHandle As Integer = Constants.NO_ROW_HANDLE + Private _Helpers As DocumentResultList Public Property ShouldReturnToPreviousForm As Boolean Implements IResultForm.ShouldReturnToPreviousForm @@ -39,6 +39,7 @@ Public Class frmDataResultList _LogConfig = LogConfig _Logger = LogConfig.GetLogger() _Config = New ConfigManager(Of DataResultConfig)(LogConfig, oConfigPath, Application.StartupPath) + _Helpers = New DocumentResultList(_LogConfig) _Environment = Environment _Params = Params _ResultLists = Params.Results @@ -128,7 +129,7 @@ Public Class frmDataResultList End Sub Private Sub GridView_FocusedRowChanged(sender As Object, e As FocusedRowChangedEventArgs) - _ActiveRowHandle = e.FocusedRowHandle + _Helpers.SetRowHandle(e) End Sub Private Sub GridControl_Enter(sender As GridControl, e As EventArgs) Handles GridControl1.Enter, GridControl2.Enter, GridControl3.Enter @@ -204,7 +205,7 @@ Public Class frmDataResultList Private Function GetActiveRow() As DataRow Dim oActiveGrid = GetActiveGridControl() - Dim oActiveRowhandle = GetActiveRowHandle() + Dim oActiveRowhandle = _Helpers.ActiveRowHandle If oActiveGrid IsNot Nothing And oActiveRowhandle <> Constants.NO_ROW_HANDLE Then Dim oView = DirectCast(oActiveGrid.DefaultView, GridView) @@ -223,14 +224,6 @@ Public Class frmDataResultList Return _ActiveGrid End Function - Private Function GetActiveRowHandle() As Integer - If _ActiveRowHandle = Constants.NO_ROW_HANDLE Then - Return Constants.NO_ROW_HANDLE - End If - - Return _ActiveRowHandle - End Function - Private Sub BarButtonItem1_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarButtonItem1.ItemClick Dim oActiveGrid = GetActiveGridControl() diff --git a/GUIs.Common/DocumentResultList/DocumentResultList.vb b/GUIs.Common/DocumentResultList/DocumentResultList.vb new file mode 100644 index 00000000..ac72e588 --- /dev/null +++ b/GUIs.Common/DocumentResultList/DocumentResultList.vb @@ -0,0 +1,61 @@ +Imports System.Drawing +Imports System.IO +Imports DevExpress.XtraGrid.Views.Base +Imports DigitalData.Modules.Logging + +Public Class DocumentResultList + Private Logger As Logger + + Public 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 diff --git a/GUIs.Common/DocumentResultList/DocumentResultParams.vb b/GUIs.Common/DocumentResultList/DocumentResultParams.vb index d05c96a8..45a983ed 100644 --- a/GUIs.Common/DocumentResultList/DocumentResultParams.vb +++ b/GUIs.Common/DocumentResultList/DocumentResultParams.vb @@ -4,8 +4,15 @@ ''' Public WindowGuid As String Public Results As New List(Of DocumentResult) + Public ColumnNames As New ColumnNames End Class Public Class DocumentResult Inherits BaseResult End Class + +Public Class ColumnNames + Public ObjectIdColumn As String = "DocId" + Public FullPathColumn As String = "FULL_PATH" + Public FilenameColumn As String = "Filename" +End Class diff --git a/GUIs.Common/DocumentResultList/frmDocumentResultList.Designer.vb b/GUIs.Common/DocumentResultList/frmDocumentResultList.Designer.vb index 6178daf0..bcb0ab58 100644 --- a/GUIs.Common/DocumentResultList/frmDocumentResultList.Designer.vb +++ b/GUIs.Common/DocumentResultList/frmDocumentResultList.Designer.vb @@ -32,6 +32,12 @@ Partial Class frmDocumentResultList Me.labelResultCount = New DevExpress.XtraBars.BarStaticItem() Me.BarButtonBack = New DevExpress.XtraBars.BarButtonItem() Me.BarButtonItem5 = New DevExpress.XtraBars.BarButtonItem() + Me.BarEditItem1 = New DevExpress.XtraBars.BarEditItem() + Me.RepositoryItemTextEdit1 = New DevExpress.XtraEditors.Repository.RepositoryItemTextEdit() + Me.BarEditItem2 = New DevExpress.XtraBars.BarEditItem() + Me.RepositoryItemTextEdit2 = New DevExpress.XtraEditors.Repository.RepositoryItemTextEdit() + Me.labelCriticalError = New DevExpress.XtraBars.BarStaticItem() + Me.labelWarning = New DevExpress.XtraBars.BarStaticItem() Me.RibbonPage1 = New DevExpress.XtraBars.Ribbon.RibbonPage() Me.RibbonPageGroup_Navigation = New DevExpress.XtraBars.Ribbon.RibbonPageGroup() Me.RibbonPageGroup_Layout = New DevExpress.XtraBars.Ribbon.RibbonPageGroup() @@ -52,6 +58,8 @@ Partial Class frmDocumentResultList Me.DocumentViewer1 = New DigitalData.Controls.DocumentViewer.DocumentViewer() Me.XtraSaveFileDialog = New DevExpress.XtraEditors.XtraSaveFileDialog(Me.components) CType(Me.RibbonControl, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.RepositoryItemTextEdit1, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.RepositoryItemTextEdit2, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.SplitContainerControl1, System.ComponentModel.ISupportInitialize).BeginInit() Me.SplitContainerControl1.SuspendLayout() CType(Me.GridControl1, System.ComponentModel.ISupportInitialize).BeginInit() @@ -69,13 +77,14 @@ Partial Class frmDocumentResultList '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.BarButtonItem1, Me.BarButtonItem2, Me.BarButtonItem3, Me.BarStaticItem1, Me.labelResultCount, Me.BarButtonBack, Me.BarButtonItem5}) + Me.RibbonControl.Items.AddRange(New DevExpress.XtraBars.BarItem() {Me.RibbonControl.ExpandCollapseItem, Me.RibbonControl.SearchEditItem, Me.SwitchMainContainerHorizontal, Me.SwitchDetailContainerHorizontal, Me.BarButtonItemExportGrid1, Me.BarButtonItem1, Me.BarButtonItem2, Me.BarButtonItem3, Me.BarStaticItem1, Me.labelResultCount, Me.BarButtonBack, Me.BarButtonItem5, Me.BarEditItem1, Me.BarEditItem2, Me.labelCriticalError, Me.labelWarning}) Me.RibbonControl.Location = New System.Drawing.Point(0, 0) - Me.RibbonControl.MaxItemId = 12 + Me.RibbonControl.MaxItemId = 16 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.Size = New System.Drawing.Size(1189, 159) + Me.RibbonControl.Size = New System.Drawing.Size(1189, 158) Me.RibbonControl.StatusBar = Me.RibbonStatusBar ' 'SwitchMainContainerHorizontal @@ -151,6 +160,54 @@ Partial Class frmDocumentResultList Me.BarButtonItem5.ImageOptions.SvgImage = CType(resources.GetObject("BarButtonItem5.ImageOptions.SvgImage"), DevExpress.Utils.Svg.SvgImage) Me.BarButtonItem5.Name = "BarButtonItem5" ' + 'BarEditItem1 + ' + Me.BarEditItem1.Caption = "BarEditItem1" + Me.BarEditItem1.CaptionToEditorIndent = 0 + Me.BarEditItem1.Edit = Me.RepositoryItemTextEdit1 + Me.BarEditItem1.Id = 12 + Me.BarEditItem1.Name = "BarEditItem1" + ' + 'RepositoryItemTextEdit1 + ' + Me.RepositoryItemTextEdit1.AutoHeight = False + Me.RepositoryItemTextEdit1.Name = "RepositoryItemTextEdit1" + ' + 'BarEditItem2 + ' + Me.BarEditItem2.Caption = "BarEditItem2" + Me.BarEditItem2.Edit = Me.RepositoryItemTextEdit2 + Me.BarEditItem2.Id = 13 + Me.BarEditItem2.Name = "BarEditItem2" + ' + 'RepositoryItemTextEdit2 + ' + Me.RepositoryItemTextEdit2.AutoHeight = False + Me.RepositoryItemTextEdit2.Name = "RepositoryItemTextEdit2" + ' + 'labelCriticalError + ' + Me.labelCriticalError.Caption = "Critical Error" + 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.Caption = "Warning" + 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.Visibility = DevExpress.XtraBars.BarItemVisibility.OnlyInCustomizing + ' 'RibbonPage1 ' Me.RibbonPage1.Groups.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPageGroup() {Me.RibbonPageGroup_Navigation, Me.RibbonPageGroup_Layout, Me.RibbonPageGroup_Export}) @@ -183,10 +240,12 @@ Partial Class frmDocumentResultList 'RibbonStatusBar ' Me.RibbonStatusBar.ItemLinks.Add(Me.labelResultCount) - Me.RibbonStatusBar.Location = New System.Drawing.Point(0, 649) + Me.RibbonStatusBar.ItemLinks.Add(Me.labelCriticalError) + Me.RibbonStatusBar.ItemLinks.Add(Me.labelWarning) + Me.RibbonStatusBar.Location = New System.Drawing.Point(0, 647) Me.RibbonStatusBar.Name = "RibbonStatusBar" Me.RibbonStatusBar.Ribbon = Me.RibbonControl - Me.RibbonStatusBar.Size = New System.Drawing.Size(1189, 22) + Me.RibbonStatusBar.Size = New System.Drawing.Size(1189, 24) ' 'SplitContainerControl1 ' @@ -198,7 +257,7 @@ Partial Class frmDocumentResultList Me.SplitContainerControl1.Panel1.Text = "Panel1" Me.SplitContainerControl1.Panel2.Controls.Add(Me.SplitContainerControl2) Me.SplitContainerControl1.Panel2.Text = "Panel2" - Me.SplitContainerControl1.Size = New System.Drawing.Size(762, 490) + Me.SplitContainerControl1.Size = New System.Drawing.Size(762, 489) Me.SplitContainerControl1.SplitterPosition = 382 Me.SplitContainerControl1.TabIndex = 2 Me.SplitContainerControl1.Text = "SplitContainerControl1" @@ -210,7 +269,7 @@ Partial Class frmDocumentResultList Me.GridControl1.MainView = Me.GridView1 Me.GridControl1.MenuManager = Me.RibbonControl Me.GridControl1.Name = "GridControl1" - Me.GridControl1.Size = New System.Drawing.Size(382, 490) + Me.GridControl1.Size = New System.Drawing.Size(382, 489) Me.GridControl1.TabIndex = 0 Me.GridControl1.ViewCollection.AddRange(New DevExpress.XtraGrid.Views.Base.BaseView() {Me.GridView1}) ' @@ -250,7 +309,7 @@ Partial Class frmDocumentResultList Me.SplitContainerControl2.Panel1.Text = "Panel1" Me.SplitContainerControl2.Panel2.Controls.Add(Me.GridControl3) Me.SplitContainerControl2.Panel2.Text = "Panel2" - Me.SplitContainerControl2.Size = New System.Drawing.Size(370, 490) + Me.SplitContainerControl2.Size = New System.Drawing.Size(370, 489) Me.SplitContainerControl2.SplitterPosition = 223 Me.SplitContainerControl2.TabIndex = 0 Me.SplitContainerControl2.Text = "SplitContainerControl2" @@ -295,7 +354,7 @@ Partial Class frmDocumentResultList Me.GridControl3.MainView = Me.GridView3 Me.GridControl3.MenuManager = Me.RibbonControl Me.GridControl3.Name = "GridControl3" - Me.GridControl3.Size = New System.Drawing.Size(370, 257) + Me.GridControl3.Size = New System.Drawing.Size(370, 256) Me.GridControl3.TabIndex = 0 Me.GridControl3.ViewCollection.AddRange(New DevExpress.XtraGrid.Views.Base.BaseView() {Me.GridView3}) ' @@ -324,13 +383,13 @@ Partial Class frmDocumentResultList 'SplitContainerControl3 ' Me.SplitContainerControl3.Dock = System.Windows.Forms.DockStyle.Fill - Me.SplitContainerControl3.Location = New System.Drawing.Point(0, 159) + Me.SplitContainerControl3.Location = New System.Drawing.Point(0, 158) Me.SplitContainerControl3.Name = "SplitContainerControl3" Me.SplitContainerControl3.Panel1.Controls.Add(Me.SplitContainerControl1) Me.SplitContainerControl3.Panel1.Text = "Panel1" Me.SplitContainerControl3.Panel2.Controls.Add(Me.DocumentViewer1) Me.SplitContainerControl3.Panel2.Text = "Panel2" - Me.SplitContainerControl3.Size = New System.Drawing.Size(1189, 490) + Me.SplitContainerControl3.Size = New System.Drawing.Size(1189, 489) Me.SplitContainerControl3.SplitterPosition = 762 Me.SplitContainerControl3.TabIndex = 5 Me.SplitContainerControl3.Text = "SplitContainerControl3" @@ -338,9 +397,10 @@ Partial Class frmDocumentResultList 'DocumentViewer1 ' Me.DocumentViewer1.Dock = System.Windows.Forms.DockStyle.Fill + Me.DocumentViewer1.FileLoaded = False Me.DocumentViewer1.Location = New System.Drawing.Point(0, 0) Me.DocumentViewer1.Name = "DocumentViewer1" - Me.DocumentViewer1.Size = New System.Drawing.Size(417, 490) + Me.DocumentViewer1.Size = New System.Drawing.Size(417, 489) Me.DocumentViewer1.TabIndex = 0 ' 'XtraSaveFileDialog @@ -363,6 +423,8 @@ Partial Class frmDocumentResultList Me.StatusBar = Me.RibbonStatusBar Me.Text = "Dokumenten Suche" CType(Me.RibbonControl, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.RepositoryItemTextEdit1, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.RepositoryItemTextEdit2, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.SplitContainerControl1, System.ComponentModel.ISupportInitialize).EndInit() Me.SplitContainerControl1.ResumeLayout(False) CType(Me.GridControl1, System.ComponentModel.ISupportInitialize).EndInit() @@ -410,4 +472,10 @@ Partial Class frmDocumentResultList Friend WithEvents BarButtonBack As DevExpress.XtraBars.BarButtonItem Friend WithEvents RibbonPageGroup_Navigation As DevExpress.XtraBars.Ribbon.RibbonPageGroup Friend WithEvents BarButtonItem5 As DevExpress.XtraBars.BarButtonItem + Friend WithEvents BarEditItem1 As DevExpress.XtraBars.BarEditItem + Friend WithEvents RepositoryItemTextEdit1 As DevExpress.XtraEditors.Repository.RepositoryItemTextEdit + Friend WithEvents BarEditItem2 As DevExpress.XtraBars.BarEditItem + Friend WithEvents RepositoryItemTextEdit2 As DevExpress.XtraEditors.Repository.RepositoryItemTextEdit + Friend WithEvents labelCriticalError As DevExpress.XtraBars.BarStaticItem + Friend WithEvents labelWarning As DevExpress.XtraBars.BarStaticItem End Class diff --git a/GUIs.Common/DocumentResultList/frmDocumentResultList.resx b/GUIs.Common/DocumentResultList/frmDocumentResultList.resx index e19145f9..f27923d5 100644 --- a/GUIs.Common/DocumentResultList/frmDocumentResultList.resx +++ b/GUIs.Common/DocumentResultList/frmDocumentResultList.resx @@ -290,6 +290,50 @@ OFYxMnoiIGNsYXNzPSJCbHVlIiAvPg0KICA8L2c+DQogIDxwb2x5Z29uIHBvaW50cz0iMjIsMTIgMjAs MTAgMTYsMTQgMTIsMTAgMTAsMTIgMTQsMTYgMTAsMjAgMTIsMjIgMTYsMTggMjAsMjIgMjIsMjAgMTgs MTYgIiBjbGFzcz0iUmVkIiAvPg0KPC9zdmc+Cw== + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjE5LjIsIFZlcnNpb249MTkuMi4z + LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl + dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAALMCAAAC77u/ + PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi + IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv + MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh + Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXJfMSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAg + MzIgMzIiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLkJsdWV7ZmlsbDojMTE3N0Q3O30KCS5Z + ZWxsb3d7ZmlsbDojRkZCMTE1O30KCS5CbGFja3tmaWxsOiM3MjcyNzI7fQoJLkdyZWVue2ZpbGw6IzAz + OUMyMzt9CgkuUmVke2ZpbGw6I0QxMUMxQzt9Cgkuc3Qwe29wYWNpdHk6MC43NTt9Cgkuc3Qxe29wYWNp + dHk6MC41O30KPC9zdHlsZT4NCiAgPGcgaWQ9IkRlbGV0ZUNpcmNsZWQiPg0KICAgIDxwYXRoIGQ9Ik0x + Niw0QzkuNCw0LDQsOS40LDQsMTZzNS40LDEyLDEyLDEyczEyLTUuNCwxMi0xMlMyMi42LDQsMTYsNHog + TTIzLjEsMjAuMmwtMi44LDIuOEwxNiwxOC44bC00LjIsNC4yICAgbC0yLjgtMi44bDQuMi00LjJsLTQu + Mi00LjJsMi44LTIuOGw0LjIsNC4ybDQuMi00LjJsMi44LDIuOEwxOC44LDE2TDIzLjEsMjAuMnoiIGNs + YXNzPSJSZWQiIC8+DQogIDwvZz4NCjwvc3ZnPgs= + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjE5LjIsIFZlcnNpb249MTkuMi4z + LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl + dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAABkEAAAC77u/ + PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi + IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv + MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh + Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXJfMSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAg + MzIgMzIiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLkJsdWV7ZmlsbDojMTE3N0Q3O30KCS5Z + ZWxsb3d7ZmlsbDojRkZCMTE1O30KCS5SZWR7ZmlsbDojRDExQzFDO30KCS5HcmVlbntmaWxsOiMwMzlD + MjM7fQoJLkJsYWNre2ZpbGw6IzcyNzI3Mjt9CgkuV2hpdGV7ZmlsbDojRkZGRkZGO30KCS5zdDB7b3Bh + Y2l0eTowLjU7fQoJLnN0MXtvcGFjaXR5OjAuNzU7fQoJLnN0MntkaXNwbGF5Om5vbmU7fQoJLnN0M3tk + aXNwbGF5OmlubGluZTtmaWxsOiNGRkIxMTU7fQoJLnN0NHtkaXNwbGF5OmlubGluZTt9Cgkuc3Q1e2Rp + c3BsYXk6aW5saW5lO29wYWNpdHk6MC43NTt9Cgkuc3Q2e2Rpc3BsYXk6aW5saW5lO29wYWNpdHk6MC41 + O30KCS5zdDd7ZGlzcGxheTppbmxpbmU7ZmlsbDojMDM5QzIzO30KCS5zdDh7ZGlzcGxheTppbmxpbmU7 + ZmlsbDojRDExQzFDO30KCS5zdDl7ZGlzcGxheTppbmxpbmU7ZmlsbDojMTE3N0Q3O30KCS5zdDEwe2Rp + c3BsYXk6aW5saW5lO2ZpbGw6I0ZGRkZGRjt9Cjwvc3R5bGU+DQogIDxnIGlkPSJBdHRlbnRpb24iPg0K + ICAgIDxwYXRoIGQ9Ik0xNS4xLDIuNUwyLjEsMjYuNUMxLjgsMjcuMiwyLjMsMjgsMy4xLDI4aDI1Ljlj + MC44LDAsMS4zLTAuOCwwLjktMS41TDE2LjksMi41ICAgQzE2LjUsMS44LDE1LjUsMS44LDE1LjEsMi41 + eiIgY2xhc3M9IlllbGxvdyIgLz4NCiAgICA8cGF0aCBkPSJNMTYsMjBjMS4xLDAsMiwwLjksMiwycy0w + LjksMi0yLDJzLTItMC45LTItMlMxNC45LDIwLDE2LDIweiBNMTQsMTBoNHY4aC00VjEweiIgY2xhc3M9 + IkJsYWNrIiAvPg0KICA8L2c+DQo8L3N2Zz4L diff --git a/GUIs.Common/DocumentResultList/frmDocumentResultList.vb b/GUIs.Common/DocumentResultList/frmDocumentResultList.vb index 25810118..b4de47b5 100644 --- a/GUIs.Common/DocumentResultList/frmDocumentResultList.vb +++ b/GUIs.Common/DocumentResultList/frmDocumentResultList.vb @@ -21,10 +21,11 @@ Imports System.Threading Public Class frmDocumentResultList Implements IResultForm - Private Const COLUMN_ICON = "ICON" - Private Const COLUMN_FILEPATH = "FULL_FILENAME" - Private Const COLUMN_FILENAME = "Filename" - Private Const COLUMN_DOCID = "DocID" + + Private COLUMN_FILEPATH = "FULL_FILENAME" + Private COLUMN_FILENAME = "Filename" + Private COLUMN_DOCID = "DocID" + Private COLUMN_ICON = "ICON" Private _IsLoading As Boolean = True Private _IsLegacy As Boolean = True @@ -36,10 +37,10 @@ Public Class frmDocumentResultList Private _Environment As Environment Private _Params As DocumentResultParams Private _ResultLists As List(Of DocumentResult) + Private _Helpers As DocumentResultList Private _ActiveGrid As GridControl = Nothing Private _ActiveGridBand As GridBand = Nothing - Private _ActiveRowHandle As Integer = Constants.NO_ROW_HANDLE Private _DocumentInfo As DocumentInfo = Nothing @@ -52,47 +53,29 @@ Public Class frmDocumentResultList ' 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 + _LogConfig = LogConfig _Logger = LogConfig.GetLogger() _Config = New ConfigManager(Of DocumentResultConfig)(LogConfig, oConfigPath, oConfigPath) + _Helpers = New DocumentResultList(LogConfig) + _Environment = Environment _Params = Params _ResultLists = Params.Results - Try - Dim Culture = CultureInfo.CreateSpecificCulture(_Environment.User.Language) - ' The following line provides localization for the application's user interface. - Thread.CurrentThread.CurrentUICulture = Culture - ' The following line provides localization for data formats. - Thread.CurrentThread.CurrentCulture = Culture - ' Set this culture as the default culture for all threads in this application. - ' Note: The following properties are supported in the .NET Framework 4.5+ - CultureInfo.DefaultThreadCurrentCulture = Culture - CultureInfo.DefaultThreadCurrentUICulture = Culture - Culture.DateTimeFormat.ShortDatePattern = _Environment.User.DateFormat - Catch ex As Exception - _Logger.Warn($"Error loading CultureInfo: {ex.Message}") - End Try - MaybeInitIDB() - End Sub - - Private Sub MaybeInitIDB() - _IsLegacy = Not _Environment.Service.IsActive - If _Environment.Service.IsActive Then - 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) - End If - End If End Sub Private Sub frmDocumentResultList_Load(sender As Object, e As EventArgs) Handles MyBase.Load Try + MaybeInitIDB() + ' 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 @@ -115,12 +98,6 @@ Public Class frmDocumentResultList SwitchDetailContainerHorizontal.Visibility = DevExpress.XtraBars.BarItemVisibility.Never End If - 'RibbonControl.Minimized = True - - ' Initialize Viewer with GDPicture.NET License - DocumentViewer1.Init(_LogConfig, _Environment.Settings.GdPictureKey) - - AddHandler GridView1.FocusedRowChanged, AddressOf GridView_FocusedRowChanged AddHandler GridView2.FocusedRowChanged, AddressOf GridView_FocusedRowChanged AddHandler GridView3.FocusedRowChanged, AddressOf GridView_FocusedRowChanged @@ -136,9 +113,10 @@ Public Class frmDocumentResultList End Sub Private Sub GridView_FocusedRowChanged(sender As GridView, e As FocusedRowChangedEventArgs) - _ActiveRowHandle = e.FocusedRowHandle + _Helpers.SetRowHandle(e) Try + Reset_Errors() Cursor = Cursors.WaitCursor If e.FocusedRowHandle >= 0 Then @@ -151,6 +129,9 @@ Public Class frmDocumentResultList LoadFile_IDB(oRow) End If + If IsNothing(_DocumentInfo) Or DocumentViewer1.FileLoaded = False Then + Show_Warning("File could not be loaded!") + End If DocumentViewer1.LoadFile(_DocumentInfo.FullPath) If _DocumentInfo.AccessRight = Rights.AccessRight.VIEW_ONLY Then @@ -163,12 +144,27 @@ Public Class frmDocumentResultList End If Catch ex As Exception _Logger.Error(ex) - MsgBox("Error while changing row: " & ex.Message, MsgBoxStyle.Critical, Text) + Show_CriticalError(ex.Message) Finally Cursor = Cursors.Default End Try End Sub + Private Sub MaybeInitIDB() + _IsLegacy = Not _Environment.Service.IsActive + If _Environment.Service.IsActive Then + 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) + End If + End If + End Sub + Private Sub LoadFile_Legacy(GridRow As DataRow) Try Dim oFullPath = GridRow.Item(COLUMN_FILEPATH) @@ -192,7 +188,6 @@ Public Class frmDocumentResultList _DocumentInfo = _IDBClient.GetDocumentInfo(_Environment.User.UserId, oObjectId) Catch ex As Exception _Logger.Error(ex) - MsgBox("Error while loading file", MsgBoxStyle.Critical, Text) End Try End Sub @@ -276,7 +271,6 @@ Public Class frmDocumentResultList 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 @@ -296,6 +290,14 @@ Public Class frmDocumentResultList Private Sub CreateDocumentGrid(GridView As GridView, Datatable As DataTable) Dim oDocDatatable As New DataTable Try + If Datatable.Columns.Contains(COLUMN_DOCID) = False Then + Throw New ApplicationException($"Datatable is missing DocId Column [{COLUMN_DOCID}]!") + End If + + If Datatable.Columns.Contains(COLUMN_FILEPATH) = False Then + Throw New ApplicationException($"Datatable is missing Filepath Column [{COLUMN_FILEPATH}]!") + End If + 'Die Icon Colum erstellen und konfigurieren oDocDatatable.Columns.Add(New DataColumn() With { .DataType = GetType(Image), @@ -314,7 +316,7 @@ Public Class frmDocumentResultList }) oDocDatatable.Columns.Add(New DataColumn() With { .DataType = GetType(String), - .ColumnName = "Filename", + .ColumnName = COLUMN_FILENAME, .Caption = "Filename" }) @@ -340,12 +342,12 @@ Public Class frmDocumentResultList oNewRow = oDocDatatable.NewRow() 'Icon zuweisen - oNewRow.Item(0) = GetIconByExtension(oFullpath) + oNewRow.Item(COLUMN_ICON) = _Helpers.GetIconByExtension(oFullpath) 'Den Filepath mitgeben - oNewRow.Item(1) = oFullpath - oNewRow.Item(2) = oDocID - oNewRow.Item(3) = oFilename + oNewRow.Item(COLUMN_FILEPATH) = oFullpath + oNewRow.Item(COLUMN_DOCID) = oDocID + oNewRow.Item(COLUMN_FILENAME) = oFilename Dim oIndex = 4 'Fängt bei 4 an, um die definierten Spalten zu überspringen For Each oColumnName As String In oRestColArray @@ -404,55 +406,14 @@ Public Class frmDocumentResultList GridView.OptionsView.BestFitMaxRowCount = -1 GridView.BestFitColumns(True) + Catch ex As ApplicationException + MsgBox($"Error while loading grid data: {vbNewLine}{vbNewLine}{ex.Message}", MsgBoxStyle.Critical, Text) + _Logger.Error(ex) Catch ex As Exception _Logger.Error(ex) End Try End Sub - Private 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 - - Private Sub SwitchMainContainerHorizontal_CheckedChanged(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles SwitchMainContainerHorizontal.CheckedChanged SplitContainerControl1.Horizontal = SwitchMainContainerHorizontal.Checked @@ -508,7 +469,7 @@ Public Class frmDocumentResultList Private Function GetActiveRow() As DataRow Dim oActiveGrid = GetActiveGridControl() - Dim oActiveRowhandle = GetActiveRowHandle() + Dim oActiveRowhandle = _Helpers.ActiveRowHandle If oActiveGrid IsNot Nothing And oActiveRowhandle <> Constants.NO_ROW_HANDLE Then Dim oView = DirectCast(oActiveGrid.DefaultView, GridView) @@ -527,13 +488,7 @@ Public Class frmDocumentResultList Return _ActiveGrid End Function - Private Function GetActiveRowHandle() As Integer - If _ActiveRowHandle = Constants.NO_ROW_HANDLE Then - Return Constants.NO_ROW_HANDLE - End If - Return _ActiveRowHandle - End Function Private Sub GridControl_Enter(sender As GridControl, e As EventArgs) Handles GridControl1.Enter, GridControl2.Enter, GridControl3.Enter _ActiveGrid = sender @@ -674,4 +629,20 @@ Public Class frmDocumentResultList MsgBox("Unexpected Error while preparing context menu", MsgBoxStyle.Critical, Text) End Try End Sub + + + Public Sub Show_CriticalError(Message As String) + labelCriticalError.Visibility = DevExpress.XtraBars.BarItemVisibility.Always + labelCriticalError.Caption = Message + End Sub + + Public Sub Show_Warning(Message As String) + labelWarning.Visibility = DevExpress.XtraBars.BarItemVisibility.Never + labelWarning.Caption = Message + End Sub + + Public Sub Reset_Errors() + labelCriticalError.Visibility = DevExpress.XtraBars.BarItemVisibility.Never + labelWarning.Visibility = DevExpress.XtraBars.BarItemVisibility.Never + End Sub End Class \ No newline at end of file diff --git a/GUIs.Common/My Project/licenses.licx b/GUIs.Common/My Project/licenses.licx index 9447cbf5..cc9e5531 100644 --- a/GUIs.Common/My Project/licenses.licx +++ b/GUIs.Common/My Project/licenses.licx @@ -1,7 +1,8 @@ DevExpress.XtraLayout.LayoutControl, DevExpress.XtraLayout.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a -DevExpress.XtraEditors.Repository.RepositoryItemComboBox, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a DevExpress.XtraEditors.ProgressBarControl, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a -DevExpress.XtraGrid.GridControl, DevExpress.XtraGrid.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a -DevExpress.XtraBars.Ribbon.RibbonControl, DevExpress.XtraBars.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a +DevExpress.XtraEditors.Repository.RepositoryItemTextEdit, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a DevExpress.XtraEditors.TextEdit, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a DevExpress.XtraEditors.GridLookUpEdit, DevExpress.XtraGrid.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a +DevExpress.XtraEditors.Repository.RepositoryItemComboBox, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a +DevExpress.XtraBars.Ribbon.RibbonControl, DevExpress.XtraBars.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a +DevExpress.XtraGrid.GridControl, DevExpress.XtraGrid.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a