Zooflow: Update clipboard watcher module for zooflow

This commit is contained in:
Jonathan Jenne 2021-12-17 10:25:39 +01:00
parent cb00685085
commit 59d36568ed
16 changed files with 157 additions and 1196 deletions

View File

@ -1,211 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{B7D465A2-AE31-4CDF-A8B2-34B42D3EA84E}</ProjectGuid>
<OutputType>Library</OutputType>
<RootNamespace>DigitalData.GUIs.ClipboardWatcher</RootNamespace>
<AssemblyName>DigitalData.GUIs.ClipboardWatcher</AssemblyName>
<FileAlignment>512</FileAlignment>
<MyType>Windows</MyType>
<TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<DefineDebug>true</DefineDebug>
<DefineTrace>true</DefineTrace>
<OutputPath>bin\Debug\</OutputPath>
<DocumentationFile>DigitalData.GUIs.ClipboardWatcher.xml</DocumentationFile>
<NoWarn>42016,41999,42017,42018,42019,42032,42036,42020,42021,42022</NoWarn>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<DefineDebug>false</DefineDebug>
<DefineTrace>true</DefineTrace>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DocumentationFile>DigitalData.GUIs.ClipboardWatcher.xml</DocumentationFile>
<NoWarn>42016,41999,42017,42018,42019,42032,42036,42020,42021,42022</NoWarn>
</PropertyGroup>
<PropertyGroup>
<OptionExplicit>On</OptionExplicit>
</PropertyGroup>
<PropertyGroup>
<OptionCompare>Binary</OptionCompare>
</PropertyGroup>
<PropertyGroup>
<OptionStrict>Off</OptionStrict>
</PropertyGroup>
<PropertyGroup>
<OptionInfer>On</OptionInfer>
</PropertyGroup>
<ItemGroup>
<Reference Include="DevExpress.Data.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
</Reference>
<Reference Include="DevExpress.Printing.v19.2.Core, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.Utils.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
</Reference>
<Reference Include="DevExpress.XtraBars.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<Reference Include="DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
</Reference>
<Reference Include="DigitalData.Modules.EDMI.API, Version=0.0.0.2, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\Modules.EDMIAPI\bin\Debug\DigitalData.Modules.EDMI.API.dll</HintPath>
</Reference>
<Reference Include="Microsoft.CSharp" />
<Reference Include="NLog, Version=4.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
<HintPath>..\packages\NLog.4.7.10\lib\net45\NLog.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.Configuration" />
<Reference Include="System.Data" />
<Reference Include="System.Drawing" />
<Reference Include="System.IO.Compression" />
<Reference Include="System.Runtime.Serialization" />
<Reference Include="System.ServiceModel" />
<Reference Include="System.Transactions" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml" />
<Reference Include="System.Core" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="System.Net.Http" />
</ItemGroup>
<ItemGroup>
<Import Include="Microsoft.VisualBasic" />
<Import Include="System" />
<Import Include="System.Collections" />
<Import Include="System.Collections.Generic" />
<Import Include="System.Data" />
<Import Include="System.Diagnostics" />
<Import Include="System.Linq" />
<Import Include="System.Xml.Linq" />
<Import Include="System.Threading.Tasks" />
</ItemGroup>
<ItemGroup>
<Compile Include="frmMatch.Designer.vb">
<DependentUpon>frmMatch.vb</DependentUpon>
</Compile>
<Compile Include="frmMatch.vb">
<SubType>Form</SubType>
</Compile>
<Compile Include="frmTreeView.Designer.vb">
<DependentUpon>frmTreeView.vb</DependentUpon>
</Compile>
<Compile Include="frmTreeView.vb">
<SubType>Form</SubType>
</Compile>
<Compile Include="My Project\AssemblyInfo.vb" />
<Compile Include="My Project\Application.Designer.vb">
<AutoGen>True</AutoGen>
<DependentUpon>Application.myapp</DependentUpon>
</Compile>
<Compile Include="My Project\Resources.Designer.vb">
<AutoGen>True</AutoGen>
<DesignTime>True</DesignTime>
<DependentUpon>Resources.resx</DependentUpon>
</Compile>
<Compile Include="My Project\Settings.Designer.vb">
<AutoGen>True</AutoGen>
<DependentUpon>Settings.settings</DependentUpon>
<DesignTimeSharedInput>True</DesignTimeSharedInput>
</Compile>
<Compile Include="ProfileFilter.vb" />
<Compile Include="ProfileMatch.vb" />
<Compile Include="ProfileSearches.vb" />
<Compile Include="ProfileUtils.vb" />
<Compile Include="frmMatchLoading.Designer.vb">
<DependentUpon>frmMatchLoading.vb</DependentUpon>
</Compile>
<Compile Include="frmMatchLoading.vb">
<SubType>Form</SubType>
</Compile>
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="frmMatch.en-US.resx">
<DependentUpon>frmMatch.vb</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="frmMatch.fr-FR.resx">
<DependentUpon>frmMatch.vb</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="frmMatch.resx">
<DependentUpon>frmMatch.vb</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="frmMatchLoading.en-US.resx">
<DependentUpon>frmMatchLoading.vb</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="frmMatchLoading.fr-FR.resx">
<DependentUpon>frmMatchLoading.vb</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="frmTreeView.fr-FR.resx">
<DependentUpon>frmTreeView.vb</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="frmTreeView.resx">
<DependentUpon>frmTreeView.vb</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="My Project\licenses.licx" />
<EmbeddedResource Include="My Project\Resources.resx">
<Generator>VbMyResourcesResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.Designer.vb</LastGenOutput>
<CustomToolNamespace>My.Resources</CustomToolNamespace>
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="frmMatchLoading.resx">
<DependentUpon>frmMatchLoading.vb</DependentUpon>
</EmbeddedResource>
</ItemGroup>
<ItemGroup>
<None Include="app.config" />
<None Include="My Project\Application.myapp">
<Generator>MyApplicationCodeGenerator</Generator>
<LastGenOutput>Application.Designer.vb</LastGenOutput>
</None>
<None Include="My Project\Settings.settings">
<Generator>SettingsSingleFileGenerator</Generator>
<CustomToolNamespace>My</CustomToolNamespace>
<LastGenOutput>Settings.Designer.vb</LastGenOutput>
</None>
<None Include="packages.config" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\GUIs.Common\Common.vbproj">
<Project>{D20A6BF2-C7C6-4A7A-B34D-FA27D775A049}</Project>
<Name>Common</Name>
</ProjectReference>
<ProjectReference Include="..\Modules.Database\Database.vbproj">
<Project>{EAF0EA75-5FA7-485D-89C7-B2D843B03A96}</Project>
<Name>Database</Name>
</ProjectReference>
<ProjectReference Include="..\Modules.EDMIAPI\EDMI.API.vbproj">
<Project>{25017513-0d97-49d3-98d7-ba76d9b251b0}</Project>
<Name>EDMI.API</Name>
</ProjectReference>
<ProjectReference Include="..\Modules.Language\Language.vbproj">
<Project>{d3c8cfed-d6f6-43a8-9bdf-454145d0352f}</Project>
<Name>Language</Name>
</ProjectReference>
<ProjectReference Include="..\Modules.Logging\Logging.vbproj">
<Project>{903b2d7d-3b80-4be9-8713-7447b704e1b0}</Project>
<Name>Logging</Name>
</ProjectReference>
<ProjectReference Include="..\Modules.Patterns\Patterns.vbproj">
<Project>{7c3b0c7e-59fe-4e1a-a655-27ae119f9444}</Project>
<Name>Patterns</Name>
</ProjectReference>
<ProjectReference Include="..\Modules.ZooFlow\ZooFlow.vbproj">
<Project>{81cac44f-3711-4c8f-ae98-e02a7448782a}</Project>
<Name>ZooFlow</Name>
</ProjectReference>
<ProjectReference Include="..\Windows\Windows.vbproj">
<Project>{5efaef9b-90b9-4f05-9f70-f79ad77fff86}</Project>
<Name>Windows</Name>
</ProjectReference>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.VisualBasic.targets" />
</Project>

View File

@ -0,0 +1 @@
DevExpress.XtraEditors.TileControl, DevExpress.XtraEditors.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a

View File

