diff --git a/GUIs.Common/My Project/licenses.licx b/GUIs.Common/My Project/licenses.licx index 2cf99fc3..4c23d9e3 100644 --- a/GUIs.Common/My Project/licenses.licx +++ b/GUIs.Common/My Project/licenses.licx @@ -1,4 +1,7 @@ -DevExpress.XtraEditors.Repository.RepositoryItemTextEdit, DevExpress.XtraEditors.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a DevExpress.XtraGrid.GridControl, DevExpress.XtraGrid.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a -DevExpress.XtraBars.Ribbon.RibbonControl, DevExpress.XtraBars.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a +DevExpress.XtraEditors.ProgressBarControl, DevExpress.XtraEditors.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a +DevExpress.XtraEditors.Repository.RepositoryItemTextEdit, DevExpress.XtraEditors.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a DevExpress.XtraLayout.LayoutControl, DevExpress.XtraLayout.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a +DevExpress.XtraEditors.Repository.RepositoryItemComboBox, DevExpress.XtraEditors.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a +DevExpress.XtraEditors.TextEdit, DevExpress.XtraEditors.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a +DevExpress.XtraBars.Ribbon.RibbonControl, DevExpress.XtraBars.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a diff --git a/GUIs.Common/frmDocumentResultList.Designer.vb b/GUIs.Common/frmDocumentResultList.Designer.vb index 2398c636..4d9a79b8 100644 --- a/GUIs.Common/frmDocumentResultList.Designer.vb +++ b/GUIs.Common/frmDocumentResultList.Designer.vb @@ -113,7 +113,7 @@ Partial Class frmDocumentResultList ' Me.SplitContainerControl1.Panel2.Controls.Add(Me.SplitContainerControl2) resources.ApplyResources(Me.SplitContainerControl1.Panel2, "SplitContainerControl1.Panel2") - Me.SplitContainerControl1.SplitterPosition = 382 + Me.SplitContainerControl1.SplitterPosition = 389 ' 'GridControl1 ' @@ -296,12 +296,12 @@ Partial Class frmDocumentResultList Me.MenuItemPropertiesZooFlow.ImageOptions.SvgImage = Global.DigitalData.GUIs.Common.My.Resources.Resources.editcolors Me.MenuItemPropertiesZooFlow.Name = "MenuItemPropertiesZooFlow" ' - 'BarButtonItem1 + 'ButtonRefresh ' - resources.ApplyResources(Me.ButtonRefresh, "BarButtonItem1") + resources.ApplyResources(Me.ButtonRefresh, "ButtonRefresh") Me.ButtonRefresh.Id = 29 Me.ButtonRefresh.ImageOptions.SvgImage = Global.DigitalData.GUIs.Common.My.Resources.Resources.refreshallpivottable - Me.ButtonRefresh.Name = "BarButtonItem1" + Me.ButtonRefresh.Name = "ButtonRefresh" ' 'RibbonPage1 ' diff --git a/GUIs.Common/frmDocumentResultList.resx b/GUIs.Common/frmDocumentResultList.resx index 03bc4f0f..4d9932fc 100644 --- a/GUIs.Common/frmDocumentResultList.resx +++ b/GUIs.Common/frmDocumentResultList.resx @@ -426,7 +426,7 @@ Eigenschaften - + Ergebnisse aktualisieren @@ -455,10 +455,10 @@ 1189, 132 - 0, 647 + 0, 649 - 1189, 24 + 1189, 22 RibbonStatusBar @@ -485,7 +485,7 @@ 2 - 382, 511 + 389, 513 0 @@ -539,7 +539,7 @@ GridBand2 - 370, 223 + 363, 223 0 @@ -587,7 +587,7 @@ GridBand3 - 370, 278 + 363, 280 0 @@ -620,7 +620,7 @@ 1 - 370, 511 + 363, 513 0 @@ -656,7 +656,7 @@ 1 - 762, 511 + 762, 513 2 @@ -704,7 +704,7 @@ 0, 0 - 413, 511 + 413, 513 0 @@ -737,7 +737,7 @@ 1 - 1189, 515 + 1189, 517 5 @@ -978,10 +978,10 @@ DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - BarButtonItem1 + + ButtonRefresh - + DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a diff --git a/GUIs.Common/frmDocumentResultList.vb b/GUIs.Common/frmDocumentResultList.vb index d9f588c4..a54c3d05 100644 --- a/GUIs.Common/frmDocumentResultList.vb +++ b/GUIs.Common/frmDocumentResultList.vb @@ -77,7 +77,8 @@ Public Class frmDocumentResultList Public Event NeedsRefresh As EventHandler(Of Integer) Implements IResultForm.NeedsRefresh Public Event ResultsRefreshed As EventHandler(Of List(Of DocumentResultList.DocumentResult)) - Public Delegate Sub SetDatasourceCallback(pDatatable As DataTable) + Private Delegate Sub DatasourceDelegate(View As GridView, Datasource As Object) + Private Delegate Function RefreshResultsDelegate(Results As IEnumerable(Of BaseResult)) As Boolean Public Sub New(pLogConfig As LogConfig, pEnvironment As Environment, pParams As DocumentResultList.Params) ' Dieser Aufruf ist für den Designer erforderlich. @@ -325,7 +326,7 @@ Public Class frmDocumentResultList If IsNothing(oObjectId) Then MsgBox($"Beim Speichern der Datei '{oDisplayName}' Fehler ist ein Fehler aufgetreten!", MsgBoxStyle.Critical, Text) Else - MsgBox($"Die Datei '{oDisplayName}' wurde erfolgreich gespeichert!", MsgBoxStyle.Information, Text) + 'MsgBox($"Die Datei '{oDisplayName}' wurde erfolgreich gespeichert!", MsgBoxStyle.Information, Text) RaiseEvent NeedsRefresh(Me, Params.ProfileGuid) End If End Function @@ -372,23 +373,32 @@ Public Class frmDocumentResultList Public Function RefreshResults(pResults As IEnumerable(Of BaseResult)) As Boolean Implements IResultForm.RefreshResults - _IsLoading = True - Try - UpdateTotalResults() - UpdateGridData() + ' This is needed to update the grid from another form like frmMatch + ' Another form means another thread, so we need a delegate here + If InvokeRequired Then + Dim oDelegate As New RefreshResultsDelegate(AddressOf RefreshResults) + Return GridControl1.Invoke(oDelegate, pResults) + Else + _IsLoading = True + Try + _ResultLists = pResults - Return True - Catch ex As Exception - Logger.Error(ex) + UpdateTotalResults() + UpdateGridData() - MessageBox.Show("Error while loading results:" & vbNewLine & vbNewLine & ex.Message, Text, MessageBoxButtons.OK, MessageBoxIcon.Error) - Return False - Finally - _IsLoading = False - End Try + Return True + Catch ex As Exception + Logger.Error(ex) + + MessageBox.Show("Error while refreshing results:" & vbNewLine & vbNewLine & ex.Message, Text, MessageBoxButtons.OK, MessageBoxIcon.Error) + Return False + Finally + _IsLoading = False + End Try + End If End Function - Private Sub LoadGridData(Result As DocumentResultList.DocumentResult) + Private Sub LoadGridData(View As GridView, Result As DocumentResultList.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 @@ -397,22 +407,26 @@ Public Class frmDocumentResultList Throw New ApplicationException($"Datatable is missing Filepath Column [{COLUMN_FILEPATH}] for search {Result.Title}!") End If - ' This is needed to update the grid from another form like frmMatch - ' Another form means another thread, so we need a delegate here - If GridControl1.InvokeRequired Then - Dim oCallback As New SetDatasourceCallback(AddressOf SetGridDataSource) - Invoke(oCallback, Result.Datatable) - - Else - SetGridDataSource(Result.Datatable) - End If + SetGridDataSource(View, Result.Datatable) End Sub - Private Sub SetGridDataSource(pTable As DataTable) - GridControl1.DataSource = Nothing - GridControl1.DataSource = pTable + + Private Sub SetGridDataSource(pView As GridView, pTable As DataTable) + Dim oSavedRowHandle As Integer = pView.FocusedRowHandle + pView.BeginDataUpdate() + + Try + pView.FocusedRowHandle = GridControl.AutoFilterRowHandle + pView.GridControl.DataSource = Nothing + pView.GridControl.DataSource = pTable + pView.FocusedRowHandle = oSavedRowHandle + Finally + pView.EndDataUpdate() + End Try End Sub + + Private Sub UpdateGridData() ' Load Grids For oIndex = 0 To _ResultLists.Count - 1 @@ -420,7 +434,7 @@ Public Class frmDocumentResultList Case 0 Dim oResult As DocumentResultList.DocumentResult = _ResultLists.Item(0) - LoadGridData(oResult) + LoadGridData(GridView1, oResult) CreateDocumentGrid(GridView1, oResult) RestoreLayout(GridView1) UpdateGridHeader(_ResultLists, oIndex, oResult.Datatable.Rows.Count) @@ -428,7 +442,7 @@ Public Class frmDocumentResultList Case 1 Dim oResult As DocumentResultList.DocumentResult = _ResultLists.Item(1) - LoadGridData(oResult) + LoadGridData(GridView2, oResult) CreateDocumentGrid(GridView2, oResult) RestoreLayout(GridView2) UpdateGridHeader(_ResultLists, oIndex, oResult.Datatable.Rows.Count) @@ -436,7 +450,7 @@ Public Class frmDocumentResultList Case 2 Dim oResult As DocumentResultList.DocumentResult = _ResultLists.Item(2) - LoadGridData(oResult) + LoadGridData(GridView3, oResult) CreateDocumentGrid(GridView3, oResult) RestoreLayout(GridView3) UpdateGridHeader(_ResultLists, oIndex, oResult.Datatable.Rows.Count)