From 234ce3d784e15a6d56d9c5f2a86c18beac72449d Mon Sep 17 00:00:00 2001 From: Jonathan Jenne Date: Tue, 5 Jul 2022 08:41:41 +0200 Subject: [PATCH] Add ListSearches --- .../IDB/frmAdmin_IDBObjectStore.vb | 2 +- ZooFlow/App.config | 2 +- ZooFlow/My Project/Resources.Designer.vb | 40 ++ ZooFlow/My Project/Resources.resx | 40 +- ZooFlow/My Project/licenses.licx | 16 +- ZooFlow/Resources/actions_deletecircled7.svg | 15 + ZooFlow/Resources/delete2.svg | 18 + ZooFlow/Resources/menu.svg | 16 + ZooFlow/Resources/save10.svg | 16 + ZooFlow/Search/SavedSearch.vb | 7 +- ZooFlow/Search/SearchLoader.vb | 56 ++- ZooFlow/Search/frmListSearches.Designer.vb | 345 ++++++++++++++++++ ZooFlow/Search/frmListSearches.resx | 120 ++++++ ZooFlow/Search/frmListSearches.vb | 74 ++++ ZooFlow/Search/frmSearchFlow.Designer.vb | 169 +++++---- ZooFlow/Search/frmSearchFlow.vb | 17 +- ZooFlow/ZooFlow.vbproj | 14 +- 17 files changed, 848 insertions(+), 119 deletions(-) create mode 100644 ZooFlow/Resources/actions_deletecircled7.svg create mode 100644 ZooFlow/Resources/delete2.svg create mode 100644 ZooFlow/Resources/menu.svg create mode 100644 ZooFlow/Resources/save10.svg create mode 100644 ZooFlow/Search/frmListSearches.Designer.vb create mode 100644 ZooFlow/Search/frmListSearches.resx create mode 100644 ZooFlow/Search/frmListSearches.vb diff --git a/ZooFlow/Administration/IDB/frmAdmin_IDBObjectStore.vb b/ZooFlow/Administration/IDB/frmAdmin_IDBObjectStore.vb index 1134011..b74ac05 100644 --- a/ZooFlow/Administration/IDB/frmAdmin_IDBObjectStore.vb +++ b/ZooFlow/Administration/IDB/frmAdmin_IDBObjectStore.vb @@ -8,7 +8,7 @@ Public Class frmAdmin_IDBObjectStore Public Property HasChanges As Boolean Implements IAdminForm.HasChanges - Private FormHelper As FormHelper + Private ReadOnly FormHelper As FormHelper Public Property IsInsert As Boolean Implements IAdminForm.IsInsert Dim oStorePath As String = String.Empty diff --git a/ZooFlow/App.config b/ZooFlow/App.config index e9c4984..bbd634d 100644 --- a/ZooFlow/App.config +++ b/ZooFlow/App.config @@ -24,7 +24,7 @@ - Custom/Digital Data 2 + Custom/Digital Data diff --git a/ZooFlow/My Project/Resources.Designer.vb b/ZooFlow/My Project/Resources.Designer.vb index 3bcb7fc..664101e 100644 --- a/ZooFlow/My Project/Resources.Designer.vb +++ b/ZooFlow/My Project/Resources.Designer.vb @@ -500,6 +500,16 @@ Namespace My.Resources End Get End Property + ''' + ''' Sucht eine lokalisierte Ressource vom Typ DevExpress.Utils.Svg.SvgImage. + ''' + Friend ReadOnly Property actions_deletecircled7() As DevExpress.Utils.Svg.SvgImage + Get + Dim obj As Object = ResourceManager.GetObject("actions_deletecircled7", resourceCulture) + Return CType(obj,DevExpress.Utils.Svg.SvgImage) + End Get + End Property + ''' ''' Sucht eine lokalisierte Ressource vom Typ DevExpress.Utils.Svg.SvgImage. ''' @@ -990,6 +1000,16 @@ Namespace My.Resources End Get End Property + ''' + ''' Sucht eine lokalisierte Ressource vom Typ DevExpress.Utils.Svg.SvgImage. + ''' + Friend ReadOnly Property delete2() As DevExpress.Utils.Svg.SvgImage + Get + Dim obj As Object = ResourceManager.GetObject("delete2", resourceCulture) + Return CType(obj,DevExpress.Utils.Svg.SvgImage) + End Get + End Property + ''' ''' Sucht eine lokalisierte Ressource vom Typ DevExpress.Utils.Svg.SvgImage. ''' @@ -1340,6 +1360,16 @@ Namespace My.Resources End Get End Property + ''' + ''' Sucht eine lokalisierte Ressource vom Typ DevExpress.Utils.Svg.SvgImage. + ''' + Friend ReadOnly Property menu() As DevExpress.Utils.Svg.SvgImage + Get + Dim obj As Object = ResourceManager.GetObject("menu", resourceCulture) + Return CType(obj,DevExpress.Utils.Svg.SvgImage) + End Get + End Property + ''' ''' Sucht eine lokalisierte Ressource vom Typ DevExpress.Utils.Svg.SvgImage. ''' @@ -1490,6 +1520,16 @@ Namespace My.Resources End Get End Property + ''' + ''' Sucht eine lokalisierte Ressource vom Typ DevExpress.Utils.Svg.SvgImage. + ''' + Friend ReadOnly Property save10() As DevExpress.Utils.Svg.SvgImage + Get + Dim obj As Object = ResourceManager.GetObject("save10", 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/ZooFlow/My Project/Resources.resx b/ZooFlow/My Project/Resources.resx index 430607e..09f61a7 100644 --- a/ZooFlow/My Project/Resources.resx +++ b/ZooFlow/My Project/Resources.resx @@ -244,6 +244,9 @@ ..\Resources\del2.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + ..\Resources\delete2.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + ..\Resources\Flow.PNG;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a @@ -289,6 +292,9 @@ ..\Resources\deletetable.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + ..\Resources\actions_check3.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + ..\Resources\3_PERSON_AKTIV_ZOO.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a @@ -313,15 +319,12 @@ ..\Resources\actions_check5.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - ..\Resources\actions_check3.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + ..\Resources\save10.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a ..\Resources\save5.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 - ..\Resources\previousview.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a @@ -352,8 +355,8 @@ ..\Resources\singlepageview.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - ..\Resources\documentproperties.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + ..\Resources\ZooFlow_G_DevExpress.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a ..\Resources\1_LOGO_ZOO_FLOW.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a @@ -376,9 +379,6 @@ ..\Resources\new4.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - ..\Resources\ZooFlow_G_DevExpress.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - ..\Resources\save6.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a @@ -454,6 +454,9 @@ ..\Resources\definednameuseinformula1.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + ..\Resources\menu.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + ..\Resources\CW_GEFUNDEN_klein.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a @@ -538,12 +541,15 @@ ..\Resources\actions_deletecircled5.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - ..\Resources\4_GLOBIX_AKTIV_ZOO.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\updatedataextract.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a ..\Resources\ZOOFLOW_DRAG_PROGRESSIVE.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\documentproperties.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 @@ -574,6 +580,9 @@ ..\Resources\ZooFlow_Sidebar_TOP.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\definednameuseinformula2.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a @@ -634,6 +643,9 @@ ..\Resources\save8.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + ..\Resources\4_GLOBIX_AKTIV_ZOO.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + ..\Resources\servermode.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a @@ -661,7 +673,7 @@ ..\Resources\del3.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\actions_deletecircled7.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/ZooFlow/My Project/licenses.licx b/ZooFlow/My Project/licenses.licx index 951b8c4..8d57ddf 100644 --- a/ZooFlow/My Project/licenses.licx +++ b/ZooFlow/My Project/licenses.licx @@ -1,12 +1,14 @@ -DevExpress.XtraEditors.DateEdit, 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.PictureEdit, 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.XtraTreeList.TreeList, DevExpress.XtraTreeList.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.ComboBoxEdit, 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.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.XtraLayout.LayoutControl, DevExpress.XtraLayout.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.DateEdit, 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 -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.XtraGrid.GridControl, DevExpress.XtraGrid.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.XtraTreeList.TreeList, DevExpress.XtraTreeList.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a diff --git a/ZooFlow/Resources/actions_deletecircled7.svg b/ZooFlow/Resources/actions_deletecircled7.svg new file mode 100644 index 0000000..d8c9bb3 --- /dev/null +++ b/ZooFlow/Resources/actions_deletecircled7.svg @@ -0,0 +1,15 @@ + + + + + + + \ No newline at end of file diff --git a/ZooFlow/Resources/delete2.svg b/ZooFlow/Resources/delete2.svg new file mode 100644 index 0000000..c3f8451 --- /dev/null +++ b/ZooFlow/Resources/delete2.svg @@ -0,0 +1,18 @@ + + + + + + + + + \ No newline at end of file diff --git a/ZooFlow/Resources/menu.svg b/ZooFlow/Resources/menu.svg new file mode 100644 index 0000000..959e525 --- /dev/null +++ b/ZooFlow/Resources/menu.svg @@ -0,0 +1,16 @@ + + + + + + + + \ No newline at end of file diff --git a/ZooFlow/Resources/save10.svg b/ZooFlow/Resources/save10.svg new file mode 100644 index 0000000..b09d6ee --- /dev/null +++ b/ZooFlow/Resources/save10.svg @@ -0,0 +1,16 @@ + + + + + \ No newline at end of file diff --git a/ZooFlow/Search/SavedSearch.vb b/ZooFlow/Search/SavedSearch.vb index 3f69035..6924bb9 100644 --- a/ZooFlow/Search/SavedSearch.vb +++ b/ZooFlow/Search/SavedSearch.vb @@ -19,7 +19,6 @@ Namespace SavedSearch Public Class PredefinedDateSearch Inherits SavedSearch - 'Public Property Image As SvgImage Public Overrides Property GroupText As String = "Vordefiniert" Public Property DateConstraint As Search.SearchRunner.DateConstraint @@ -28,10 +27,12 @@ Namespace SavedSearch 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) + Public Property Guid As Integer + Public Property IsSystem As Boolean = False + Public Property Tokens As New List(Of Search.SearchToken.Token) End Class diff --git a/ZooFlow/Search/SearchLoader.vb b/ZooFlow/Search/SearchLoader.vb index 98616c2..8778406 100644 --- a/ZooFlow/Search/SearchLoader.vb +++ b/ZooFlow/Search/SearchLoader.vb @@ -69,23 +69,59 @@ Namespace Search End Function Public Function LoadCustomSearches() As List(Of SavedSearch.SavedSearch) - Dim oSearches As New List(Of SavedSearch.SavedSearch) - Dim oSQL As String = $" + Try + Dim oSearches As New List(Of SavedSearch.SavedSearch) + Dim oSQL As String = $" SELECT DEF.* FROM [TBIDB_SEARCH_DEFINITION] DEF JOIN [TBIDB_SEARCH_DEF_RELATIONS] REL ON REL.SEARCH_ID = DEF.GUID WHERE REL.USR_ID = {UserState.UserId} " - Dim oTable = Database.GetDatatable(oSQL) + Dim oTable = Database.GetDatatable(oSQL) + + For Each oRow As DataRow In oTable.Rows + Dim oBase64 = oRow.Item("XML_VALUE") + Dim oBuffer = System.Convert.FromBase64String(oBase64) + Dim oSearch = DeserializeSearch(oBuffer) + oSearch.Guid = oRow.ItemEx("GUID", 0) + oSearch.IsSystem = oRow.ItemEx("SYS_SEARCH", False) + oSearches.Add(oSearch) + Next + + Return oSearches + Catch ex As Exception + Logger.Error(ex) + Return New List(Of SavedSearch.SavedSearch) + End Try + End Function - For Each oRow As DataRow In oTable.Rows - Dim oBase64 = oRow.Item("XML_VALUE") - Dim oBuffer = System.Convert.FromBase64String(oBase64) - Dim oSearch = DeserializeSearch(oBuffer) - oSearches.Add(oSearch) - Next + Public Function SaveSearch(pSearch As SavedSearch.CustomSearch) As Boolean + Try + Dim oBuffer = SerializeSearch(pSearch) + Dim oBase64 = System.Convert.ToBase64String(oBuffer) + Dim oSQL = $"UPDATE [TBIDB_SEARCH_DEFINITION] SET + TITLE = '{pSearch.Name}', + DESCRIPTION = '{pSearch.Description}', + XML_FILE = '{oBase64}', + CHANGE_WHO = '{UserState.UserName}' + WHERE GUID = {pSearch.Guid}" + Return Database.ExecuteNonQuery(oSQL) - Return oSearches + Catch ex As Exception + Logger.Error(ex) + Return False + End Try + End Function + + Public Function DeleteSearch(pSearch As SavedSearch.CustomSearch) As Boolean + Try + Dim oSQL = $"DELETE FROM [TBIDB_SEARCH_DEFINITION] WHERE GUID = {pSearch.Guid}" + Return Database.ExecuteNonQuery(oSQL) + + Catch ex As Exception + Logger.Error(ex) + Return False + End Try End Function Public Function LoadPredefinedSearches() As List(Of SavedSearch.SavedSearch) diff --git a/ZooFlow/Search/frmListSearches.Designer.vb b/ZooFlow/Search/frmListSearches.Designer.vb new file mode 100644 index 0000000..72ca3ec --- /dev/null +++ b/ZooFlow/Search/frmListSearches.Designer.vb @@ -0,0 +1,345 @@ + _ +Partial Class frmListSearches + 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 + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Wird vom Windows Form-Designer benötigt. + Private components As System.ComponentModel.IContainer + + '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.RibbonControl1 = New DevExpress.XtraBars.Ribbon.RibbonControl() + Me.btnSave = New DevExpress.XtraBars.BarButtonItem() + Me.btnDelete = 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.GridControlSearches = New DevExpress.XtraGrid.GridControl() + Me.GridViewSearches = New DevExpress.XtraGrid.Views.Grid.GridView() + Me.colName = New DevExpress.XtraGrid.Columns.GridColumn() + Me.SplitContainerControl1 = New DevExpress.XtraEditors.SplitContainerControl() + Me.LayoutControl1 = New DevExpress.XtraLayout.LayoutControl() + Me.peSearchImage = New DevExpress.XtraEditors.PictureEdit() + Me.txtDescription = New DevExpress.XtraEditors.TextEdit() + Me.txtTitle = New DevExpress.XtraEditors.TextEdit() + Me.cmbImages = New DevExpress.XtraEditors.ImageComboBoxEdit() + Me.Root = New DevExpress.XtraLayout.LayoutControlGroup() + Me.LayoutControlItem2 = New DevExpress.XtraLayout.LayoutControlItem() + Me.LayoutControlItem3 = New DevExpress.XtraLayout.LayoutControlItem() + Me.EmptySpaceItem1 = New DevExpress.XtraLayout.EmptySpaceItem() + Me.LayoutControlItem4 = New DevExpress.XtraLayout.LayoutControlItem() + Me.LayoutControlItem1 = New DevExpress.XtraLayout.LayoutControlItem() + Me.EmptySpaceItem2 = New DevExpress.XtraLayout.EmptySpaceItem() + CType(Me.RibbonControl1, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.GridControlSearches, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.GridViewSearches, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.SplitContainerControl1, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.SplitContainerControl1.Panel1, System.ComponentModel.ISupportInitialize).BeginInit() + Me.SplitContainerControl1.Panel1.SuspendLayout() + CType(Me.SplitContainerControl1.Panel2, System.ComponentModel.ISupportInitialize).BeginInit() + Me.SplitContainerControl1.SuspendLayout() + CType(Me.LayoutControl1, System.ComponentModel.ISupportInitialize).BeginInit() + Me.LayoutControl1.SuspendLayout() + CType(Me.peSearchImage.Properties, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.txtDescription.Properties, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.txtTitle.Properties, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.cmbImages.Properties, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.Root, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.LayoutControlItem2, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.LayoutControlItem3, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.EmptySpaceItem1, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.LayoutControlItem4, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.LayoutControlItem1, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.EmptySpaceItem2, System.ComponentModel.ISupportInitialize).BeginInit() + Me.SuspendLayout() + ' + 'RibbonControl1 + ' + 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.btnSave, Me.btnDelete}) + Me.RibbonControl1.Location = New System.Drawing.Point(0, 0) + Me.RibbonControl1.MaxItemId = 3 + Me.RibbonControl1.Name = "RibbonControl1" + Me.RibbonControl1.Pages.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPage() {Me.RibbonPage1}) + Me.RibbonControl1.Size = New System.Drawing.Size(1049, 158) + Me.RibbonControl1.StatusBar = Me.RibbonStatusBar1 + ' + 'btnSave + ' + Me.btnSave.Caption = "Speichern" + Me.btnSave.Id = 1 + Me.btnSave.ImageOptions.SvgImage = Global.DigitalData.GUIs.ZooFlow.My.Resources.Resources.save10 + Me.btnSave.Name = "btnSave" + ' + 'btnDelete + ' + Me.btnDelete.Caption = "Löschen" + Me.btnDelete.Id = 2 + Me.btnDelete.ImageOptions.SvgImage = Global.DigitalData.GUIs.ZooFlow.My.Resources.Resources.actions_deletecircled7 + Me.btnDelete.Name = "btnDelete" + ' + 'RibbonPage1 + ' + Me.RibbonPage1.Groups.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPageGroup() {Me.RibbonPageGroup1}) + Me.RibbonPage1.Name = "RibbonPage1" + Me.RibbonPage1.Text = "Start" + ' + 'RibbonPageGroup1 + ' + Me.RibbonPageGroup1.ItemLinks.Add(Me.btnSave) + Me.RibbonPageGroup1.ItemLinks.Add(Me.btnDelete) + Me.RibbonPageGroup1.Name = "RibbonPageGroup1" + Me.RibbonPageGroup1.Text = "Suche" + ' + 'RibbonStatusBar1 + ' + Me.RibbonStatusBar1.Location = New System.Drawing.Point(0, 711) + Me.RibbonStatusBar1.Name = "RibbonStatusBar1" + Me.RibbonStatusBar1.Ribbon = Me.RibbonControl1 + Me.RibbonStatusBar1.Size = New System.Drawing.Size(1049, 24) + ' + 'RibbonPage2 + ' + Me.RibbonPage2.Name = "RibbonPage2" + Me.RibbonPage2.Text = "RibbonPage2" + ' + 'GridControlSearches + ' + Me.GridControlSearches.Dock = System.Windows.Forms.DockStyle.Left + Me.GridControlSearches.Location = New System.Drawing.Point(0, 158) + Me.GridControlSearches.MainView = Me.GridViewSearches + Me.GridControlSearches.MenuManager = Me.RibbonControl1 + Me.GridControlSearches.Name = "GridControlSearches" + Me.GridControlSearches.Size = New System.Drawing.Size(324, 553) + Me.GridControlSearches.TabIndex = 2 + Me.GridControlSearches.ViewCollection.AddRange(New DevExpress.XtraGrid.Views.Base.BaseView() {Me.GridViewSearches}) + ' + 'GridViewSearches + ' + Me.GridViewSearches.Columns.AddRange(New DevExpress.XtraGrid.Columns.GridColumn() {Me.colName}) + Me.GridViewSearches.GridControl = Me.GridControlSearches + Me.GridViewSearches.Name = "GridViewSearches" + ' + 'colName + ' + Me.colName.Caption = "Name" + Me.colName.FieldName = "Name" + Me.colName.Name = "colName" + Me.colName.Visible = True + Me.colName.VisibleIndex = 0 + ' + 'SplitContainerControl1 + ' + Me.SplitContainerControl1.Collapsed = True + Me.SplitContainerControl1.CollapsePanel = DevExpress.XtraEditors.SplitCollapsePanel.Panel2 + Me.SplitContainerControl1.Dock = System.Windows.Forms.DockStyle.Fill + Me.SplitContainerControl1.Location = New System.Drawing.Point(324, 158) + Me.SplitContainerControl1.Name = "SplitContainerControl1" + ' + 'SplitContainerControl1.Panel1 + ' + Me.SplitContainerControl1.Panel1.Controls.Add(Me.LayoutControl1) + Me.SplitContainerControl1.Panel1.Text = "Panel1" + ' + 'SplitContainerControl1.Panel2 + ' + Me.SplitContainerControl1.Panel2.Text = "Panel2" + Me.SplitContainerControl1.Size = New System.Drawing.Size(725, 553) + Me.SplitContainerControl1.SplitterPosition = 529 + Me.SplitContainerControl1.TabIndex = 3 + ' + 'LayoutControl1 + ' + Me.LayoutControl1.Controls.Add(Me.peSearchImage) + Me.LayoutControl1.Controls.Add(Me.txtDescription) + Me.LayoutControl1.Controls.Add(Me.txtTitle) + Me.LayoutControl1.Controls.Add(Me.cmbImages) + Me.LayoutControl1.Dock = System.Windows.Forms.DockStyle.Fill + Me.LayoutControl1.Location = New System.Drawing.Point(0, 0) + Me.LayoutControl1.Name = "LayoutControl1" + Me.LayoutControl1.Root = Me.Root + Me.LayoutControl1.Size = New System.Drawing.Size(715, 553) + Me.LayoutControl1.TabIndex = 0 + Me.LayoutControl1.Text = "LayoutControl1" + ' + 'peSearchImage + ' + Me.peSearchImage.Location = New System.Drawing.Point(570, 12) + Me.peSearchImage.MenuManager = Me.RibbonControl1 + Me.peSearchImage.Name = "peSearchImage" + Me.peSearchImage.Properties.ShowCameraMenuItem = DevExpress.XtraEditors.Controls.CameraMenuItemVisibility.[Auto] + Me.peSearchImage.Size = New System.Drawing.Size(133, 126) + Me.peSearchImage.StyleController = Me.LayoutControl1 + Me.peSearchImage.TabIndex = 4 + ' + 'txtDescription + ' + Me.txtDescription.Location = New System.Drawing.Point(102, 60) + Me.txtDescription.MenuManager = Me.RibbonControl1 + Me.txtDescription.Name = "txtDescription" + Me.txtDescription.Size = New System.Drawing.Size(456, 20) + Me.txtDescription.StyleController = Me.LayoutControl1 + Me.txtDescription.TabIndex = 5 + ' + 'txtTitle + ' + Me.txtTitle.Location = New System.Drawing.Point(102, 20) + Me.txtTitle.MenuManager = Me.RibbonControl1 + Me.txtTitle.Name = "txtTitle" + Me.txtTitle.Size = New System.Drawing.Size(456, 20) + Me.txtTitle.StyleController = Me.LayoutControl1 + Me.txtTitle.TabIndex = 6 + ' + 'cmbImages + ' + Me.cmbImages.Location = New System.Drawing.Point(102, 100) + Me.cmbImages.MenuManager = Me.RibbonControl1 + Me.cmbImages.Name = "cmbImages" + Me.cmbImages.Properties.Buttons.AddRange(New DevExpress.XtraEditors.Controls.EditorButton() {New DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Combo)}) + Me.cmbImages.Size = New System.Drawing.Size(456, 20) + Me.cmbImages.StyleController = Me.LayoutControl1 + Me.cmbImages.TabIndex = 7 + ' + 'Root + ' + Me.Root.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.[True] + Me.Root.GroupBordersVisible = False + Me.Root.Items.AddRange(New DevExpress.XtraLayout.BaseLayoutItem() {Me.LayoutControlItem2, Me.LayoutControlItem3, Me.EmptySpaceItem1, Me.LayoutControlItem4, Me.LayoutControlItem1, Me.EmptySpaceItem2}) + Me.Root.Name = "Root" + Me.Root.Size = New System.Drawing.Size(715, 553) + Me.Root.TextVisible = False + ' + 'LayoutControlItem2 + ' + Me.LayoutControlItem2.Control = Me.txtDescription + 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(558, 40) + Me.LayoutControlItem2.Text = "Beschreibung" + Me.LayoutControlItem2.TextSize = New System.Drawing.Size(70, 13) + ' + 'LayoutControlItem3 + ' + Me.LayoutControlItem3.Control = Me.txtTitle + Me.LayoutControlItem3.Location = New System.Drawing.Point(0, 0) + Me.LayoutControlItem3.Name = "LayoutControlItem3" + Me.LayoutControlItem3.Padding = New DevExpress.XtraLayout.Utils.Padding(10, 10, 10, 10) + Me.LayoutControlItem3.Size = New System.Drawing.Size(558, 40) + Me.LayoutControlItem3.Text = "Name" + Me.LayoutControlItem3.TextSize = New System.Drawing.Size(70, 13) + ' + 'EmptySpaceItem1 + ' + Me.EmptySpaceItem1.AllowHotTrack = False + Me.EmptySpaceItem1.Location = New System.Drawing.Point(0, 120) + Me.EmptySpaceItem1.Name = "EmptySpaceItem1" + Me.EmptySpaceItem1.Size = New System.Drawing.Size(558, 10) + Me.EmptySpaceItem1.TextSize = New System.Drawing.Size(0, 0) + ' + 'LayoutControlItem4 + ' + Me.LayoutControlItem4.Control = Me.cmbImages + Me.LayoutControlItem4.Location = New System.Drawing.Point(0, 80) + Me.LayoutControlItem4.Name = "LayoutControlItem4" + Me.LayoutControlItem4.Padding = New DevExpress.XtraLayout.Utils.Padding(10, 10, 10, 10) + Me.LayoutControlItem4.Size = New System.Drawing.Size(558, 40) + Me.LayoutControlItem4.Text = "Icon" + Me.LayoutControlItem4.TextSize = New System.Drawing.Size(70, 13) + ' + 'LayoutControlItem1 + ' + Me.LayoutControlItem1.Control = Me.peSearchImage + Me.LayoutControlItem1.Location = New System.Drawing.Point(558, 0) + Me.LayoutControlItem1.Name = "LayoutControlItem1" + Me.LayoutControlItem1.Size = New System.Drawing.Size(137, 130) + Me.LayoutControlItem1.TextSize = New System.Drawing.Size(0, 0) + Me.LayoutControlItem1.TextVisible = False + ' + 'EmptySpaceItem2 + ' + Me.EmptySpaceItem2.AllowHotTrack = False + Me.EmptySpaceItem2.Location = New System.Drawing.Point(0, 130) + Me.EmptySpaceItem2.Name = "EmptySpaceItem2" + Me.EmptySpaceItem2.Size = New System.Drawing.Size(695, 403) + Me.EmptySpaceItem2.TextSize = New System.Drawing.Size(0, 0) + ' + 'frmListSearches + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.ClientSize = New System.Drawing.Size(1049, 735) + Me.Controls.Add(Me.SplitContainerControl1) + Me.Controls.Add(Me.GridControlSearches) + Me.Controls.Add(Me.RibbonStatusBar1) + Me.Controls.Add(Me.RibbonControl1) + Me.Name = "frmListSearches" + Me.Ribbon = Me.RibbonControl1 + Me.StatusBar = Me.RibbonStatusBar1 + Me.Text = "frmListSearches" + CType(Me.RibbonControl1, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.GridControlSearches, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.GridViewSearches, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.SplitContainerControl1.Panel1, System.ComponentModel.ISupportInitialize).EndInit() + Me.SplitContainerControl1.Panel1.ResumeLayout(False) + CType(Me.SplitContainerControl1.Panel2, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.SplitContainerControl1, System.ComponentModel.ISupportInitialize).EndInit() + Me.SplitContainerControl1.ResumeLayout(False) + CType(Me.LayoutControl1, System.ComponentModel.ISupportInitialize).EndInit() + Me.LayoutControl1.ResumeLayout(False) + CType(Me.peSearchImage.Properties, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.txtDescription.Properties, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.txtTitle.Properties, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.cmbImages.Properties, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.Root, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.LayoutControlItem2, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.LayoutControlItem3, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.EmptySpaceItem1, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.LayoutControlItem4, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.LayoutControlItem1, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.EmptySpaceItem2, 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 GridControlSearches As DevExpress.XtraGrid.GridControl + Friend WithEvents GridViewSearches As DevExpress.XtraGrid.Views.Grid.GridView + Friend WithEvents SplitContainerControl1 As DevExpress.XtraEditors.SplitContainerControl + Friend WithEvents LayoutControl1 As DevExpress.XtraLayout.LayoutControl + Friend WithEvents Root As DevExpress.XtraLayout.LayoutControlGroup + Friend WithEvents colName As DevExpress.XtraGrid.Columns.GridColumn + Friend WithEvents peSearchImage As DevExpress.XtraEditors.PictureEdit + Friend WithEvents txtDescription As DevExpress.XtraEditors.TextEdit + Friend WithEvents txtTitle As DevExpress.XtraEditors.TextEdit + Friend WithEvents LayoutControlItem1 As DevExpress.XtraLayout.LayoutControlItem + Friend WithEvents LayoutControlItem2 As DevExpress.XtraLayout.LayoutControlItem + Friend WithEvents LayoutControlItem3 As DevExpress.XtraLayout.LayoutControlItem + Friend WithEvents EmptySpaceItem1 As DevExpress.XtraLayout.EmptySpaceItem + Friend WithEvents EmptySpaceItem2 As DevExpress.XtraLayout.EmptySpaceItem + Friend WithEvents LayoutControlItem4 As DevExpress.XtraLayout.LayoutControlItem + Friend WithEvents cmbImages As DevExpress.XtraEditors.ImageComboBoxEdit + Friend WithEvents btnSave As DevExpress.XtraBars.BarButtonItem + Friend WithEvents btnDelete As DevExpress.XtraBars.BarButtonItem +End Class diff --git a/ZooFlow/Search/frmListSearches.resx b/ZooFlow/Search/frmListSearches.resx new file mode 100644 index 0000000..1af7de1 --- /dev/null +++ b/ZooFlow/Search/frmListSearches.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + \ No newline at end of file diff --git a/ZooFlow/Search/frmListSearches.vb b/ZooFlow/Search/frmListSearches.vb new file mode 100644 index 0000000..b212281 --- /dev/null +++ b/ZooFlow/Search/frmListSearches.vb @@ -0,0 +1,74 @@ +Imports DevExpress.Utils +Imports DevExpress.Utils.Svg +Imports DevExpress.XtraGrid +Imports DigitalData.GUIs.ZooFlow.Search +Imports DigitalData.Modules.Database +Imports DigitalData.Modules.Logging + +Public Class frmListSearches + Private ReadOnly LogConfig As LogConfig + Private ReadOnly Logger As Logger + Private ReadOnly Database As MSSQLServer + Private SearchLoader As SearchLoader + Private Searches As List(Of SavedSearch.SavedSearch) + + Public Sub New(pLogConfig As LogConfig, pDatabase As MSSQLServer) + ' Dieser Aufruf ist für den Designer erforderlich. + InitializeComponent() + + ' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu. + LogConfig = pLogConfig + Logger = pLogConfig.GetLogger + Database = pDatabase + End Sub + + Private Sub frmListSearches_Load(sender As Object, e As EventArgs) Handles MyBase.Load + SearchLoader = New SearchLoader(My.LogConfig, My.DatabaseIDB, My.Application.User, frmSearchFlow.SvgImageCollection1) + Searches = SearchLoader.LoadCustomSearches() + GridControlSearches.DataSource = Searches + GridViewSearches.FocusedRowHandle = GridControl.InvalidRowHandle + + Dim oImages = frmEditSearch.Images + For Each oImage As SvgImageInfo In oImages.ImageInfos + Dim oItem = New DevExpress.XtraEditors.Controls.ImageComboBoxItem(oImage.Name, oImage.Bitmap) + cmbImages.Properties.Items.Add(oItem) + Next + End Sub + + Private Sub GridViewSearches_FocusedRowChanged(sender As Object, e As Views.Base.FocusedRowChangedEventArgs) Handles GridViewSearches.FocusedRowChanged + Dim oSearch As SavedSearch.CustomSearch = GridViewSearches.GetRow(GridViewSearches.FocusedRowHandle) + + If oSearch IsNot Nothing Then + txtTitle.EditValue = oSearch.Name + txtDescription.EditValue = oSearch.Description + peSearchImage.EditValue = oSearch.Image + + btnDelete.Enabled = True + btnSave.Enabled = True + Else + btnDelete.Enabled = False + btnSave.Enabled = False + End If + End Sub + + Private Sub cmbImages_SelectedValueChanged(sender As Object, e As EventArgs) Handles cmbImages.SelectedValueChanged + Dim oImage As SvgBitmap = cmbImages.EditValue + peSearchImage.EditValue = oImage.SvgImage + End Sub + + Private Sub btnSave_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles btnSave.ItemClick + Dim oSearch As SavedSearch.CustomSearch = GridViewSearches.GetRow(GridViewSearches.FocusedRowHandle) + + If oSearch IsNot Nothing Then + oSearch.Name = txtTitle.EditValue + oSearch.Description = txtDescription.EditValue + oSearch.Image = peSearchImage.EditValue + + SearchLoader.SaveSearch(oSearch) + End If + End Sub + + Private Sub btnDelete_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles btnDelete.ItemClick + + End Sub +End Class \ No newline at end of file diff --git a/ZooFlow/Search/frmSearchFlow.Designer.vb b/ZooFlow/Search/frmSearchFlow.Designer.vb index a8daaef..126af1d 100644 --- a/ZooFlow/Search/frmSearchFlow.Designer.vb +++ b/ZooFlow/Search/frmSearchFlow.Designer.vb @@ -23,19 +23,19 @@ Partial Class frmSearchFlow Private Sub InitializeComponent() Me.components = New System.ComponentModel.Container() - Dim ItemTemplate2 As DevExpress.XtraGrid.Views.Tile.ItemTemplate = New DevExpress.XtraGrid.Views.Tile.ItemTemplate() - Dim TableColumnDefinition5 As DevExpress.XtraEditors.TableLayout.TableColumnDefinition = New DevExpress.XtraEditors.TableLayout.TableColumnDefinition() - Dim TableColumnDefinition6 As DevExpress.XtraEditors.TableLayout.TableColumnDefinition = New DevExpress.XtraEditors.TableLayout.TableColumnDefinition() - Dim TileViewItemElement6 As DevExpress.XtraGrid.Views.Tile.TileViewItemElement = New DevExpress.XtraGrid.Views.Tile.TileViewItemElement() - Dim TileViewItemElement7 As DevExpress.XtraGrid.Views.Tile.TileViewItemElement = New DevExpress.XtraGrid.Views.Tile.TileViewItemElement() - Dim TableRowDefinition4 As DevExpress.XtraEditors.TableLayout.TableRowDefinition = New DevExpress.XtraEditors.TableLayout.TableRowDefinition() - Dim TableColumnDefinition7 As DevExpress.XtraEditors.TableLayout.TableColumnDefinition = New DevExpress.XtraEditors.TableLayout.TableColumnDefinition() - Dim TableColumnDefinition8 As DevExpress.XtraEditors.TableLayout.TableColumnDefinition = New DevExpress.XtraEditors.TableLayout.TableColumnDefinition() - Dim TableRowDefinition5 As DevExpress.XtraEditors.TableLayout.TableRowDefinition = New DevExpress.XtraEditors.TableLayout.TableRowDefinition() - Dim TableRowDefinition6 As DevExpress.XtraEditors.TableLayout.TableRowDefinition = New DevExpress.XtraEditors.TableLayout.TableRowDefinition() - Dim TileViewItemElement8 As DevExpress.XtraGrid.Views.Tile.TileViewItemElement = New DevExpress.XtraGrid.Views.Tile.TileViewItemElement() - Dim TileViewItemElement9 As DevExpress.XtraGrid.Views.Tile.TileViewItemElement = New DevExpress.XtraGrid.Views.Tile.TileViewItemElement() - Dim TileViewItemElement10 As DevExpress.XtraGrid.Views.Tile.TileViewItemElement = New DevExpress.XtraGrid.Views.Tile.TileViewItemElement() + Dim ItemTemplate1 As DevExpress.XtraGrid.Views.Tile.ItemTemplate = New DevExpress.XtraGrid.Views.Tile.ItemTemplate() + Dim TableColumnDefinition1 As DevExpress.XtraEditors.TableLayout.TableColumnDefinition = New DevExpress.XtraEditors.TableLayout.TableColumnDefinition() + Dim TableColumnDefinition2 As DevExpress.XtraEditors.TableLayout.TableColumnDefinition = New DevExpress.XtraEditors.TableLayout.TableColumnDefinition() + Dim TileViewItemElement1 As DevExpress.XtraGrid.Views.Tile.TileViewItemElement = New DevExpress.XtraGrid.Views.Tile.TileViewItemElement() + Dim TileViewItemElement2 As DevExpress.XtraGrid.Views.Tile.TileViewItemElement = New DevExpress.XtraGrid.Views.Tile.TileViewItemElement() + Dim TableRowDefinition1 As DevExpress.XtraEditors.TableLayout.TableRowDefinition = New DevExpress.XtraEditors.TableLayout.TableRowDefinition() + Dim TableColumnDefinition3 As DevExpress.XtraEditors.TableLayout.TableColumnDefinition = New DevExpress.XtraEditors.TableLayout.TableColumnDefinition() + Dim TableColumnDefinition4 As DevExpress.XtraEditors.TableLayout.TableColumnDefinition = New DevExpress.XtraEditors.TableLayout.TableColumnDefinition() + Dim TableRowDefinition2 As DevExpress.XtraEditors.TableLayout.TableRowDefinition = New DevExpress.XtraEditors.TableLayout.TableRowDefinition() + Dim TableRowDefinition3 As DevExpress.XtraEditors.TableLayout.TableRowDefinition = New DevExpress.XtraEditors.TableLayout.TableRowDefinition() + Dim TileViewItemElement3 As DevExpress.XtraGrid.Views.Tile.TileViewItemElement = New DevExpress.XtraGrid.Views.Tile.TileViewItemElement() + Dim TileViewItemElement4 As DevExpress.XtraGrid.Views.Tile.TileViewItemElement = New DevExpress.XtraGrid.Views.Tile.TileViewItemElement() + Dim TileViewItemElement5 As DevExpress.XtraGrid.Views.Tile.TileViewItemElement = New DevExpress.XtraGrid.Views.Tile.TileViewItemElement() Me.colName = New DevExpress.XtraGrid.Columns.TileViewColumn() Me.colImage = New DevExpress.XtraGrid.Columns.TileViewColumn() Me.colDescription = New DevExpress.XtraGrid.Columns.TileViewColumn() @@ -56,10 +56,12 @@ Partial Class frmSearchFlow Me.BarEditItem2 = New DevExpress.XtraBars.BarEditItem() Me.RepositoryItemTrackBar2 = New DevExpress.XtraEditors.Repository.RepositoryItemTrackBar() Me.BarCheckItem1 = New DevExpress.XtraBars.BarCheckItem() + Me.btnEditMySearches = New DevExpress.XtraBars.BarButtonItem() 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.RibbonPageGroup4 = 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() @@ -148,9 +150,9 @@ 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.chkGridVertical, Me.chkGridHorizontal, Me.BarEditItem1, Me.BarEditItem2, Me.BarCheckItem1}) + 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.BarCheckItem1, Me.btnEditMySearches}) Me.RibbonControl1.Location = New System.Drawing.Point(0, 0) - Me.RibbonControl1.MaxItemId = 30 + Me.RibbonControl1.MaxItemId = 31 Me.RibbonControl1.Name = "RibbonControl1" 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}) @@ -158,7 +160,7 @@ Partial Class frmSearchFlow Me.RibbonControl1.ShowDisplayOptionsMenuButton = DevExpress.Utils.DefaultBoolean.[False] Me.RibbonControl1.ShowPageHeadersMode = DevExpress.XtraBars.Ribbon.ShowPageHeadersMode.Show Me.RibbonControl1.ShowToolbarCustomizeItem = False - Me.RibbonControl1.Size = New System.Drawing.Size(954, 160) + Me.RibbonControl1.Size = New System.Drawing.Size(954, 158) Me.RibbonControl1.StatusBar = Me.RibbonStatusBar1 Me.RibbonControl1.Toolbar.ShowCustomizeItem = False ' @@ -265,7 +267,7 @@ Partial Class frmSearchFlow ' 'BarEditItem2 ' - Me.BarEditItem2.Caption = "BarEditItem2" + Me.BarEditItem2.Caption = "Spalten" Me.BarEditItem2.Edit = Me.RepositoryItemTrackBar2 Me.BarEditItem2.Id = 27 Me.BarEditItem2.Name = "BarEditItem2" @@ -284,9 +286,16 @@ Partial Class frmSearchFlow Me.BarCheckItem1.ImageOptions.SvgImage = Global.DigitalData.GUIs.ZooFlow.My.Resources.Resources.columnheaders Me.BarCheckItem1.Name = "BarCheckItem1" ' + 'btnEditMySearches + ' + Me.btnEditMySearches.Caption = "Meine Suchen bearbeiten" + Me.btnEditMySearches.Id = 30 + Me.btnEditMySearches.ImageOptions.SvgImage = Global.DigitalData.GUIs.ZooFlow.My.Resources.Resources.menu + Me.btnEditMySearches.Name = "btnEditMySearches" + ' 'RibbonPage1 ' - Me.RibbonPage1.Groups.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPageGroup() {Me.RibbonPageGroup1, Me.RibbonPageGroup2, Me.RibbonPageGroup5}) + Me.RibbonPage1.Groups.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPageGroup() {Me.RibbonPageGroup1, Me.RibbonPageGroup2, Me.RibbonPageGroup5, Me.RibbonPageGroup4}) Me.RibbonPage1.Name = "RibbonPage1" Me.RibbonPage1.Text = "Suche" ' @@ -313,6 +322,12 @@ Partial Class frmSearchFlow Me.RibbonPageGroup5.Name = "RibbonPageGroup5" Me.RibbonPageGroup5.Text = "Begriffsverknüpfung" ' + 'RibbonPageGroup4 + ' + Me.RibbonPageGroup4.ItemLinks.Add(Me.btnEditMySearches) + Me.RibbonPageGroup4.Name = "RibbonPageGroup4" + Me.RibbonPageGroup4.Text = "Meine Suchen" + ' 'RibbonPage3 ' Me.RibbonPage3.Groups.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPageGroup() {Me.RibbonPageGroup3}) @@ -337,10 +352,10 @@ Partial Class frmSearchFlow ' Me.RibbonStatusBar1.BackColor = System.Drawing.Color.Red Me.RibbonStatusBar1.ItemLinks.Add(Me.lblResults) - Me.RibbonStatusBar1.Location = New System.Drawing.Point(0, 674) + Me.RibbonStatusBar1.Location = New System.Drawing.Point(0, 672) Me.RibbonStatusBar1.Name = "RibbonStatusBar1" Me.RibbonStatusBar1.Ribbon = Me.RibbonControl1 - Me.RibbonStatusBar1.Size = New System.Drawing.Size(954, 22) + Me.RibbonStatusBar1.Size = New System.Drawing.Size(954, 24) ' 'RibbonPage2 ' @@ -351,7 +366,7 @@ Partial Class frmSearchFlow ' Me.PanelControl1.Controls.Add(Me.PanelControl2) Me.PanelControl1.Dock = System.Windows.Forms.DockStyle.Fill - Me.PanelControl1.Location = New System.Drawing.Point(0, 160) + Me.PanelControl1.Location = New System.Drawing.Point(0, 158) Me.PanelControl1.Name = "PanelControl1" Me.PanelControl1.Padding = New System.Windows.Forms.Padding(30) Me.PanelControl1.Size = New System.Drawing.Size(954, 514) @@ -427,61 +442,61 @@ Partial Class frmSearchFlow Me.ViewSearches.OptionsTiles.RowCount = 2 Me.ViewSearches.OptionsTiles.VerticalContentAlignment = DevExpress.Utils.VertAlignment.Center Me.ViewSearches.SortInfo.AddRange(New DevExpress.XtraGrid.Columns.GridColumnSortInfo() {New DevExpress.XtraGrid.Columns.GridColumnSortInfo(Me.colGroupText, DevExpress.Data.ColumnSortOrder.Ascending)}) - TableColumnDefinition5.Length.Value = 35.0R - TableColumnDefinition5.PaddingRight = 5 - TableColumnDefinition6.Length.Value = 129.0R - ItemTemplate2.Columns.Add(TableColumnDefinition5) - ItemTemplate2.Columns.Add(TableColumnDefinition6) - TileViewItemElement6.Column = Me.colName - TileViewItemElement6.ColumnIndex = 1 - TileViewItemElement6.ImageOptions.ImageAlignment = DevExpress.XtraEditors.TileItemContentAlignment.MiddleCenter - TileViewItemElement6.ImageOptions.ImageScaleMode = DevExpress.XtraEditors.TileItemImageScaleMode.Squeeze - TileViewItemElement6.Text = "colName" - TileViewItemElement6.TextAlignment = DevExpress.XtraEditors.TileItemContentAlignment.MiddleCenter - TileViewItemElement7.Column = Me.colImage - TileViewItemElement7.ImageOptions.ImageAlignment = DevExpress.XtraEditors.TileItemContentAlignment.MiddleCenter - TileViewItemElement7.ImageOptions.ImageScaleMode = DevExpress.XtraEditors.TileItemImageScaleMode.Squeeze - TileViewItemElement7.Text = "colImage" - TileViewItemElement7.TextAlignment = DevExpress.XtraEditors.TileItemContentAlignment.MiddleCenter - ItemTemplate2.Elements.Add(TileViewItemElement6) - ItemTemplate2.Elements.Add(TileViewItemElement7) - ItemTemplate2.Name = "DefaultSmall" - TableRowDefinition4.Length.Value = 43.0R - ItemTemplate2.Rows.Add(TableRowDefinition4) - Me.ViewSearches.Templates.Add(ItemTemplate2) - TableColumnDefinition7.Length.Value = 35.0R - TableColumnDefinition7.PaddingRight = 5 - TableColumnDefinition8.Length.Value = 111.0R - Me.ViewSearches.TileColumns.Add(TableColumnDefinition7) - Me.ViewSearches.TileColumns.Add(TableColumnDefinition8) - TableRowDefinition5.Length.Value = 17.0R - TableRowDefinition6.Length.Value = 45.0R - Me.ViewSearches.TileRows.Add(TableRowDefinition5) - Me.ViewSearches.TileRows.Add(TableRowDefinition6) - TileViewItemElement8.Appearance.Normal.Font = New System.Drawing.Font("Tahoma", 8.25!, System.Drawing.FontStyle.Bold) - TileViewItemElement8.Appearance.Normal.Options.UseFont = True - TileViewItemElement8.Column = Me.colName - TileViewItemElement8.ColumnIndex = 1 - TileViewItemElement8.ImageOptions.ImageAlignment = DevExpress.XtraEditors.TileItemContentAlignment.MiddleCenter - TileViewItemElement8.ImageOptions.ImageScaleMode = DevExpress.XtraEditors.TileItemImageScaleMode.Squeeze - TileViewItemElement8.Text = "colName" - TileViewItemElement8.TextAlignment = DevExpress.XtraEditors.TileItemContentAlignment.MiddleCenter - TileViewItemElement9.Column = Me.colImage - TileViewItemElement9.ImageOptions.ImageAlignment = DevExpress.XtraEditors.TileItemContentAlignment.MiddleCenter - TileViewItemElement9.ImageOptions.ImageScaleMode = DevExpress.XtraEditors.TileItemImageScaleMode.Squeeze - TileViewItemElement9.RowIndex = 1 - TileViewItemElement9.Text = "colImage" - TileViewItemElement9.TextAlignment = DevExpress.XtraEditors.TileItemContentAlignment.MiddleCenter - TileViewItemElement10.Column = Me.colDescription - TileViewItemElement10.ColumnIndex = 1 - TileViewItemElement10.ImageOptions.ImageAlignment = DevExpress.XtraEditors.TileItemContentAlignment.MiddleCenter - TileViewItemElement10.ImageOptions.ImageScaleMode = DevExpress.XtraEditors.TileItemImageScaleMode.Squeeze - TileViewItemElement10.RowIndex = 1 - TileViewItemElement10.Text = "colDescription" - TileViewItemElement10.TextAlignment = DevExpress.XtraEditors.TileItemContentAlignment.MiddleCenter - Me.ViewSearches.TileTemplate.Add(TileViewItemElement8) - Me.ViewSearches.TileTemplate.Add(TileViewItemElement9) - Me.ViewSearches.TileTemplate.Add(TileViewItemElement10) + TableColumnDefinition1.Length.Value = 35.0R + TableColumnDefinition1.PaddingRight = 5 + TableColumnDefinition2.Length.Value = 129.0R + ItemTemplate1.Columns.Add(TableColumnDefinition1) + ItemTemplate1.Columns.Add(TableColumnDefinition2) + TileViewItemElement1.Column = Me.colName + TileViewItemElement1.ColumnIndex = 1 + TileViewItemElement1.ImageOptions.ImageAlignment = DevExpress.XtraEditors.TileItemContentAlignment.MiddleCenter + TileViewItemElement1.ImageOptions.ImageScaleMode = DevExpress.XtraEditors.TileItemImageScaleMode.Squeeze + TileViewItemElement1.Text = "colName" + TileViewItemElement1.TextAlignment = DevExpress.XtraEditors.TileItemContentAlignment.MiddleCenter + TileViewItemElement2.Column = Me.colImage + TileViewItemElement2.ImageOptions.ImageAlignment = DevExpress.XtraEditors.TileItemContentAlignment.MiddleCenter + TileViewItemElement2.ImageOptions.ImageScaleMode = DevExpress.XtraEditors.TileItemImageScaleMode.Squeeze + TileViewItemElement2.Text = "colImage" + TileViewItemElement2.TextAlignment = DevExpress.XtraEditors.TileItemContentAlignment.MiddleCenter + ItemTemplate1.Elements.Add(TileViewItemElement1) + ItemTemplate1.Elements.Add(TileViewItemElement2) + ItemTemplate1.Name = "DefaultSmall" + TableRowDefinition1.Length.Value = 43.0R + ItemTemplate1.Rows.Add(TableRowDefinition1) + Me.ViewSearches.Templates.Add(ItemTemplate1) + TableColumnDefinition3.Length.Value = 35.0R + TableColumnDefinition3.PaddingRight = 5 + 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) + TileViewItemElement3.Appearance.Normal.Options.UseFont = True + TileViewItemElement3.Column = Me.colName + TileViewItemElement3.ColumnIndex = 1 + TileViewItemElement3.ImageOptions.ImageAlignment = DevExpress.XtraEditors.TileItemContentAlignment.MiddleCenter + TileViewItemElement3.ImageOptions.ImageScaleMode = DevExpress.XtraEditors.TileItemImageScaleMode.Squeeze + TileViewItemElement3.Text = "colName" + TileViewItemElement3.TextAlignment = DevExpress.XtraEditors.TileItemContentAlignment.MiddleCenter + TileViewItemElement4.Column = Me.colImage + TileViewItemElement4.ImageOptions.ImageAlignment = DevExpress.XtraEditors.TileItemContentAlignment.MiddleCenter + TileViewItemElement4.ImageOptions.ImageScaleMode = DevExpress.XtraEditors.TileItemImageScaleMode.Squeeze + TileViewItemElement4.RowIndex = 1 + TileViewItemElement4.Text = "colImage" + TileViewItemElement4.TextAlignment = DevExpress.XtraEditors.TileItemContentAlignment.MiddleCenter + TileViewItemElement5.Column = Me.colDescription + TileViewItemElement5.ColumnIndex = 1 + TileViewItemElement5.ImageOptions.ImageAlignment = DevExpress.XtraEditors.TileItemContentAlignment.MiddleCenter + TileViewItemElement5.ImageOptions.ImageScaleMode = DevExpress.XtraEditors.TileItemImageScaleMode.Squeeze + TileViewItemElement5.RowIndex = 1 + TileViewItemElement5.Text = "colDescription" + TileViewItemElement5.TextAlignment = DevExpress.XtraEditors.TileItemContentAlignment.MiddleCenter + Me.ViewSearches.TileTemplate.Add(TileViewItemElement3) + Me.ViewSearches.TileTemplate.Add(TileViewItemElement4) + Me.ViewSearches.TileTemplate.Add(TileViewItemElement5) ' 'colGroupText ' @@ -756,4 +771,6 @@ Partial Class frmSearchFlow Friend WithEvents RepositoryItemTrackBar2 As DevExpress.XtraEditors.Repository.RepositoryItemTrackBar Friend WithEvents BarCheckItem1 As DevExpress.XtraBars.BarCheckItem Friend WithEvents colSelected As DevExpress.XtraGrid.Columns.TileViewColumn + Friend WithEvents btnEditMySearches As DevExpress.XtraBars.BarButtonItem + Friend WithEvents RibbonPageGroup4 As DevExpress.XtraBars.Ribbon.RibbonPageGroup End Class diff --git a/ZooFlow/Search/frmSearchFlow.vb b/ZooFlow/Search/frmSearchFlow.vb index e50fc69..c7a2e80 100644 --- a/ZooFlow/Search/frmSearchFlow.vb +++ b/ZooFlow/Search/frmSearchFlow.vb @@ -116,12 +116,12 @@ Public Class frmSearchFlow Private Function LoadDateAttributes() As List(Of String) 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() + 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) @@ -400,4 +400,9 @@ Public Class frmSearchFlow e.Handled = False End If End Sub + + Private Sub btnEditMySearches_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles btnEditMySearches.ItemClick + Dim oForm As New frmListSearches(LogConfig, My.DatabaseIDB) + oForm.ShowDialog() + End Sub End Class \ No newline at end of file diff --git a/ZooFlow/ZooFlow.vbproj b/ZooFlow/ZooFlow.vbproj index 5112855..a892097 100644 --- a/ZooFlow/ZooFlow.vbproj +++ b/ZooFlow/ZooFlow.vbproj @@ -427,6 +427,12 @@ Form + + frmListSearches.vb + + + Form + @@ -625,6 +631,9 @@ frmEditSearch.vb + + frmListSearches.vb + frmFlowSearch.vb @@ -812,7 +821,6 @@ - @@ -1143,6 +1151,10 @@ PreserveNewest + + + +