@ -1,270 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="&gt;&gt;Label1.ZOrder" xml:space="preserve">
<value>2</value>
</data>
<assembly alias="mscorlib" name="mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="TileControlMatch.TabIndex" type="System.Int32, mscorlib">
<value>0</value>
</data>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="$this.AutoScaleDimensions" type="System.Drawing.SizeF, System.Drawing">
<value>6, 13</value>
</data>
<data name="&gt;&gt;TileControlMatch.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="Label2.Location" type="System.Drawing.Point, System.Drawing">
<value>0, 420</value>
</data>
<data name="&gt;&gt;Label1.Name" xml:space="preserve">
<value>Label1</value>
</data>
<data name="&gt;&gt;TileControlMatch.Type" xml:space="preserve">
<value>DevExpress.XtraEditors.TileControl, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="Label2.Size" type="System.Drawing.Size, System.Drawing">
<value>800, 30</value>
</data>
<data name="&gt;&gt;SplashScreenManager1.Name" xml:space="preserve">
<value>SplashScreenManager1</value>
</data>
<data name="Label1.Size" type="System.Drawing.Size, System.Drawing">
<value>800, 38</value>
</data>
<data name="&gt;&gt;$this.Type" xml:space="preserve">
<value>DevExpress.XtraEditors.XtraForm, DevExpress.Utils.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="TileControlMatch.AppearanceGroupText.Font" type="System.Drawing.Font, System.Drawing">
<value>Segoe UI, 12pt</value>
</data>
<data name="Label1.Location" type="System.Drawing.Point, System.Drawing">
<value>0, 0</value>
</data>
<data name="TileControlMatch.Text" xml:space="preserve">
<value>TileControl1</value>
</data>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="TileControlMatch.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Fill</value>
</data>
<data name="TileGroupData.Text" xml:space="preserve">
<value>Daten</value>
</data>
<data name="Label1.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Top</value>
</data>
<data name="&gt;&gt;Label2.Type" xml:space="preserve">
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="TileControlMatch.Location" type="System.Drawing.Point, System.Drawing">
<value>0, 38</value>
</data>
<data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing">
<value>800, 450</value>
</data>
<data name="Label1.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>5, 5, 5, 5</value>
</data>
<data name="&gt;&gt;Label1.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;Label2.Name" xml:space="preserve">
<value>Label2</value>
</data>
<data name="&gt;&gt;TileGroupDocumentsData.Type" xml:space="preserve">
<value>DevExpress.XtraEditors.TileGroup, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="Label2.Font" type="System.Drawing.Font, System.Drawing">
<value>Segoe UI, 9.75pt</value>
</data>
<data name="Label1.Font" type="System.Drawing.Font, System.Drawing">
<value>Segoe UI Semibold, 12pt, style=Bold</value>
</data>
<data name="&gt;&gt;TileGroupDocumentsData.Name" xml:space="preserve">
<value>TileGroupDocumentsData</value>
</data>
<data name="Label2.Text" xml:space="preserve">
<value>Wie wurden die Profile gefunden?</value>
</data>
<data name="&gt;&gt;$this.Name" xml:space="preserve">
<value>frmMatch</value>
</data>
<data name="&gt;&gt;Label1.Type" xml:space="preserve">
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;SplashScreenManager1.Type" xml:space="preserve">
<value>DevExpress.XtraSplashScreen.SplashScreenManager, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="Label1.Text" xml:space="preserve">
<value>Es wurde(n) {0} in {1} für Ihre Suche nach '{2}' gefunden:</value>
</data>
<data name="&gt;&gt;TileGroupDocuments.Name" xml:space="preserve">
<value>TileGroupDocuments</value>
</data>
<data name="Label2.TabIndex" type="System.Int32, mscorlib">
<value>3</value>
</data>
<data name="TileGroupDocuments.Text" xml:space="preserve">
<value>Dokumente</value>
</data>
<data name="TileControlMatch.Size" type="System.Drawing.Size, System.Drawing">
<value>800, 382</value>
</data>
<data name="&gt;&gt;Label2.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="Label2.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>5, 5, 5, 5</value>
</data>
<data name="&gt;&gt;TileControlMatch.Name" xml:space="preserve">
<value>TileControlMatch</value>
</data>
<data name="&gt;&gt;Label2.ZOrder" xml:space="preserve">
<value>1</value>
</data>
<data name="&gt;&gt;TileControlMatch.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="&gt;&gt;TileGroupData.Name" xml:space="preserve">
<value>TileGroupData</value>
</data>
<data name="TileGroupDocumentsData.Text" xml:space="preserve">
<value>Kombiniert</value>
</data>
<data name="&gt;&gt;TileGroupDocuments.Type" xml:space="preserve">
<value>DevExpress.XtraEditors.TileGroup, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="Label1.TabIndex" type="System.Int32, mscorlib">
<value>1</value>
</data>
<data name="$this.Text" xml:space="preserve">
<value>Clipboard Watcher - Profile gefunden</value>
</data>
<data name="Label2.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Bottom</value>
</data>
<data name="&gt;&gt;TileGroupData.Type" xml:space="preserve">
<value>DevExpress.XtraEditors.TileGroup, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
</root>

View File

@ -27,18 +27,18 @@ Imports System.Globalization
''' - Clipboard Content as String ''' - Clipboard Content as String
''' </summary> ''' </summary>
Public Class frmMatch Public Class frmMatch
Private _LogConfig As LogConfig Private ReadOnly _LogConfig As LogConfig
Private _Logger As Logger Private ReadOnly _Logger As Logger
Private _Environment As Environment Private ReadOnly _Environment As Environment
Private _Params As ClipboardWatcherParams Private ReadOnly _Params As ClipboardWatcherParams
Private _Language As String Private ReadOnly _Language As String
Private PrimaryFont As New Font("Segoe UI", 12, FontStyle.Bold) Private ReadOnly PrimaryFont As New Font("Segoe UI", 12, FontStyle.Bold)
Private SecondaryFont As New Font("Segoe UI", 10) Private ReadOnly SecondaryFont As New Font("Segoe UI", 10)
Private TileForeColor As Color = Color.Black Private ReadOnly TileForeColor As Color = Color.Black
Private TileBackColor As Color = Color.FromArgb(255, 214, 47) Private ReadOnly TileBackColor As Color = Color.FromArgb(255, 214, 47)
Private OpenForms As New List(Of IResultForm) Private ReadOnly OpenForms As New List(Of IResultForm)
Private ShouldHideInitially As Boolean = False Private ShouldHideInitially As Boolean = False
Private Const NO_COUNT_SQL As Integer = 99998 Private Const NO_COUNT_SQL As Integer = 99998
@ -60,7 +60,7 @@ Public Class frmMatch
_Environment = Environment _Environment = Environment
_Params = Params _Params = Params
_Language = Language.Utils.NotNull(_Environment.User.Language, State.UserState.LANG_EN_US) _Language = Utils.NotNull(_Environment.User.Language, State.UserState.LANG_EN_US)
Thread.CurrentThread.CurrentUICulture = New CultureInfo(_Language) Thread.CurrentThread.CurrentUICulture = New CultureInfo(_Language)
End Sub End Sub
@ -144,13 +144,16 @@ Public Class frmMatch
OpenDocumentResults(oProfile, oSearches) OpenDocumentResults(oProfile, oSearches)
_Logger.Debug($"OpenDocumentResults finished") _Logger.Debug($"OpenDocumentResults finished")
Hide() Hide()
ElseIf oProfile.CountDocs > 0 And oProfile.CountData > 0 Then ElseIf oProfile.CountDocs > 0 And oProfile.CountData > 0 Then
_Logger.Debug($"Docs AND Data") _Logger.Debug($"Docs AND Data")
ElseIf oProfile.CountDocs = 0 And oProfile.CountData > 0 Then ElseIf oProfile.CountDocs = 0 And oProfile.CountData > 0 Then
_Logger.Debug($"ONLY Data") _Logger.Debug($"ONLY Data")
Dim oSearches = Await oProfileSearch.LoadDataSearchesAsync(oProfile.Guid) Dim oSearches = Await oProfileSearch.LoadDataSearchesAsync(oProfile.Guid)
OpenDataResults(oProfile, oSearches) OpenDataResults(oProfile, oSearches)
Hide() Hide()
End If End If
End If End If
Catch ex As Exception Catch ex As Exception

View File

