From d5b9cae282c041f993662d574970a99a94466cf6 Mon Sep 17 00:00:00 2001 From: Jonathan Jenne Date: Wed, 8 Jun 2022 16:31:34 +0200 Subject: [PATCH] Zooflow: Custom Searches --- GUIs.Common/Common.vbproj | 3 + GUIs.Common/IResultForm.vb | 1 - GUIs.Common/My Project/Resources.Designer.vb | 10 + GUIs.Common/My Project/Resources.resx | 59 ++--- .../bo_security_permission_action.svg | 8 + GUIs.Common/frmDocumentResultList.Designer.vb | 56 +++-- GUIs.Common/frmDocumentResultList.resx | 42 +++- GUIs.Common/frmDocumentResultList.vb | 78 +++--- GUIs.ZooFlow/My Project/Resources.Designer.vb | 20 ++ GUIs.ZooFlow/My Project/Resources.resx | 24 +- GUIs.ZooFlow/My Project/licenses.licx | 33 +-- .../Resources/alignhorizontalcenter.svg | 9 + .../Resources/alignverticalcenter.svg | 9 + GUIs.ZooFlow/Search/SavedSearch.vb | 48 ++++ GUIs.ZooFlow/Search/SearchLoader.vb | 184 ++++++++------ GUIs.ZooFlow/Search/SearchRunner.vb | 25 +- GUIs.ZooFlow/Search/frmEditSearch.Designer.vb | 232 ++++++++++++++++++ GUIs.ZooFlow/Search/frmEditSearch.resx | 123 ++++++++++ GUIs.ZooFlow/Search/frmEditSearch.vb | 48 ++++ GUIs.ZooFlow/Search/frmSearchFlow.Designer.vb | 122 +++++++-- GUIs.ZooFlow/Search/frmSearchFlow.vb | 151 +++++++----- GUIs.ZooFlow/ZooFlow.vbproj | 12 + 22 files changed, 1019 insertions(+), 278 deletions(-) create mode 100644 GUIs.Common/Resources/bo_security_permission_action.svg create mode 100644 GUIs.ZooFlow/Resources/alignhorizontalcenter.svg create mode 100644 GUIs.ZooFlow/Resources/alignverticalcenter.svg create mode 100644 GUIs.ZooFlow/Search/SavedSearch.vb create mode 100644 GUIs.ZooFlow/Search/frmEditSearch.Designer.vb create mode 100644 GUIs.ZooFlow/Search/frmEditSearch.resx create mode 100644 GUIs.ZooFlow/Search/frmEditSearch.vb diff --git a/GUIs.Common/Common.vbproj b/GUIs.Common/Common.vbproj index b1c6248c..59b36f55 100644 --- a/GUIs.Common/Common.vbproj +++ b/GUIs.Common/Common.vbproj @@ -576,5 +576,8 @@ + + + \ No newline at end of file diff --git a/GUIs.Common/IResultForm.vb b/GUIs.Common/IResultForm.vb index cf5c6fbe..53721efc 100644 --- a/GUIs.Common/IResultForm.vb +++ b/GUIs.Common/IResultForm.vb @@ -4,7 +4,6 @@ Public Interface IResultForm Property OperationMode As OperationMode Property ShouldReturnToPreviousForm As Boolean - Event NeedsRefresh As EventHandler(Of Integer) Function RefreshResults(pResults As IEnumerable(Of BaseResult)) As Boolean diff --git a/GUIs.Common/My Project/Resources.Designer.vb b/GUIs.Common/My Project/Resources.Designer.vb index f468b1d8..ee5c12fc 100644 --- a/GUIs.Common/My Project/Resources.Designer.vb +++ b/GUIs.Common/My Project/Resources.Designer.vb @@ -180,6 +180,16 @@ Namespace My.Resources End Get End Property + ''' + ''' Sucht eine lokalisierte Ressource vom Typ DevExpress.Utils.Svg.SvgImage. + ''' + Friend ReadOnly Property bo_security_permission_action() As DevExpress.Utils.Svg.SvgImage + Get + Dim obj As Object = ResourceManager.GetObject("bo_security_permission_action", resourceCulture) + Return CType(obj,DevExpress.Utils.Svg.SvgImage) + End Get + End Property + ''' ''' Sucht eine lokalisierte Ressource vom Typ DevExpress.Utils.Svg.SvgImage. ''' diff --git a/GUIs.Common/My Project/Resources.resx b/GUIs.Common/My Project/Resources.resx index e79f6019..9fbb7402 100644 --- a/GUIs.Common/My Project/Resources.resx +++ b/GUIs.Common/My Project/Resources.resx @@ -121,9 +121,6 @@ ..\Resources\bo_transition.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - ..\Resources\editcolors.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - ..\Resources\security_unlock.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a @@ -148,6 +145,12 @@ ..\Resources\ZooFlow-Vergroessern.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + ..\Resources\save.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + ..\Resources\singlepageview.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + ..\Resources\grid.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a @@ -157,9 +160,6 @@ ..\Resources\jpg.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Resources\xls.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - ..\Resources\autoarrange1.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a @@ -190,6 +190,12 @@ ..\Resources\refreshallpivottable.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + ..\Resources\columnheaders.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + ..\Resources\open.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + ..\Resources\enablescrolling.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a @@ -202,11 +208,8 @@ ..\Resources\singlepageview1.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - ..\Resources\bo_contract1.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - ..\Resources\actions_database3.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + ..\Resources\bo_localization.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a ..\Resources\txt.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a @@ -220,6 +223,9 @@ ..\Resources\cancel.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + ..\Resources\dwg.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + ..\Resources\clearall1.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a @@ -229,17 +235,17 @@ ..\Resources\categorize.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - ..\Resources\zoom_more.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\bo_contract1.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - ..\Resources\singlepageview.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + ..\Resources\saveas.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a ..\Resources\title.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - ..\Resources\columnheaders.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + ..\Resources\editcolors.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a ..\Resources\_page.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a @@ -247,11 +253,11 @@ ..\Resources\actions_user1.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - ..\Resources\save.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + ..\Resources\xls.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Resources\dwg.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\actions_database3.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a ..\Resources\filterquery.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a @@ -274,15 +280,12 @@ ..\Resources\handtool1.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - ..\Resources\open.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + ..\Resources\zoom_more.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\ppt.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Resources\bo_localization.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - ..\Resources\business_world.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a @@ -292,7 +295,7 @@ ..\Resources\_blank.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Resources\saveas.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + ..\Resources\bo_security_permission_action.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a \ No newline at end of file diff --git a/GUIs.Common/Resources/bo_security_permission_action.svg b/GUIs.Common/Resources/bo_security_permission_action.svg new file mode 100644 index 00000000..a6defff0 --- /dev/null +++ b/GUIs.Common/Resources/bo_security_permission_action.svg @@ -0,0 +1,8 @@ + + + + + + \ No newline at end of file diff --git a/GUIs.Common/frmDocumentResultList.Designer.vb b/GUIs.Common/frmDocumentResultList.Designer.vb index 6d64a522..15b572b7 100644 --- a/GUIs.Common/frmDocumentResultList.Designer.vb +++ b/GUIs.Common/frmDocumentResultList.Designer.vb @@ -66,18 +66,21 @@ Partial Class frmDocumentResultList Me.BarWorkspaceMenuItem1 = New DevExpress.XtraBars.BarWorkspaceMenuItem() Me.WorkspaceManager1 = New DevExpress.Utils.WorkspaceManager(Me.components) Me.btnSaveWorkspaceAs = New DevExpress.XtraBars.BarButtonItem() + Me.btnSaveAsMySearch = New DevExpress.XtraBars.BarButtonItem() Me.RibbonPageStart = New DevExpress.XtraBars.Ribbon.RibbonPage() Me.RibbonPageGroup_Navigation = New DevExpress.XtraBars.Ribbon.RibbonPageGroup() Me.RibbonPageGroupExport = New DevExpress.XtraBars.Ribbon.RibbonPageGroup() - Me.RibbonPageGroup5 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup() + Me.RibbonPageRefresh = New DevExpress.XtraBars.Ribbon.RibbonPageGroup() Me.RibbonPageGroupDocument = New DevExpress.XtraBars.Ribbon.RibbonPageGroup() Me.RibbonPageGroupFilesystem = New DevExpress.XtraBars.Ribbon.RibbonPageGroup() Me.RibbonPageGroupCheckInOut = New DevExpress.XtraBars.Ribbon.RibbonPageGroup() Me.RibbonPageGroupWorkflow = New DevExpress.XtraBars.Ribbon.RibbonPageGroup() Me.RibbonPageGroupAttribute = New DevExpress.XtraBars.Ribbon.RibbonPageGroup() Me.RibbonPageGroupWorkspace = New DevExpress.XtraBars.Ribbon.RibbonPageGroup() + Me.RibbonPageGroupSavedSearch = New DevExpress.XtraBars.Ribbon.RibbonPageGroup() Me.RibbonPage2 = New DevExpress.XtraBars.Ribbon.RibbonPage() Me.RibbonPageGroup9 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup() + Me.RibbonPageGroup1 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup() Me.RibbonPageGroupWorkspaceSettings = New DevExpress.XtraBars.Ribbon.RibbonPageGroup() Me.RepositoryItemTextEdit1 = New DevExpress.XtraEditors.Repository.RepositoryItemTextEdit() Me.RepositoryItemTextEdit2 = New DevExpress.XtraEditors.Repository.RepositoryItemTextEdit() @@ -112,7 +115,6 @@ Partial Class frmDocumentResultList Me.CtrlObjectPropertyDialog = New DigitalData.GUIs.Common.ctrlObjectPropertyDialog() Me.DockPanelPreview = New DevExpress.XtraBars.Docking.DockPanel() Me.DockPanel1_Container = New DevExpress.XtraBars.Docking.ControlContainer() - Me.RibbonPageGroup1 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup() CType(Me.SplitContainerControl1, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.SplitContainerControl1.Panel1, System.ComponentModel.ISupportInitialize).BeginInit() Me.SplitContainerControl1.Panel1.SuspendLayout() @@ -215,11 +217,12 @@ Partial Class frmDocumentResultList ' 'RibbonControl ' + Me.RibbonControl.ColorScheme = DevExpress.XtraBars.Ribbon.RibbonControlColorScheme.Green Me.RibbonControl.ExpandCollapseItem.Id = 0 Me.RibbonControl.Images = Me.SvgImageCollection1 - 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.BarButtonResetGridLayout, Me.labelCriticalError, Me.labelWarning, Me.MenuItemFileOpen, Me.MenuItemPropertiesIDB, Me.MenuItemFolderOpen, Me.MenuItemFilepathCopy, Me.MenuItemFolderpathCopy, Me.MenuItemProperties, Me.MenuItemsOpenFileZooFlow, Me.MenuItemPropertiesZooFlow, Me.ButtonRefresh, Me.BarButtonItem1, Me.BarButtonItem2, Me.BarButtonItem3, Me.BarButtonItem4, Me.BarButtonItem5, Me.MenuItemStartAdhocWorkflow, Me.MenuItemCheckInFile, Me.MenuItemCheckOutFile, Me.MenuItemVersionFile, Me.chkGridShowQuickfilter, Me.chkGridShowGrouping, Me.chkGridShowTitle, Me.MenuItemSaveProperties, Me.BarButtonItem11, Me.BarEditItemGridFontSize, Me.btnSaveWorkspace, Me.BarWorkspaceMenuItem1, Me.btnSaveWorkspaceAs}) + 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.BarButtonResetGridLayout, Me.labelCriticalError, Me.labelWarning, Me.MenuItemFileOpen, Me.MenuItemPropertiesIDB, Me.MenuItemFolderOpen, Me.MenuItemFilepathCopy, Me.MenuItemFolderpathCopy, Me.MenuItemProperties, Me.MenuItemsOpenFileZooFlow, Me.MenuItemPropertiesZooFlow, Me.ButtonRefresh, Me.BarButtonItem1, Me.BarButtonItem2, Me.BarButtonItem3, Me.BarButtonItem4, Me.BarButtonItem5, Me.MenuItemStartAdhocWorkflow, Me.MenuItemCheckInFile, Me.MenuItemCheckOutFile, Me.MenuItemVersionFile, Me.chkGridShowQuickfilter, Me.chkGridShowGrouping, Me.chkGridShowTitle, Me.MenuItemSaveProperties, Me.BarButtonItem11, Me.BarEditItemGridFontSize, Me.btnSaveWorkspace, Me.BarWorkspaceMenuItem1, Me.btnSaveWorkspaceAs, Me.btnSaveAsMySearch}) resources.ApplyResources(Me.RibbonControl, "RibbonControl") - Me.RibbonControl.MaxItemId = 57 + Me.RibbonControl.MaxItemId = 59 Me.RibbonControl.Name = "RibbonControl" Me.RibbonControl.PageHeaderItemLinks.Add(Me.BarWorkspaceMenuItem1) Me.RibbonControl.Pages.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPage() {Me.RibbonPageStart, Me.RibbonPage2}) @@ -510,9 +513,16 @@ Partial Class frmDocumentResultList Me.btnSaveWorkspaceAs.ImageOptions.SvgImage = Global.DigitalData.GUIs.Common.My.Resources.Resources.saveas Me.btnSaveWorkspaceAs.Name = "btnSaveWorkspaceAs" ' + 'btnSaveAsMySearch + ' + resources.ApplyResources(Me.btnSaveAsMySearch, "btnSaveAsMySearch") + Me.btnSaveAsMySearch.Id = 57 + Me.btnSaveAsMySearch.ImageOptions.SvgImage = Global.DigitalData.GUIs.Common.My.Resources.Resources.bo_security_permission_action + Me.btnSaveAsMySearch.Name = "btnSaveAsMySearch" + ' 'RibbonPageStart ' - Me.RibbonPageStart.Groups.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPageGroup() {Me.RibbonPageGroup_Navigation, Me.RibbonPageGroupExport, Me.RibbonPageGroup5, Me.RibbonPageGroupDocument, Me.RibbonPageGroupFilesystem, Me.RibbonPageGroupCheckInOut, Me.RibbonPageGroupWorkflow, Me.RibbonPageGroupAttribute, Me.RibbonPageGroupWorkspace}) + Me.RibbonPageStart.Groups.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPageGroup() {Me.RibbonPageGroup_Navigation, Me.RibbonPageGroupExport, Me.RibbonPageRefresh, Me.RibbonPageGroupDocument, Me.RibbonPageGroupFilesystem, Me.RibbonPageGroupCheckInOut, Me.RibbonPageGroupWorkflow, Me.RibbonPageGroupAttribute, Me.RibbonPageGroupWorkspace, Me.RibbonPageGroupSavedSearch}) Me.RibbonPageStart.Name = "RibbonPageStart" resources.ApplyResources(Me.RibbonPageStart, "RibbonPageStart") ' @@ -530,12 +540,12 @@ Partial Class frmDocumentResultList Me.RibbonPageGroupExport.Name = "RibbonPageGroupExport" resources.ApplyResources(Me.RibbonPageGroupExport, "RibbonPageGroupExport") ' - 'RibbonPageGroup5 + 'RibbonPageRefresh ' - Me.RibbonPageGroup5.Alignment = DevExpress.XtraBars.Ribbon.RibbonPageGroupAlignment.Far - Me.RibbonPageGroup5.ItemLinks.Add(Me.ButtonRefresh) - Me.RibbonPageGroup5.Name = "RibbonPageGroup5" - resources.ApplyResources(Me.RibbonPageGroup5, "RibbonPageGroup5") + Me.RibbonPageRefresh.Alignment = DevExpress.XtraBars.Ribbon.RibbonPageGroupAlignment.Far + Me.RibbonPageRefresh.ItemLinks.Add(Me.ButtonRefresh) + Me.RibbonPageRefresh.Name = "RibbonPageRefresh" + resources.ApplyResources(Me.RibbonPageRefresh, "RibbonPageRefresh") ' 'RibbonPageGroupDocument ' @@ -577,6 +587,12 @@ Partial Class frmDocumentResultList Me.RibbonPageGroupWorkspace.Name = "RibbonPageGroupWorkspace" resources.ApplyResources(Me.RibbonPageGroupWorkspace, "RibbonPageGroupWorkspace") ' + 'RibbonPageGroupSavedSearch + ' + Me.RibbonPageGroupSavedSearch.ItemLinks.Add(Me.btnSaveAsMySearch) + Me.RibbonPageGroupSavedSearch.Name = "RibbonPageGroupSavedSearch" + resources.ApplyResources(Me.RibbonPageGroupSavedSearch, "RibbonPageGroupSavedSearch") + ' 'RibbonPage2 ' Me.RibbonPage2.Groups.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPageGroup() {Me.RibbonPageGroup9, Me.RibbonPageGroup1, Me.RibbonPageGroupWorkspaceSettings}) @@ -592,6 +608,14 @@ Partial Class frmDocumentResultList Me.RibbonPageGroup9.Name = "RibbonPageGroup9" resources.ApplyResources(Me.RibbonPageGroup9, "RibbonPageGroup9") ' + 'RibbonPageGroup1 + ' + Me.RibbonPageGroup1.ItemLinks.Add(Me.SwitchDetailContainerHorizontal) + Me.RibbonPageGroup1.ItemLinks.Add(Me.SwitchMainContainerHorizontal) + Me.RibbonPageGroup1.ItemLinks.Add(Me.BarEditItemGridFontSize) + Me.RibbonPageGroup1.Name = "RibbonPageGroup1" + resources.ApplyResources(Me.RibbonPageGroup1, "RibbonPageGroup1") + ' 'RibbonPageGroupWorkspaceSettings ' Me.RibbonPageGroupWorkspaceSettings.ItemLinks.Add(Me.btnSaveWorkspace) @@ -874,14 +898,6 @@ Partial Class frmDocumentResultList resources.ApplyResources(Me.DockPanel1_Container, "DockPanel1_Container") Me.DockPanel1_Container.Name = "DockPanel1_Container" ' - 'RibbonPageGroup1 - ' - Me.RibbonPageGroup1.ItemLinks.Add(Me.SwitchDetailContainerHorizontal) - Me.RibbonPageGroup1.ItemLinks.Add(Me.SwitchMainContainerHorizontal) - Me.RibbonPageGroup1.ItemLinks.Add(Me.BarEditItemGridFontSize) - Me.RibbonPageGroup1.Name = "RibbonPageGroup1" - resources.ApplyResources(Me.RibbonPageGroup1, "RibbonPageGroup1") - ' 'frmDocumentResultList ' Me.AllowFormGlass = DevExpress.Utils.DefaultBoolean.[True] @@ -992,7 +1008,7 @@ Partial Class frmDocumentResultList Friend WithEvents BarButtonItem5 As DevExpress.XtraBars.BarButtonItem Friend WithEvents RibbonPageGroupDocument As DevExpress.XtraBars.Ribbon.RibbonPageGroup Friend WithEvents RibbonPageGroupFilesystem As DevExpress.XtraBars.Ribbon.RibbonPageGroup - Friend WithEvents RibbonPageGroup5 As DevExpress.XtraBars.Ribbon.RibbonPageGroup + Friend WithEvents RibbonPageRefresh As DevExpress.XtraBars.Ribbon.RibbonPageGroup Friend WithEvents RibbonPageGroup6 As DevExpress.XtraBars.Ribbon.RibbonPageGroup Friend WithEvents DockManager1 As DevExpress.XtraBars.Docking.DockManager Friend WithEvents DockPanelPreview As DevExpress.XtraBars.Docking.DockPanel @@ -1037,4 +1053,6 @@ Partial Class frmDocumentResultList Friend WithEvents btnSaveWorkspaceAs As DevExpress.XtraBars.BarButtonItem Friend WithEvents RibbonPageGroupWorkspace As DevExpress.XtraBars.Ribbon.RibbonPageGroup Friend WithEvents RibbonPageGroup1 As DevExpress.XtraBars.Ribbon.RibbonPageGroup + Friend WithEvents btnSaveAsMySearch As DevExpress.XtraBars.BarButtonItem + Friend WithEvents RibbonPageGroupSavedSearch As DevExpress.XtraBars.Ribbon.RibbonPageGroup End Class diff --git a/GUIs.Common/frmDocumentResultList.resx b/GUIs.Common/frmDocumentResultList.resx index 7a91c3e0..66af4182 100644 --- a/GUIs.Common/frmDocumentResultList.resx +++ b/GUIs.Common/frmDocumentResultList.resx @@ -522,7 +522,7 @@ DocumentViewer1 - DigitalData.Controls.DocumentViewer.DocumentViewer, DigitalData.Controls.DocumentViewer, Version=1.7.0.1, Culture=neutral, PublicKeyToken=null + DigitalData.Controls.DocumentViewer.DocumentViewer, DigitalData.Controls.DocumentViewer, Version=1.8.0.0, Culture=neutral, PublicKeyToken=null DockPanel1_Container @@ -717,7 +717,7 @@ CtrlObjectPropertyDialog - DigitalData.GUIs.Common.ctrlObjectPropertyDialog, DigitalData.GUIs.Common, Version=1.12.0.0, Culture=neutral, PublicKeyToken=null + DigitalData.GUIs.Common.ctrlObjectPropertyDialog, DigitalData.GUIs.Common, Version=1.12.1.0, Culture=neutral, PublicKeyToken=null DockPanel3_Container @@ -1177,6 +1177,12 @@ DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + btnSaveAsMySearch + + + DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + RibbonPageStart @@ -1195,10 +1201,10 @@ DevExpress.XtraBars.Ribbon.RibbonPageGroup, DevExpress.XtraBars.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - RibbonPageGroup5 + + RibbonPageRefresh - + DevExpress.XtraBars.Ribbon.RibbonPageGroup, DevExpress.XtraBars.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a @@ -1237,6 +1243,12 @@ DevExpress.XtraBars.Ribbon.RibbonPageGroup, DevExpress.XtraBars.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + RibbonPageGroupSavedSearch + + + DevExpress.XtraBars.Ribbon.RibbonPageGroup, DevExpress.XtraBars.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + RibbonPage2 @@ -1249,6 +1261,12 @@ DevExpress.XtraBars.Ribbon.RibbonPageGroup, DevExpress.XtraBars.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + RibbonPageGroup1 + + + DevExpress.XtraBars.Ribbon.RibbonPageGroup, DevExpress.XtraBars.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + RibbonPageGroupWorkspaceSettings @@ -1345,12 +1363,6 @@ DevExpress.XtraLayout.EmptySpaceItem, DevExpress.XtraLayout.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - RibbonPageGroup1 - - - DevExpress.XtraBars.Ribbon.RibbonPageGroup, DevExpress.XtraBars.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - frmDocumentResultList @@ -1360,6 +1372,9 @@ Speichern unter + + Als meine Suche speichern + 0, 0 @@ -1369,7 +1384,7 @@ Export - + Aktualisieren @@ -1390,6 +1405,9 @@ Workspaces + + Suche + Start diff --git a/GUIs.Common/frmDocumentResultList.vb b/GUIs.Common/frmDocumentResultList.vb index c29e4d87..c5f9b9d9 100644 --- a/GUIs.Common/frmDocumentResultList.vb +++ b/GUIs.Common/frmDocumentResultList.vb @@ -65,6 +65,12 @@ Public Class frmDocumentResultList Private ReadOnly ColumnDocumentId As String = "DocID" Private ReadOnly ColumnIcon As String = "ICON" Private ReadOnly ColumnCheckedOut As String = "CHECKED_OUT" + Private ReadOnly FontSizeDeltaList As New List(Of FontSetting) From { + New FontSetting With {.Title = "Normal", .Value = 0}, + New FontSetting With {.Title = "Groß", .Value = 1}, + New FontSetting With {.Title = "Größer", .Value = 2}, + New FontSetting With {.Title = "Noch Größer", .Value = 3} + } Private Property _ActiveGrid As GridControl = Nothing Private Property _ActiveGridBand As GridBand = Nothing @@ -81,6 +87,9 @@ Public Class frmDocumentResultList Public Event NeedsRefresh As EventHandler(Of Integer) Implements IResultForm.NeedsRefresh Public Event ResultsRefreshed As EventHandler(Of List(Of DocumentResultList.DocumentResult)) + Public Event NeedsNewSavedSearch As EventHandler + Public Event SearchSaved As EventHandler + Private Delegate Sub DatasourceDelegate(View As GridView, Datasource As Object) Private Delegate Function RefreshResultsDelegate(Results As IEnumerable(Of BaseResult)) As Boolean @@ -163,15 +172,9 @@ Public Class frmDocumentResultList RibbonPageGroupFilesystem.Visible = False End If - Dim oFontSizeDeltaList = New List(Of FontSetting) From { - New FontSetting With {.Title = "Normal", .Value = 0}, - New FontSetting With {.Title = "Groß", .Value = 1}, - New FontSetting With {.Title = "Größer", .Value = 2}, - New FontSetting With {.Title = "Noch Größer", .Value = 3} - } cmbGridFontSize.Items.Clear() - cmbGridFontSize.Items.AddRange(oFontSizeDeltaList) - BarEditItemGridFontSize.EditValue = oFontSizeDeltaList. + cmbGridFontSize.Items.AddRange(FontSizeDeltaList) + BarEditItemGridFontSize.EditValue = FontSizeDeltaList. Where(Function(delta) delta.Value = Config.Config.GridFontSizeDelta). FirstOrDefault() @@ -185,6 +188,13 @@ Public Class frmDocumentResultList RibbonPageGroupFilesystem.Visible = False End If + chkGridShowQuickfilter.Checked = LayoutManager.GetFilterRowVisible() + chkGridShowGrouping.Checked = LayoutManager.GetGroupPanelVisible() + chkGridShowTitle.Checked = LayoutManager.GetBandTitleVisible() + + ' Hide the complete Navigation Ribbon Group if desired + RibbonPageGroup_Navigation.Visible = Params.ShowBackNavigation + If OperationMode = OperationMode.ZooFlow Or OperationMode = OperationMode.WithAppServer Then CtrlObjectPropertyDialog.Initialize(LogConfig, Me, Client, Environment) @@ -196,12 +206,10 @@ Public Class frmDocumentResultList panelContainerStatus.Visibility = Docking.DockVisibility.Hidden End If - ' Hide the complete Navigation Ribbon Group if desired - RibbonPageGroup_Navigation.Visible = Params.ShowBackNavigation - UpdateTotalResults() LoadGridDataAndLayout() + ' Initialize Grid Settings GridBuilder.WithReadOnlyOptions() ' Force initialize, this is needed so that grid settings are loaded correctly from the workspace @@ -221,10 +229,6 @@ Public Class frmDocumentResultList ' This loads the default workspace, for now Workspace.LoadWorkspace(Config.Config.SelectedWorkspace) - chkGridShowQuickfilter.Checked = LayoutManager.GetFilterRowVisible() - chkGridShowGrouping.Checked = LayoutManager.GetGroupPanelVisible() - chkGridShowTitle.Checked = LayoutManager.GetBandTitleVisible() - ' This needs to done be after loading the grid ' so we can set the row handle and start loading the (only) file If Params.ShowFileList = False Then @@ -234,6 +238,22 @@ Public Class frmDocumentResultList DockPanelFileList.Show() End If + ' Hide the refresh button when nobody handles the refresh event + If NeedsRefreshEvent IsNot Nothing Then + RibbonPageRefresh.Visible = True + Else + RibbonPageRefresh.Visible = False + + End If + + ' Hide the saved search button when nobody handles the saved search event + If NeedsNewSavedSearchEvent IsNot Nothing Then + RibbonPageGroupSavedSearch.Visible = True + Else + RibbonPageGroupSavedSearch.Visible = False + + End If + Catch ex As Exception FormHelper.ShowErrorMessage(ex, "Error while loading results") @@ -243,21 +263,8 @@ Public Class frmDocumentResultList End Try End Sub - - Public Class FontSetting - Public Property Title As String - Public Property Value As Integer - - Public Overrides Function ToString() As String - Return Title - End Function - End Class - Private Sub frmDocumentResultList_Closing(sender As Object, e As CancelEventArgs) Handles Me.FormClosing Try - 'LayoutManager.GridView_SaveLayout(_ActiveGrid.MainView) - 'LayoutManager.Workspace_Save(WorkspaceManager1) - 'LayoutManager.DockManager_SaveLayout(DockManager1) LayoutManager.SaveWindowLocationAndSize(Me) Workspace.SaveWorkspaces() @@ -1086,4 +1093,19 @@ Public Class frmDocumentResultList Workspace.LoadWorkspace(oWorkspaceName) End If End Sub + + Private Sub btnSaveAsMySearch_ItemClick(sender As Object, e As ItemClickEventArgs) Handles btnSaveAsMySearch.ItemClick + RaiseEvent NeedsNewSavedSearch(Me, New EventArgs) + End Sub + + Public Class FontSetting + Public Property Title As String + Public Property Value As Integer + + Public Overrides Function ToString() As String + Return Title + End Function + End Class + + End Class \ No newline at end of file diff --git a/GUIs.ZooFlow/My Project/Resources.Designer.vb b/GUIs.ZooFlow/My Project/Resources.Designer.vb index a592bbea..bf85f7ee 100644 --- a/GUIs.ZooFlow/My Project/Resources.Designer.vb +++ b/GUIs.ZooFlow/My Project/Resources.Designer.vb @@ -600,6 +600,26 @@ Namespace My.Resources End Get End Property + ''' + ''' Sucht eine lokalisierte Ressource vom Typ DevExpress.Utils.Svg.SvgImage. + ''' + Friend ReadOnly Property alignhorizontalcenter() As DevExpress.Utils.Svg.SvgImage + Get + Dim obj As Object = ResourceManager.GetObject("alignhorizontalcenter", resourceCulture) + Return CType(obj,DevExpress.Utils.Svg.SvgImage) + End Get + End Property + + ''' + ''' Sucht eine lokalisierte Ressource vom Typ DevExpress.Utils.Svg.SvgImage. + ''' + Friend ReadOnly Property alignverticalcenter() As DevExpress.Utils.Svg.SvgImage + Get + Dim obj As Object = ResourceManager.GetObject("alignverticalcenter", resourceCulture) + Return CType(obj,DevExpress.Utils.Svg.SvgImage) + End Get + End Property + ''' ''' Sucht eine lokalisierte Ressource vom Typ DevExpress.Utils.Svg.SvgImage. ''' diff --git a/GUIs.ZooFlow/My Project/Resources.resx b/GUIs.ZooFlow/My Project/Resources.resx index 3bf9ef69..6743fa55 100644 --- a/GUIs.ZooFlow/My Project/Resources.resx +++ b/GUIs.ZooFlow/My Project/Resources.resx @@ -214,6 +214,9 @@ ..\Resources\text.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + ..\Resources\bo_security_permission_action.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + ..\Resources\viewmergeddata.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a @@ -238,9 +241,6 @@ ..\Resources\Flow.PNG;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Resources\unlink.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - ..\Resources\Checked-outforEdit_13297.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a @@ -316,6 +316,9 @@ ..\Resources\save5.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + ..\Resources\alignverticalcenter.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + ..\Resources\updatedataextract.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a @@ -442,8 +445,8 @@ ..\Resources\definednameuseinformula1.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - ..\Resources\properties.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + ..\Resources\unlink.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a ..\Resources\2_LUPE_INAKTIV_ZOO.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a @@ -502,8 +505,8 @@ ..\Resources\doublenext2.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - ..\Resources\Compare_RefreshScriptPreview.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\properties.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a ..\Resources\new3.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a @@ -541,6 +544,9 @@ ..\Resources\StatusAnnotations_Information_16xLG_color.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\Compare_RefreshScriptPreview.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + ..\Resources\renamedatasource.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a @@ -652,7 +658,7 @@ ..\Resources\del3.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - ..\Resources\bo_security_permission_action.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + ..\Resources\alignhorizontalcenter.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a \ No newline at end of file diff --git a/GUIs.ZooFlow/My Project/licenses.licx b/GUIs.ZooFlow/My Project/licenses.licx index aff6ebd7..5c5ed891 100644 --- a/GUIs.ZooFlow/My Project/licenses.licx +++ b/GUIs.ZooFlow/My Project/licenses.licx @@ -1,22 +1,23 @@ -DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a -DevExpress.XtraEditors.Repository.RepositoryItemDateEdit, DevExpress.XtraEditors.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a -DevExpress.XtraEditors.DateEdit, DevExpress.XtraEditors.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a -DevExpress.XtraTreeList.TreeList, DevExpress.XtraTreeList.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a DevExpress.XtraEditors.ComboBoxEdit, DevExpress.XtraEditors.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a -DevExpress.XtraEditors.LookUpEdit, DevExpress.XtraEditors.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a -DevExpress.XtraNavBar.NavBarControl, DevExpress.XtraNavBar.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.TextEdit, DevExpress.XtraEditors.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a +DevExpress.XtraEditors.TileControl, DevExpress.XtraEditors.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a +DevExpress.XtraEditors.GridLookUpEdit, DevExpress.XtraGrid.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.Repository.RepositoryItemLookUpEdit, 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 -DevExpress.XtraEditors.PictureEdit, DevExpress.XtraEditors.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a +DevExpress.XtraEditors.Repository.RepositoryItemDateEdit, DevExpress.XtraEditors.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a DevExpress.XtraBars.Docking.DockManager, DevExpress.XtraBars.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.XtraEditors.LookUpEdit, DevExpress.XtraEditors.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a +DevExpress.XtraTreeList.TreeList, DevExpress.XtraTreeList.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.ButtonEdit, DevExpress.XtraEditors.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a -DevExpress.XtraEditors.GridLookUpEdit, DevExpress.XtraGrid.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a -DevExpress.XtraEditors.TileControl, 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.XtraGrid.GridControl, DevExpress.XtraGrid.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a DevExpress.XtraBars.Ribbon.RibbonControl, DevExpress.XtraBars.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a +DevExpress.XtraEditors.DateEdit, 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.XtraEditors.ButtonEdit, DevExpress.XtraEditors.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a DevExpress.XtraBars.BarManager, DevExpress.XtraBars.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.XtraNavBar.NavBarControl, DevExpress.XtraNavBar.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a +DevExpress.XtraEditors.PictureEdit, DevExpress.XtraEditors.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a +DevExpress.XtraEditors.ImageComboBoxEdit, DevExpress.XtraEditors.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.CheckEdit, DevExpress.XtraEditors.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a +DevExpress.XtraEditors.Repository.RepositoryItemLookUpEdit, 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.ZooFlow/Resources/alignhorizontalcenter.svg b/GUIs.ZooFlow/Resources/alignhorizontalcenter.svg new file mode 100644 index 00000000..e66da96c --- /dev/null +++ b/GUIs.ZooFlow/Resources/alignhorizontalcenter.svg @@ -0,0 +1,9 @@ + + + + + + \ No newline at end of file diff --git a/GUIs.ZooFlow/Resources/alignverticalcenter.svg b/GUIs.ZooFlow/Resources/alignverticalcenter.svg new file mode 100644 index 00000000..6abf52b6 --- /dev/null +++ b/GUIs.ZooFlow/Resources/alignverticalcenter.svg @@ -0,0 +1,9 @@ + + + + + + \ No newline at end of file diff --git a/GUIs.ZooFlow/Search/SavedSearch.vb b/GUIs.ZooFlow/Search/SavedSearch.vb new file mode 100644 index 00000000..64355189 --- /dev/null +++ b/GUIs.ZooFlow/Search/SavedSearch.vb @@ -0,0 +1,48 @@ +Imports System.Xml.Serialization +Imports DevExpress.Utils.Svg + +Namespace SavedSearch + Public MustInherit Class SavedSearch + Public Property Name As String + Public Property Description As String + Public Overridable Property GroupText As String = "" + Public Property Image As SvgImage + + Public ReadOnly Property DisplayName As String + Get + Return Name + End Get + End Property + End Class + + Public Class PredefinedDateSearch + Inherits SavedSearch + + 'Public Property Image As SvgImage + Public Overrides Property GroupText As String = "Vordefiniert" + + Public Property DateConstraint As Search.SearchRunner.DateConstraint + End Class + + Public Class CustomSearch + Inherits SavedSearch + + 'Public Property Image As SvgImage + Public Overrides Property GroupText As String = "Eigene" + + Public Tokens As New List(Of Search.SearchToken.Token) + End Class + + + + + Public Class CustomSearchSerializable + Public Property Name As String + Public Property Description As String + Public Property ImageName As String + Public Property GroupText As String + Public Property Tokens As New List(Of Search.SearchToken.Token) + End Class +End Namespace + + diff --git a/GUIs.ZooFlow/Search/SearchLoader.vb b/GUIs.ZooFlow/Search/SearchLoader.vb index 7cf80c67..36227576 100644 --- a/GUIs.ZooFlow/Search/SearchLoader.vb +++ b/GUIs.ZooFlow/Search/SearchLoader.vb @@ -8,23 +8,26 @@ Imports DigitalData.Modules.Base Imports DigitalData.Modules.Config Imports DigitalData.Modules.Logging Imports DigitalData.Modules.Language +Imports System.Reflection Namespace Search Public Class SearchLoader Inherits BaseClass - Private Const CUSTOM_SEARCH_DIRECTORY = "" + Private Const CUSTOM_SEARCH_DIRECTORY = "Searches" Private ReadOnly Images As SvgImageCollection - Private ReadOnly Config As ConfigManager(Of UIConfig) - 'Private ReadOnly Serializer As New XmlSerializer(GetType(CustomSearch)) + Private ReadOnly ImageTable As List(Of ImageTableItem) - Public Property CustomSearches As List(Of CustomSearch) + Private ReadOnly Config As ConfigManager(Of SystemConfig) + Private ReadOnly Serializer As XmlSerializer - Public Sub New(pLogConfig As LogConfig, pConfig As ConfigManager(Of UIConfig), pSvgImages As SvgImageCollection) + Public Sub New(pLogConfig As LogConfig, pConfig As ConfigManager(Of SystemConfig), pSvgImages As SvgImageCollection) MyBase.New(pLogConfig) Images = pSvgImages + ImageTable = GetImageTable(pSvgImages) Config = pConfig + Serializer = New XmlSerializer(GetType(SavedSearch.CustomSearchSerializable)) End Sub Private Function GetSearchDirectoryPath() As String @@ -43,23 +46,27 @@ Namespace Search End Function Public Sub CreateCustomSearch(pTitle As String, pDescription As String, pTokens As List(Of Token), pImage As String) - Dim oSearch As New CustomSearch With { + Dim oSearch As New SavedSearch.CustomSearch With { .Name = pTitle, .Description = pDescription, .Tokens = pTokens, .Image = Images.Item(pImage) } - CustomSearches.Add(oSearch) - 'Dim oDirectoryPath As String = GetSearchDirectoryPath() - 'Dim oFilePath As String = IO.Path.Combine(oDirectoryPath, Utils.ConvertTextToSlug(pTitle)) - 'Dim oBuffer As Byte() = SerializeSearch(oSearch) + Try + Dim oDirectoryPath As String = GetSearchDirectoryPath() + Dim oFilePath As String = IO.Path.Combine(oDirectoryPath, Utils.ConvertTextToSlug(pTitle) & ".xml") + Dim oBuffer As Byte() = SerializeSearch(oSearch) - 'IO.File.WriteAllBytes(oFilePath, oBuffer) + File.WriteAllBytes(oFilePath, oBuffer) + Catch ex As Exception + Logger.Warn("Custom Search could not be saved!") + Logger.Error(ex) + End Try End Sub - Public Function LoadSearches() As List(Of SavedSearch) - Dim oSearches As New List(Of SavedSearch) + Public Function LoadSearches() As List(Of SavedSearch.SavedSearch) + Dim oSearches As New List(Of SavedSearch.SavedSearch) Dim oCustomSearches = LoadCustomSearches() Dim oPredefinedSearches = LoadPredefinedSearches() @@ -69,49 +76,60 @@ Namespace Search ToList() End Function - Public Function LoadCustomSearches() As List(Of SavedSearch) - Return New List(Of SavedSearch) + Public Function LoadCustomSearches() As List(Of SavedSearch.SavedSearch) + Dim oSearches As New List(Of SavedSearch.SavedSearch) + Dim oPath = GetSearchDirectoryPath() + + Dim oFiles = Directory.GetFiles(oPath, "*.xml") + + For Each oFile In oFiles + Dim oBytes = File.ReadAllBytes(oFile) + Dim oSearch = DeserializeSearch(oBytes) + oSearches.Add(oSearch) + Next + + Return oSearches End Function - Public Function LoadPredefinedSearches() As List(Of SavedSearch) - Return New List(Of SavedSearch) From { - New PredefinedDateSearch() With { + Public Function LoadPredefinedSearches() As List(Of SavedSearch.SavedSearch) + Return New List(Of SavedSearch.SavedSearch) From { + New SavedSearch.PredefinedDateSearch() With { .Name = "Heute", .Description = "Dokumente, die heute abgelegt wurden", .DateConstraint = SearchRunner.DateConstraint.Today, .Image = Images.Item("today") }, - New PredefinedDateSearch() With { + New SavedSearch.PredefinedDateSearch() With { .Name = "Gestern", .Description = "Dokumente, die gestern abgelegt wurden", .DateConstraint = SearchRunner.DateConstraint.Yesterday, .Image = Images.Item("yesterday") }, - New PredefinedDateSearch() With { + New SavedSearch.PredefinedDateSearch() With { .Name = "Letzte 7 Tage", .Description = "Dokumente, die in den letzten 7 Tagen abgelegt wurden", .DateConstraint = SearchRunner.DateConstraint.Last7Days, .Image = Images.Item("week") }, - New PredefinedDateSearch() With { + New SavedSearch.PredefinedDateSearch() With { .Name = "Dieser Monat", .Description = "Dokumente, die in diesem Monat abgelegt wurden", .DateConstraint = SearchRunner.DateConstraint.CurrentMonth, .Image = Images.Item("month") }, - New PredefinedDateSearch() With { + New SavedSearch.PredefinedDateSearch() With { .Name = "Letzter Monat", .Description = "Dokumente, die im letzten Monat abgelegt wurden", .DateConstraint = SearchRunner.DateConstraint.LastMonth, .Image = Images.Item("month") }, - New PredefinedDateSearch() With { + New SavedSearch.PredefinedDateSearch() With { .Name = "Dieses Jahr", .Description = "Dokumente, die in diesem Jahr abgelegt wurden", .DateConstraint = SearchRunner.DateConstraint.CurrentYear, .Image = Images.Item("year") }, - New PredefinedDateSearch() With { + New SavedSearch.PredefinedDateSearch() With { .Name = "Letztes Jahr", .Description = "Dokumente, die im letzten Jahr abgelegt wurden", .DateConstraint = SearchRunner.DateConstraint.LastYear, @@ -120,62 +138,86 @@ Namespace Search } End Function - 'Private Function SerializeSearch(pSearch As CustomSearch) As Byte() - ' Try - ' Using oStream As New MemoryStream - ' Serializer.Serialize(oStream, pSearch) - ' Return oStream.ToArray() - ' End Using - ' Catch ex As Exception - ' Logger.Error(ex) - ' Return Nothing - ' End Try - 'End Function - - 'Private Function DeserializeSearch(pBytes As Byte()) As CustomSearch - ' Try - ' Using oStream As New MemoryStream(pBytes) - ' Return Serializer.Deserialize(oStream) - ' End Using - ' Catch ex As Exception - ' Logger.Error(ex) - ' Return Nothing - ' End Try - 'End Function - - Public Class PredefinedSQLSearch - Public Property SQLCommand As String - End Class + Private Function ConvertSvgImageToString(pImage As SvgImage) As String + Dim oItem = ImageTable.Where(Function(item) item.Image.Equals(pImage)).FirstOrDefault() + If oItem Is Nothing Then + Return Nothing + End If - Public Class PredefinedDateSearch - Inherits SavedSearch + Return oItem.Name + End Function - Public Overrides Property GroupText As String = "Vordefiniert" + Private Function ConvertStringToImageName(pName As String) As SvgImage + Dim oItem = ImageTable.Where(Function(item) item.Name.Equals(pName)).FirstOrDefault() + If oItem Is Nothing Then + Return Nothing + End If - Public Property DateConstraint As SearchRunner.DateConstraint - End Class + Return oItem.Image + End Function - Public Class CustomSearch - Inherits SavedSearch + Private Function GetImageTable(pImageCollection As SvgImageCollection) As List(Of ImageTableItem) + Dim oList As New List(Of ImageTableItem) - Public Overrides Property GroupText As String = "Eigene" + For Each oImageName In pImageCollection.Keys + Dim oSvgImage = pImageCollection.Item(oImageName) + oList.Add(New ImageTableItem(oImageName, oSvgImage)) + Next - Public Tokens As New List(Of Token) - End Class + Return oList + End Function + + Private Function SerializeSearch(pSearch As SavedSearch.CustomSearch) As Byte() + Try + Dim oSearch As New SavedSearch.CustomSearchSerializable With { + .Name = pSearch.Name, + .Description = pSearch.Description, + .GroupText = pSearch.GroupText, + .Tokens = pSearch.Tokens, + .ImageName = ConvertSvgImageToString(pSearch.Image) + } + + Using oStream As New MemoryStream + Serializer.Serialize(oStream, oSearch) + Return oStream.ToArray() + End Using + Catch ex As Exception + Logger.Error(ex) + Return Nothing + End Try + End Function - Public MustInherit Class SavedSearch - Public Property Name As String - Public Property Description As String + Private Function DeserializeSearch(pBytes As Byte()) As SavedSearch.CustomSearch + Try + Using oStream As New MemoryStream(pBytes) + Dim oSearch As SavedSearch.CustomSearchSerializable = Serializer.Deserialize(oStream) + + Return New SavedSearch.CustomSearch With { + .Name = oSearch.Name, + .Description = oSearch.Description, + .GroupText = oSearch.GroupText, + .Tokens = oSearch.Tokens, + .Image = ConvertStringToImageName(oSearch.ImageName) + } + End Using + Catch ex As Exception + Logger.Error(ex) + Return Nothing + End Try + End Function - Public Property Image As SvgImage - Public Property Count As Integer = 0 - Public Overridable Property GroupText As String = "Vordefiniert" + Private Class ImageTableItem + Public ReadOnly Name As String + Public ReadOnly Image As SvgImage - Public ReadOnly Property DisplayName As String - Get - Return Name - End Get - End Property + Public Sub New(pName As String, pImage As SvgImage) + Name = pName + Image = pImage + End Sub End Class + + + + End Class End Namespace diff --git a/GUIs.ZooFlow/Search/SearchRunner.vb b/GUIs.ZooFlow/Search/SearchRunner.vb index f8a5c515..4811ba1c 100644 --- a/GUIs.ZooFlow/Search/SearchRunner.vb +++ b/GUIs.ZooFlow/Search/SearchRunner.vb @@ -37,6 +37,7 @@ Namespace Search End Enum Public Event NeedsRefresh As EventHandler(Of Integer) + Public Event NeedsNewSavedSearch As EventHandler Public Event Closed As EventHandler(Of Integer) Private Property _ActiveDateConstraint As String = String.Empty @@ -78,9 +79,9 @@ Namespace Search Public Function RunWithDataTable(pDatatable As DataTable, pTitle As String) As SearchResult Dim oParams = GetParams(pTitle) oParams.Results.Add(New DocumentResultList.DocumentResult() With { - .Title = pTitle, - .Datatable = pDatatable - }) + .Title = pTitle, + .Datatable = pDatatable + }) If pDatatable.Rows.Count = 1 Then oParams.ShowFileList = False @@ -181,6 +182,16 @@ Namespace Search 'AddHandler oForm.NeedsRefresh, AddressOf Form_NeedsRefresh AddHandler oForm.FormClosed, AddressOf Form_Closed + ' Only setup event if it is actually used + If NeedsNewSavedSearchEvent IsNot Nothing Then + AddHandler oForm.NeedsNewSavedSearch, AddressOf Form_NeedsNewSavedSearch + End If + + ' Only setup event if it is actually used + If NeedsRefreshEvent IsNot Nothing Then + AddHandler oForm.NeedsRefresh, AddressOf Form_NeedsRefresh + End If + oForm.Show() Return New SearchResult(oRowCount) @@ -194,6 +205,14 @@ Namespace Search End If End Function + Private Sub Form_NeedsNewSavedSearch(sender As Object, e As EventArgs) + RaiseEvent NeedsNewSavedSearch(sender, e) + End Sub + + Private Sub Form_NeedsRefresh(sender As Object, e As Integer) + RaiseEvent NeedsRefresh(sender, e) + End Sub + Private Async Function GetDateConstraint(pDateFrom As Date, pDateTo As Date) As Task(Of String) Dim oSimpleDateConstraint = $"{_ActiveDateAttribute}~{_ActiveDateConstraint}" Dim oExplicitConstraint = Await MaybeSetExplicitDateConstraint(pDateFrom, pDateTo) diff --git a/GUIs.ZooFlow/Search/frmEditSearch.Designer.vb b/GUIs.ZooFlow/Search/frmEditSearch.Designer.vb new file mode 100644 index 00000000..60b93e3f --- /dev/null +++ b/GUIs.ZooFlow/Search/frmEditSearch.Designer.vb @@ -0,0 +1,232 @@ + _ +Partial Class frmEditSearch + Inherits DevExpress.XtraBars.Ribbon.RibbonForm + + 'Form overrides dispose to clean up the component list. + _ + 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. + _ + Private Sub InitializeComponent() + Me.components = New System.ComponentModel.Container() + Me.RibbonControl1 = New DevExpress.XtraBars.Ribbon.RibbonControl() + Me.BarButtonItem1 = New DevExpress.XtraBars.BarButtonItem() + Me.RibbonPage1 = New DevExpress.XtraBars.Ribbon.RibbonPage() + Me.RibbonPageGroup1 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup() + Me.RibbonStatusBar1 = New DevExpress.XtraBars.Ribbon.RibbonStatusBar() + Me.RibbonPage2 = New DevExpress.XtraBars.Ribbon.RibbonPage() + Me.LayoutControl1 = New DevExpress.XtraLayout.LayoutControl() + Me.TextEdit1 = New DevExpress.XtraEditors.TextEdit() + Me.ImageComboBoxEdit1 = New DevExpress.XtraEditors.ImageComboBoxEdit() + Me.TextEdit2 = New DevExpress.XtraEditors.MemoEdit() + Me.Root = New DevExpress.XtraLayout.LayoutControlGroup() + Me.LayoutControlItem1 = New DevExpress.XtraLayout.LayoutControlItem() + Me.LayoutControlItem2 = New DevExpress.XtraLayout.LayoutControlItem() + Me.LayoutControlItem3 = New DevExpress.XtraLayout.LayoutControlItem() + Me.SvgImageCollection1 = New DevExpress.Utils.SvgImageCollection(Me.components) + CType(Me.RibbonControl1, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.LayoutControl1, System.ComponentModel.ISupportInitialize).BeginInit() + Me.LayoutControl1.SuspendLayout() + CType(Me.TextEdit1.Properties, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.ImageComboBoxEdit1.Properties, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.TextEdit2.Properties, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.Root, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.LayoutControlItem1, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.LayoutControlItem2, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.LayoutControlItem3, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.SvgImageCollection1, System.ComponentModel.ISupportInitialize).BeginInit() + Me.SuspendLayout() + ' + 'RibbonControl1 + ' + Me.RibbonControl1.ColorScheme = DevExpress.XtraBars.Ribbon.RibbonControlColorScheme.Green + Me.RibbonControl1.CommandLayout = DevExpress.XtraBars.Ribbon.CommandLayout.Simplified + Me.RibbonControl1.ExpandCollapseItem.Id = 0 + Me.RibbonControl1.Items.AddRange(New DevExpress.XtraBars.BarItem() {Me.RibbonControl1.ExpandCollapseItem, Me.RibbonControl1.SearchEditItem, Me.BarButtonItem1}) + Me.RibbonControl1.Location = New System.Drawing.Point(0, 0) + Me.RibbonControl1.MaxItemId = 2 + Me.RibbonControl1.Name = "RibbonControl1" + Me.RibbonControl1.Pages.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPage() {Me.RibbonPage1}) + Me.RibbonControl1.ShowApplicationButton = DevExpress.Utils.DefaultBoolean.[False] + Me.RibbonControl1.ShowDisplayOptionsMenuButton = DevExpress.Utils.DefaultBoolean.[False] + Me.RibbonControl1.ShowExpandCollapseButton = DevExpress.Utils.DefaultBoolean.[False] + Me.RibbonControl1.ShowPageHeadersMode = DevExpress.XtraBars.Ribbon.ShowPageHeadersMode.Hide + Me.RibbonControl1.ShowToolbarCustomizeItem = False + Me.RibbonControl1.Size = New System.Drawing.Size(422, 63) + Me.RibbonControl1.StatusBar = Me.RibbonStatusBar1 + Me.RibbonControl1.Toolbar.ShowCustomizeItem = False + ' + 'BarButtonItem1 + ' + Me.BarButtonItem1.Caption = "Speichern" + Me.BarButtonItem1.Id = 1 + Me.BarButtonItem1.Name = "BarButtonItem1" + ' + 'RibbonPage1 + ' + Me.RibbonPage1.Groups.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPageGroup() {Me.RibbonPageGroup1}) + Me.RibbonPage1.Name = "RibbonPage1" + Me.RibbonPage1.Text = "RibbonPage1" + ' + 'RibbonPageGroup1 + ' + Me.RibbonPageGroup1.ItemLinks.Add(Me.BarButtonItem1) + Me.RibbonPageGroup1.Name = "RibbonPageGroup1" + Me.RibbonPageGroup1.Text = "RibbonPageGroup1" + ' + 'RibbonStatusBar1 + ' + Me.RibbonStatusBar1.Location = New System.Drawing.Point(0, 301) + Me.RibbonStatusBar1.Name = "RibbonStatusBar1" + Me.RibbonStatusBar1.Ribbon = Me.RibbonControl1 + Me.RibbonStatusBar1.Size = New System.Drawing.Size(422, 24) + ' + 'RibbonPage2 + ' + Me.RibbonPage2.Name = "RibbonPage2" + Me.RibbonPage2.Text = "RibbonPage2" + ' + 'LayoutControl1 + ' + Me.LayoutControl1.Controls.Add(Me.TextEdit1) + Me.LayoutControl1.Controls.Add(Me.ImageComboBoxEdit1) + Me.LayoutControl1.Controls.Add(Me.TextEdit2) + Me.LayoutControl1.Dock = System.Windows.Forms.DockStyle.Fill + Me.LayoutControl1.Location = New System.Drawing.Point(0, 63) + Me.LayoutControl1.Name = "LayoutControl1" + Me.LayoutControl1.Root = Me.Root + Me.LayoutControl1.Size = New System.Drawing.Size(422, 238) + Me.LayoutControl1.TabIndex = 2 + Me.LayoutControl1.Text = "LayoutControl1" + ' + 'TextEdit1 + ' + Me.TextEdit1.Location = New System.Drawing.Point(96, 20) + Me.TextEdit1.MenuManager = Me.RibbonControl1 + Me.TextEdit1.Name = "TextEdit1" + Me.TextEdit1.Size = New System.Drawing.Size(306, 20) + Me.TextEdit1.StyleController = Me.LayoutControl1 + Me.TextEdit1.TabIndex = 4 + ' + 'ImageComboBoxEdit1 + ' + Me.ImageComboBoxEdit1.Location = New System.Drawing.Point(96, 198) + Me.ImageComboBoxEdit1.MenuManager = Me.RibbonControl1 + Me.ImageComboBoxEdit1.Name = "ImageComboBoxEdit1" + Me.ImageComboBoxEdit1.Properties.Buttons.AddRange(New DevExpress.XtraEditors.Controls.EditorButton() {New DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Combo)}) + Me.ImageComboBoxEdit1.Size = New System.Drawing.Size(306, 20) + Me.ImageComboBoxEdit1.StyleController = Me.LayoutControl1 + Me.ImageComboBoxEdit1.TabIndex = 6 + ' + 'TextEdit2 + ' + Me.TextEdit2.Location = New System.Drawing.Point(96, 60) + Me.TextEdit2.MenuManager = Me.RibbonControl1 + Me.TextEdit2.Name = "TextEdit2" + Me.TextEdit2.Size = New System.Drawing.Size(306, 118) + Me.TextEdit2.StyleController = Me.LayoutControl1 + Me.TextEdit2.TabIndex = 5 + ' + 'Root + ' + Me.Root.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.[True] + Me.Root.GroupBordersVisible = False + Me.Root.Items.AddRange(New DevExpress.XtraLayout.BaseLayoutItem() {Me.LayoutControlItem1, Me.LayoutControlItem2, Me.LayoutControlItem3}) + Me.Root.Name = "Root" + Me.Root.Size = New System.Drawing.Size(422, 238) + Me.Root.TextVisible = False + ' + 'LayoutControlItem1 + ' + Me.LayoutControlItem1.Control = Me.TextEdit1 + Me.LayoutControlItem1.Location = New System.Drawing.Point(0, 0) + Me.LayoutControlItem1.Name = "LayoutControlItem1" + Me.LayoutControlItem1.Padding = New DevExpress.XtraLayout.Utils.Padding(10, 10, 10, 10) + Me.LayoutControlItem1.Size = New System.Drawing.Size(402, 40) + Me.LayoutControlItem1.Text = "Titel" + Me.LayoutControlItem1.TextSize = New System.Drawing.Size(64, 13) + ' + 'LayoutControlItem2 + ' + Me.LayoutControlItem2.Control = Me.TextEdit2 + Me.LayoutControlItem2.Location = New System.Drawing.Point(0, 40) + Me.LayoutControlItem2.Name = "LayoutControlItem2" + Me.LayoutControlItem2.Padding = New DevExpress.XtraLayout.Utils.Padding(10, 10, 10, 10) + Me.LayoutControlItem2.Size = New System.Drawing.Size(402, 138) + Me.LayoutControlItem2.Text = "Beschreibung" + Me.LayoutControlItem2.TextSize = New System.Drawing.Size(64, 13) + ' + 'LayoutControlItem3 + ' + Me.LayoutControlItem3.Control = Me.ImageComboBoxEdit1 + Me.LayoutControlItem3.Location = New System.Drawing.Point(0, 178) + Me.LayoutControlItem3.Name = "LayoutControlItem3" + Me.LayoutControlItem3.Padding = New DevExpress.XtraLayout.Utils.Padding(10, 10, 10, 10) + Me.LayoutControlItem3.Size = New System.Drawing.Size(402, 40) + Me.LayoutControlItem3.Text = "Icon" + Me.LayoutControlItem3.TextSize = New System.Drawing.Size(64, 13) + ' + 'SvgImageCollection1 + ' + Me.SvgImageCollection1.Add("today", "image://svgimages/scheduling/dayview.svg") + Me.SvgImageCollection1.Add("month", "image://svgimages/scheduling/monthview.svg") + Me.SvgImageCollection1.Add("week", "image://svgimages/scheduling/next7days.svg") + Me.SvgImageCollection1.Add("year", "image://svgimages/scheduling/groupbynone.svg") + Me.SvgImageCollection1.Add("yesterday", "image://svgimages/scheduling/today.svg") + Me.SvgImageCollection1.Add("invoice", "image://svgimages/business objects/bo_invoice.svg") + ' + 'frmEditSearch + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.ClientSize = New System.Drawing.Size(422, 325) + Me.Controls.Add(Me.LayoutControl1) + Me.Controls.Add(Me.RibbonStatusBar1) + Me.Controls.Add(Me.RibbonControl1) + Me.Name = "frmEditSearch" + Me.Ribbon = Me.RibbonControl1 + Me.StatusBar = Me.RibbonStatusBar1 + Me.Text = "frmEditSearch" + CType(Me.RibbonControl1, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.LayoutControl1, System.ComponentModel.ISupportInitialize).EndInit() + Me.LayoutControl1.ResumeLayout(False) + CType(Me.TextEdit1.Properties, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.ImageComboBoxEdit1.Properties, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.TextEdit2.Properties, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.Root, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.LayoutControlItem1, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.LayoutControlItem2, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.LayoutControlItem3, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.SvgImageCollection1, System.ComponentModel.ISupportInitialize).EndInit() + Me.ResumeLayout(False) + Me.PerformLayout() + + End Sub + + Friend WithEvents RibbonControl1 As DevExpress.XtraBars.Ribbon.RibbonControl + Friend WithEvents RibbonPage1 As DevExpress.XtraBars.Ribbon.RibbonPage + Friend WithEvents RibbonPageGroup1 As DevExpress.XtraBars.Ribbon.RibbonPageGroup + Friend WithEvents RibbonStatusBar1 As DevExpress.XtraBars.Ribbon.RibbonStatusBar + Friend WithEvents RibbonPage2 As DevExpress.XtraBars.Ribbon.RibbonPage + Friend WithEvents BarButtonItem1 As DevExpress.XtraBars.BarButtonItem + Friend WithEvents LayoutControl1 As DevExpress.XtraLayout.LayoutControl + Friend WithEvents TextEdit1 As DevExpress.XtraEditors.TextEdit + Friend WithEvents ImageComboBoxEdit1 As DevExpress.XtraEditors.ImageComboBoxEdit + Friend WithEvents TextEdit2 As DevExpress.XtraEditors.MemoEdit + Friend WithEvents Root As DevExpress.XtraLayout.LayoutControlGroup + Friend WithEvents LayoutControlItem1 As DevExpress.XtraLayout.LayoutControlItem + Friend WithEvents LayoutControlItem2 As DevExpress.XtraLayout.LayoutControlItem + Friend WithEvents LayoutControlItem3 As DevExpress.XtraLayout.LayoutControlItem + Friend WithEvents SvgImageCollection1 As DevExpress.Utils.SvgImageCollection +End Class diff --git a/GUIs.ZooFlow/Search/frmEditSearch.resx b/GUIs.ZooFlow/Search/frmEditSearch.resx new file mode 100644 index 00000000..f722219e --- /dev/null +++ b/GUIs.ZooFlow/Search/frmEditSearch.resx @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + \ No newline at end of file diff --git a/GUIs.ZooFlow/Search/frmEditSearch.vb b/GUIs.ZooFlow/Search/frmEditSearch.vb new file mode 100644 index 00000000..6877887d --- /dev/null +++ b/GUIs.ZooFlow/Search/frmEditSearch.vb @@ -0,0 +1,48 @@ +Imports DevExpress.Utils +Imports DevExpress.Utils.Svg + +Public Class frmEditSearch + Public ReadOnly Property Images As SvgImageCollection + Get + Return SvgImageCollection1 + End Get + End Property + + Public Property IsNew As Boolean = False + + Public Property Title As String = "" + Public Property Description As String = "" + Public Property ImageString As String = "" + Public Property Image As SvgImage = Nothing + + Private Sub frmEditSearch_Load(sender As Object, e As EventArgs) Handles Me.Load + If IsNew Then + Text = "Neue Suche" + Else + Text = "Suche bearbeiten" + End If + + For Each oImage As SvgImageInfo In Images.ImageInfos + Dim oItem = New DevExpress.XtraEditors.Controls.ImageComboBoxItem(oImage.Name, oImage.Bitmap) + ImageComboBoxEdit1.Properties.Items.Add(oItem) + Next + End Sub + + Private Sub TextEdit1_EditValueChanged(sender As Object, e As EventArgs) Handles TextEdit1.EditValueChanged + Title = TextEdit1.EditValue + End Sub + + Private Sub TextEdit2_EditValueChanged(sender As Object, e As EventArgs) Handles TextEdit2.EditValueChanged + Description = TextEdit2.EditValue + End Sub + + Private Sub ImageComboBoxEdit1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ImageComboBoxEdit1.SelectedIndexChanged + ImageString = ImageComboBoxEdit1.Text + 'Image = ImageComboBoxEdit1.EditValue + End Sub + + Private Sub BarButtonItem1_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarButtonItem1.ItemClick + DialogResult = DialogResult.OK + Close() + End Sub +End Class \ No newline at end of file diff --git a/GUIs.ZooFlow/Search/frmSearchFlow.Designer.vb b/GUIs.ZooFlow/Search/frmSearchFlow.Designer.vb index 214b3628..436ff370 100644 --- a/GUIs.ZooFlow/Search/frmSearchFlow.Designer.vb +++ b/GUIs.ZooFlow/Search/frmSearchFlow.Designer.vb @@ -1,9 +1,9 @@ - _ + Partial Class frmSearchFlow Inherits DevExpress.XtraBars.Ribbon.RibbonForm 'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen. - _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) Try If disposing AndAlso components IsNot Nothing Then @@ -20,7 +20,7 @@ Partial Class frmSearchFlow 'Hinweis: Die folgende Prozedur ist für den Windows Form-Designer erforderlich. 'Das Bearbeiten ist mit dem Windows Form-Designer möglich. 'Das Bearbeiten mit dem Code-Editor ist nicht möglich. - _ + Private Sub InitializeComponent() Me.components = New System.ComponentModel.Container() Dim ItemTemplate1 As DevExpress.XtraGrid.Views.Tile.ItemTemplate = New DevExpress.XtraGrid.Views.Tile.ItemTemplate() @@ -49,10 +49,17 @@ Partial Class frmSearchFlow Me.BarButtonItem1 = New DevExpress.XtraBars.BarButtonItem() Me.BarButtonItem2 = New DevExpress.XtraBars.BarButtonItem() Me.btnSaveSearch = New DevExpress.XtraBars.BarButtonItem() + Me.chkGridVertical = New DevExpress.XtraBars.BarCheckItem() + Me.chkGridHorizontal = New DevExpress.XtraBars.BarCheckItem() + Me.BarEditItem1 = New DevExpress.XtraBars.BarEditItem() + Me.RepositoryItemTrackBar1 = New DevExpress.XtraEditors.Repository.RepositoryItemTrackBar() + Me.BarEditItem2 = New DevExpress.XtraBars.BarEditItem() + Me.RepositoryItemTrackBar2 = New DevExpress.XtraEditors.Repository.RepositoryItemTrackBar() Me.RibbonPage1 = New DevExpress.XtraBars.Ribbon.RibbonPage() Me.RibbonPageGroup1 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup() Me.RibbonPageGroup2 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup() Me.RibbonPageGroup5 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup() + Me.RibbonPage3 = New DevExpress.XtraBars.Ribbon.RibbonPage() Me.RibbonPageGroup3 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup() Me.RepositoryItemMarqueeProgressBar1 = New DevExpress.XtraEditors.Repository.RepositoryItemMarqueeProgressBar() Me.RibbonStatusBar1 = New DevExpress.XtraBars.Ribbon.RibbonStatusBar() @@ -80,6 +87,8 @@ Partial Class frmSearchFlow Me.LayoutControlItem7 = New DevExpress.XtraLayout.LayoutControlItem() Me.SvgImageCollection1 = New DevExpress.Utils.SvgImageCollection(Me.components) CType(Me.RibbonControl1, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.RepositoryItemTrackBar1, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.RepositoryItemTrackBar2, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.RepositoryItemMarqueeProgressBar1, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.PanelControl1, System.ComponentModel.ISupportInitialize).BeginInit() Me.PanelControl1.SuspendLayout() @@ -137,12 +146,12 @@ Partial Class frmSearchFlow ' Me.RibbonControl1.ColorScheme = DevExpress.XtraBars.Ribbon.RibbonControlColorScheme.Green Me.RibbonControl1.ExpandCollapseItem.Id = 0 - Me.RibbonControl1.Items.AddRange(New DevExpress.XtraBars.BarItem() {Me.RibbonControl1.ExpandCollapseItem, Me.RibbonControl1.SearchEditItem, Me.lblResults, Me.chkOperatorAnd, Me.chkOperatorOr, Me.chkDatefilter2, Me.BarCheckItem4, Me.chkSearchEverywhere, Me.BarButtonItem1, Me.BarButtonItem2, Me.btnSaveSearch}) + Me.RibbonControl1.Items.AddRange(New DevExpress.XtraBars.BarItem() {Me.RibbonControl1.ExpandCollapseItem, Me.RibbonControl1.SearchEditItem, Me.lblResults, Me.chkOperatorAnd, Me.chkOperatorOr, Me.chkDatefilter2, Me.BarCheckItem4, Me.chkSearchEverywhere, Me.BarButtonItem1, Me.BarButtonItem2, Me.btnSaveSearch, Me.chkGridVertical, Me.chkGridHorizontal, Me.BarEditItem1, Me.BarEditItem2}) Me.RibbonControl1.Location = New System.Drawing.Point(0, 0) - Me.RibbonControl1.MaxItemId = 24 + Me.RibbonControl1.MaxItemId = 28 Me.RibbonControl1.Name = "RibbonControl1" - Me.RibbonControl1.Pages.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPage() {Me.RibbonPage1}) - Me.RibbonControl1.RepositoryItems.AddRange(New DevExpress.XtraEditors.Repository.RepositoryItem() {Me.RepositoryItemMarqueeProgressBar1}) + Me.RibbonControl1.Pages.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPage() {Me.RibbonPage1, Me.RibbonPage3}) + Me.RibbonControl1.RepositoryItems.AddRange(New DevExpress.XtraEditors.Repository.RepositoryItem() {Me.RepositoryItemMarqueeProgressBar1, Me.RepositoryItemTrackBar1, Me.RepositoryItemTrackBar2}) Me.RibbonControl1.ShowApplicationButton = DevExpress.Utils.DefaultBoolean.[False] Me.RibbonControl1.ShowDisplayOptionsMenuButton = DevExpress.Utils.DefaultBoolean.[False] Me.RibbonControl1.ShowPageHeadersMode = DevExpress.XtraBars.Ribbon.ShowPageHeadersMode.Show @@ -168,6 +177,7 @@ Partial Class frmSearchFlow Me.chkOperatorAnd.Id = 16 Me.chkOperatorAnd.ImageOptions.SvgImage = Global.DigitalData.GUIs.ZooFlow.My.Resources.Resources.link3 Me.chkOperatorAnd.Name = "chkOperatorAnd" + Me.chkOperatorAnd.RibbonStyle = DevExpress.XtraBars.Ribbon.RibbonItemStyles.SmallWithText ' 'chkOperatorOr ' @@ -176,6 +186,7 @@ Partial Class frmSearchFlow Me.chkOperatorOr.Id = 17 Me.chkOperatorOr.ImageOptions.SvgImage = Global.DigitalData.GUIs.ZooFlow.My.Resources.Resources.unlink1 Me.chkOperatorOr.Name = "chkOperatorOr" + Me.chkOperatorOr.RibbonStyle = DevExpress.XtraBars.Ribbon.RibbonItemStyles.SmallWithText ' 'chkDatefilter2 ' @@ -215,14 +226,58 @@ Partial Class frmSearchFlow ' 'btnSaveSearch ' - Me.btnSaveSearch.Caption = "Aktuelle Eingabe als Suche speichern" + Me.btnSaveSearch.Caption = "Aktuelle Suche speichern" Me.btnSaveSearch.Id = 23 Me.btnSaveSearch.ImageOptions.SvgImage = Global.DigitalData.GUIs.ZooFlow.My.Resources.Resources.bo_security_permission_action Me.btnSaveSearch.Name = "btnSaveSearch" ' + 'chkGridVertical + ' + Me.chkGridVertical.Caption = "Gruppen vertikal" + Me.chkGridVertical.GroupIndex = 1 + Me.chkGridVertical.Id = 24 + Me.chkGridVertical.ImageOptions.SvgImage = Global.DigitalData.GUIs.ZooFlow.My.Resources.Resources.alignverticalcenter + Me.chkGridVertical.Name = "chkGridVertical" + ' + 'chkGridHorizontal + ' + Me.chkGridHorizontal.Caption = "Gruppen horizontal" + Me.chkGridHorizontal.GroupIndex = 1 + Me.chkGridHorizontal.Id = 25 + Me.chkGridHorizontal.ImageOptions.SvgImage = Global.DigitalData.GUIs.ZooFlow.My.Resources.Resources.alignhorizontalcenter + Me.chkGridHorizontal.Name = "chkGridHorizontal" + ' + 'BarEditItem1 + ' + Me.BarEditItem1.Caption = "Zeilen" + Me.BarEditItem1.Edit = Me.RepositoryItemTrackBar1 + Me.BarEditItem1.Id = 26 + Me.BarEditItem1.Name = "BarEditItem1" + ' + 'RepositoryItemTrackBar1 + ' + Me.RepositoryItemTrackBar1.LabelAppearance.Options.UseTextOptions = True + Me.RepositoryItemTrackBar1.LabelAppearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center + Me.RepositoryItemTrackBar1.Maximum = 5 + Me.RepositoryItemTrackBar1.Name = "RepositoryItemTrackBar1" + ' + 'BarEditItem2 + ' + Me.BarEditItem2.Caption = "BarEditItem2" + Me.BarEditItem2.Edit = Me.RepositoryItemTrackBar2 + Me.BarEditItem2.Id = 27 + Me.BarEditItem2.Name = "BarEditItem2" + ' + 'RepositoryItemTrackBar2 + ' + Me.RepositoryItemTrackBar2.LabelAppearance.Options.UseTextOptions = True + Me.RepositoryItemTrackBar2.LabelAppearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center + Me.RepositoryItemTrackBar2.Maximum = 5 + Me.RepositoryItemTrackBar2.Name = "RepositoryItemTrackBar2" + ' 'RibbonPage1 ' - Me.RibbonPage1.Groups.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPageGroup() {Me.RibbonPageGroup1, Me.RibbonPageGroup2, Me.RibbonPageGroup5, Me.RibbonPageGroup3}) + Me.RibbonPage1.Groups.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPageGroup() {Me.RibbonPageGroup1, Me.RibbonPageGroup2, Me.RibbonPageGroup5}) Me.RibbonPage1.Name = "RibbonPage1" Me.RibbonPage1.Text = "Suche" ' @@ -249,12 +304,20 @@ Partial Class frmSearchFlow Me.RibbonPageGroup5.Name = "RibbonPageGroup5" Me.RibbonPageGroup5.Text = "Begriffsverknüpfung" ' + 'RibbonPage3 + ' + Me.RibbonPage3.Groups.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPageGroup() {Me.RibbonPageGroup3}) + Me.RibbonPage3.Name = "RibbonPage3" + Me.RibbonPage3.Text = "Layout" + ' 'RibbonPageGroup3 ' - Me.RibbonPageGroup3.Enabled = False - Me.RibbonPageGroup3.ItemLinks.Add(Me.btnSaveSearch) + Me.RibbonPageGroup3.ItemLinks.Add(Me.chkGridVertical) + Me.RibbonPageGroup3.ItemLinks.Add(Me.chkGridHorizontal) + Me.RibbonPageGroup3.ItemLinks.Add(Me.BarEditItem1) + Me.RibbonPageGroup3.ItemLinks.Add(Me.BarEditItem2) Me.RibbonPageGroup3.Name = "RibbonPageGroup3" - Me.RibbonPageGroup3.Text = "Eigene Suchen" + Me.RibbonPageGroup3.Text = "RibbonPageGroup3" ' 'RepositoryItemMarqueeProgressBar1 ' @@ -336,7 +399,7 @@ Partial Class frmSearchFlow Me.GridSearches.MainView = Me.ViewSearches Me.GridSearches.MenuManager = Me.RibbonControl1 Me.GridSearches.Name = "GridSearches" - Me.GridSearches.Size = New System.Drawing.Size(858, 184) + Me.GridSearches.Size = New System.Drawing.Size(858, 183) Me.GridSearches.TabIndex = 1 Me.GridSearches.ViewCollection.AddRange(New DevExpress.XtraGrid.Views.Base.BaseView() {Me.ViewSearches}) ' @@ -376,16 +439,16 @@ Partial Class frmSearchFlow TableRowDefinition1.Length.Value = 43.0R ItemTemplate1.Rows.Add(TableRowDefinition1) Me.ViewSearches.Templates.Add(ItemTemplate1) - TableColumnDefinition3.Length.Value = 30.0R + TableColumnDefinition3.Length.Value = 35.0R TableColumnDefinition3.PaddingRight = 5 - TableColumnDefinition4.Length.Value = 129.0R + TableColumnDefinition4.Length.Value = 111.0R Me.ViewSearches.TileColumns.Add(TableColumnDefinition3) Me.ViewSearches.TileColumns.Add(TableColumnDefinition4) TableRowDefinition2.Length.Value = 17.0R TableRowDefinition3.Length.Value = 45.0R Me.ViewSearches.TileRows.Add(TableRowDefinition2) Me.ViewSearches.TileRows.Add(TableRowDefinition3) - TileViewItemElement3.Appearance.Normal.Font = New System.Drawing.Font("Tahoma", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + TileViewItemElement3.Appearance.Normal.Font = New System.Drawing.Font("Tahoma", 8.25!, System.Drawing.FontStyle.Bold) TileViewItemElement3.Appearance.Normal.Options.UseFont = True TileViewItemElement3.Column = Me.colName TileViewItemElement3.ColumnIndex = 1 @@ -421,7 +484,7 @@ Partial Class frmSearchFlow 'DateEditFrom ' Me.DateEditFrom.EditValue = Nothing - Me.DateEditFrom.Location = New System.Drawing.Point(95, 327) + Me.DateEditFrom.Location = New System.Drawing.Point(95, 326) Me.DateEditFrom.MenuManager = Me.RibbonControl1 Me.DateEditFrom.Name = "DateEditFrom" Me.DateEditFrom.Properties.Buttons.AddRange(New DevExpress.XtraEditors.Controls.EditorButton() {New DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Combo)}) @@ -433,7 +496,7 @@ Partial Class frmSearchFlow 'DateEditTo ' Me.DateEditTo.EditValue = Nothing - Me.DateEditTo.Location = New System.Drawing.Point(95, 379) + Me.DateEditTo.Location = New System.Drawing.Point(95, 378) Me.DateEditTo.MenuManager = Me.RibbonControl1 Me.DateEditTo.Name = "DateEditTo" Me.DateEditTo.Properties.Buttons.AddRange(New DevExpress.XtraEditors.Controls.EditorButton() {New DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Combo)}) @@ -444,7 +507,7 @@ Partial Class frmSearchFlow ' 'CheckEdit1 ' - Me.CheckEdit1.Location = New System.Drawing.Point(4, 354) + Me.CheckEdit1.Location = New System.Drawing.Point(4, 353) Me.CheckEdit1.MenuManager = Me.RibbonControl1 Me.CheckEdit1.Name = "CheckEdit1" Me.CheckEdit1.Properties.OffText = "Datum bis deaktiviert" @@ -455,7 +518,7 @@ Partial Class frmSearchFlow ' 'ComboBoxDateAttributes ' - Me.ComboBoxDateAttributes.Location = New System.Drawing.Point(95, 409) + Me.ComboBoxDateAttributes.Location = New System.Drawing.Point(95, 408) Me.ComboBoxDateAttributes.MenuManager = Me.RibbonControl1 Me.ComboBoxDateAttributes.Name = "ComboBoxDateAttributes" Me.ComboBoxDateAttributes.Properties.Buttons.AddRange(New DevExpress.XtraEditors.Controls.EditorButton() {New DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Combo)}) @@ -481,10 +544,10 @@ Partial Class frmSearchFlow Me.LayoutControlGroupDate2.AppearanceGroup.Options.UseBorderColor = True Me.LayoutControlGroupDate2.BestFitWeight = 0 Me.LayoutControlGroupDate2.Items.AddRange(New DevExpress.XtraLayout.BaseLayoutItem() {Me.LayoutControlItem2, Me.LayoutControlItem4, Me.EmptySpaceItem1, Me.LayoutControlItem6, Me.LayoutControlItem8}) - Me.LayoutControlGroupDate2.Location = New System.Drawing.Point(0, 298) + Me.LayoutControlGroupDate2.Location = New System.Drawing.Point(0, 297) Me.LayoutControlGroupDate2.Name = "LayoutControlGroupDate2" Me.LayoutControlGroupDate2.Padding = New DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0) - Me.LayoutControlGroupDate2.Size = New System.Drawing.Size(886, 148) + Me.LayoutControlGroupDate2.Size = New System.Drawing.Size(886, 149) Me.LayoutControlGroupDate2.Text = "Eigenes Datum" Me.LayoutControlGroupDate2.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never ' @@ -514,7 +577,7 @@ Partial Class frmSearchFlow Me.EmptySpaceItem1.AllowHotTrack = False Me.EmptySpaceItem1.Location = New System.Drawing.Point(0, 112) Me.EmptySpaceItem1.Name = "EmptySpaceItem1" - Me.EmptySpaceItem1.Size = New System.Drawing.Size(882, 10) + Me.EmptySpaceItem1.Size = New System.Drawing.Size(882, 11) Me.EmptySpaceItem1.TextSize = New System.Drawing.Size(0, 0) ' 'LayoutControlItem6 @@ -543,7 +606,7 @@ Partial Class frmSearchFlow Me.LayoutControlGroup3.Items.AddRange(New DevExpress.XtraLayout.BaseLayoutItem() {Me.LayoutControlItem3}) Me.LayoutControlGroup3.Location = New System.Drawing.Point(0, 64) Me.LayoutControlGroup3.Name = "LayoutControlGroup3" - Me.LayoutControlGroup3.Size = New System.Drawing.Size(886, 234) + Me.LayoutControlGroup3.Size = New System.Drawing.Size(886, 233) Me.LayoutControlGroup3.Text = "Meine Suchen" ' 'LayoutControlItem3 @@ -551,7 +614,7 @@ Partial Class frmSearchFlow Me.LayoutControlItem3.Control = Me.GridSearches Me.LayoutControlItem3.Location = New System.Drawing.Point(0, 0) Me.LayoutControlItem3.Name = "LayoutControlItem3" - Me.LayoutControlItem3.Size = New System.Drawing.Size(862, 188) + Me.LayoutControlItem3.Size = New System.Drawing.Size(862, 187) Me.LayoutControlItem3.TextSize = New System.Drawing.Size(0, 0) Me.LayoutControlItem3.TextVisible = False ' @@ -588,6 +651,8 @@ Partial Class frmSearchFlow Me.StatusBar = Me.RibbonStatusBar1 Me.Text = "Search Flow" CType(Me.RibbonControl1, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.RepositoryItemTrackBar1, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.RepositoryItemTrackBar2, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.RepositoryItemMarqueeProgressBar1, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.PanelControl1, System.ComponentModel.ISupportInitialize).EndInit() Me.PanelControl1.ResumeLayout(False) @@ -662,5 +727,12 @@ Partial Class frmSearchFlow Friend WithEvents RibbonPageGroup1 As DevExpress.XtraBars.Ribbon.RibbonPageGroup Friend WithEvents colGroupText As DevExpress.XtraGrid.Columns.TileViewColumn Friend WithEvents btnSaveSearch As DevExpress.XtraBars.BarButtonItem + Friend WithEvents chkGridVertical As DevExpress.XtraBars.BarCheckItem + Friend WithEvents chkGridHorizontal As DevExpress.XtraBars.BarCheckItem + Friend WithEvents RibbonPage3 As DevExpress.XtraBars.Ribbon.RibbonPage Friend WithEvents RibbonPageGroup3 As DevExpress.XtraBars.Ribbon.RibbonPageGroup + Friend WithEvents BarEditItem1 As DevExpress.XtraBars.BarEditItem + Friend WithEvents RepositoryItemTrackBar1 As DevExpress.XtraEditors.Repository.RepositoryItemTrackBar + Friend WithEvents BarEditItem2 As DevExpress.XtraBars.BarEditItem + Friend WithEvents RepositoryItemTrackBar2 As DevExpress.XtraEditors.Repository.RepositoryItemTrackBar End Class diff --git a/GUIs.ZooFlow/Search/frmSearchFlow.vb b/GUIs.ZooFlow/Search/frmSearchFlow.vb index a825326e..de0f56f6 100644 --- a/GUIs.ZooFlow/Search/frmSearchFlow.vb +++ b/GUIs.ZooFlow/Search/frmSearchFlow.vb @@ -7,6 +7,7 @@ Imports DevExpress.XtraGrid Imports DevExpress.XtraGrid.Views.Tile Imports DevExpress.XtraSplashScreen Imports DigitalData.GUIs.ZooFlow.ClassConstants +Imports DigitalData.GUIs.ZooFlow.SavedSearch Imports DigitalData.GUIs.ZooFlow.Search Imports DigitalData.GUIs.ZooFlow.Search.SearchToken Imports DigitalData.Modules.Language @@ -21,24 +22,23 @@ Public Class frmSearchFlow Private TokenTable As DataTable = Nothing Private FormLoading As Boolean = True - Private TokenListDefault As New Dictionary(Of String, Object) - Private TokenListOperands As New Dictionary(Of String, Object) - Private TokenListAttrValues As New Dictionary(Of String, Object) + Private ReadOnly TokenListDefault As New Dictionary(Of String, Object) + Private ReadOnly TokenListOperands As New Dictionary(Of String, Object) + Private ReadOnly TokenListAttrValues As New Dictionary(Of String, Object) Private Sub frmFlowSearch2_Load(sender As Object, e As EventArgs) Handles MyBase.Load - SearchLoader = New SearchLoader(My.LogConfig, My.UIConfigManager, SvgImageCollection1) + SearchLoader = New SearchLoader(My.LogConfig, My.SystemConfigManager, SvgImageCollection1) SearchRunner = New SearchRunner(My.LogConfig, My.Application.GetEnvironment, "FlowSearch") With { .BaseSearchSQL = SQL_FLOW_SEARCH_BASE } + AddHandler SearchRunner.NeedsNewSavedSearch, AddressOf SearchRunner_NewSavedSearch + TokenTable = GetTokenTable() ComboBoxDateAttributes.Properties.Items.AddRange(LoadDateAttributes()) ComboBoxDateAttributes.SelectedIndex = 0 - Dim oSearchBindingList As New BindingSource() With { - .DataSource = SearchLoader.LoadSearches() - } - GridSearches.DataSource = oSearchBindingList + GridSearches.DataSource = SearchLoader.LoadSearches() Dim oTokens = GetTokensFromTable(Of AttributeValueToken)(TokenTable) AddTokens(txtSearchInput, oTokens) @@ -46,6 +46,16 @@ Public Class frmSearchFlow ViewSearches.FocusedRowHandle = GridControl.InvalidRowHandle FormLoading = False + + + End Sub + + Private Sub SearchRunner_NewSavedSearch(sender As Object, e As EventArgs) + Dim oForm As New frmEditSearch With {.IsNew = True} + If oForm.ShowDialog() = DialogResult.OK Then + SearchLoader.CreateCustomSearch(oForm.Title, oForm.Description, New List(Of Token), oForm.ImageString) + GridSearches.DataSource = SearchLoader.LoadSearches() + End If End Sub Public Function GetTokenTable() As DataTable @@ -55,54 +65,62 @@ Public Class frmSearchFlow End Function Public Function GetTokensFromTable(Of T As {New, Token})(pTable As DataTable) As List(Of T) - Dim oTokens As New List(Of T) - Dim oTermValueBlackList As New List(Of String) From {"", " "} + Try + Dim oTokens As New List(Of T) + Dim oTermValueBlackList As New List(Of String) From {"", " "} - For Each oRow As DataRow In pTable.Rows - Dim oTermValue = oRow.Item("TERM") - Dim oTermId = oRow.ItemEx("TERM_ID", 0) - Dim oAttributeTitle = oRow.Item("ATTR_TITLE") - Dim oAttributeId = oRow.ItemEx("ATTR_ID", 0) + For Each oRow As DataRow In pTable.Rows + Dim oTermValue = oRow.Item("TERM") + Dim oTermId = oRow.ItemEx("TERM_ID", 0) + Dim oAttributeTitle = oRow.Item("ATTR_TITLE") + Dim oAttributeId = oRow.ItemEx("ATTR_ID", 0) - If oTermValueBlackList.Contains(oTermValue) Then - Continue For - End If + If oTermValueBlackList.Contains(oTermValue) Then + Continue For + End If - oTokens.Add(New T() With { - .AttributeId = oAttributeId, - .AttributeTitle = oAttributeTitle, - .TermId = oTermId, - .TermValue = oTermValue - }) - Next + oTokens.Add(New T() With { + .AttributeId = oAttributeId, + .AttributeTitle = oAttributeTitle, + .TermId = oTermId, + .TermValue = oTermValue + }) + Next + + Return oTokens. + OrderBy(Function(token) token.TermValue). + Distinct(). + ToList() - Return oTokens. - OrderBy(Function(token) token.TermValue). - Distinct(). - ToList() + Catch ex As Exception + Logger.error(ex) + Return New List(Of T) + End Try End Function Private Function LoadDateAttributes() As List(Of String) - Dim oAttributes = My.Tables.DTIDB_ATTRIBUTE. - AsEnumerable(). - Where(Function(row) CBool(row.Item("SYS_ATTRIBUTE")) = False). - Where(Function(row) row.Item("TYP_ID") = 5 Or row.Item("TYP_ID") = 6). - Select(Function(row) row.Item("ATTR_TITLE")). - Cast(Of String). - ToList() - - If My.Application.User.Language = "de-DE" Then - oAttributes.Add(IDB_ADDED_WHEN_String_German) - Else - oAttributes.Add(IDB_ADDED_WHEN_String_Englisch) - End If + Try + Dim oAttributes = My.Tables.DTIDB_ATTRIBUTE. + AsEnumerable(). + Where(Function(row) CBool(row.Item("SYS_ATTRIBUTE")) = False). + Where(Function(row) row.Item("TYP_ID") = 5 Or row.Item("TYP_ID") = 6). + Select(Function(row) row.Item("ATTR_TITLE")). + Cast(Of String). + ToList() + + If My.Application.User.Language = "de-DE" Then + oAttributes.Add(IDB_ADDED_WHEN_String_German) + Else + oAttributes.Add(IDB_ADDED_WHEN_String_Englisch) + End If - Return oAttributes + Return oAttributes + Catch ex As Exception + Logger.error(ex) + Return New List(Of String) + End Try End Function - - - Private Function GetTokens() As IEnumerable(Of Token) Dim oTokens = txtSearchInput.GetTokenList() Return oTokens.Select(Of Token)(Function(token) token.Value).ToList() @@ -115,7 +133,14 @@ Public Class frmSearchFlow End Sub Private Async Sub TileView1_ItemClick(sender As Object, e As TileViewItemClickEventArgs) Handles ViewSearches.ItemClick - Await RunSearch2(GetTokens()) + Dim oSearch = ViewSearches.GetRow(ViewSearches.FocusedRowHandle) + + If TypeOf oSearch Is CustomSearch Then + Dim oCustomSearch As CustomSearch = oSearch + Await RunSearch2(oCustomSearch.Tokens) + Else + Await RunSearch2(GetTokens()) + End If End Sub Private Async Sub BarButtonItem1_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarButtonItem1.ItemClick @@ -129,8 +154,8 @@ Public Class frmSearchFlow Try ' If the user clicked on a Search Tile, it will set the date constraint for this search Dim oSearch = ViewSearches.GetRow(ViewSearches.FocusedRowHandle) - If oSearch IsNot Nothing AndAlso TypeOf oSearch Is SearchLoader.PredefinedDateSearch Then - Dim oDateSearch As SearchLoader.PredefinedDateSearch = oSearch + If oSearch IsNot Nothing AndAlso TypeOf oSearch Is SavedSearch.PredefinedDateSearch Then + Dim oDateSearch As SavedSearch.PredefinedDateSearch = oSearch oSearchTitle = oDateSearch.DisplayName SearchRunner.SetDateConstraint(oDateSearch.DateConstraint) Else @@ -185,8 +210,6 @@ Public Class frmSearchFlow End Try End Function - - Private Function StartUpdateUI() As IOverlaySplashScreenHandle SetStatusBarColor(Color.FromArgb(255, 240, 240, 240), Color.Black) Dim oHandle = SplashScreenManager.ShowOverlayForm(LayoutControl1) @@ -269,10 +292,6 @@ Public Class frmSearchFlow End If End Sub - Private Sub BarToggleSwitchItem2_CheckedChanged(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) - - End Sub - Private Sub BarCheckItem3_CheckedChanged(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles chkDatefilter2.CheckedChanged If chkDatefilter2.Checked Then LayoutControlGroupDate2.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Always @@ -325,19 +344,19 @@ Public Class frmSearchFlow FormLoading = False End Sub - Private Sub TileView1_CustomItemTemplate(sender As Object, e As TileViewCustomItemTemplateEventArgs) Handles ViewSearches.CustomItemTemplate - Dim oSearch = ViewSearches.GetRow(e.RowHandle) + Private Sub chkGridVertical_CheckedChanged(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles chkGridVertical.CheckedChanged + ViewSearches.OptionsTiles.Orientation = Orientation.Vertical + End Sub - 'If TypeOf oSearch Is PredefinedDateSearch Then - ' e.Template = e.Templates.Item("DefaultSmall") - 'Else - ' e.Template = e.Templates.Item("Default") - 'End If - e.Template = e.Templates.Item("Default") + Private Sub chkGridHorizontal_CheckedChanged(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles chkGridHorizontal.CheckedChanged + ViewSearches.OptionsTiles.Orientation = Orientation.Horizontal End Sub - Private Sub btnSaveSearch_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles btnSaveSearch.ItemClick - SearchLoader.CreateCustomSearch("TestSearch", "Some Stuff", GetTokens(), "invoice") - GridSearches.DataSource = SearchLoader.LoadSearches() + Private Sub BarEditItem1_EditValueChanged(sender As Object, e As EventArgs) Handles BarEditItem1.EditValueChanged + ViewSearches.OptionsTiles.ColumnCount = BarEditItem1.EditValue + End Sub + + Private Sub BarEditItem2_EditValueChanged(sender As Object, e As EventArgs) Handles BarEditItem2.EditValueChanged + ViewSearches.OptionsTiles.RowCount = BarEditItem2.EditValue End Sub End Class \ No newline at end of file diff --git a/GUIs.ZooFlow/ZooFlow.vbproj b/GUIs.ZooFlow/ZooFlow.vbproj index c498953d..a2e9039b 100644 --- a/GUIs.ZooFlow/ZooFlow.vbproj +++ b/GUIs.ZooFlow/ZooFlow.vbproj @@ -347,6 +347,13 @@ MyDataset.xsd + + frmEditSearch.vb + + + Form + + Component @@ -535,6 +542,9 @@ frmFileflow_Duplicate.vb + + frmEditSearch.vb + frmFlowSearch.vb @@ -1129,6 +1139,8 @@ + +