@ -1,237 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="&gt;&gt;progressPanel1.Parent" xml:space="preserve">
<value>tableLayoutPanel1</value>
</data>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="tableLayoutPanel1.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>0, 14, 0, 14</value>
</data>
<assembly alias="mscorlib" name="mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="$this.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="$this.AutoSizeMode" type="System.Windows.Forms.AutoSizeMode, System.Windows.Forms">
<value>GrowAndShrink</value>
</data>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="$this.AutoScaleDimensions" type="System.Drawing.SizeF, System.Drawing">
<value>6, 13</value>
</data>
<data name="progressPanel1.Size" type="System.Drawing.Size, System.Drawing">
<value>246, 39</value>
</data>
<data name="progressPanel1.Text" xml:space="preserve">
<value>progressPanel1</value>
</data>
<data name="$this.Text" xml:space="preserve">
<value>Form1</value>
</data>
<data name="&gt;&gt;$this.Type" xml:space="preserve">
<value>DevExpress.XtraWaitForm.WaitForm, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="tableLayoutPanel1.Size" type="System.Drawing.Size, System.Drawing">
<value>246, 73</value>
</data>
<data name="&gt;&gt;$this.Name" xml:space="preserve">
<value>frmMatchLoading</value>
</data>
<data name="tableLayoutPanel1.TabIndex" type="System.Int32, mscorlib">
<value>1</value>
</data>
<data name="progressPanel1.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>0, 3, 0, 3</value>
</data>
<data name="progressPanel1.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Fill</value>
</data>
<data name="tableLayoutPanel1.ColumnCount" type="System.Int32, mscorlib">
<value>1</value>
</data>
<data name="tableLayoutPanel1.LayoutSettings" type="System.Windows.Forms.TableLayoutSettings, System.Windows.Forms">
<value>&lt;?xml version="1.0" encoding="utf-16"?&gt;&lt;TableLayoutSettings&gt;&lt;Controls&gt;&lt;Control Name="progressPanel1" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /&gt;&lt;/Controls&gt;&lt;Columns Styles="Percent,100" /&gt;&lt;Rows Styles="Percent,100" /&gt;&lt;/TableLayoutSettings&gt;</value>
</data>
<data name="&gt;&gt;tableLayoutPanel1.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing">
<value>246, 73</value>
</data>
<data name="$this.StartPosition" type="System.Windows.Forms.FormStartPosition, System.Windows.Forms">
<value>Manual</value>
</data>
<data name="progressPanel1.Location" type="System.Drawing.Point, System.Drawing">
<value>0, 17</value>
</data>
<data name="progressPanel1.Caption" xml:space="preserve">
<value>Bitte warten</value>
</data>
<data name="tableLayoutPanel1.Location" type="System.Drawing.Point, System.Drawing">
<value>0, 0</value>
</data>
<data name="tableLayoutPanel1.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="tableLayoutPanel1.AutoSizeMode" type="System.Windows.Forms.AutoSizeMode, System.Windows.Forms">
<value>GrowAndShrink</value>
</data>
<data name="&gt;&gt;progressPanel1.Name" xml:space="preserve">
<value>progressPanel1</value>
</data>
<data name="progressPanel1.TabIndex" type="System.Int32, mscorlib">
<value>0</value>
</data>
<data name="&gt;&gt;progressPanel1.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="&gt;&gt;tableLayoutPanel1.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="progressPanel1.Description" xml:space="preserve">
<value>Ergebnisse werden geladen...</value>
</data>
<data name="&gt;&gt;progressPanel1.Type" xml:space="preserve">
<value>DevExpress.XtraWaitForm.ProgressPanel, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="resource.Font1" type="System.Drawing.Font, System.Drawing">
<value>Microsoft Sans Serif, 8.25pt</value>
</data>
<data name="&gt;&gt;tableLayoutPanel1.Type" xml:space="preserve">
<value>System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="tableLayoutPanel1.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Fill</value>
</data>
<data name="tableLayoutPanel1.RowCount" type="System.Int32, mscorlib">
<value>1</value>
</data>
<data name="resource.Font" type="System.Drawing.Font, System.Drawing">
<value>Microsoft Sans Serif, 12pt</value>
</data>
<data name="&gt;&gt;tableLayoutPanel1.Name" xml:space="preserve">
<value>tableLayoutPanel1</value>
</data>
<metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="$this.Language" type="System.Globalization.CultureInfo, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>fr-FR</value>
</metadata>
</root>

View File

@ -1,275 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="tvProfileMatch.Size" type="System.Drawing.Size, System.Drawing">
<value>800, 450</value>
</data>
<assembly alias="mscorlib" name="mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="tvProfileMatch.SelectedImageIndex" type="System.Int32, mscorlib">
<value>0</value>
</data>
<data name="&gt;&gt;tvProfileMatch.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;tvProfileMatch.Type" xml:space="preserve">
<value>System.Windows.Forms.TreeView, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;$this.Type" xml:space="preserve">
<value>DevExpress.XtraEditors.XtraForm, DevExpress.Utils.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing">
<value>800, 450</value>
</data>
<data name="tvProfileMatch.ImageIndex" type="System.Int32, mscorlib">
<value>0</value>
</data>
<data name="$this.AutoScaleDimensions" type="System.Drawing.SizeF, System.Drawing">
<value>6, 13</value>
</data>
<data name="&gt;&gt;ImageList1.Name" xml:space="preserve">
<value>ImageList1</value>
</data>
<data name="&gt;&gt;tvProfileMatch.Name" xml:space="preserve">
<value>tvProfileMatch</value>
</data>
<data name="$this.Text" xml:space="preserve">
<value>Profilsuchen Algorithmus</value>
</data>
<data name="tvProfileMatch.TabIndex" type="System.Int32, mscorlib">
<value>0</value>
</data>
<data name="&gt;&gt;tvProfileMatch.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="tvProfileMatch.Location" type="System.Drawing.Point, System.Drawing">
<value>0, 0</value>
</data>
<data name="tvProfileMatch.Font" type="System.Drawing.Font, System.Drawing">
<value>Segoe UI, 9.75pt</value>
</data>
<data name="ImageList1.ImageStream" mimetype="application/x-microsoft.net.object.binary.base64">
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAD+
EgAAAk1TRnQBSQFMAgEBBgEAARABAAEUAQABEAEAARABAAT/ASEBEAj/AUIBTQE2BwABNgMAASgDAAFA
AwABIAMAAQEBAAEgBgABIDYABP8DmQH/A+oF/wPMAf8DwAH/xAADhgH/A4YB/wOGAf8DhgH/A4YB/wOG
Af8DhgH/A4YF/wPXAf8D+AH/AcwBmQExAf8BzAGZATEB/wHMApkF/wOWAf8EAAOGAf8DhgH/A4YB/wOG
Af8DhgH/A4YB/wOGAf8DhgH/A4YB/wOGAf8DhgH/A4YB/wOGAf8DhgH/hAADhgH/HAADhgX/AcwBmQFk
Af8BzAGZATEB/wHMAZkBMQH/AcwBmQExCf8QAAOGAf8YAAOGAf+QAAOGAf8cAAOyBf8B8AHKAaYB/wHM
AZkBMQ3/A8wB/xAAA4YB/xgAA4YB/5AAA4YB/yAAA5YF/wHwAcoBpgn/A8AB/wPqAf8EAAOGAf8DhgH/
A4YB/wOGAf8DhgH/A4YB/wOGAf8DhgH/A4YB/wOGAf8DhgH/A4YB/wOGAf8DhgH/hAADhgH/JAAD8QH/
A5YB/wOGAf8DwAH/BAADmQH/EAADhgH/GAADhgH/kAADhgH/OAADhgH/EAADhgH/GAADhgH/kAADhgH/
OAADhgH/BAADhgH/A4YB/wOGAf8DhgH/A4YB/wOGAf8DhgH/A4YB/wOGAf8DhgH/A4YB/wOGAf8DhgH/
A4YB/4QAA4YB/zgAA4YB/xAAA4YB/xgAA4YB/5AAA4YB/zgAA4YB/xAAA4YB/xgAA4YB/5AAAcwBmQEx
Af8BzAGZATEB/wHMAZkBMQH/AcwBmQExAf8BzAGZATEB/wHMAZkBMQH/AcwBmQExAf8BzAGZATEB/wHM
AZkBMQH/AcwBmQExAf8BzAGZATEB/wHMAZkBMQH/AcwBmQExAf8BzAGZATEB/wQAA4YB/wQAA4YB/wOG
Af8DhgH/A4YB/wOGAf8DhgH/A4YB/wOGAf8DhgH/A4YB/wOGAf8DhgH/A4YB/wOGAf+EAAHMAZkBMQH/
AcwBmQExAf8BzAGZATEB/wHMAZkBMQH/AcwBmQExAf8BzAGZATEB/wHMAZkBMQH/AcwBmQExAf8BzAGZ
ATEB/wHMAZkBMQH/AcwBmQExAf8BzAGZATEB/wHMAZkBMQH/AcwBmQExAf8EAAOGAf8EAAPXAf8D1wH/
A9cB/wOGAf8D1wH/A9cB/wPXAf8D1wH/A9cB/wPXAf8DhgH/A9cB/wPXAf8D1wH/hAABzAGZATEB/wHM
AZkBMQH/AcwBmQExAf8BzAGZATEB/wHMAZkBMQH/AcwBmQExAf8BzAGZATEB/wHMAZkBMQH/AcwBmQEx
Af8BzAGZATEB/wHMAZkBMQH/AcwBmQExAf8BzAGZATEB/wHMAZkBMQH/BAADhgH/BAAD1wH/A9cB/wPX
Af8DhgH/A9cB/wPXAf8D1wH/A9cB/wPXAf8D1wH/A4YB/wPXAf8D1wH/A9cB/4wAAcwBmQExAf8BzAGZ
ATEB/wHMAZkBMQH/AcwBmQExAf8BzAGZATEB/wHMAZkBMQH/AcwBmQExAf8BzAGZATEB/wHMAZkBMQH/
AcwBmQExAf8BzAGZATEB/wHMAZkBMQH/AcwBmQExAf8BzAGZATEB/wQAA4YB/wOGAf8DhgH/A4YB/wOG
Af8DhgH/A4YB/wOGAf8DhgH/A4YB/wOGAf8DhgH/A4YB/wOGAf+MAAHMAZkBMQH/AcwBmQExAf8BzAGZ
ATEB/wHMAZkBMQH/AcwBmQExAf8BzAGZATEB/wHMAZkBMQH/AcwBmQExAf8BzAGZATEB/wHMAZkBMQH/
AcwBmQExAf8BzAGZATEB/wHMAZkBMQH/AcwBmQExAf/IAAHMAZkBMQH/AcwBmQExAf8BzAGZATEB/wHM
AZkBMQH/AcwBmQExAf8BzAGZATEB/wHMAZkBMQH/AcwBmQExAf8BzAGZATEB/wHMAZkBMQH/AcwBmQEx
Af8BzAGZATEB/wHMAZkBMQH/AcwBmQExAf//AF0AA4Yh/xwAAcwBmQFkAf8BzAGZATEB/wPqAf8kAAOG
Af8DhgH/A4YB/wOGAf8DhgH/A4YB/wOGAf8DhgH/A4YB/wOGAf8DhgH/ZAADhiH/HAABzAGZATEB/wHM
AZkBMQH/AcwBmQExAf9MAAOGAf8QAAHMAZkBMQH/AcwBmQExAf8BzAGZATEB/wHMAZkBMQH/AcwBmQEx
Af8BzAGZATEB/wHMAZkBMQH/AcwBmQExAf8BzAGZATEB/wHMAZkBMQH/AcwBmQExAf8BzAGZATEB/wHM
AZkBMQH/EAABMQHMAv8BZAHMAv8BZAHMAv8BZAHMAv8DhiH/CAAE/wHMAZkBMQH/AcwBmQExBf8D3QH/
AcwBmQExAf8BzAGZATEB/wHMAZkBMQX/AswBmQH/AcwBmQExAf8CzAGZAf8gAAOGAf8DhgH/A4YB/wOG
Af8DhgH/CAADhgH/EAABzAGZATEB/wHMAZkBMQH/AcwBmQExAf8BzAGZATEB/wHMAZkBMQH/AcwBmQEx
Af8BzAGZATEB/wHMAZkBMQH/AcwBmQExAf8BzAGZATEB/wHMAZkBMQH/AcwBmQExAf8BzAGZATEB/xAA
ATEBzAL/AWQBzAL/AWQBzAL/AWQBzAL/A4Yh/wgAAcwBmQFkAf8BzAGZATEB/wHMAZkBMQH/AcwBmQEx
Af8BzAGZATEB/wHMAZkBMQH/AcwBmQExAf8BzAGZATEB/wHMAZkBMQH/AcwBmQExAf8BzAGZATEB/wHM
AZkBMQH/IAABZAHMAv8BZAHMAv8BZAHMAv8BZAHMAv8DhgH/CAADhgH/EAABzAGZATEB/wHMAZkBMQH/
AcwBmQExAf8BzAGZATEB/wHMAZkBMQH/AcwBmQExAf8BzAGZATEB/wHMAZkBMQH/AcwBmQExAf8BzAGZ
ATEB/wHMAZkBMQH/AcwBmQExAf8BzAGZATEB/xAAATEBzAL/AWQBzAL/AWQBzAL/AWQBzAL/A4Yh/wgA
BP8BzAGZATEB/wHMAZkBMQH/AcwBmQExAf8BzAGZATEB/wHMAZkBMQH/AcwBmQExAf8BzAGZATEB/wHM
AZkBMQH/AcwBmQExAf8BzAGZATEB/wLMAZkB/yAAAWQBzAL/AWQBzAL/AWQBzAL/AWQBzAL/A4YB/wgA
A4YB/xAAAcwBmQExAf8BzAGZATEB/wHMAZkBMQH/AcwBmQExAf8BzAGZATEB/wHMAZkBMQH/AcwBmQEx
Af8BzAGZATEB/wHMAZkBMQH/AcwBmQExAf8BzAGZATEB/wHMAZkBMQH/AcwBmQExAf8QAAExAcwC/wFk
AcwC/wFkAcwC/wFkAcwC/wOGIf8MAAHMAZkBZAH/AcwBmQExAf8BzAGZATEB/wHMAZkBMQH/A/EF/wLM
AZkB/wHMAZkBMQH/AcwBmQExAf8BzAGZATEF/yAAAWQBzAL/AWQBzAL/AWQBzAL/AWQBzAL/A4YB/wgA
A4YB/xAAAcwBmQExAf8BzAGZATEB/wHMAZkBMQH/AcwBmQExAf8BzAGZATEB/wHMAZkBMQH/AcwBmQEx
Af8BzAGZATEB/wHMAZkBMQH/AcwBmQExAf8BzAGZATEB/wHMAZkBMQH/AcwBmQExAf8QAAExAcwC/wFk
AcwC/wFkAcwC/wFkAcwC/wOGIf8EAAHMAZkBZAH/AcwBmQExAf8BzAGZATEB/wHMAZkBMQH/AcwBmQEx
Af8QAALMAZkB/wHMAZkBMQH/AcwBmQExAf8BzAGZATEB/wHMAZkBMQH/A+oB/wQAA+MB/wOGBf8kAAOG
Af8DhgH/DAABzAGZATEB/wHMAZkBMQH/AcwBmQExAf8BzAGZATEB/wHMAZkBMQH/CAABzAGZATEB/wHM
AZkBMQH/AcwBmQExAf8BzAGZATEB/wHMAZkBMQH/AcwBmQExAf8QAAExAcwC/wFkAcwC/wFkAcwC/wFk
AcwC/wOGIf8EAAHMAZkBMQH/AcwBmQExAf8BzAGZATEB/wHMAZkBMQH/AcwBmQExAf8QAAT/AcwBmQEx
Af8BzAGZATEB/wHMAZkBMQH/AcwBmQExAf8BzAGZATEB/wQABP8DhgH/A4YF/xwAA8AB/wOGAf8DzAH/
DAABzAGZATEB/wHMAZkBMQH/AcwBmQExAf8BzAGZATEB/wHMAZkBMQH/CAABzAGZATEB/wHMAZkBMQH/
AcwBmQExAf8BzAGZATEB/wHMAZkBMQH/AcwBmQExAf8QAAExAcwC/wFkAcwC/wFkAcwC/wFkAcwC/wOG
If8EAAHMAZkBMQH/AcwBmQExAf8BzAGZATEB/wHMAZkBMQH/AcwBmQExAf8QAAPxAf8BzAGZATEB/wHM
AZkBMQH/AcwBmQExAf8BzAGZATEB/wHMAZkBZAH/CAAE/wOGAf8DhgX/FAADwAH/A4YB/wPMAf8QAAHM
AZkBMQH/AcwBmQExAf8BzAGZATEB/wHMAZkBMQH/AcwBmQExAf8BzAGZATEB/wHMAZkBMQH/AcwBmQEx
Af8BzAGZATEB/wHMAZkBMQH/AcwBmQExAf8BzAGZATEB/wHMAZkBMQH/EAABMQHMAv8BZAHMAv8BZAHM
Av8BZAHMAv8DhiH/DAABzAGZATEB/wHMAZkBMQH/AcwBmQExAf8D1wH/DAABzAGZATEB/wHMAZkBMQH/
AcwBmQExAf8D3QH/FAAE/wOGAf8DhgX/DAADwAH/A4YB/wPMAf8UAAHMAZkBMQH/AcwBmQExAf8BzAGZ
ATEB/wHMAZkBMQH/AcwBmQExAf8BzAGZATEB/wHMAZkBMQH/AcwBmQExAf8BzAGZATEB/wHMAZkBMQH/
AcwBmQExAf8BzAGZATEB/wHMAZkBMQH/EAABMQHMAv8BZAHMAv8BZAHMAv8BZAHMAv8DhgH/A4YB/wOG
Af8DhgH/A4YB/wOGAf8DhgH/A4YB/wOGAf8MAAHMApkB/wHMAZkBMQH/AcwBmQExAf8BzAGZATEB/wHM
AZkBMQH/AcwBmQExAf8BzAGZATEB/wHMAZkBMQH/AcwBmQExAf8BzAGZATEF/xgABP8DhgH/A4YF/wQA
A8AB/wOGAf8DzAH/AcwBmQFkAf8UAAHMAZkBMQH/AcwBmQExAf8BzAGZATEB/wHMAZkBMQH/AcwBmQEx
Af8BzAGZATEB/wHMAZkBMQH/AcwBmQExAf8BzAGZATEB/wHMAZkBMQH/AcwBmQExAf8BzAGZATEB/wPq
Af8QAAExAcwC/yAAAWQBzAL/FAAB8AHKAaYB/wHMAZkBMQH/AcwBmQExAf8BzAGZATEB/wHMAZkBMQH/
AcwBmQExAf8BzAGZATEB/wHMAZkBMQH/AcwBmQExAf8BzAGZATEB/wHMAZkBMQH/AcwBmQExAf8cAAT/
A4YB/wOGAf8DwAH/A4YB/wPMAf8BzAGZAWQB/wHMAZkBMQH/IAABzAGZATEB/xAAAcwBmQExAf8gAAEx
AcwC/wQAA4YB/wOGAf8DhgH/A4YB/wOGAf8DhgH/A4YB/wFkAcwC/xQAA8wB/wHMAZkBMQH/AcwBmQEx
Af8BzAKZAf8BzAGZATEB/wHMAZkBMQH/AcwBmQExAf8BzAGZATEB/wHMAZkBZAH/AcwBmQExAf8BzAGZ
ATEB/wHMAZkBMQH/IAAE/wOGAf8DhgH/A8wB/wQAAcwBmQExAf8BzAGZATEB/yAAAcwBmQExAf8BzAGZ
ATEB/wHMAZkBMQH/AcwBmQExAf8BzAGZATEB/wHMAZkBMQH/MAADhgH/BAADhgH/JAADzAH/A8wB/wgA
AcwBmQExAf8BzAGZATEB/wHMAZkBMQH/BAAE/wHMAZkBZAX/JAAE/wPMAf+4AAHMAZkBMQH/AcwBmQEx
Af8BzAGZAWQB//8AGQABQgFNAT4HAAE+AwABKAMAAUADAAEgAwABAQEAAQEGAAEBFgAD/wEAAf8BgQL/
BgABgAEBBAABfwEAAfcB7wQAAX8BAAH3Ae8EAAF/AoABAQQAAX8BwgH3Ae8EAAF/Af4B9wHvBAABfwH+
AYABAQQAAX8B/gH3Ae8EAAF/Af4B9wHvBQABAgGAAQEFAAECAYABAQUAAQIBgAEBBAABwAEAAYABAQQA
AcABAAL/BAABwAEAAv8EAAT/Af4BAAH+AT8B4AEDAv8B/gEAAf4BPwH/AfsBwAEBAeABAAHAAQMB/AEb
AcABAQHgAQABwAEDAfwBGwHAAQEB4AEAAcABAwH8ARsBwAEBAeABAAHgAQMB/AEbAcABAQHgAQABgwHA
AY8B+QHBAYEB4AEAAYMBwAGHAfEBwQGBAeABAAGDAcABwwHjAcABAQHgAQAB4QHDAeEBxwHAAQEB4AEA
AeABAwHwAYcBwAEBAe8B9wHAAQMB+AEHAfsB3wHoAQcBwAEDAfwBJwH4AR8B/gG/AeYBIwH+AX8E/wH+
AT8I/xYACw==
</value>
</data>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="tvProfileMatch.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Fill</value>
</data>
<data name="&gt;&gt;ImageList1.Type" xml:space="preserve">
<value>System.Windows.Forms.ImageList, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;$this.Name" xml:space="preserve">
<value>frmTreeView</value>
</data>
<metadata name="$this.Language" type="System.Globalization.CultureInfo, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>fr-FR</value>
</metadata>
<metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="ImageList1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
</root>

View File

@ -118,6 +118,7 @@
</Compile> </Compile>
<Compile Include="DocumentResultList\DocumentResultCache.vb" /> <Compile Include="DocumentResultList\DocumentResultCache.vb" />
<Compile Include="GridBuilder.vb" /> <Compile Include="GridBuilder.vb" />
<Compile Include="Helpers.vb" />
<Compile Include="IResultForm.vb" /> <Compile Include="IResultForm.vb" />
<Compile Include="My Project\AssemblyInfo.vb" /> <Compile Include="My Project\AssemblyInfo.vb" />
<Compile Include="My Project\Application.Designer.vb"> <Compile Include="My Project\Application.Designer.vb">

View File

@ -30,7 +30,7 @@ Public Class frmDataResultList
Public Property ShouldReturnToPreviousForm As Boolean Implements IResultForm.ShouldReturnToPreviousForm Public Property ShouldReturnToPreviousForm As Boolean Implements IResultForm.ShouldReturnToPreviousForm
Private Property OperationMode As IResultForm.Mode Implements IResultForm.OperationMode Private Property OperationMode As Helpers.OperationMode Implements IResultForm.OperationMode
Public Sub New(LogConfig As LogConfig, Environment As Environment, Params As DataResultParams) Public Sub New(LogConfig As LogConfig, Environment As Environment, Params As DataResultParams)
' Dieser Aufruf ist für den Designer erforderlich. ' Dieser Aufruf ist für den Designer erforderlich.

View File

@ -1,4 +1,6 @@
Public Class DocumentResultParams Imports DigitalData.GUIs.Common.Helpers
Public Class DocumentResultParams
''' <summary> ''' <summary>
''' WindowGuid is used to save layout data ''' WindowGuid is used to save layout data
''' </summary> ''' </summary>
@ -6,6 +8,7 @@
Public WindowTitle As String = "" Public WindowTitle As String = ""
Public Results As New List(Of DocumentResult) Public Results As New List(Of DocumentResult)
Public ColumnNames As New ColumnNames Public ColumnNames As New ColumnNames
Public OperationModeOverride As OperationMode = OperationMode.None
End Class End Class
Public Class DocumentResult Public Class DocumentResult
@ -16,4 +19,5 @@ Public Class ColumnNames
Public ObjectIdColumn As String = "DocId" Public ObjectIdColumn As String = "DocId"
Public FullPathColumn As String = "FULL_FILENAME" Public FullPathColumn As String = "FULL_FILENAME"
Public FilenameColumn As String = "Name" Public FilenameColumn As String = "Name"
Public IconColumn As String = "ICON"
End Class End Class

View File

@ -7,7 +7,6 @@ Imports DevExpress.XtraBars
Imports DevExpress.XtraEditors Imports DevExpress.XtraEditors
Imports DevExpress.XtraGrid Imports DevExpress.XtraGrid
Imports DevExpress.XtraGrid.Columns Imports DevExpress.XtraGrid.Columns
Imports DevExpress.XtraGrid.Menu
Imports DevExpress.XtraGrid.Views.BandedGrid Imports DevExpress.XtraGrid.Views.BandedGrid
Imports DevExpress.XtraGrid.Views.Base Imports DevExpress.XtraGrid.Views.Base
Imports DevExpress.XtraGrid.Views.Grid Imports DevExpress.XtraGrid.Views.Grid
@ -16,21 +15,20 @@ Imports DevExpress.XtraPrinting
Imports DigitalData.Modules.Config Imports DigitalData.Modules.Config
Imports DigitalData.Modules.EDMI.API Imports DigitalData.Modules.EDMI.API
Imports DigitalData.Modules.EDMI.API.Client Imports DigitalData.Modules.EDMI.API.Client
Imports DigitalData.Modules.EDMI.API.EDMIServiceReference
Imports DigitalData.Modules.Language Imports DigitalData.Modules.Language
Imports DigitalData.Modules.Logging Imports DigitalData.Modules.Logging
Imports DigitalData.Modules.ZooFlow Imports DigitalData.Modules.ZooFlow
Imports DigitalData.Modules.Windows
Imports DigitalData.Modules.Filesystem
Public Class frmDocumentResultList Public Class frmDocumentResultList
Implements IResultForm Implements IResultForm
' These are NOT constants, only defaults ' These are NOT constants, only defaults
' Can be changed when calling frmDocumentResultList ' Can be changed when calling frmDocumentResultList
Private COLUMN_FILEPATH As String = "FULL_FILENAME" Private ReadOnly COLUMN_FILEPATH As String = "FULL_FILENAME"
Private COLUMN_FILENAME As String = "Filename" Private ReadOnly COLUMN_FILENAME As String = "Filename"
Private COLUMN_DOCID As String = "DocID" Private ReadOnly COLUMN_DOCID As String = "DocID"
Private COLUMN_ICON As String = "ICON" Private ReadOnly COLUMN_ICON As String = "ICON"
' Constants ' Constants
Private Const OPEN_FILE As String = "Datei öffnen" Private Const OPEN_FILE As String = "Datei öffnen"
@ -43,16 +41,17 @@ Public Class frmDocumentResultList
' Helper Classes ' Helper Classes
Private _IDBClient As Client Private _IDBClient As Client
Private _LogConfig As LogConfig Private ReadOnly _LogConfig As LogConfig
Private _Logger As Logger Private ReadOnly _Logger As Logger
Private _Config As ConfigManager(Of DocumentResultConfig) Private ReadOnly _Config As ConfigManager(Of DocumentResultConfig)
Private _Environment As Environment Private ReadOnly _Environment As Environment
Private _Params As DocumentResultParams Private ReadOnly _Params As DocumentResultParams
Private _ResultLists As List(Of DocumentResult) Private ReadOnly _ResultLists As List(Of DocumentResult)
Private _Helpers As DocumentResultList Private ReadOnly _Helpers As DocumentResultList
Private _Filesystem As Modules.Filesystem.File Private ReadOnly _Filesystem As Modules.Filesystem.File
Private _GridBuilder As GridBuilder Private ReadOnly _GridBuilder As GridBuilder
Private _File As Modules.Windows.File Private ReadOnly _File As Modules.Windows.File
Private ReadOnly _OpenDocuments As New DocumentResultCache(50000000)
' Runtime variables ' Runtime variables
Private _IsLoading As Boolean = True Private _IsLoading As Boolean = True
@ -63,13 +62,13 @@ Public Class frmDocumentResultList
'Private _HashOriginalFile As String = Nothing 'Private _HashOriginalFile As String = Nothing
'Private _HashOpenedFile As String = Nothing 'Private _HashOpenedFile As String = Nothing
Private WithEvents _FileOpenTimer As New Timer
Private _OpenDocuments As New DocumentResultCache(50000000)
Private _CurrentDocument As DocumentResultInfo = Nothing Private _CurrentDocument As DocumentResultInfo = Nothing
Private _CurrentDocumentId As Long = Nothing Private _CurrentDocumentId As Long = Nothing
Private _Language As String Private ReadOnly _Language As String
Private Property OperationMode As IResultForm.Mode Implements IResultForm.OperationMode Private WithEvents _FileOpenTimer As New Timer
Private Property OperationMode As Helpers.OperationMode Implements IResultForm.OperationMode
Public Property ShouldReturnToPreviousForm As Boolean = False Implements IResultForm.ShouldReturnToPreviousForm Public Property ShouldReturnToPreviousForm As Boolean = False Implements IResultForm.ShouldReturnToPreviousForm
@ -83,6 +82,7 @@ Public Class frmDocumentResultList
COLUMN_DOCID = Params.ColumnNames.ObjectIdColumn COLUMN_DOCID = Params.ColumnNames.ObjectIdColumn
COLUMN_FILENAME = Params.ColumnNames.FilenameColumn COLUMN_FILENAME = Params.ColumnNames.FilenameColumn
COLUMN_FILEPATH = Params.ColumnNames.FullPathColumn COLUMN_FILEPATH = Params.ColumnNames.FullPathColumn
COLUMN_ICON = Params.ColumnNames.IconColumn
_LogConfig = LogConfig _LogConfig = LogConfig
_Logger = LogConfig.GetLogger() _Logger = LogConfig.GetLogger()
@ -97,15 +97,28 @@ Public Class frmDocumentResultList
_Language = Utils.NotNull(_Environment.User.Language, State.UserState.LANG_EN_US) _Language = Utils.NotNull(_Environment.User.Language, State.UserState.LANG_EN_US)
End Sub End Sub
Private Sub frmDocumentResultList_Load(sender As Object, e As EventArgs) Handles MyBase.Load Private Function GetOperationMode() As Helpers.OperationMode
Try Dim oOperationMode = OperationMode.None
If _Environment.Service.IsActive AndAlso _Environment.Service.Address <> String.Empty Then If _Environment.Service.IsActive AndAlso _Environment.Service.Address <> String.Empty Then
OperationMode = IResultForm.Mode.WithAppServer oOperationMode = Helpers.OperationMode.WithAppServer
Else Else
OperationMode = IResultForm.Mode.NoAppServer oOperationMode = Helpers.OperationMode.NoAppServer
End If End If
If OperationMode = IResultForm.Mode.WithAppServer Then If _Params.OperationModeOverride <> Helpers.OperationMode.None Then
oOperationMode = _Params.OperationModeOverride
End If
Return oOperationMode
End Function
Private Sub frmDocumentResultList_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Try
' Operation mode is either guessed from service settings
' or explictly set from OperationModeOverride in Params
OperationMode = GetOperationMode()
If OperationMode = Helpers.OperationMode.WithAppServer Then
InitAppServer() InitAppServer()
End If End If
@ -125,7 +138,7 @@ Public Class frmDocumentResultList
SplitContainerControl2.SplitterPosition = _Config.Config.SplitContainer2Distance SplitContainerControl2.SplitterPosition = _Config.Config.SplitContainer2Distance
SwitchDetailContainerHorizontal.Checked = _Config.Config.SplitContainer2Horizontal SwitchDetailContainerHorizontal.Checked = _Config.Config.SplitContainer2Horizontal
If OperationMode <> IResultForm.Mode.NoAppServer Then If OperationMode <> Helpers.OperationMode.NoAppServer Then
' Location and size will be managed by the ZooFlow Search Window ' Location and size will be managed by the ZooFlow Search Window
If Utils.IsVisibleOnAnyScreen(_Config.Config.WindowLocation) Then If Utils.IsVisibleOnAnyScreen(_Config.Config.WindowLocation) Then
If Utils.LocationIsVisible(_Config.Config.WindowLocation) Then If Utils.LocationIsVisible(_Config.Config.WindowLocation) Then
@ -136,8 +149,8 @@ Public Class frmDocumentResultList
End If End If
End If End If
SwitchMainContainerHorizontal.Visibility = DevExpress.XtraBars.BarItemVisibility.Never SwitchMainContainerHorizontal.Visibility = BarItemVisibility.Never
SwitchDetailContainerHorizontal.Visibility = DevExpress.XtraBars.BarItemVisibility.Never SwitchDetailContainerHorizontal.Visibility = BarItemVisibility.Never
End If End If
_GridBuilder. _GridBuilder.
@ -171,12 +184,34 @@ Public Class frmDocumentResultList
DocumentViewer1.CloseDocument() DocumentViewer1.CloseDocument()
If OperationMode = IResultForm.Mode.NoAppServer Then Select Case OperationMode
Case Helpers.OperationMode.NoAppServer
oDocumentInfo = LoadFile_Legacy(oRow) oDocumentInfo = LoadFile_Legacy(oRow)
ElseIf OperationMode = IResultForm.Mode.WithAppServer Then
oDocumentInfo = LoadFile_IDB(oRow) If oDocumentInfo.Contents IsNot Nothing Then
Dim oFileInfo As New FileInfo(oDocumentInfo.FullPath)
DocumentViewer1.LoadFile(oFileInfo.Name, New MemoryStream(oDocumentInfo.Contents))
Else
DocumentViewer1.LoadFile(oDocumentInfo.FullPath)
End If End If
Case Helpers.OperationMode.WithAppServer
oDocumentInfo = LoadFile_IDB(oRow)
If oDocumentInfo.Contents IsNot Nothing Then
Dim oFileInfo As New FileInfo(oDocumentInfo.FullPath)
DocumentViewer1.LoadFile(oFileInfo.Name, New MemoryStream(oDocumentInfo.Contents))
Else
DocumentViewer1.LoadFile(oDocumentInfo.FullPath)
End If
Case Helpers.OperationMode.ZooFlow
oDocumentInfo = LoadFile_ZooFlow(oRow)
End Select
If IsNothing(oDocumentInfo) Then If IsNothing(oDocumentInfo) Then
Show_Warning("File could not be loaded!") Show_Warning("File could not be loaded!")
Exit Sub Exit Sub
@ -191,7 +226,6 @@ Public Class frmDocumentResultList
If oDocumentInfo.Contents IsNot Nothing Then If oDocumentInfo.Contents IsNot Nothing Then
Dim oFileInfo As New FileInfo(oDocumentInfo.FullPath) Dim oFileInfo As New FileInfo(oDocumentInfo.FullPath)
DocumentViewer1.LoadFile(oFileInfo.Name, New MemoryStream(oDocumentInfo.Contents)) DocumentViewer1.LoadFile(oFileInfo.Name, New MemoryStream(oDocumentInfo.Contents))
Else Else
DocumentViewer1.LoadFile(oDocumentInfo.FullPath) DocumentViewer1.LoadFile(oDocumentInfo.FullPath)
@ -281,6 +315,27 @@ Public Class frmDocumentResultList
End Try End Try
End Function End Function
Private Function LoadFile_ZooFlow(GridRow As DataRow)
Try
Dim oObjectId = GridRow.Item(COLUMN_DOCID)
_Logger.Debug("Loading FileObject for ObjectId: [{0}]", oObjectId)
' This needs to be Sync bc otherwise the PopupMenuShowing event will fire before this method loaded the FileObject
Dim oFileObject As FileObject = _IDBClient.GetFileObject(oObjectId)
Dim oResultDocumentInfo As New DocumentResultInfo() With {
.AccessRight = "",
.FullPath = "",
.Contents = oFileObject._FileContents
}
_Logger.Debug("Successfully loaded Information for ObjectId: [{0}]", oObjectId)
Catch ex As Exception
_Logger.Error(ex)
Return Nothing
End Try
End Function
Private Function LoadFile_AsByteArray(DocumentInfo As DocumentResultInfo) As DocumentResultInfo Private Function LoadFile_AsByteArray(DocumentInfo As DocumentResultInfo) As DocumentResultInfo
Try Try
_Logger.Debug("Loading File [{0}]", DocumentInfo.FullPath) _Logger.Debug("Loading File [{0}]", DocumentInfo.FullPath)
@ -380,7 +435,7 @@ Public Class frmDocumentResultList
Throw New ApplicationException($"Datatable is missing DocId Column [{COLUMN_DOCID}] for search {Result.Title}!") Throw New ApplicationException($"Datatable is missing DocId Column [{COLUMN_DOCID}] for search {Result.Title}!")
End If End If
If OperationMode = IResultForm.Mode.NoAppServer And Result.Datatable.Columns.Contains(COLUMN_FILEPATH) = False Then If OperationMode = Helpers.OperationMode.NoAppServer And Result.Datatable.Columns.Contains(COLUMN_FILEPATH) = False Then
Throw New ApplicationException($"Datatable is missing Filepath Column [{COLUMN_FILEPATH}] for search {Result.Title}!") Throw New ApplicationException($"Datatable is missing Filepath Column [{COLUMN_FILEPATH}] for search {Result.Title}!")
End If End If
@ -516,7 +571,7 @@ Public Class frmDocumentResultList
oFilePathColumn.Visible = False oFilePathColumn.Visible = False
' Hide Fullpath column completely in AppServer-Mode ' Hide Fullpath column completely in AppServer-Mode
If OperationMode = IResultForm.Mode.WithAppServer Then If OperationMode = Helpers.OperationMode.WithAppServer Then
oFilePathColumn.OptionsColumn.ShowInCustomizationForm = False oFilePathColumn.OptionsColumn.ShowInCustomizationForm = False
End If End If
End If End If
@ -877,7 +932,7 @@ Public Class frmDocumentResultList
_CurrentDocumentId = oObjectId _CurrentDocumentId = oObjectId
If OperationMode = IResultForm.Mode.WithAppServer Then If OperationMode = Helpers.OperationMode.WithAppServer Then
If oRight = Rights.AccessRight.FULL Or oRight = Rights.AccessRight.VIEW_EXPORT Then If oRight = Rights.AccessRight.FULL Or oRight = Rights.AccessRight.VIEW_EXPORT Then
MenuFullAccess_IDB.ShowPopup(oPoint) MenuFullAccess_IDB.ShowPopup(oPoint)
Else Else

8
GUIs.Common/Helpers.vb Normal file
View File

@ -0,0 +1,8 @@
Public Class Helpers
Public Enum OperationMode
WithAppServer
NoAppServer
ZooFlow
None
End Enum
End Class

View File

@ -1,10 +1,7 @@
Public Interface IResultForm Imports DigitalData.GUIs.Common.Helpers
Enum Mode
WithAppServer
NoAppServer
End Enum
Property OperationMode As Mode Public Interface IResultForm
Property OperationMode As OperationMode
Property ShouldReturnToPreviousForm As Boolean Property ShouldReturnToPreviousForm As Boolean
Function RefreshResults(pResults As IEnumerable(Of BaseResult)) As Boolean Function RefreshResults(pResults As IEnumerable(Of BaseResult)) As Boolean

View File

@ -0,0 +1,3 @@
DevExpress.XtraEditors.Repository.RepositoryItemTextEdit, DevExpress.XtraEditors.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraGrid.GridControl, DevExpress.XtraGrid.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraBars.Ribbon.RibbonControl, DevExpress.XtraBars.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a

View File

@ -1,112 +0,0 @@
Imports Independentsoft
Imports System.Text.RegularExpressions
Public Class ClassEmailHeaderExtractor
''' <summary>
''' Extrahiert die Headerinformationen aus einer .msg Datei mithilfe der MSG.NET Klasse
''' </summary>
''' <param name="path">Der Pfad einer .msg Datei</param>
''' <returns>Headerinformationen als String oder Nothing wenn ein Fehler aufgetreten ist.</returns>
Public Shared Function getMessageHeaders(path As String) As String
Try
Dim msg As New Msg.Message(path)
Dim headers = msg.TransportMessageHeaders.Replace(vbCrLf, " ")
Return headers
Catch ex As Exception
Return Nothing
End Try
End Function
''' <summary>
''' Extrahiert die Headerinformationen aus einem msg Objekt mithilfe der MSG.NET Klasse
''' </summary>
''' <param name="msg">Eine Email vom Typ Msg.Message</param>
''' <returns>Headerinformationen als String oder Nothing wenn ein Fehler aufgetreten ist.</returns>
Public Shared Function getMessageHeaders(msg As Msg.Message) As String
Try
Dim headers = msg.TransportMessageHeaders.Replace(vbCrLf, " ")
Return headers
Catch ex As Exception
Return Nothing
End Try
End Function
''' <summary>
''' Extrahiert aus den Headerinformationen anhand einer Liste von Regular Expressions eine Absenderadresse.
''' </summary>
''' <param name="messageHeaders">Headerinformationen die von getMessageHeaders erzeugt wurden.</param>
''' <param name="RegexList">Eine Liste von Regular Expressions</param>
''' <param name="RegexGroup">Die Ergebnisgruppe, die die Adresse enthält</param>
''' <returns>Eine Emailadresse oder Nothing, wenn keine der Regular Expressions ein Ergebnis lieferte.</returns>
Public Shared Function extractFromAddress(messageHeaders As String, RegexList As List(Of Regex), Optional RegexGroup As Integer = 1) As String
If IsNothing(messageHeaders) Then
Return Nothing
End If
For Each rx In RegexList
Dim match As Match = rx.Match(messageHeaders)
Dim email As String = match.Groups(RegexGroup).Value
If Not String.IsNullOrWhiteSpace(email) Then
Return email
End If
Next
Return Nothing
End Function
Public Shared Function extractFromHeader(messageHeaders As String, Regex As String) As String
Try
Dim result As String = ""
Dim i As Integer = 0
If IsNothing(messageHeaders) Then
Return Nothing
End If
' einen Regulären Ausdruck laden
Dim strRegex As String = Regex
Dim myRegex As New Regex(strRegex, RegexOptions.IgnorePatternWhitespace)
Dim strTargetString As String = messageHeaders.Trim
' die Vorkommen im String auslesen
For Each myMatch As Match In myRegex.Matches(strTargetString)
If myMatch.Success Then
If myMatch.Value <> "" Then
If i = 0 Then
result = myMatch.Value.ToString
Else
result = result & ";" & myMatch.Value.ToString
End If
i += 1
End If
End If
Next
Return result
Catch ex As Exception
MsgBox("Unexpected Error in extractFromHeader: " & vbNewLine & ex.Message, MsgBoxStyle.Critical)
Return Nothing
End Try
End Function
''' <summary>
''' Extrahiert aus den Headerinformationen anhand einer Liste von Regular Expressions eine Empfängeradresse.
''' </summary>
''' <param name="messageHeaders">Headerinformationen die von getMessageHeaders erzeugt wurden.</param>
''' <param name="RegexList">Eine Liste von Regular Expressions</param>
''' <param name="RegexGroup">Die Ergebnisgruppe, die die Adresse enthält</param>
''' <returns>Eine Emailadresse oder Nothing, wenn keine der Regular Expressions ein Ergebnis lieferte.</returns>
Public Shared Function extractToAddress(messageHeaders As String, RegexList As List(Of Regex), Optional RegexGroup As Integer = 1) As String
If IsNothing(messageHeaders) Then
Return Nothing
End If
For Each rx In RegexList
Dim match As Match = rx.Match(messageHeaders)
Dim email As String = match.Groups(RegexGroup).Value
If Not String.IsNullOrWhiteSpace(email) Then
Return email
End If
Next
Return Nothing
End Function
End Class

View File

@ -20,14 +20,9 @@ Public Class ClassFolderwatcher
'Gestartet also Stoppen 'Gestartet also Stoppen
FWFolderWatcher.EnableRaisingEvents = False FWFolderWatcher.EnableRaisingEvents = False
My.Application.Globix.Folderwatchstarted = False My.Application.Globix.Folderwatchstarted = False
'FolderWatch neu instanzieren
FWFolderWatcher = New FileSystemWatcher(My.Application.Globix.CurrentFolderWatchPath, "*.*") FWFolderWatcher = StartFolderwatcherForPath(My.Application.Globix.CurrentFolderWatchPath)
Logger.Info(" >> FolderWatch neu instanziert")
FWFolderWatcher.IncludeSubdirectories = False
FWFolderWatcher.EnableRaisingEvents = True
AddHandler FWFolderWatcher.Created, AddressOf OnCreated
My.Application.Globix.Folderwatchstarted = True My.Application.Globix.Folderwatchstarted = True
'SaveConfigValue("my.Application.Globix.Folderwatchstarted", "True")
My.UIConfig.Globix.FolderWatchStarted = True My.UIConfig.Globix.FolderWatchStarted = True
My.UIConfigManager.Save() My.UIConfigManager.Save()
End If End If
@ -43,13 +38,10 @@ Public Class ClassFolderwatcher
If FWScan.EnableRaisingEvents = True Then If FWScan.EnableRaisingEvents = True Then
'Gestartet also Stoppen 'Gestartet also Stoppen
FWScan.EnableRaisingEvents = False FWScan.EnableRaisingEvents = False
'FolderWatch neu instanzieren 'FolderWatch neu instanzieren
FWScan = New System.IO.FileSystemWatcher(My.Application.Globix.CURRENT_SCAN_FOLDERWATCH, "*.*") FWScan = StartFolderwatcherForPath(My.Application.Globix.CURRENT_SCAN_FOLDERWATCH)
Logger.Info(" >> FolderWatchScan neu instanziert")
FWScan.IncludeSubdirectories = False
FWScan.EnableRaisingEvents = True
AddHandler FWScan.Created, AddressOf OnCreated
'SaveConfigValue("FWSCAN_started", "True")
My.UIConfig.Globix.FolderWatchScanStarted = True My.UIConfig.Globix.FolderWatchScanStarted = True
My.UIConfigManager.Save() My.UIConfigManager.Save()
End If End If
@ -60,28 +52,16 @@ Public Class ClassFolderwatcher
End Sub End Sub
Public Sub StartStop_FolderWatch() Public Sub StartStop_FolderWatch()
Try Try
If FWFolderWatcher Is Nothing Then If FWFolderWatcher Is Nothing OrElse FWFolderWatcher.EnableRaisingEvents = False Then
FWFolderWatcher = New System.IO.FileSystemWatcher(My.Application.Globix.CurrentFolderWatchPath, "*.*") ' Folderwatch neu instanzieren
Logger.Info(" >> FolderWatch Gestartet") FWFolderWatcher = StartFolderwatcherForPath(My.Application.Globix.CurrentFolderWatchPath)
FWFolderWatcher.IncludeSubdirectories = False
FWFolderWatcher.EnableRaisingEvents = True
AddHandler FWFolderWatcher.Created, AddressOf OnCreated
My.Application.Globix.Folderwatchstarted = True My.Application.Globix.Folderwatchstarted = True
My.UIConfig.Globix.FolderWatchStarted = True My.UIConfig.Globix.FolderWatchStarted = True
My.UIConfigManager.Save() My.UIConfigManager.Save()
End If End If
If FWFolderWatcher.EnableRaisingEvents = False Then
' Dim watcher As New FileSystemWatcher() If FWFolderWatcher.EnableRaisingEvents = True Then
' watcher.Path = CURRENT_FOLDERWATCH
FWFolderWatcher = New System.IO.FileSystemWatcher(My.Application.Globix.CurrentFolderWatchPath, "*.*")
Logger.Info(" >> FolderWatch Gestartet")
FWFolderWatcher.IncludeSubdirectories = False
FWFolderWatcher.EnableRaisingEvents = True
AddHandler FWFolderWatcher.Created, AddressOf OnCreated
My.Application.Globix.Folderwatchstarted = True
My.UIConfig.Globix.FolderWatchStarted = True
My.UIConfigManager.Save()
Else
'Gestartet also Stoppen 'Gestartet also Stoppen
FWFolderWatcher.EnableRaisingEvents = False FWFolderWatcher.EnableRaisingEvents = False
My.Application.Globix.Folderwatchstarted = False My.Application.Globix.Folderwatchstarted = False
@ -161,6 +141,21 @@ Public Class ClassFolderwatcher
Return False Return False
End If End If
End Function End Function
Private Function StartFolderwatcherForPath(pPath As String) As FileSystemWatcher
Dim oWatcher = New FileSystemWatcher(pPath, "*.*") With {
.IncludeSubdirectories = False,
.EnableRaisingEvents = True
}
AddHandler oWatcher.Created, AddressOf OnCreated
Logger.Debug("Folder Watcher started for Path [{0}]", pPath)
My.UIConfig.Globix.FolderWatchScanStarted = True
My.UIConfigManager.Save()
Return oWatcher
End Function
Private Sub OnCreated(source As Object, e As FileSystemEventArgs) Private Sub OnCreated(source As Object, e As FileSystemEventArgs)
Try Try
If Not IsNothing(My.Application.Globix.DTEXCLUDE_FILES) Then If Not IsNothing(My.Application.Globix.DTEXCLUDE_FILES) Then

View File

@ -275,7 +275,6 @@
<DesignTime>True</DesignTime> <DesignTime>True</DesignTime>
<DependentUpon>MyDataset.xsd</DependentUpon> <DependentUpon>MyDataset.xsd</DependentUpon>
</Compile> </Compile>
<Compile Include="Globix\ClassEmailHeaderExtractor.vb" />
<Compile Include="Globix\ClassFolderwatcher.vb" /> <Compile Include="Globix\ClassFolderwatcher.vb" />
<Compile Include="Globix\frmGlobixBasicConfig.Designer.vb"> <Compile Include="Globix\frmGlobixBasicConfig.Designer.vb">
<DependentUpon>frmGlobixBasicConfig.vb</DependentUpon> <DependentUpon>frmGlobixBasicConfig.vb</DependentUpon>