[mapguide-commits] r8545 - in trunk/Tools/Maestro: Generated Maestro.AddIn.ExtendedObjectModels Maestro.AddIn.ExtendedObjectModels/Editor Maestro.AddIn.ExtendedObjectModels/Properties Maestro.AddIn.ExtendedObjectModels/Resources Maestro.AddIn.ExtendedObjectModels/Resources/Images Maestro.AddIn.ExtendedObjectModels/Templates Maestro.Base Maestro.Base/Editor Maestro.Base/Properties Maestro.Base/Resources Maestro.Base/Resources/Icons Maestro.Base/Resources/Images Maestro.Base/UI Maestro.Editors Maestro.Editors/MapDefinition Maestro.Editors/TileSetDefinition Maestro.Editors/TileSetDefinition/Providers MgCooker OSGeo.MapGuide.MaestroAPI OSGeo.MapGuide.MaestroAPI/Commands OSGeo.MapGuide.MaestroAPI/Mapping OSGeo.MapGuide.MaestroAPI/Resource/Validation OSGeo.MapGuide.MaestroAPI.Http OSGeo.MapGuide.MaestroAPI.Http/Commands OSGeo.MapGuide.MaestroAPI.Tests/Mapping OSGeo.MapGuide.ObjectModel.Tests OSGeo.MapGuide.ObjectModels OSGeo.MapGuide.ObjectModels/Common OSGeo.MapGuide.ObjectModels/MapDefinit ion OSGeo.MapGuide.ObjectModels/MapDefinition/v1_0_0 OSGeo.MapGuide.ObjectModels/MapDefinition/v2_3_0 OSGeo.MapGuide.ObjectModels/MapDefinition/v2_4_0 OSGeo.MapGuide.ObjectModels/MapDefinition/v3_0_0 OSGeo.MapGuide.ObjectModels/TileSetDefinition OSGeo.MapGuide.ObjectModels/TileSetDefinition/v3_0_0
svn_mapguide at osgeo.org
svn_mapguide at osgeo.org
Wed Feb 18 02:23:24 PST 2015
Author: jng
Date: 2015-02-18 02:23:23 -0800 (Wed, 18 Feb 2015)
New Revision: 8545
Added:
trunk/Tools/Maestro/Maestro.AddIn.ExtendedObjectModels/Resources/Images/
trunk/Tools/Maestro/Maestro.AddIn.ExtendedObjectModels/Resources/Images/grid.png
trunk/Tools/Maestro/Maestro.AddIn.ExtendedObjectModels/Templates/TileSetDefinition300ItemTemplate.cs
trunk/Tools/Maestro/Maestro.Base/Editor/TileSetEditor.Designer.cs
trunk/Tools/Maestro/Maestro.Base/Editor/TileSetEditor.cs
trunk/Tools/Maestro/Maestro.Base/Resources/Icons/
trunk/Tools/Maestro/Maestro.Base/Resources/Icons/icon_tileset.ico
trunk/Tools/Maestro/Maestro.Base/Resources/Images/
trunk/Tools/Maestro/Maestro.Base/Resources/Images/grid.png
trunk/Tools/Maestro/Maestro.Editors/TileSetDefinition/
trunk/Tools/Maestro/Maestro.Editors/TileSetDefinition/GroupPropertiesCtrl.Designer.cs
trunk/Tools/Maestro/Maestro.Editors/TileSetDefinition/GroupPropertiesCtrl.cs
trunk/Tools/Maestro/Maestro.Editors/TileSetDefinition/GroupPropertiesCtrl.resx
trunk/Tools/Maestro/Maestro.Editors/TileSetDefinition/LayerStructureCtrl.Designer.cs
trunk/Tools/Maestro/Maestro.Editors/TileSetDefinition/LayerStructureCtrl.cs
trunk/Tools/Maestro/Maestro.Editors/TileSetDefinition/LayerStructureCtrl.resx
trunk/Tools/Maestro/Maestro.Editors/TileSetDefinition/Providers/
trunk/Tools/Maestro/Maestro.Editors/TileSetDefinition/Providers/GenericProviderCtrl.Designer.cs
trunk/Tools/Maestro/Maestro.Editors/TileSetDefinition/Providers/GenericProviderCtrl.cs
trunk/Tools/Maestro/Maestro.Editors/TileSetDefinition/Providers/GenericProviderCtrl.resx
trunk/Tools/Maestro/Maestro.Editors/TileSetDefinition/TileSetDefinitionEditorCtrl.Designer.cs
trunk/Tools/Maestro/Maestro.Editors/TileSetDefinition/TileSetDefinitionEditorCtrl.cs
trunk/Tools/Maestro/Maestro.Editors/TileSetDefinition/TileSetDefinitionEditorCtrl.resx
trunk/Tools/Maestro/Maestro.Editors/TileSetDefinition/TileSetSettingsCtrl.Designer.cs
trunk/Tools/Maestro/Maestro.Editors/TileSetDefinition/TileSetSettingsCtrl.cs
trunk/Tools/Maestro/Maestro.Editors/TileSetDefinition/TileSetSettingsCtrl.resx
trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI.Http/Commands/HttpGetTileProviders.cs
trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Commands/IGetTileProviders.cs
trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/Common/TileProviderList.cs
Modified:
trunk/Tools/Maestro/Generated/TileSetDefinition-3.0.0.designer.cs
trunk/Tools/Maestro/Maestro.AddIn.ExtendedObjectModels/Editor/EditorFactories.cs
trunk/Tools/Maestro/Maestro.AddIn.ExtendedObjectModels/Maestro.AddIn.ExtendedObjectModels.csproj
trunk/Tools/Maestro/Maestro.AddIn.ExtendedObjectModels/Manifest.addin
trunk/Tools/Maestro/Maestro.AddIn.ExtendedObjectModels/Properties/Resources.Designer.cs
trunk/Tools/Maestro/Maestro.AddIn.ExtendedObjectModels/Properties/Resources.resx
trunk/Tools/Maestro/Maestro.AddIn.ExtendedObjectModels/Strings.Designer.cs
trunk/Tools/Maestro/Maestro.AddIn.ExtendedObjectModels/Strings.resx
trunk/Tools/Maestro/Maestro.Base/Editor/FeatureSourceEditor.cs
trunk/Tools/Maestro/Maestro.Base/Editor/LayerDefinitionEditor.cs
trunk/Tools/Maestro/Maestro.Base/Maestro.Base.addin
trunk/Tools/Maestro/Maestro.Base/Maestro.Base.csproj
trunk/Tools/Maestro/Maestro.Base/Properties/Resources.Designer.cs
trunk/Tools/Maestro/Maestro.Base/Properties/Resources.resx
trunk/Tools/Maestro/Maestro.Base/UI/ProfilingDialog.cs
trunk/Tools/Maestro/Maestro.Base/UI/RepositoryTreeModel.cs
trunk/Tools/Maestro/Maestro.Base/UI/ResourceIconCache.cs
trunk/Tools/Maestro/Maestro.Editors/Maestro.Editors.csproj
trunk/Tools/Maestro/Maestro.Editors/MapDefinition/ExtentCalculationDialog.cs
trunk/Tools/Maestro/Maestro.Editors/MapDefinition/GroupPropertiesCtrl.cs
trunk/Tools/Maestro/Maestro.Editors/MapDefinition/MapDefinitionEditorCtrl.cs
trunk/Tools/Maestro/Maestro.Editors/MapDefinition/MapLayersSectionCtrl.cs
trunk/Tools/Maestro/Maestro.Editors/MapDefinition/MapTreeModels.cs
trunk/Tools/Maestro/Maestro.Editors/Strings.Designer.cs
trunk/Tools/Maestro/Maestro.Editors/Strings.resx
trunk/Tools/Maestro/MgCooker/SetupRun.cs
trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI.Http/HttpCapabilities.cs
trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI.Http/HttpServerConnection.cs
trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI.Http/OSGeo.MapGuide.MaestroAPI.Http.csproj
trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI.Http/RequestBuilder.cs
trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI.Tests/Mapping/RuntimeMapTests.cs
trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Commands/CommandType.cs
trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Mapping/RuntimeMap.cs
trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/OSGeo.MapGuide.MaestroAPI.csproj
trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Resource/Validation/BaseMapDefinitionValidator.cs
trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModel.Tests/TileSetDefinitionTests.cs
trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/MapDefinition/MapDefinitionInterfaces.cs
trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/MapDefinition/v1_0_0/MapDefinitionImpl.cs
trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/MapDefinition/v2_3_0/MapDefinitionImpl.cs
trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/MapDefinition/v2_4_0/MapDefinitionImpl.cs
trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/MapDefinition/v3_0_0/MapDefinitionImpl.cs
trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/OSGeo.MapGuide.ObjectModels.csproj
trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/TileSetDefinition/TileSetInterfaces.cs
trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/TileSetDefinition/v3_0_0/TileSetImpl.cs
Log:
#2515: Add specialized editor support for Tile Set Definitions. We also introduce a new ITileSetAbstract interface that encapsulates the common functionality that is in both the Tile Set Definition and the BaseMap component of the Map Definition
Modified: trunk/Tools/Maestro/Generated/TileSetDefinition-3.0.0.designer.cs
===================================================================
--- trunk/Tools/Maestro/Generated/TileSetDefinition-3.0.0.designer.cs 2015-02-13 07:20:26 UTC (rev 8544)
+++ trunk/Tools/Maestro/Generated/TileSetDefinition-3.0.0.designer.cs 2015-02-18 10:23:23 UTC (rev 8545)
@@ -23,7 +23,8 @@
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true)]
[System.Xml.Serialization.XmlRootAttribute(Namespace="", IsNullable=false)]
- public partial class TileSetDefinition : System.ComponentModel.INotifyPropertyChanged {
+ public partial class TileSetDefinition : BaseSerializable, System.ComponentModel.INotifyPropertyChanged
+ {
[EditorBrowsable(EditorBrowsableState.Never)]
private TileStoreParametersType tileStoreParametersField;
@@ -123,24 +124,9 @@
/// Serializes current TileSetDefinition object into an XML document
/// </summary>
/// <returns>string XML value</returns>
- public virtual string Serialize() {
- System.IO.StreamReader streamReader = null;
- System.IO.MemoryStream memoryStream = null;
- try {
- memoryStream = new System.IO.MemoryStream();
- Serializer.Serialize(memoryStream, this);
- memoryStream.Seek(0, System.IO.SeekOrigin.Begin);
- streamReader = new System.IO.StreamReader(memoryStream);
- return streamReader.ReadToEnd();
- }
- finally {
- if ((streamReader != null)) {
- streamReader.Dispose();
- }
- if ((memoryStream != null)) {
- memoryStream.Dispose();
- }
- }
+ public virtual string Serialize()
+ {
+ return base.NormalizedSerialize(Serializer, this);
}
/// <summary>
Modified: trunk/Tools/Maestro/Maestro.AddIn.ExtendedObjectModels/Editor/EditorFactories.cs
===================================================================
--- trunk/Tools/Maestro/Maestro.AddIn.ExtendedObjectModels/Editor/EditorFactories.cs 2015-02-13 07:20:26 UTC (rev 8544)
+++ trunk/Tools/Maestro/Maestro.AddIn.ExtendedObjectModels/Editor/EditorFactories.cs 2015-02-18 10:23:23 UTC (rev 8545)
@@ -292,4 +292,19 @@
return new SymbolDefinitionEditor();
}
}
+
+ internal class TileSetDefinition300EditorFactory : IEditorFactory
+ {
+ public ResourceTypeDescriptor ResourceTypeAndVersion { get; private set; }
+
+ public TileSetDefinition300EditorFactory()
+ {
+ this.ResourceTypeAndVersion = new ResourceTypeDescriptor(ResourceTypes.TileSetDefinition.ToString(), "3.0.0"); //NOXLATE
+ }
+
+ public IEditorViewContent Create()
+ {
+ return new TileSetEditor();
+ }
+ }
}
\ No newline at end of file
Modified: trunk/Tools/Maestro/Maestro.AddIn.ExtendedObjectModels/Maestro.AddIn.ExtendedObjectModels.csproj
===================================================================
--- trunk/Tools/Maestro/Maestro.AddIn.ExtendedObjectModels/Maestro.AddIn.ExtendedObjectModels.csproj 2015-02-13 07:20:26 UTC (rev 8544)
+++ trunk/Tools/Maestro/Maestro.AddIn.ExtendedObjectModels/Maestro.AddIn.ExtendedObjectModels.csproj 2015-02-18 10:23:23 UTC (rev 8545)
@@ -81,6 +81,7 @@
<DependentUpon>Strings.resx</DependentUpon>
</Compile>
<Compile Include="Templates\MapDefinition300ItemTemplate.cs" />
+ <Compile Include="Templates\TileSetDefinition300ItemTemplate.cs" />
<Compile Include="Templates\WebLayout260ItemTemplate.cs" />
<Compile Include="Templates\SymbolDefinition240ItemTemplate.cs" />
<Compile Include="Templates\WatermarkDefinition240ItemTemplate.cs" />
@@ -101,6 +102,7 @@
<Content Include="Manifest.addin">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Content>
+ <None Include="Resources\Images\grid.png" />
<None Include="app.config" />
<None Include="Resources\water.png" />
<None Include="Resources\edit.png" />
Modified: trunk/Tools/Maestro/Maestro.AddIn.ExtendedObjectModels/Manifest.addin
===================================================================
--- trunk/Tools/Maestro/Maestro.AddIn.ExtendedObjectModels/Manifest.addin 2015-02-13 07:20:26 UTC (rev 8544)
+++ trunk/Tools/Maestro/Maestro.AddIn.ExtendedObjectModels/Manifest.addin 2015-02-18 10:23:23 UTC (rev 8545)
@@ -32,6 +32,7 @@
<Class id="SymbolDefinition240" class="Maestro.AddIn.ExtendedObjectModels.Editor.SymbolDefinition240EditorFactory" />
<Class id="WatermarkDefinition230" class="Maestro.AddIn.ExtendedObjectModels.Editor.WatermarkDefinition230EditorFactory" />
<Class id="WatermarkDefinition240" class="Maestro.AddIn.ExtendedObjectModels.Editor.WatermarkDefinition240EditorFactory" />
+ <Class id="TileSetDefinition300" class="Maestro.AddIn.ExtendedObjectModels.Editor.TileSetDefinition300EditorFactory" />
</Path>
<!-- Registered System Templates -->
@@ -57,6 +58,7 @@
<Class id="WebLayout110" class="Maestro.AddIn.ExtendedObjectModels.Templates.WebLayout110ItemTemplate" />
<Class id="WebLayout240" class="Maestro.AddIn.ExtendedObjectModels.Templates.WebLayout240ItemTemplate" />
<Class id="WebLayout260" class="Maestro.AddIn.ExtendedObjectModels.Templates.WebLayout260ItemTemplate" />
+ <Class id="TileSetDefinition300" class="Maestro.AddIn.ExtendedObjectModels.Templates.TileSetDefinition300ItemTemplate" />
</Path>
<!-- Auto-start commands -->
Modified: trunk/Tools/Maestro/Maestro.AddIn.ExtendedObjectModels/Properties/Resources.Designer.cs
===================================================================
--- trunk/Tools/Maestro/Maestro.AddIn.ExtendedObjectModels/Properties/Resources.Designer.cs 2015-02-13 07:20:26 UTC (rev 8544)
+++ trunk/Tools/Maestro/Maestro.AddIn.ExtendedObjectModels/Properties/Resources.Designer.cs 2015-02-18 10:23:23 UTC (rev 8545)
@@ -93,6 +93,16 @@
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>
+ internal static System.Drawing.Bitmap grid {
+ get {
+ object obj = ResourceManager.GetObject("grid", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
+ /// <summary>
+ /// Looks up a localized resource of type System.Drawing.Bitmap.
+ /// </summary>
internal static System.Drawing.Bitmap images_stack {
get {
object obj = ResourceManager.GetObject("images_stack", resourceCulture);
Modified: trunk/Tools/Maestro/Maestro.AddIn.ExtendedObjectModels/Properties/Resources.resx
===================================================================
--- trunk/Tools/Maestro/Maestro.AddIn.ExtendedObjectModels/Properties/Resources.resx 2015-02-13 07:20:26 UTC (rev 8544)
+++ trunk/Tools/Maestro/Maestro.AddIn.ExtendedObjectModels/Properties/Resources.resx 2015-02-18 10:23:23 UTC (rev 8545)
@@ -142,4 +142,7 @@
<data name="water" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\water.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
+ <data name="grid" type="System.Resources.ResXFileRef, System.Windows.Forms">
+ <value>..\Resources\Images\grid.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+ </data>
</root>
\ No newline at end of file
Added: trunk/Tools/Maestro/Maestro.AddIn.ExtendedObjectModels/Resources/Images/grid.png
===================================================================
(Binary files differ)
Property changes on: trunk/Tools/Maestro/Maestro.AddIn.ExtendedObjectModels/Resources/Images/grid.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Modified: trunk/Tools/Maestro/Maestro.AddIn.ExtendedObjectModels/Strings.Designer.cs
===================================================================
--- trunk/Tools/Maestro/Maestro.AddIn.ExtendedObjectModels/Strings.Designer.cs 2015-02-13 07:20:26 UTC (rev 8544)
+++ trunk/Tools/Maestro/Maestro.AddIn.ExtendedObjectModels/Strings.Designer.cs 2015-02-18 10:23:23 UTC (rev 8545)
@@ -295,6 +295,24 @@
}
/// <summary>
+ /// Looks up a localized string similar to Create a new Tile Set Definition using the v3.0.0 schema.
+ /// </summary>
+ internal static string TPL_TSD_300_DESC {
+ get {
+ return ResourceManager.GetString("TPL_TSD_300_DESC", resourceCulture);
+ }
+ }
+
+ /// <summary>
+ /// Looks up a localized string similar to Tile Set Definition (v3.0.0).
+ /// </summary>
+ internal static string TPL_TSD_300_NAME {
+ get {
+ return ResourceManager.GetString("TPL_TSD_300_NAME", resourceCulture);
+ }
+ }
+
+ /// <summary>
/// Looks up a localized string similar to Create a new Vector Layer Definition using the v1.1.0 schema.
/// </summary>
internal static string TPL_VLDF_110_DESC {
Modified: trunk/Tools/Maestro/Maestro.AddIn.ExtendedObjectModels/Strings.resx
===================================================================
--- trunk/Tools/Maestro/Maestro.AddIn.ExtendedObjectModels/Strings.resx 2015-02-13 07:20:26 UTC (rev 8544)
+++ trunk/Tools/Maestro/Maestro.AddIn.ExtendedObjectModels/Strings.resx 2015-02-18 10:23:23 UTC (rev 8545)
@@ -267,4 +267,10 @@
<data name="TPL_WL_260_NAME" xml:space="preserve">
<value>Web Layout (v2.6.0)</value>
</data>
+ <data name="TPL_TSD_300_NAME" xml:space="preserve">
+ <value>Tile Set Definition (v3.0.0)</value>
+ </data>
+ <data name="TPL_TSD_300_DESC" xml:space="preserve">
+ <value>Create a new Tile Set Definition using the v3.0.0 schema</value>
+ </data>
</root>
\ No newline at end of file
Added: trunk/Tools/Maestro/Maestro.AddIn.ExtendedObjectModels/Templates/TileSetDefinition300ItemTemplate.cs
===================================================================
--- trunk/Tools/Maestro/Maestro.AddIn.ExtendedObjectModels/Templates/TileSetDefinition300ItemTemplate.cs (rev 0)
+++ trunk/Tools/Maestro/Maestro.AddIn.ExtendedObjectModels/Templates/TileSetDefinition300ItemTemplate.cs 2015-02-18 10:23:23 UTC (rev 8545)
@@ -0,0 +1,57 @@
+#region Disclaimer / License
+
+// Copyright (C) 2015, Jackie Ng
+// http://trac.osgeo.org/mapguide/wiki/maestro, jumpinjackie at gmail.com
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+//
+
+#endregion Disclaimer / License
+using Maestro.Base.Templates;
+using OSGeo.MapGuide.ObjectModels;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Res = Maestro.AddIn.ExtendedObjectModels.Properties.Resources;
+
+namespace Maestro.AddIn.ExtendedObjectModels.Templates
+{
+ internal class TileSetDefinition300ItemTemplate : ItemTemplate
+ {
+ public TileSetDefinition300ItemTemplate()
+ {
+ Category = Strings.TPL_CATEGORY_MGOS30;
+ Icon = Res.grid;
+ Description = Strings.TPL_TSD_300_DESC;
+ Name = Strings.TPL_TSD_300_NAME;
+ ResourceType = ResourceTypes.TileSetDefinition.ToString();
+ }
+
+ public override Version MinimumSiteVersion
+ {
+ get
+ {
+ return new Version(3, 0);
+ }
+ }
+
+ public override IResource CreateItem(string startPoint, OSGeo.MapGuide.MaestroAPI.IServerConnection conn)
+ {
+ return ObjectFactory.CreateTileSetDefinition(new Version(3, 0, 0));
+ }
+ }
+}
Modified: trunk/Tools/Maestro/Maestro.Base/Editor/FeatureSourceEditor.cs
===================================================================
--- trunk/Tools/Maestro/Maestro.Base/Editor/FeatureSourceEditor.cs 2015-02-13 07:20:26 UTC (rev 8544)
+++ trunk/Tools/Maestro/Maestro.Base/Editor/FeatureSourceEditor.cs 2015-02-18 10:23:23 UTC (rev 8545)
@@ -95,7 +95,7 @@
var mdf = (IMapDefinition)resSvc.GetResource(lr);
if (mdf.BaseMap != null)
{
- foreach (var blg in mdf.BaseMap.BaseMapLayerGroup)
+ foreach (var blg in mdf.BaseMap.BaseMapLayerGroups)
{
foreach (var bl in blg.BaseMapLayer)
{
Modified: trunk/Tools/Maestro/Maestro.Base/Editor/LayerDefinitionEditor.cs
===================================================================
--- trunk/Tools/Maestro/Maestro.Base/Editor/LayerDefinitionEditor.cs 2015-02-13 07:20:26 UTC (rev 8544)
+++ trunk/Tools/Maestro/Maestro.Base/Editor/LayerDefinitionEditor.cs 2015-02-18 10:23:23 UTC (rev 8545)
@@ -116,7 +116,7 @@
var mdf = (IMapDefinition)resSvc.GetResource(r);
if (mdf.BaseMap != null)
{
- foreach (var blg in mdf.BaseMap.BaseMapLayerGroup)
+ foreach (var blg in mdf.BaseMap.BaseMapLayerGroups)
{
foreach (var bl in blg.BaseMapLayer)
{
Added: trunk/Tools/Maestro/Maestro.Base/Editor/TileSetEditor.Designer.cs
===================================================================
--- trunk/Tools/Maestro/Maestro.Base/Editor/TileSetEditor.Designer.cs (rev 0)
+++ trunk/Tools/Maestro/Maestro.Base/Editor/TileSetEditor.Designer.cs 2015-02-18 10:23:23 UTC (rev 8545)
@@ -0,0 +1,37 @@
+namespace Maestro.Base.Editor
+{
+ partial class TileSetEditor
+ {
+ /// <summary>
+ /// Required designer variable.
+ /// </summary>
+ private System.ComponentModel.IContainer components = null;
+
+ /// <summary>
+ /// Clean up any resources being used.
+ /// </summary>
+ /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Component Designer generated code
+
+ /// <summary>
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ /// </summary>
+ private void InitializeComponent()
+ {
+ components = new System.ComponentModel.Container();
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ }
+
+ #endregion
+ }
+}
Added: trunk/Tools/Maestro/Maestro.Base/Editor/TileSetEditor.cs
===================================================================
--- trunk/Tools/Maestro/Maestro.Base/Editor/TileSetEditor.cs (rev 0)
+++ trunk/Tools/Maestro/Maestro.Base/Editor/TileSetEditor.cs 2015-02-18 10:23:23 UTC (rev 8545)
@@ -0,0 +1,64 @@
+#region Disclaimer / License
+
+// Copyright (C) 2015, Jackie Ng
+// http://trac.osgeo.org/mapguide/wiki/maestro, jumpinjackie at gmail.com
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+//
+
+#endregion Disclaimer / License
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Drawing;
+using System.Data;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+using OSGeo.MapGuide.ObjectModels.TileSetDefinition;
+using Maestro.Editors.TileSetDefinition;
+
+namespace Maestro.Base.Editor
+{
+ public partial class TileSetEditor : EditorContentBase
+ {
+ public TileSetEditor()
+ {
+ InitializeComponent();
+ }
+
+ protected override void Bind(Editors.IEditorService service)
+ {
+ panelBody.Controls.Clear();
+ var tsd = service.GetEditedResource() as ITileSetDefinition;
+ if (tsd != null)
+ {
+ var tsdCtrl = new TileSetDefinitionEditorCtrl();
+ tsdCtrl.Dock = DockStyle.Fill;
+ panelBody.Controls.Add(tsdCtrl);
+ tsdCtrl.Bind(service);
+ }
+ }
+
+ public override Icon ViewIcon
+ {
+ get
+ {
+ return Properties.Resources.icon_tileset;
+ }
+ }
+ }
+}
Modified: trunk/Tools/Maestro/Maestro.Base/Maestro.Base.addin
===================================================================
--- trunk/Tools/Maestro/Maestro.Base/Maestro.Base.addin 2015-02-13 07:20:26 UTC (rev 8544)
+++ trunk/Tools/Maestro/Maestro.Base/Maestro.Base.addin 2015-02-18 10:23:23 UTC (rev 8545)
@@ -290,7 +290,7 @@
tooltip="${res:Menu_File_NewResource}"
class="Maestro.Base.Commands.NewItemCommand" />
<ToolbarItem id="Disconnect"
- icon="plug--minus"
+ icon="plug__minus"
label="${res:SiteExplorer_Disconnect}"
tooltip="${res:SiteExplorer_Disconnect}"
class="Maestro.Base.Commands.SiteExplorer.DisconnectCommand" />
@@ -408,7 +408,7 @@
</Condition>
</Condition>
<ToolbarItem id="SiteExplorer_Refresh"
- icon="arrow-circle-045-left"
+ icon="arrow_circle_045_left"
tooltip="${res:SiteExplorer_Refresh}"
class="Maestro.Base.Commands.SiteExplorer.RefreshCommand" />
</Condition>
Modified: trunk/Tools/Maestro/Maestro.Base/Maestro.Base.csproj
===================================================================
--- trunk/Tools/Maestro/Maestro.Base/Maestro.Base.csproj 2015-02-13 07:20:26 UTC (rev 8544)
+++ trunk/Tools/Maestro/Maestro.Base/Maestro.Base.csproj 2015-02-18 10:23:23 UTC (rev 8545)
@@ -225,6 +225,12 @@
<Compile Include="Editor\SymbolDefinitionEditor.Designer.cs">
<DependentUpon>SymbolDefinitionEditor.cs</DependentUpon>
</Compile>
+ <Compile Include="Editor\TileSetEditor.cs">
+ <SubType>UserControl</SubType>
+ </Compile>
+ <Compile Include="Editor\TileSetEditor.Designer.cs">
+ <DependentUpon>TileSetEditor.cs</DependentUpon>
+ </Compile>
<Compile Include="Editor\UnsupportedEditorControl.cs">
<SubType>UserControl</SubType>
</Compile>
@@ -452,6 +458,8 @@
</ItemGroup>
<ItemGroup>
<Content Include="Maestro.Base.addin" />
+ <None Include="Resources\Icons\icon_tileset.ico" />
+ <None Include="Resources\Images\grid.png" />
<None Include="app.config" />
<None Include="packages.config" />
<None Include="Resources\icon_document.ico" />
Modified: trunk/Tools/Maestro/Maestro.Base/Properties/Resources.Designer.cs
===================================================================
--- trunk/Tools/Maestro/Maestro.Base/Properties/Resources.Designer.cs 2015-02-13 07:20:26 UTC (rev 8544)
+++ trunk/Tools/Maestro/Maestro.Base/Properties/Resources.Designer.cs 2015-02-18 10:23:23 UTC (rev 8545)
@@ -115,7 +115,7 @@
/// </summary>
internal static System.Drawing.Bitmap arrow_180 {
get {
- object obj = ResourceManager.GetObject("arrow-180", resourceCulture);
+ object obj = ResourceManager.GetObject("arrow_180", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
@@ -125,7 +125,7 @@
/// </summary>
internal static System.Drawing.Bitmap arrow_circle_045_left {
get {
- object obj = ResourceManager.GetObject("arrow-circle-045-left", resourceCulture);
+ object obj = ResourceManager.GetObject("arrow_circle_045_left", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
@@ -215,7 +215,7 @@
/// </summary>
internal static System.Drawing.Bitmap cross_circle {
get {
- object obj = ResourceManager.GetObject("cross-circle", resourceCulture);
+ object obj = ResourceManager.GetObject("cross_circle", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
@@ -401,6 +401,16 @@
}
/// <summary>
+ /// Looks up a localized resource of type System.Drawing.Bitmap.
+ /// </summary>
+ internal static System.Drawing.Bitmap grid {
+ get {
+ object obj = ResourceManager.GetObject("grid", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
+ /// <summary>
/// Looks up a localized resource of type System.Drawing.Icon similar to (Icon).
/// </summary>
internal static System.Drawing.Icon icon_document {
@@ -493,6 +503,16 @@
/// <summary>
/// Looks up a localized resource of type System.Drawing.Icon similar to (Icon).
/// </summary>
+ internal static System.Drawing.Icon icon_tileset {
+ get {
+ object obj = ResourceManager.GetObject("icon_tileset", resourceCulture);
+ return ((System.Drawing.Icon)(obj));
+ }
+ }
+
+ /// <summary>
+ /// Looks up a localized resource of type System.Drawing.Icon similar to (Icon).
+ /// </summary>
internal static System.Drawing.Icon icon_watermark {
get {
object obj = ResourceManager.GetObject("icon_watermark", resourceCulture);
@@ -595,7 +615,7 @@
/// </summary>
internal static System.Drawing.Bitmap navigation_000_white {
get {
- object obj = ResourceManager.GetObject("navigation-000-white", resourceCulture);
+ object obj = ResourceManager.GetObject("navigation_000_white", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
@@ -605,7 +625,7 @@
/// </summary>
internal static System.Drawing.Bitmap navigation_180 {
get {
- object obj = ResourceManager.GetObject("navigation-180", resourceCulture);
+ object obj = ResourceManager.GetObject("navigation_180", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
@@ -615,7 +635,7 @@
/// </summary>
internal static System.Drawing.Bitmap navigation_180_white {
get {
- object obj = ResourceManager.GetObject("navigation-180-white", resourceCulture);
+ object obj = ResourceManager.GetObject("navigation_180_white", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
@@ -635,7 +655,7 @@
/// </summary>
internal static System.Drawing.Bitmap plug__minus {
get {
- object obj = ResourceManager.GetObject("plug--minus", resourceCulture);
+ object obj = ResourceManager.GetObject("plug__minus", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
Modified: trunk/Tools/Maestro/Maestro.Base/Properties/Resources.resx
===================================================================
--- trunk/Tools/Maestro/Maestro.Base/Properties/Resources.resx 2015-02-13 07:20:26 UTC (rev 8544)
+++ trunk/Tools/Maestro/Maestro.Base/Properties/Resources.resx 2015-02-18 10:23:23 UTC (rev 8545)
@@ -118,99 +118,965 @@
<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="cross-circle" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+ <data name="cross_circle" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
- YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAACN0lEQVQ4T6WSTWgTURSFH0mg
- CUjTTMsYCsVFoYWKWbTQ7GsgdBHSIpTiVLpu6dK9ggit4MaFi4rVClpt1GqJRfBnrAQRYVIHJSr5WcxI
- jFlkocxkNVzvGdJhIurGgY/cefec896dPEFE4n9wzbeEELeZu8w9IQa3hVhh7jCFDqhX0IMGWnjg/T0g
- 8zASUd8nk2ZzYcH6ubzs/Fhacr4rinUwOWmixwGZvwVkHvf1aQ1Fsb8tLpKpKF1g7ev8vP0oGtU4INN1
- gk0cLRxWjbk5+8vsLJ+M6FM22wXWPs/MUCWbtbd6elR4vBE2eL434+OmPj3tmg+fd1NTBPzPQTpNL8bG
- THi8gHUhtj6k05aaTFJueNjVt9ttajQaVKvVqFwuU7VapWuxGN2UZcqPjlrweAFX+Wvz7s6ziQl6mkjQ
- jf5+KhaLpOs6lUolqlQqtMHmzQ73h4YceLyAK/yipVLOk5ERyg0M0DYL/WbDMNy1Q3bicQceL+AyH+dV
- ImHlJYnyfzDX63VqNptuD+xIkgWPF7CGiyPLxj7P59/5AYsBzK1Wy+UlxohETHi8gIv8l1wKBtX9eNze
- 5VNg5l0Wvu2AGmb8Po9G7bVAQIXHC7jA1/IcX47VUEgrSJK9xyE6RvGxx/VrNq8Ggxq08HgBXItjzClu
- nOX06+GwWejttT7GYg5AjTX0oIEWjz8gxO9HmeODQpxMCXH+tBC5M/ylAWqsoceaE0ycCfkDArxwhJEZ
- 1v0TbARtAAG/AFOx/3DrkH4UAAAAAElFTkSuQmCC
+ YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAACMklEQVQ4T6WST2jTYBjGP9rC
+ WpB1zUYNg+FhsMHEHjZY71uh7DC6IYxhJjtv7OhdQYRN8OLBw8S5Cjpd1emoQ/BPnBQRIZ1BqUr/HBqp
+ tYcelKSn8Po+WRdSmF784Jd83/s+z5MvySeI6L9wLneEEHeZ+8wDIfq3hVhh7jG5NpivoAcNtPAcFzD9
+ OBRSP8bjRmNhwfy9vGz/WlqyfyqKeTA+bqAHzd8Cpp/29Gh1RbF+LC6SoSgdoPZ9ft56Eg5r0HYEpLG1
+ YFCtzs1Z32ZnuUT0JZXqAOPrzAyVUilrq6tLhYdLhwEb/H7vRkcNfWrKER6NDxMTDt5xkEzSq5ERAx5e
+ HgasC7H1KZk01XicMoODjrDValG9XqdKpULFYpHK5TLdjERoMxql7PCwCY8bcIO/ND/dfjE2Rs9jMbrd
+ 20v5fJ50XadCoUClUok22Jxu83BgwIbHDbjOCy2RsJ8NDVGmr4+2WeQ1V6tVp3bEjizb8LgB13g7b2Ix
+ MytJlD3GXKvVqNFoOD2wI0kmPG7AGg5ONFrd5/fzmh+xGMDcbDYdXvM6HQoZ8LgBV/iXXPX71X1ZtnZ5
+ FzDvsvB9G8xhxv1lOGyt+XwqPG7AZT4UF/lwrAYCWk6SrD0O0VnsZY95y+ZVv1+DFh43AOMUc5YbFzj9
+ VjBo5Lq7zc+RiA0wRw09aKDF8AYEmJPM6X4hJhNCXDonROY8f2mAOWroseYMI8PjDfAxJ5gow7p/ggdB
+ 6yMi8QdTsf9wZLcnIwAAAABJRU5ErkJggg==
</value>
</data>
<data name="arrow" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
- YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAAB6UlEQVQ4T2P4//8/AyUYrFmv
- /RKDfsdlOLaf+4IBhh3mvZwJxDE2s54yWEx9wGDcdxOsXqP+FFgvVgOMe28wgDRA8RkgDcIxRBsAco1R
- z3WwjUB8ZsaT//9BtMWU+zFEuQDmHcOuqyAnn+m8+uf/lAf//oPYQNfFYHhBt+3iTKDgGVy48eyP/0X7
- vvzvvfnnP0gNUH0MShgAOUBbfv2vPfntf82Jb/+rj38F46pjX/9XHv36v2DPp/8ZW96DcfP5H/9B6tXr
- TsbAA1Gp/NAZkIa0Te/gOGHdq//BSx7+95x947/LtMv/HSdfAGMQO2PHi/8gPXADZPJ2nmk8+/1/2aEv
- /wsPfP4fvePdf88NL/67rnv+33nts/+mSx//15z3EIx9t77+D1Ivm78L4QLx9E0zxdI2nsGFVbd+/8+3
- +ut/o13f/4PUANXHAA1BpAOgIINIynoMLJy8jkEgftUZoZ3//8vt+f8fxBZMWB0DUo9iALdxJAOXUQQG
- 5o5YzADEZyR2/f8Ponkil8TwuNczsErqMIAAPAzAPCyASVSDgS1o7hkQZrUri2EW00RRhWwAE1CGD4hl
- gFgLiI1hmMmqeBmTUXIJlK8NpGWBmB+ImZENYAQKsEMNEQXSUjiwGFQzB5BmghtASXYGADrJ+mn64PZ5
- AAAAAElFTkSuQmCC
+ YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAAB4ElEQVQ4T2P4//8/RRhM6LVf
+ YtDvuAzH9nNfwLHDvJczgTjGZtZTBoupDxiM+26C1WvUn8JtgHHvDQaQBig+A8UxRBsAwkY918E2AvGZ
+ GU/+/wfRFlPuxxBtAAgbdl0F2Xim8+qf/1Me/PsPYgNdF4NhgG7bxZlAwTO4cOPZH/+L9n3533vzz38Q
+ H6g+BsUAIAdoy6//tSe//a858e1/9fGvYFx17Ov/yqNf/xfs+fQ/Y8t7MG4+/+M/SL163ckYuAFK5YfO
+ gDSkbXoHxwnrXv0PXvLwv+fsG/9dpl3+7zj5AhiD2Bk7XvwH6YEbIJO3E+jM7//LDn35X3jg8//oHe/+
+ e2548d913fP/zmuf/Tdd+vi/5ryHYOy79fV/kHrZ/F0IF4inb5oplrbxDC6suvX7f77VX/8b7fr+H8QH
+ qo8BGoIIA6Agg0jKegwsnLyOQSB+1Rmhnf//y+35/x/EFkxYHQNSj2IAt3EkA5dRBAbmjlgMwmckdv3/
+ D6J5IpfE8LjXM7BK6jCAANwAXIBJVIOBLWjuGRBmtSuLYRbThMpAALIBTEDMB8QyQKwFxMYwzGRVvIzJ
+ KLkEytcGYlkg5gdiZmQDGIGYHYhBhogCsRQOLAbEIM0cQMwEN4B8/J8BADrJ+mnlo424AAAAAElFTkSu
+ QmCC
</value>
</data>
<data name="document__plus" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
- YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAACEklEQVQ4T4WSS0hUYRSAD5NF
- gyA5mFJRMOBEmJSPRYM43SyChh70mAEXEkw+B73KyNjglBpCtKlNUSAlQdimTQQh2HI2bmbRohatJGtm
- xAYf834fz7nM2ahzu/BtLv/33f8/9wfH9DQwzpmZm8TAf2i8NzUFd/x+uD05CWdsNgB+UWYwWSjgZjaL
- 66kUhhIJXI3H8XcspvElEEBaN0hYJMARrVZmKJ7LYZTEyPY2rkSj+GttDX+Gw/gjFMKPi4vID60dIiws
- a4FbPp/gTlBgI5ncN/JqYQEFi93+mAAGbni9wnAqn8ct2n6lCO+Ej0POsHhwzeMRRtI0g1g6rRvhADkj
- 4sFVVRXUDAUSmYxuhAdLjioeXHa7hbFcsYgpmoNehP8OOWPiwcX+fsGTp0CG5qAXWacjkuMRDzpcLmG8
- UCphlo5RKXJ/eRRblq5g3ctzy+ZZBU496QC40NMjeIsU4F1UirR87cK+jQk8NH/ij+H9UYB5E0B7d7fw
- sEQXpUCB3ZEHAfry50uEgs5/A3jwzbG/JAfhnWkOGhUFzjscjI9vWol2sTvS+knBrsjdPcDrI0Hg56TV
- Cqft9kfaXd0n0rukYusHm0bzqg2rntaF4HlNEF7UzLFvJOobrNZZCWgRgmfCg+Uj8S9ue9uJx1fO4gF/
- bZidsgs0CWg2ms3j1U1Nz/SoctZ+N7iMEcP1w9/YIUw7Q/B728HeTjIAAAAASUVORK5CYII=
+ YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAACDUlEQVQ4T4WSS2hTURCGf2IV
+ g1BsqIqKQqARqUVbuzAU47WKYPCBjwS6KELUVoNNJSUaGm0rBXGjG0WhaBGkbtyIIIW6zKabLFzowlWx
+ mqTUUG3e7+nMJaeLaK4D3+Yy/3fnzDlwjY/ruCcmzjGD/6Ht8tgYLoZCuDA6iv0OByAfatzIlMv0u1Cg
+ 5WyWouk0LaZS9D2Z1PkQDpP0MDYlEHRbjZupYpESHIyvrtJCIkHflpboayxGX6JRejs7S1LSx9jWBeeD
+ QYU3zYKVTOafkmczM+vYnM77DAScDQQUt7KlEv3h8RtJZBI5jvSqHE77/YqhHO8gmcsZSkQgvSqHUz6f
+ wpdnQTqfN5TIYqVX5XDC61XcLlYqlOU9GEnkdqRX5XBsYEDhL7Egz3swkizzN+lVOfR4PIqRcrVKBT5G
+ I8mV+WHqnDtJrU8PzlsnNex90AMc6e9XBCoskCkaSTo/9tL1lTu0aXr3D9PrbcC0Beju61PcrfJDKbOg
+ XnI1zH9+f5zRyP1rkDa+2PmTwxG8skyhTdNwyOUSgvLSqjxFvaTrnUa98Ut/gedbI5DaY7djn9N5TwRS
+ 9ZJrcz7qeuPQ6Vh0UNPD1igeN0fwpHlK8mZm+w67fbKW10uOIzuRxYpIrvjwy6O0a+EAbQi1xCRTy4I3
+ gQ6z1Tqypb39kRFN7pbPJo85bjqz+ZNkAFjWAEPwe9vSE1Y8AAAAAElFTkSuQmCC
</value>
</data>
- <data name="arrow-180" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+ <data name="arrow_180" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
- YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAAB+ElEQVQ4T2P4//8/AyUYrFmj
- /hSDXvslBuO+mwwWUx8w2Mx6yuAw72UMEM+0n/uCAYb1Oy4zwDBIPUgvLgNigIacgWKwgca9N+CaQYbg
- NmDK/RigK87MfPr/P4gGucio5zqKZtwG9N6IAXrjzIwn//93XfvzH8Q27LqKoRmrAbptF2OAzjoz9eG/
- /0X7vvxvOvfzP4iPCwPVz4SHgXrdyRhgQJ6ZdO/v/4wt78G4cO+n/1XHvv6vPPr1f8WRL//LD0Nw2aEv
- /6uPf/0PUg83QKn80Jn+23/+p216B8cJ6179D17y8L/n7Bv/XaZd/u84+QIYg9gRK+//B+mBGyCbvytG
- Jm/nmY4rv/7HbHj732bZ8/9Wy5/8d133/L/z2mf/HVc/+2+/6ul/25VP/1uvePrfce3z/yD1cAOAHAbx
- 9E0xYmkbz4Sd/PWfb/XX/9o7vv8H8XFhoHpEGIAMACpkEExYHSMQv+qM2dH//yV2//8PYgsnr2MQSVmP
- gUHq4S5gAAJWSR0GHvd6Bp7IJTHcEYvPKO/7/x9EAzEDl1EEBuY2jkQ1AGQICDCLaTKw2pXFsAXNPQPC
- TKIaMCkMGtkFTEBZPiCWAWItIDZmMkouYbIqXgZiI2FtIFsWiPlBdiEbwAgUYIcaIgqkpXBgMahmDiDN
- BDeAkuwMAP4K+lUpqC7eAAAAAElFTkSuQmCC
+ YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAAB6ElEQVQ4T6XQXUiTURzH8eMj
+ WqjMorZK9CYvtOyFNogwzYZFdGsgEw4kGNpV0Qu+QkIXKaIFltEKvWlYOlwlXaSRF5aJcYjMXiaCOvBx
+ JpggG5Gov/7/pU+TtYg68NlzzvP8z/diAsB/Cf1k1r4R++reC9v1UXGoZVLk3NXF0bYvkjjzWmfEmv31
+ Iwae/1NAErUqFLQ1ef8ycGtCUkQ5dYCfHLQ2fl53OXqgySspou5MAQ2flsD7Aw0fIy7/NrD32rCkl6rF
+ t4KLfQFcffsdfI6G5p1GIOPKkKSIah5fxtmn8yEXXiyg+nUQVQNBVL4KoOLlT+X9AdQMBsHzRmBnRb+6
+ MbaE0u6vhmLPLE65fDh5z4tjt0dgv/kuhPeOjgnwHSOQdr5Xpp7rUfUfFiEfzyGn3Y/sB1M47vEjv2sa
+ dvc08jp15HboOPxQh73LD543AnQQ28q6paX0iSocWoTJHUTWs2/gczQ0/+s/4AC9FJuL3XLT6U51cADY
+ /hzg/ZYSj9h65lEEnjcCvOJ27BFJJ2pFUpFLJjruq/Q+gJ9EJFgdERJtResDayvWskvEHSmX8QWtimnm
+ zNUvkSs8oBETSSW7iU2zllzWsi+18z5MFkkjySQ2PBBDNhCOmElKFBbClzcSzQj8O4gf/gr6VaWflwMA
+ AAAASUVORK5CYII=
</value>
</data>
- <data name="plug--minus" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+ <data name="plug__minus" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
- YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAACH0lEQVQ4T4WR32tSYRjH36KI
- ykaFgYFKF+ZxeiSNwTxsI3Xp/JFHQSU82PyV6yKlwmI3DhMKvQ2K6q6rguiv2F0wY9APxgbBiNFN7CoY
- DOrp+8gcyx22A5/3Ped9z/fzPs85QhxyWSwWkUqlRK1WG202mw86nY7U7XbFgMPyggWqqroKhcL86uo6
- YX5UKpVEu93uSw66Itjsmc3m28FgcKHXWyGPx/NUURS5UqmIVqt1oOAOwp8ajQbxvLi4TFar9bnD4bga
- j8f/a0evArfJZPpSr9epWq0SemfJssFgqNvt9n3t6AkWQqHQJsqkTCZD+XyeyuUySz6jnbnhdvQEH3K5
- 3FYymaREIkEomWKxGIXDYZZ83duOz+fT/YYfNU37E41GKRAIkNMpk9lsJUkaJZfLzZIVtHPPaDQKVLRP
- kMDKGpeuKBMIyWSzOXeRZS+EV1iypne0isXvxWKRJif95PUq+G2+XcbGJojhd4DqwpAZsqxzOBgM09TU
- DCQzND19g/z+yN/x8WvbkuT+bTCM/EDm/mMM78G7IcEzPG9oWpkikSyl07f4tA3wrSbErxdC/HyDe4SW
- BrwV4vXAoeGGstkshzY1ba4/g/RlDK8Q2pqdpWF4nQV7wxx8CbbBTd68Dp7gJJS9NAyv8zuDkzl8FxjB
- eXAWjIAz4DQ4CU6A4+AYOAqOsGCeJeAh4I/rADZwCfCPvggugHM7slM7or7kH9bA66xzFurjAAAAAElF
- TkSuQmCC
+ YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAACG0lEQVQ4T4XR3WtScRgH8F+j
+ iOo0KgwMVLowdb4wjcE8bCN16XzJF1AJD26+5bpIqbDYjcOEQm+DorrrqiD6K3YXzBj0wtggGDG6iV0F
+ g0E9fR9l43iCfOBzjhyf53t+j4pRZTQaRSqVErVabaLZbN7vdDrWbrcrDo0sDkgkEo5CobCytbVDuD8s
+ lUqi3W6PDAhDz2Aw3AoEAqu93ia53e4nsiw7K5WKaLVa/w24DR8bjQbxfW1tg0wm0zObzXY1FosNrdPv
+ 1pRLr9d/rtfrVK1WCc0csiFJUt1isfyzzmBkuFaDweAejkmZTIby+TyVy2UO+YR1lrXrDEaG630ul9tP
+ JpMUj8cJR6ZoNEqhUIhDvqjX8Xq9gwlNfVAU5XckEiG/3092u5MMBhNZrRPkcLg4ZBPr3NXpdAInGkyo
+ Kg7bfHRZnsGQk8xm+xGn04PASQ7Z7ndrKgHfisUizc76yOORsaf3yNTUTB/3cK8Dlwyoa4eHA4EQzc0t
+ IGSB5udvkM8X/jM9fe3AanX9kqTx7+i79wiXd/CWp1T1FHYVpUzhcJbS6UV+2y58rQnx87kQP17jM4bW
+ D70R4hUPcilA2WyWh/YUZbl/h/QVXF6ieX9pibT4Ob4eGmYv4ABugrgOj/EmHHtdi59zj3r4DujgApyD
+ cTgLZ+AUnIQTcBzG4BiIFeDhB8A/rg3McBn4j74EF+E8cNhp4CCEiLG/1sDrrBr919QAAAAASUVORK5C
+ YII=
</value>
</data>
<data name="scissors_blue" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
- YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAACRUlEQVQ4T6VSS2gTURS9mSyD
- QRGtRlOxkM+gdcAQiIImMQYbE2tIqqVmJUHcWPCDkj4k/q2gYBcuahYuhIpWorgQsSqEqhUpmE1WQQrR
- QsBo1m7M8543HQ0ibhw43LnnN2+GISkl/Q8ok8lQNpvdxzBSqRRFo1EKBoPk9/vJ7XariR08dPjgRw4P
- VmQ+nxdAMpk0/lUA3fIipwpweTweUa1WZS6XE5FIxPjbCcBDhw9+5H4V8L3h9XpFrVaTfDQRCASM7lfA
- Dh46fPD/WYDd8Pl8ol6vy0QiIdho4BtgYgcP3Qr/LvDtJ9KzRKs3qRJ+smg0GjIcDguXyzWEiR28CsMH
- P+fMVxi8Q5S5R3RgmihyHkWGruui2WzKeDw+U6lUJHbwSocPfs51Fzho6EGacYkxSeFiuW/30flWqyWd
- gzfnKTVZVrypp7nA0V3goPTdse3F17NnyovfxmfanWsv2vJ46Y2077nexj0AHjp88HOBwzzB3tLBUOHl
- O5g8R6Y+2AduvLr87Iu0x8YrjAlMtTPfM1Kau/r8q4QfObMgNnGrO3z28Sep7bwwq4UvDmu7rpCavIO3
- SsSjz9+RMwtC556y2IFYfLIotdDYW22bGNG2HCbbxhhhqp35wsMFVXL6/scfyJkFm0dv7zg21cQpbFtP
- vbd5hw/ZnL3mL7p0YVc864XphQ78yJkFy9xR6h8tMeaod+AkM/34uxkbGOsY6xl9DJ31E8oHP+esX9nF
- ooW1fN/DWMlYznAuYQXPVYw1XV4XCn4Cnzlvq0a0CiQAAAAASUVORK5CYII=
+ YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAACP0lEQVQ4T6WRT2iScRjHH1+P
+ IymiVpaLBq9/qPXCRLCg1EyaaUt0NZankNGlQX8o3I+w/y0oaIcOy0OHYFELiw4RrQJZtRiDvHiSGFgD
+ Ictzl/z1fH9vrvcQXfrBl8fn+/08XwVJSvlfonQ6TZlM5iDLSCaTFIlEKBAIkNfrJZfLpSZ2+MjBgced
+ KoCZy+UElEgkjH8VIO+wuFMFeLqui0qlIrPZrAiHw8bfCuAjBwcedysF/Ay32y2q1arknyb8fr9hLcAO
+ Hzk48DiyFuAZHo9H1Go1GY/HBYMGCjCxw0cOzsQ7BZ5DRL4M0fpt8PDNol6vy1AoJJxO5xAmdvjIFQee
+ 78yCwXv8VzwgOjxDFL6IIsPn84lGoyFjsdhsuVyW2OGrHBx4vrMWdNHQoxTrCmuKQoVS777ji81mUzoG
+ by9ScqqkfDNPKd5S0EWp++O7Cm/nzpWWv0/Mtto3XrXkyeI7ad9/s4XPEHzk4MDjziw4UDwSzL/+AEgf
+ nf5oH7j15uqLr9IenSizJjHVzn73SHH++stvEjzuzILo5B3r8fmnn6W259KcFro8rO29RmryDr9TIp58
+ +YE7syB44TmHbYSFZ8tSC46/13aKEW3HMbJtjRKm2tnPP15SJWcffvqJO7Ng+9jd3SemG/gVtv4zCzb3
+ 8FGbo4eDPw+78jnPzyy1wePOLFjlilDfWJE1Tz0Dp9npY+msLaxNrM2sXpaP81OKA893ZgGR06KNrG7W
+ WtZqluO31rDWsTawVngpJf0CnzlvqzPbQEYAAAAASUVORK5CYII=
</value>
</data>
+ <data name="plug__arrow" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+ <value>
+ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
+ YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAACVUlEQVQ4T4WRXWhScRjG/4Uw
+ YjoqjBycSZB4/FxaAxUdqUvnR36ASnhy+ZWLllLDhQSKGCy9G9VgdNHtrroKIuhy0cVCwz4WssFiiHQ3
+ aATBoN7ev66lBvnAj/cczvs8vA+HDNLY2Bjx+/0knU7L8/n8fLlcZiuVCvnDQNEAr9erjEajuc3NHcB5
+ Nx6Pk1KpNDDAgdQYhrlutVoLtVoDNBrNosFgUCWTSVIsFv8bcAN5l81mgc61tTqIxeJlmUx23u1299Rp
+ b/dJLRKJPmUyGUilUoDLNKTO5/MzUqn0nzodS68KNpttF8+EYDAIkUgEEokEDfmIdWb763QsvXoWDod/
+ +Hw+8Hg8gCeDy+UCu91OQza66+j1+o6jT+scx/10Op1gsVhAoVABw4iBZeWgVKppSAPr3BYKhQQv6ji6
+ 5EG26OkGgxFNKpBIFIeoVFoMPEdDttrbffIi27FYDEwmM2i1BuypP2RiwtiGjS/tSbgHS4zrDjl96WbH
+ eaAdarZa7TA5OY0h0zA1dRnMZscvne7iPsuqv/P5I80L5bdN/fKXqu7xdmS8/OHA2tFDpMVxCXA4QhAI
+ zNBTW0zw/h6bff5Nnnv1VVVa/4ym6koLgE71Yj3SdqI4BEKhEDXtctxseyKBs/deVx81AeY2AGbe/yXb
+ AKDfcKfHTFlB9pErQ8w4GU2/fCKae1HtRv8GgE781r6g23wLESInkePICCJAhpFjyJDg6mpNEFmtDdsK
+ 1/D9CEJyCDUvIEpEhkiQMwj90aPIKeQEIuCZFp7yjPNxfOYRQo7+BkAoE8QUbfhfAAAAAElFTkSuQmCC
+</value>
+ </data>
+ <data name="navigation_000_white" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+ <value>
+ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
+ YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAACLElEQVQ4T6WQS2gTYRSFBxWX
+ oouC1kViEXe6MAtBxSKWpj7jshXFxAYVRd2IohbcBIMudCmCLhR34sYKXYmKLVUhcVKnbVIrSZpO8xgz
+ E81MJ2kGj/f+tBPioxsHvuH85557hn8kAP+FeHWGhqWDFxLSsYGsdCpS8oZvfYsSMmEtwjrKM85wlnf+
+ KOi9ng6GIznt6ZCBr7MLsOs/BazZ4xln/lqw//ynYOjmZH06Nw/HcdBoNFpgj2ec4WxLwc7jr73+MyNa
+ Kv0DtVoNtm0Ldp14K1g684wznOUdt2BrYDB655ECy7JQrVZdTl57B5oJljzO3H6osBd1CzZ3P5Nj4yVU
+ KhUXTdOQyWQQOPsSNBfE43EkEmN4MzrNZ9kt6Oh6bpUNE7qug/SyyPIYJpNp1pZbsKVnyCrrJlQ1D9LL
+ oihJTCSzrJsF246OyO/lEqamsiiXv7fQPzAOmgtyuSJSqQxeDWf53LzCjr4J+okqZmZKSKfzLqEbX0Az
+ QT6vCy+TKSByP8te8yfuCea8B87NabHPVbpGBbOzhqAzpAo0zXS90ZgBzvKOW7C3vyB1ndaDfVeMelyx
+ USzaKBRsmKYjYM3ex8Q8einDWd5xCzZtvyx1+K5KvsODwcAlQ7v3xKLwAtS8A3XOwYdEHXcfmzhy0dA4
+ s659t8SPW7D4rCI2tnl6un2HXjzYFy4q9CWLYc1em8fvp4yHWM0LvxesINYQ64n2f7CBWEusJGgX0i8d
+ 9Zrh2R/wRgAAAABJRU5ErkJggg==
+</value>
+ </data>
+ <data name="clipboard_paste" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+ <value>
+ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
+ YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAACbUlEQVQ4T43SS0iUURQH8LNJ
+ aCdCBVGrcmzCwvGVD9LJohrBYMwcx7eljY05OJpjMIFFWhSJwSQVZQ/T3lkumqBNIIEtbmgPqCSEKGtR
+ COXYzPj6d8+X301d9cHvm8v9zjmce+bSuUzSdJj/OWQxRuTl5eVKjjm5vDc/Rs+bX+CiJNgJEw11HXZ9
+ HR7+CMZr3tO/c6wq4JOvOeJDx1701aZhYOA1BgffY2Tki4bXvMff3vnKwbF6Hp3drIg37cW4URaLS7a1
+ uF6yHrf2xeFOVTy6yzfgSmEMeio24lVbIThWz6O2NEUMnbHj+dEcPGkway40WtHeZFfON1egs9WBlu3L
+ 3tYVZZDLnk50OkURL0/l45l3p+LzluD3zAx+TU7iRyiE0UAAff39qLOlfrJ6vdE5Hg/RySRFvGix4qln
+ q9LmKcDE1BTGJibwfXwcn8fG0OP3gx+Z7JQMdDyBdILbf+zO0PDAjjlzEJyexs9gUBXxdXcr0RbLEWqO
+ I53gth8cSNYGebkgGo1lWQjLIwTC4QVFuJNRud5WU+MibyzphL8+E1eL1qHTbtA0lGZhShYIyhksLsIz
+ yaiqclOTkXTiYU0KrhUbFXfJFszMziIsj7G4CA82pbS0geoNpBO9skCXbF/nKjJjVg5sWnaxuEhAruNt
+ Ng/tXknkWqMRvc5N2mXRVeenaxPnItwJH4dnwoMNyd+Y7GyvvEpEu1YQOVb/LXC70qTUWuNRYDEtYM82
+ Icm46lukydQalZhYyflLpeV7Ikk8Opiq/Qv3q5Nwz5Go3N2foOFrzTiWc+ZyKUqKTV5CN3dEkPgfHMs5
+ RBT1B7y5F+bFJBNnAAAAAElFTkSuQmCC
+</value>
+ </data>
+ <data name="document_copy" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+ <value>
+ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
+ YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAAB1klEQVQ4T42RyyuEURiH340F
+ UmajKCnMQpqNjZIMUcPkHjWb2VgwNMkIDU0zO/4A+Qtc0zSxIDW5DPtZ2llIochlzP32en8fo89BOfXU
+ mb7zPp3nDI14vTTq8/UJ439QP+zx0ODiIs5p9I90krWxhIwVRUT4KDhi2Sw/JZN8H4/zzdsbX0civH9+
+ zvgmGPWCgrDFYiZtI0xG02l+jEb59uWFrx4e+PLujjcPDxkL3wWjKhhwu4l65+fBVCyT4edYTJMEw2He
+ PjvjpbW1Lzocjj0Z/pakCbpdLuBMSMJrIqFJAhcX/J8kTdDldILplAxEZQCSgBz8T5ImaJ+YADPpXI7j
+ MgSJPxRifVJBsrqx8YWxp8cjELWOjYHZbD7PSRmCxH96yvok9SbIQTbyqdluB3M5EWRkCJLd42PWJ6mS
+ G9kjG/nUZLOBhby0ZSUDkp1gkPVJqgQPi2zkk2loCLjxOHm5BSRbR0esT1Ilz6kUIxv5VGwwULXZ7IMA
+ CzdZPzhgfZIqichvZAuEVVNaV+cqM5lWCtRbLCf6JFWCvxjZyMcqFyqFqgINVuuydpvPJFUSlz2ya9va
+ 5PjPVa4mIQdvgofFv5OSPc7IWcPHyPf1I+k3cIaIat8B3mKCyYSeIBwAAAAASUVORK5CYII=
+</value>
+ </data>
+ <data name="server" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+ <value>
+ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
+ YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAABVUlEQVQ4T42SsWrCUBSGE3Fq
+ x1IoXZw6O+ji4pLBIUggxGfQUEIppdCpQwbHLp2yd+gbZAiBSEBBGsQMQoJLkCy+xOn9hXMRcmkNfFn+
+ 73zT1YhIcxznxGQyGQum/zBmH7enn23bzOx4PFJd10qwwWFfBizLYtzD4UBlWSrBBod9GTBNk3lcLBa0
+ XC6VYIPDvgyMRiPGq6qK9vu9Emxw2JcBwzCYp6IoaLPZKMEGh30ZGA6HzHMYhhRFkRJscNiXgcFgwLzs
+ djvabrdKsMFhXwb6/T7zmmUZpWnaIAgCwgaHfRnodrvM23q9piRJGuR5TtjgsC8DnU6HeV+tVhTHsRJs
+ cNiXgVarxXyLp0p/AYd9GdB1XWu32+DT8zxyXbdB76dH2ODAxY0M4BPFBzF8zOdz8n1fCTY4cHFzHrgR
+ xakYvi5BuDNxc3seuBLcCe4vBO41EWm/V6j5qYaWq90AAAAASUVORK5CYII=
+</value>
+ </data>
+ <data name="plug__plus" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+ <value>
+ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
+ YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAACSklEQVQ4T4WR3WuSYRjG71YS
+ KzPd3sBCJcjU+UEagymbpA6/86NUwhfDr7mClAhbI3CIQWi0DoI+GCwi6LCj/oSdBToG1RgbFAvGDgqP
+ gtig7u5Ht6EGecGP530e7uvivnihn+RyOYTDYcjn8yOlUulOtVpV12o12KevWEAwGNQlk8nZ9fVNpHMm
+ nU5DpVLpG+AhGjKZbMrhcMw1GmtoNBofWiwWfTabhXK5/N+AG8RysVhEdi4traBCoXim0Wgu+v3+rjqt
+ 6R4ZpFLpp0KhgLlcDmmYhawIhcKCSqX6p07b0q05p9PZpDUxGo1iIpHATCbDQj5SneneOm1Lt97F4/Ff
+ oVAIA4EA0sro8/nQ5XKxkM+ddcxmc9vRow88z//2er1ot9tRq9WjTKZAtXoEdToDC1mjOrc5jgPaqO3o
+ UIDYYKtbLONk0qNSqT1ArzdR4AUWstGa7lGQ+JJKpXBiwoYmk4V6mg8YHR1H7v45hMeSHbh38j1EjwGE
+ BtvOPW0ys8PhQqvVTSFunJy8jDab58/Y2KVdtdrw8/Cj4Z2p5gzCW64Ob4YBXg3tWdt6SmzxfAY9nhhG
+ ItfZqlvEKuSEP2BevA0vJKux79NIxnqLxaEFZmTiCYzFYszU5HkaopOIwPkjAM/Fdfv2VeyFvdNMl5nx
+ ktglrhEA7qMAT0QLMC+qM/TfrLj/3XondZpvERzByokJEXGCOE4MwgPh8pmvOqSzQfcB4hABswQz3yV0
+ hIZQEmcJ9qNPE6cICYQFr+GmYBmuCBbpTt1g4C81gPtUdb137QAAAABJRU5ErkJggg==
+</value>
+ </data>
+ <data name="navigation" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+ <value>
+ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
+ YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAACdElEQVQ4T6WQX0hTcRTHr9sc
+ kfqWNQ3CUJNMmcocYqllkbagjKlzFszZ5hYViRFlQtGLYr0FFpTWQw9BEUWuuorL2ohpBja3uTmn7eJq
+ y7YH3Q182Dj9zp1uFkYPHfhczj3fPxcuBQD/BffgFwxS/MJXFF9ME4ZE/KJhDeEe4fUquGs4DT3oJZmN
+ CmrTyoyDB/Qzbt2t0NLFO2yko4+NtPWGlqraXG7U0PO3gtr0yncm3c1QWNvzA1Q3/FDX4YKmq15u1/Ys
+ Qmv3YnhLxagJvX8UvMxIK6UNmu7vYWWXFxSdX0B2bopIscF3BLXmawvhVMkbA2aItFqQ/1y7T22dbbzi
+ gWPt0xxHzlphzLrIFeCs3eWX3FCiGJ/FDDnHCnh5TwcaO+eWa85MwhrVmo8gPkHDqIUBv98PDMNAzuFn
+ kCd7AVLl+2XMJApyHw8pu+Yih9o+wcrKCmd2OBzgdDrB4/GA1+sFn88HgUAAdskMUFxvjGAmUZD9aLjh
+ 8kx0r2oM7HY72Gy2DcPBYBDy696CuMEUxUyiIOvhg2rt53CRcgJ2Hx/5DYNxOh7Gd3HTBCn5EMZMomDH
+ fX1ujXG+7PQMlLa4OEpOTcGQmYmHC+TmuJZZQc9jJlGw/W7Gpp39dJnazZbrv0G57itIVM54WKwY525I
+ 8UkXK8zqpzGTKMjso3ii27KUnAGLtJVhqy4sQSWhuHmSA3dE0uJlN2cPWNCLmXgBTpIwh0pKUR8VpveO
+ ZFXQjFS9wO5v/xlFcMcbauhBL876AgFhG2EP+aMHKYH8OpV8/gmV3GGOQXa8oUZRhQQRQbC+gEdIJWwl
+ ZP4D/BB6eQBA/QI/midrCye2uAAAAABJRU5ErkJggg==
+</value>
+ </data>
+ <data name="application_task" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+ <value>
+ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
+ YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAABmElEQVQ4T6WTP0iCQRiHD5wa
+ BCGKCIKQSFqCbHFycnEQVHCIdvtDBBG0BG01tTZl8oEkkiKCKOKHS5ZZmSgoKejioKGIgoIiyq97D3IK
+ 0Xrh4fdyxwP3HncMwL9gNptNzdnh2GeEHDWzWq27iUQiVyqVUCwWkM/nkc1mkEqlkEwmwffw/Ey88v4D
+ Ly9ZvL9/IhJ5ypHLzGbzgSzLiEajfDGCcDiMYDCIQCAAv98Pr9cLj8cDt9sNl8sFSZLgdDrhcDigUCjs
+ NMIen+VPRS6zWCz7o9EIb18JDIdDkdsPatFPghxymclkOhwMBtjyrOImcy2y3++jXC6DRqO7+CEej4+T
+ HHKZ0Wg86vV66Ha72LxfETkN5JDLDAbDcafTQavVmglyyGV6vf6k3W5DLoTRaDREbkhLop8EOeQynU53
+ 2mw2sX63gKvHC5HVahXpdBo+n0+8A8pYLDYmFAqBHHKZVqs9q9frqFQqWLudFzkN5JDLNBrNOR2pVqvN
+ BDnkMqVSuadSqS7/ArmM1xxnkbM8I+TM/fpFpwfsG0e9uo785o6EAAAAAElFTkSuQmCC
+</value>
+ </data>
+ <data name="navigation_180_white" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+ <value>
+ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
+ YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAACLUlEQVQ4T6WQS2gTURSGBxWX
+ oouC1kViEXe6MAtBxSKWpj7jshXFxAYVRd2IohbcBIMudCmCLhR34sYiXYmKLVUhcVLTPGolSZNpHmMy
+ 0cx0kmbw95xLMyE+uvHCN/znnP/8w70SgP9CfHp949LBCxHp2EhGOhUoOf23vgUJmTCWYB3kGXvYyzt/
+ BAxeT3n9gaz6dEzD19wizMZPAWvu8Yw9fw3Yf/6T13cz3pjNLsCyLDSbzQ64xzP2sLcjYOfx1073mQk1
+ mfqBer0O0zQFu068FbRqnrGHvbxjB2z1jAbvPIrCMAzUajUB9QQnr72zewx7bj+M8ixoB2zufyaHpkuo
+ VqsCqgWesy8Ri8URiUwhHA4LWL+ZnOW5bAf09D03ypqOSqUC0ssiy1OIJ1KsDTtgy8CYUa7oUJQ8SC9L
+ NJpALJFh3Q7YdnRCfi+XMDOTQTZbBNWC4ZFplMvfO0gm03g1nuF5+wo7hmL0iArm5kpIpfLI5yugnsB3
+ 44votUinCwjcz/Cs/Yh7vFnngXPzauhzja5RRS6nQVV19PoUAdctJkMa2Ms7dsDe4YLUd7riHbqiNcJR
+ E8WiiULBhK5bAtbc+xhZwCB52Ms7dsCm7ZelHtdVyXV41Ou5pKn3nhhkXoSSt6DMW/gQaeDuYx1HLmoq
+ e9Z175b42AFLZxWxscsx0O869OLBPn8xSn8yGNbc63K43eRxEKt54feAFcQaYj3R/Q82EGuJlQTtQvoF
+ mPmaEnbYmIEAAAAASUVORK5CYII=
+</value>
+ </data>
+ <data name="loading" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+ <value>
+ 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
+ dEUlCwsUDOCQdasFE1yCAAA7AAAAAAAAAAAA
+</value>
+ </data>
+ <data name="navigation_180" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+ <value>
+ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
+ YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAACb0lEQVQ4T6WQXUiTYRTHXzeV
+ SL3Lmgti4UwyZSoqw5r2RdqCEsyPWTBn+4qiZBFlQtGNYt0FFpTWRRdBEX1o9WrOalJTDEynbc5p79gq
+ W9vF3BvsYuP0nEfdRhhddOD3cp5z/v//8/AyAPBf0I8wv48RFrxghDKWMCASFg5qCbcJL1fAXkt3qEEt
+ 8awVUJ0hN/ftMc46DdcDwXM3+Yipm4/ouwLBSr3DiTvU/C2gOrPircVwLRDSdf4E9dXv0HiJgxqTg/a6
+ Th+0dPhCGxRvLKj9I+B5VkYp26/t+BFStXPQ0PaFslrK01P0jLumy55QesmrfvSQ1UpA3hPdLs3kXP1F
+ Fxxu/UxZrdFJHxw8NRmb1553QnHD2Bx6yHo5QJD7qLe+bX6p6uQEIFjhcBiGrRzkKp9SpAceU7AvU71b
+ Qk88IOfBgKp9PrJf/5Ea3W43zMzMgN1uB5fLBRzHgdfrhcXFRdim7Ieio+YIeuIB2fcH6y7MRneqR2F6
+ ehpsNtuaZr/fD3k1wyCrs0TREw+Q3Lu7V/cpVKgah+1HhmLmZwM2ek5E1jhOQt6H0BMP2HLHmFNlXpCf
+ mIXSZgfk147Ebn79wQPFx6fofBWxgl1ATzxg862sdVt7WLnGyZcbv0G54SvIGsZizy5R2+kMKTrm4FMl
+ PSx64gHibkYguqFMk/Zay1rcfOXZIFQQipomKNgjJc0cvz6714pa9MQCsJJSpUxSmuZQambXkETBuss0
+ Hn53668ogj3OcIca1GIlBiQTNhF2kD+6j0muvcKknHnIpJhGliE9znDHMAUEESE5MUBASCdsJIj/AV6E
+ WgEAML8BO0ImlDvbiwkAAAAASUVORK5CYII=
+</value>
+ </data>
+ <data name="arrow_circle_045_left" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+ <value>
+ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
+ YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAACy0lEQVQ4T6WMe0iTYRTGX0f5
+ h5aK5XAjyyTNtMiaiXlBa9FFWlIY2SqNFCWdlY1klEa5hAwxhxcqKrWRl3JOlxe0qWlWEp8NxIpyWTLn
+ nHhpyhyKdTrvVnQh6I9e+H3fc87znIcAwH9h/WyRacnWkiESfktPIu6MciPvGkVIBcIgnUgeIkDPhWZo
+ lt5Q/iwQ8MsMmuS2aZ20b94s034FxIRak6Q2VfBLDRLMeP29oPiTYGe5vq9w8AvkaOYhm5n7gQl5g7sG
+ 9Ap2lA7HY5bzW0Hg9ffcsJJBjWxgAbK6ZyBdPWXZW67TBhYMMEgn6tbTrVOqzO6ZAsykhRZ/4OONPS//
+ na0gILdfFF9v0EnaJyG1wWjBmdl07bWQBiioo3B3NbnOIMNM2uEa/T6cOYitwC+7t1LcMW4W1elhe9Fb
+ rb/0lZCa9HjdZYasv6IhuNsclt8vOakYFolajDF4443YCrzPP2MynkxAUq0OqF6b1UP88NAjXU1WiduJ
+ 57kO4iXpojle3P2PkZiN8Lnw3NMn84WtAENMaosRjmMB1R5nHpMVCC1YebbtJt39Cd1T31rASW2qjKke
+ MkdXD0NQ7kstJ6VRuDxRSdxTGglX1HwUfSZJPQEHlQYrcU1jQHeIrQDDIl5ery60ahSilSMWnJllCbVC
+ 5/gHxPWEgvpFdHegeRIC5SOwp34c6IzYCpzjqrmuiQpN8CMT+Nd8hl2qMcsGabfW6VgVQ6E6rGEa1lRN
+ wu7WGaD6u2crWHqkgjjGygVOCYq+1SoLuNfOgk+jBYLUc1ao5ipnIaDZAg6H7jFRT+esf8RWQB+L7UsW
+ hWcI7GPlGseLPbolZUazg2oBQroWYGPNmJkt7dGh17F4/+0chKGw3Hx/FuBzRDzt2P7bWMGnLrGiCh+y
+ BDd6rVCNOzu2Hx8zPBYvUcwKEctp/tcCe8QF4SDcf0AzboQQl2998A7b1GyoygAAAABJRU5ErkJggg==
+</value>
+ </data>
+ <data name="cross_script" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+ <value>
+ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
+ YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAACCUlEQVQ4T6WQT0iTYRyAf+H0
+ y+W2Pts3zRqFF4UIsYF2XSeJLjtllwKLCVkSaSUVFhKCK60oLDo0sn/zkgWjOqxdOgWfRGZBpIcYH0FE
+ l7xk6dfzi+1LQYLqhWfv+/v3vPtecV33v1gx+Tf8+smIyLhIG9hFrtwnNwY34CbcAfq2UOuHh5D0BFoE
+ +0dvrzvX1bU42dLiaHxrieC2yFCmouIl+Wd3RXbCKk+QpgGSNNovWludTx0dbqG9fX4iEnmLIDYeDKbz
+ jY2z1LP0bdILEfz+BBXoLddpHhVJgT0Zj395l0gsPGloKOSbmgrkHiGr1d4/CeQSDCMaQZJrbv6ai8Xm
+ r1VWThPLRdBdWSY4S1BiQMQa5JEydXUfs/X130YMYyodDn8YLi+foianoa+IJyglTkG/yOV7luXko9GF
+ lGFMnxHZT+7BVb9/hv3xyWLvMsERAuWYSOdoIDBj19S4Y6GQc4IUQ6JDxxGnfL437IM9xEfBExwiOMzr
+ dvPdryzr+3PTnOOcRWqqWG/TAXID8JTeuM54giQBXEj7/c5sdbXbV1b2upOHTJAvre1wEOg7B0MHRHye
+ oJbCPm5/b5qLE1VVnzmfX69TK6xtQL2njaMnYG2ksHcPkt0iuYjIDnKbgaOEIABrwYINUf7QVpFdSwVB
+ CINerOigDqyB1WAUd42114R1nuDfceUneZR6RqCIHXQAAAAASUVORK5CYII=
+</value>
+ </data>
+ <data name="disk" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+ <value>
+ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
+ YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAABwElEQVQ4T6XNTUjTcRzH8e/+
+ 291DB0HCi3cvIXgVLyodBJlimOYjHsJT4EFRQXyam5swmRg+JOqmIjQhyk1xuXASdPCRDLXCKJKBD6gM
+ Bvv4+/x1UCD/lAavDX6/z/s3AfBfpMrsVFz1Sq+1tbXuLri9bpwilepLcexOnakHgcQ/8MMtG7byzOwg
+ 5+ZYFPFEArF43BA33LJhKxVmO/WvjxzhQg1OLi8NccMtG7ZSbraR+9PQTxzHYvh1emqIG27ZsJUyrYs8
+ Hz2H+K3+4Ws0aogbbtmwlSdaBw1F3N9wsH+CH+fnhrjhlg1bKdXaaTjs2kOga/NOuGXDVkq0NhoLOXbR
+ UzyObuurW/EuaW3gO9iwFavWQhOLPduwl04iElnDykr4Lzzj3UxjGM4yHz7074MNWynSmsi30LkB19Np
+ BIMhNOcP6Obn3+p4xjs+4Kl5jfd9X8CGrRRqjTQX7N6Cu3IOfn9A/yWfz69LnvGB0efvsGz/DDZs5YHp
+ oWSbinIKTA2BtryXx7OzCxis9eu83je65Bkf8L4IYcm2A+7Z8pOuZGZIVnWu1K5aLBbbbXj3p0fyeOSm
+ lRQlVUm7J9VIyhXrOGsNnL9vHwAAAABJRU5ErkJggg==
+</value>
+ </data>
+ <data name="clock" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+ <value>
+ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
+ YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAACH0lEQVQ4T6WR72sScRzHj+ET
+ xaInVvQXDDIUQSYSBjZFnL9AfVJO4qCYtHx6Ph0IY+CkB2PQxlhPF3u2h6PG9iRo7oy1us7LuZ15Em3p
+ 8Ik9+vZ9H7svJxU96ODlff1+3u/X9/Q4Qsh/oX8kEgkulUpx6XSay2QyV7LZ7AQlTeEvwXoCM2SQRedP
+ gvFHPF9YXl9/VZOkVufsbAiwxh5myPxNMP54Zqa0I4ptpdsl3y8uyJvdXf0OsIfZk0KhhOyIIB6PX304
+ PT27c3DQfn9yQr71+3qpUqkwAfYw26vX27l8fhYdJohGo/7nKyubtWaTNDSNlcrlMlsDzMRWiyyvrW2i
+ wwThcPjB6/39UwjM5HK5ke8Gbw8PT9FhgmAw+LSmKEMjYJyYTCZHnqDb6+nzT6o6RIcJAoHAM7HZ1AVG
+ 2Ov1EkEQSCQSIfQVEp7nSbFYJC83Nojc6QzRYQK/35/fE0XVLPhCf6vP59PvBgqlJsukLkkqOkxAT7tX
+ XVrawr+MxzRLjDXA7IOqkherq1voMIHH47l2f3JSeHd0pH09Px8pmenQ2cdGQwuFQgI6TOB2uzmn0+mK
+ Tk0tIPBjMPitjD3l+FiLxWILyKLDBLhsNhvncDg8LpdrrrK4uC3JstYbDH72KZ+ptFqtbtPSHDLI4jIL
+ LJQblNsWi+Wu1WrN2+32EmX+khL2MKOZO5Sb6JgFYxQ75Trl1j/AQciOEUK4XxFCZkazdi8rAAAAAElF
+ TkSuQmCC
+</value>
+ </data>
+ <data name="disk__arrow" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+ <value>
+ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
+ YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAACHUlEQVQ4T5XNXUhTYRzH8Wdn
+ u/eiiygiCC8jb0qSRkEYlBESyCrjzLIyJMSbghFGLmRO19ZenKysnL1uJVKTbLlZrR1r9ka+pGllGavU
+ GPiCyWCwX8//0KqFzHrgw4Hn+X//hx1QWjmbTFNdvahNF8bPcWLh1g6WY+xnqQXl3Gk+cHgxGxxvxjbW
+ DE0UaLoc8oJSvoCzjFyfBZ3kX07djWKP+10a1xcgV/d0Yo2hV2T7lRZiHWiJIZFMIp5IpClseAVHFDgy
+ CGj7fjs6DGQfl16wfUozsfc1f8N3HkzPz6epvNKL/NrwL1uMEvIeA6u0tyaXVfhFVqI0EefLpq+Yiscx
+ PjOTkbrKj3Xld6Be7Qqq17sZEwUjcT1zRTHJ//gxFsuoxP4ABv1zUEMt2ysYSFPEOYYPo9P4PDeXEc3Q
+ LDXUsmKhhlyUbO8RMA78E5qlhlq2W9CTlpBlBPW7LqNOc2lB9JbS0/gJ1FDLNMJJcrWrfhDm4muIRHoQ
+ Dktp6I7ebuokWEUvuu2joIZaViRUEW9nbT9s2hsIBkM4UdAoa2/3y+iO3miB69BtPDrzFtRQy3YKOtIW
+ rHsNZ2kbfL6A/CVer0+WuqMF7op7eGgeBjXUsiWKFSxPUbR5u6IyoN92fqq1tRNny3wyj6dDlrqjBZ5j
+ Idw3DYHmqaWzksvJZrkH81nZE5VKZVoIvf1pLdvR/LNlWdxSbvl/4g3L+gFdh0ZM0o7NxgAAAABJRU5E
+ rkJggg==
+</value>
+ </data>
+ <data name="document_code" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+ <value>
+ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
+ YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAACA0lEQVQ4T42SS0vbURDFZyvu
+ XLQrF4LpQgpduGjoooIgNNBKxQgS3EiwbaihREKD//qALtIP4AcQX0sXgeqqELRQERdKSUXBUkwaE0Jo
+ a97v6ZxLJijU2As/uPdyzmHu3CHnwoJhbHHxmfDiFnpH5+dpxLLo+eysgXDR5GW+VuPf5TKnCgWO53Ic
+ zWb5PJMxhHZ3GRrBdi0AhyavspUKp8WYuLzkH+k0nyaT/O3igiPxOG9sbzMWdIKtFTAcCCienAT8yuf/
+ GbK0vt7C5nDMCQToqd+vvC5Uq/xHyr8pBJXgOdCqj574fMp0UXqQKRbbhiAAWvXRkNereEsSkCuV2oag
+ sdCqjwY9HuVNpV7ngvTh5OyMg8Egx8RwnkiY/eHxsQnB70CrPno8NaX4qhKQTKXYsiz+sr/fquTz3p65
+ O41GOSV30KqPHk1OKjO1RoM/bm3x6tqaqeTqc5ZXVngzFDJzAq366OHEhOKvSwAqcLvdHN7ZaYV8CofN
+ 3fdYjDNyB636qH98XHnbkEGpyTO+RiLscrn4p3Q9Kl+H/cHRkakEwwat+qh3YIAeOJ0ggElrSBUIQT/K
+ 8islmY2rz8nLGVp44DWr226new7HOwRgtQvBsEELj64O4c5du/19028WnoOeoLEIwhdjTspyhhaeppe6
+ hPsdPT0znX19H/4HaOEhoq6/9L96oA3vJwcAAAAASUVORK5CYII=
+</value>
+ </data>
+ <data name="document_search_result" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+ <value>
+ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
+ YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAACrUlEQVQ4T32SbUhTURjHj2aa
+ jopMnEaCpC4nzYEJoSQbtg8JvWj0YqQiQprT5pTMDFGGik6YX0wIAyNwRrZwJchQBjLCwA8JFQ7NWumm
+ U3Nzm3tVeXrOTddc0IEfnHPu//nd555zyfXm5n3caGm5jJT/h+RrTU0kv7GRAAAhdBHEPdfODti9XrB4
+ PGB2OmHR4YCfdju81emAPkdS/AI6CaJy0+cDCxauYaFpYwPmV1dhZnkZlKOjWANAM0gKI7hUXx+M2LW1
+ BRsu1z+SnoEBPyl5eU2M4GJtbTDV1s1NWMCCxbU1WLJYYMVmA6PV6u+Efg7NMYJcsdjPBURUXS2ZNxrh
+ F4ZoF9bdLgIli/gCmmMEgvJyP8KKimSpQtG5brN523t7taki0ZPTiKynR2taX/fuScwoxqyUEZwvKwvk
+ pt5g+KLo7x+7cr+xc2p26TUlv+axvKOvb4x2YkYJvR3M1jGCc8XFgUg8Pp8rt7S067l2dvDl+4URimry
+ m0pYUtJFDxU7Ya4Ysw8YQUZhYSA1VFAglbaqJg1DM0b7GEX7yTRyFffomRjwEB14zZh9yAh4BQWB3Pk8
+ N6d/NT4+LOsflH032zQ/VuzjXcqhtgGNZniVHqLJBE68Zsw+YgTsrCwSl51NTuTkkJMCgfCFWj3p2952
+ q3U6VVV3d0OVQtHwZmJCZXU43B/1eqASD/6pCQJBCyM4zOORI3w+OZ6ZmVEvlw/jJjxVKqc+TE9/dbrd
+ bgqdi4qKnmG2Y4+jfP7dv4L0dGFde7uaFte2tamjuFxRWFJSJdK6C53zIjickEgul1BoHSMIj40lUWlp
+ nbRYIpO9O5SYePZgTAwJjY7eR0hkJNkbB1gsEsFm/xHgYIXFx98O53DkYXFxt3B9BklFTiEJCBs5hrCQ
+ cCQUYQYAkN8haxwxX3cuHwAAAABJRU5ErkJggg==
+</value>
+ </data>
+ <data name="tick" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+ <value>
+ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
+ YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAACE0lEQVQ4T2P4//8/RRirICkY
+ QkwXZGCYLcTAMAeIQTSIv0iYgWGpCAQvA+IVogwMK0XlGVaJngFiD4blIgQMmAnE84FsEIYYJgDUtCHt
+ Xfl/IH0GiD1IMYCNYbHIPMNjzk+jHmX/j39Z8BvIP0OsAYwMC4RbFXYY3wu4kfjf+2rML54VcpcYFgr7
+ oBvgAcRnwDSIP5kfJp4pvErlhtv58H8uZ0P/CixXvAa0KBloKFIYTBMEaTqT9Kr4L4gG80EGTBP04Zgr
+ cVlnm+1vtfXm//gWyN8CylczzAAbjGTAJP4zMU9zf3lciPwf8TDzD4gPxLksU4VPK28x+aG4yeg//3z5
+ +0CxHoYpAkwMUwUYQBhhQB+fB0Mv3xn/m/E/lfYY/3e4EPADxJfapPVZeofOf/5Fck+A/HkM/fwcQAPA
+ mhm8OZAM6OVjYOjg9WBo5z1jfMr5m8Rhzf8aZyz/ix/S+M+/Su4VUHwdQxevANAABgYvDgYYQBjgzs7A
+ kMrFwNDM7cHQxH1G+oDWF+GzKv/5tsm+Z2zm2c3QyiPN4ApUgwYQBsCAAjMDQzibB0MR+xmuZWIvGMs4
+ jgD5mgxyTFAFqADZAJAKoPsY5IFYl8GYKY0hnukMgzZjKJCvCcRKQCwFxMAkycADxGxAzIhsACMQgzwH
+ DB0GcSAGKZaEsoGZgAEYbwy8QAz0J1gz0KlIBpCP/zMAAIAsiHxWMptuAAAAAElFTkSuQmCC
+</value>
+ </data>
+ <data name="cross_small" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+ <value>
+ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
+ YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAAA3klEQVQ4T6WOvQ4BQRSFzxP4
+ iUJEVsIbiI5CK9lCr7QapWQ7pQ4lJUJIeJd9CZ1SqXKdu1HMbCZZE8WXm3PmmzsDEfkLZ+mDs/TBWfrg
+ LH2wwhXADRiQROclk/Xc9BUrnCmQ5B3HopPMM9nyFSscKOz50o7yK4rEnEegc8pbsKXwZU6SZxiKzg0w
+ W7Nf5i1QYcUfUE4e7baYU/vcBS0KC8r3IBCdEV82s56bvmIHoNEDxlPKATBkrveBkeYuMGFumn56xwpA
+ kVRJjVRIgZSMrmz66Z1s4Yuz9MFZ/o7gA+NqbmiEfeF0AAAAAElFTkSuQmCC
+</value>
+ </data>
+ <data name="reports_stack" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+ <value>
+ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
+ YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAABgklEQVQ4T42PO0vDUBSA7+MP
+ SAWpTkUnO7bo0FistuIiLnbp4qJoELEFiYvQLupmRQQhu+Cv8C0OIi6CChJwcRBEa1pj38eTtmnzaKUH
+ PkK4N993QgCAEDchbI4RLnHCN5D6M42c/ENav1cT2D4k7rVBEk0ml/Gs4/B1foq0FaS5yJ+EfQG8KS9E
+ 5AgIB5NNFo/jUNUFCRQkbIJuyuHDMJSrVeCr/AyxCLoqB3ZDUKhUgInsHKkL+jyersvjeyH4LZeBLbAL
+ pC7AWVIUBWRZhgpeUt40C+by6FYQfkolYPPsEmkKyIwkreiFItrtmMvCThDUYhFYjF0hzg00PHx+zVkw
+ l/2bAmQKBWBRdo20NpgQxbheyObzDszlQGoMVHyn0/SG9lLnBhlNg4eXbwuW8izL0hF6S4fpEX431NzA
+ H4tJeuEjl3NgKU/RO7w+0MDl2OBdVeH+8ctC27IxxgYun29bL3ziP9tpWzamIfDo5lqhE/ayMQ1BD9KP
+ GIVOtMq1IeQPJJYgv77SBiQAAAAASUVORK5CYII=
+</value>
+ </data>
+ <data name="applications_stack" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+ <value>
+ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
+ YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAABXklEQVQ4T52SPWvCUBSG7+Jm
+ 6RSE4pJMri6OCsExgwlxKF1KB0tdXLp06V/wH2RwqIOLFPMBgkPVIEIHxcXRVczgIk55e48xoU1jqb7w
+ cAn3nHPzcC8LUyqVmK7rEdVqVeLccmonoD2JCYLwo1nTtJA713UXy+US8/kM0+kU47GL0WiCyWQG2/5Y
+ UE381MNaqVSIp36/D8dx0Ov10O120el00G630Wq1YBgGUqlU7deAEP796Ps+/oJq4gMib1VV32zbhmma
+ EYPBAKvVCrvdDvv9Hoqi1A+N//UeDj9hWRY2mw222y1kWW6c7d1sNrFer+F5HgqFwvPZ3sVi8V0UxVci
+ m80+nO1dLpdf+LO5OXJ9kXc+n6e3F+QSbw7L5XLBgEu8M5kMI9LpNGN0l+RGjkkken8POZEbOSYRekuS
+ dOyIhZzIjRyTiO6bsaugIxbudB/6nYLX1Hkp/X4sjH0B8esdOufNXnwAAAAASUVORK5CYII=
+</value>
+ </data>
+ <data name="application_browser" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+ <value>
+ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
+ YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAACiklEQVQ4T6WTX0jTURSAb+7J
+ B8GXegh6EcLsJdrToBhJFhmsVLI/9JdIy5IgEgMjsaCHQjOKKHCN1cpmQ1lKoq40LJfmnK22ttlQEtts
+ a23ppnNsff1+PgRBD1kHPu655/Idznm4AvgvRGlpaY7EPonyJSI7OaKkpGS/1Wp1+nw+vF4PLpcLh+Mt
+ NpuNwcFBpDcGBmSGpHyE168dDA+76ep65ZRdUVRUVGGxWOjp6ZGKXXR2dtLR0YHZbKatrQ2TyYTRaKS5
+ uRmDwYBer0en06HValEoFOXyCselXf4pZFcUFxefSKfTpFKp34gvpLCMz1HdF6XU/I2tLV8XT/ku1+eS
+ aWRXaDSak8lkkkQi8YuPwThl7X6OmP3cHApj/DBDu3eG0ZkUTz7Nc6o7RHlHANkVhYWFlfPz88RisUXc
+ nyPsfTBGnWUKkzuCTZIeur7TZI9gDSZwJ8G9ALr3UZbX9LaIgoKC07Ozs0QiEaZD3zh0105t1wRXXgbo
+ CSSkBj946IzQKk3w8kuCN9EUb+JgjYHioueFUKvVZ6LRKKFQCNMrL5pr/RxuGeNE+wT3vDEu9U5x4fkU
+ jzyz9IWh9qkPg1Rvm4aMKmu/UKlUZ8PhMH6/n2M3uqkwONimc7NF72GnwcOexz4Oto5TYZ7ggP4dO24O
+ 0ehIUiN1yyhrHxBKpbI6GAwyOTnJprP3qeqcJv+Wk3WNI6juONnQ5EStdbHx1iiHWv2cG0hTaYmjbrSz
+ bLduUOTm5p6Xxw8EAijLbqOqe8Zm3WdWXx5iTf0IefV21jbYybs6jPKqHfV1N7ta46yq6kZsbxgWWVlZ
+ x7Ozsy/LiPxLtiWx/uhdIUWmxAqJlUtEdjL/+EX/HsRPrpaoV4RdUxcAAAAASUVORK5CYII=
+</value>
+ </data>
+ <data name="application_sidebar_list" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+ <value>
+ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
+ YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAAB9UlEQVQ4T6WTz4sSYRyHX/C0
+ B8FTh457ka6ePHnykAdBBaHoGrsVFUTQpQ5dgg79CWaylkwIYgji6uouozO6jmGmos5arVrjriZKGopo
+ n97vHvY0RFsvPDC8D8/wfucHA/BfMK/Xu8m5ztm6INRsMo/Hc0OW5Vq73Uar1US9Xkel8gGlUgmFQgHc
+ QZKIQ379Hvl8BYrSQCKRq1HLXC7X7VQqhWQyyTcTiMfjiMViiEajiEQiCIfDEAQBoVAIwWAQgUAAfr8f
+ Pp8PBoNhi0bYPurN0Oz8OEftTqGqKh/xz4ta5na7b90UfuGa7yeuvjiF9UkbV+59RKPRwHq9xmq10oUc
+ tczpdN6pHn2HUvt2TkUdolqtYrlcYrFY6EKOWuZwOO6Wm6d4LjTxbreASFyGqByjXC5jPp9jNpvpQo5a
+ Zrfb75fqGg4rHYjFT9g9UJHKfuZPWsF0OsV4PNaFHLXMZrM9KFa/4umrGl6+3of/zQH2csf8deUxmUww
+ HA51IUcts1qtD7NKB+ncF2SkDvblHtJSD6IoYjQaQdM0XchRyywWy6O01OUnaGFHkLDzNs9voCGTyWAw
+ GKDb7epCjlpmNpsfZ2QNOeXkjGzxhI+gnX1QdNR+v68LOWqZ0WjcNplMz/4FahlfG5xLnMsXhJoN3V/0
+ 7wH7DQvXu3/uiBv1AAAAAElFTkSuQmCC
+</value>
+ </data>
+ <data name="database_share" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+ <value>
+ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
+ YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAACnElEQVQ4T5XRa0hTYRzH8WfV
+ i4ZvglJ8EQbdKBLfTIQVyRiBubG5mqtYVwi0zQrLXihpFwwchGKKuYu5JW6h4qW5zc1LOi/zsuNUZGo3
+ dYpzqIESZZDw65yBicvCXnzhPIfDh/P8/0Qmk4UmokvZRsx35A9ALBanLCwsYHJyEl6vFxQ1DKu1G3b7
+ AHp6xul3fszNfYdIJFJKJJKtAb/fD4/Hg9bWVlgsNujKqmGoMKPR0o2+/veY9i3/L1AFfUUDzNZO9A6M
+ Ycr3ZQPg8YShAEehUDRqtVqo1WqoVCpkZmYiOzs7+FxaWoqMjIwmGogLAhERcaFAyAyGYGlywuLoQodr
+ EEPej5ieW9z4A0JObEK2uoJWb4Kusgq1Njs63RQ++GY3A0z/AjR6I7TGN6hpsqLD3Y+Jmam/AzeSTm9r
+ BgKBIE4oFAaBQSapVJrKZJDvdYy8UsKtVcJTlw+3y4lGRxvqmx1w9DrRN+bBhP8zeDxeKp/PJyQ9vQgS
+ yX2sra3BbDYDn6qC/RyvxGxzHppVySjPvQm1oRhGey1aqHaMzowhJiYmLUuwn5DExDRwuVcQCARgMpmw
+ 6tFhpafod98oDSZqs1D/OBHGlw9grs6HrUCOQhHb1XZjl5LExl5AdHRScG0ajQZf+0owXJ4GZ8FltKhk
+ GDHcweK75/hBw6/vngRVdgvLNMycG+Q7dSQhQQEOR4b5+XlERkY+fSENH+0vubrke/sIlCYFtlwJ9Le5
+ 0KbGoj1fjllzzmpX3llvneJQh/7cjov0EI+sMIWFheWx2ex7p6LItYfxpKbw/L5RV+GlpYAtF+sx5+Lk
+ 8KFnfFbJmYMsrvgYi9kCiaI7ThdNd5juKB2Hhq4z0BMeodbLiSfV8QcIs/w9dLsJIaxfLDsc751acxMA
+ AAAASUVORK5CYII=
+</value>
+ </data>
+ <data name="database__arrow" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+ <value>
+ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
+ YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAACOUlEQVQ4T5WQW2iSYRzG3wsV
+ 7SbYRZS3gRBkF0WWQSRERmWCiHd2mZBZF4nMSsID0Y0wcqxNrWlzB6fb2prn02JmS/e5zEql0VzfmJAU
+ VDddPn3f6MDagvnC7+LlfZ4f7/9PNBrNby4y6HYIm93o/REolUpdu91Gs9lErVZDtfoG2ewCIpECMpkl
+ FIvLqNc/odX6ASarV6lUhGWToNVqoVKpMMUskskUAoFJeB+GMTqWQCJZwiL1AR/p7x0IhifhYQQjwRji
+ qZcoUctYpb92IpiA+9E4hoNRxFIvUKQaaNJf/is4YjAYZr1eL9xuN3p6emCxWGA2m2G1WuF0OsG+mUym
+ OJOVbPuDf5eYyRUwE5tDPFtAvlRBtbGC1dbnnY8wNBJGv28E/tAUnqZzKJQrWKbXOxCMhvDAF4AvFMZ0
+ Jo3n5TLe03QHgrEQ+vyPMRgex5NMAvPlEm7FaZw1efxnjANEZnB1vsTTvdVv0vuN+rHeFe2he1VC1Gr1
+ BgqFYusSn+WhG6RwzlXGhb5XUPZXofK8Rf86wJQp8d2KlkgkEiKXy4lMJru8eYQkhoJBnLBl4FoD9O+A
+ S6//YmwA+2/mKcIekUhExGLxle0E521hHO6ewdHbs5DeieOkPY3jBWCvPkrtM8S1bF/AsEcoFBq3jjCP
+ iUQEU3NRJBdzWGgUIemexm7NwNquUzeu/+qSLoaDAoHgGp/Pt3G5XBuHw2GxMziYu4PH4zmYNweTsfOk
+ V5d4BxRetkMI6foJkFQ7PUMRQTgAAAAASUVORK5CYII=
+</value>
+ </data>
+ <data name="images_stack" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+ <value>
+ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
+ YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAAB7UlEQVQ4T6WPTUiTcRzH/5fI
+ GVsFKaRgb2SGeJhYdsg8uIMNpiTpwIMdRJTUxTR2eXLzIuILAy13CHJasuhFXCg6Y058gYH/QyUIs4iI
+ NDAPoiY2zH37//6iOWa+9YMPz3N4ns+HLwPwX7B8q5XdrqnZ/jQISveJIUyQb7OxW4pSJswI7QEdfRtR
+ zlMU1yDnaH+c+U9eOtPwOxSCwWK5e6jyU6cOv9bXcdNsrogo6xs5cpo58uwchiaOwoccdxwcD55ztHkC
+ suzq0uPn2hp05eWmA5WfDU3IcmdHLhaCQdwoKTEz2kHWd92ndiBm652+eTHsl+WG+quYX13FtaKiakY7
+ yPq+5ywC/QmYHtjg49sz+Dx8Hp+85zDtSZBll9cny/dMWnxfWUGq0WhhtIOsxbrrcNrS8G0kCTOjlzE/
+ mY7gkhGLX3SYHU+WZesrryw73G78EKJLer3CaAdZM+LjkZOSDHtlKl43X0HAXyBW12FpzoSvo+myXNUx
+ KMsXs7N9J7TaOnViYimjHWR126MFx9DbokZfqwZjrpOYnYrDB08sfE+Oh5UvZGU1MMbiBCpGO8j6qCpq
+ i7ZqFZy1Koy/UaO7NRqO+1ER5SMajfhfHO0g68zy8q5ElDePbGTdD2HlbXdUcFpA5r34W5bH2B8P61wC
+ XKQHIAAAAABJRU5ErkJggg==
+</value>
+ </data>
+ <data name="layer" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+ <value>
+ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
+ YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAABuklEQVQ4T6XS6SsEcRzH8e8z
+ yTMkUUpJjuT6D/wDPFFSruQWyfXIXyBHrqWUnKXGHuy6Voq19rAe2Ad23W1mrbGzWLdH6/cZZJU0svVq
+ Zn77fc/VUCAQ+BfKbtdDHJPLFMqEWTREWW2rkGc58i1d+V9tgv/F+hvMYBYNWspsXYEi4fZlx+V91MuB
+ WTRoKaNlGYo9N8+mM+FhRQ7MokFL6c1LUOr2PRmPPfeLcmAWDVpKa9JBGbs1g4O/0wbbc90qjU5xQm+/
+ HNLuXvSqrHwnmI98M2jQUmrjApSfCo8bdpdfA7unNxyLRuYsfDdnPu+SmL4YHN4pNGgppWEeKg499+ss
+ VG7ueydVVncfZ+J7ObOkR9ri+H2tx+AQZ9CgpaR6NVTt83dra3ZhnF11YM78TX8QaY2dYBYNWkqsVUKN
+ 7eRap7Tww4ziA/aDjz/XFAanl0ODlhKqOagzHohqtdU9+ok9huSn/S2nqEaDluIrZqGBvVmdxuYek+x8
+ bH/C/sMsGrQUEp1MsSWTldMbJ8vsE13cPhC1v8EMZtGgxS88LC03JyJ/sCmyYLRDDsyiQYsThDJRTMwf
+ sYZC3wAh5nPvZl53vQAAAABJRU5ErkJggg==
+</value>
+ </data>
+ <data name="map" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+ <value>
+ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
+ YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAACnUlEQVQ4T52RSU9TUQBGu1V/
+ gMYdS8PGhQtDXLgwcWEwMYYNCzYNFMFSBqENswwCgUIjg6KCgMVQELAyyVQGsVBskakWFASEgoWIYssU
+ huO7L/4A8SVfchfnnOTdqwhKSwuUFvYfCwQUitspKSrpcOLvr6dQ3EpMDD+WTrVDyTSPZjM0XYJzrhb7
+ XBfGqWmybCvoBt3EdLpRt7iJaHIjeOHJgZtabcTh8THPLQl0z+mxrZQz6ipnc9fCJ+8sdWs+Uq1uMp2Q
+ bIcIsxvBC08O3IiLi9w/OqK8M4ZW1wMsXw10jun57n3Nxo6VkZ9L5H9YIO8zpE/C3ZZlBC88OXBdo1Hv
+ Hh5S0hLJk65YavoTMTty6JswMDlTg222nTqXiwzrIgl9S2g6lhC88OTAtcjIKN/BAUWN4dTZkzBPZ2Ic
+ SGJ4+TELmyZ+7PTS6+zFtPYb/fwxsd2LCF54cuCqShW9tb+P/mUYRquW+rEUnnXH0zNfhGO1gtWtZhyu
+ BulXFqlY3kfXt4DghScHriiVsZt7exRWqqgeiKfWpqOsTUPbTC79Cw9xrtdgn65g2Wenc8ND+uAXBC88
+ OXA5JCRuY3cXQ1kE+VWhFNSFUtqu5lF7NJU9OurfZWB1lmGfqqZrooPi4XEELzw5cCk4ON6zs0OJQY3R
+ rKO69x4FplBMjmTMzizpaQtpep/Nyq9G1rcHaXJYELzw5MDFoCDt6vY2pfkaTPUp1LQmkGtUYhzR0vAx
+ VXraHF5YkpnyVOHxtjA4/grBC08OXAgMTFzx+SjNi6I4Pwp9cTh5FUryapXoG1QUv1Hz9K10N31pdNn0
+ jIxXInjhyYFzAQH3PdKtfvN6/3mCF54cOOXnd+eMv3/OSSc8OSB9p6WdlXb+BBP8aUDxBzrdrAKtK4Yr
+ AAAAAElFTkSuQmCC
+</value>
+ </data>
+ <data name="printer" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+ <value>
+ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
+ YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAACXklEQVQ4T42ST0iacRjHf6xg
+ h20EMRB28rAOti4htDBhOcXm0OBVCx2Fu+xVkbFiafKmGaswgi1wVKegQ0KXKNkWVlRDFiTsuB0WxFhp
+ xGBt9OdQUt/9nrcUoxV7Xj7K6/v5PO8rvMze3V2gKRKxcMRLuGsLh5nQ1XUORj8W4f6dyyG7v4+NvT38
+ 2N2VSaRSoGucigsLBEkqxvPn8BAbOzv4tr2Nr1tb+JLNIj47Cxq6bmpvV+o8HkZY3W7+BDYbs4oia+zs
+ JLx7R0f4ye9avOTtxESBCpMpxGEPm5rkVv6w2+3M1trKzB0dvn2+4NfBwYUl9CT0d8ghV27OFlzjJxaO
+ u7S09LXf78dVkEMuNdQyQRBuS5IU2eZ38ng86O3tRTgcvkAoFEJPT4/sZDIZBIPBCLXMbDarYrHY+Nra
+ GhwOBwKBAERRhMvlgiBYodcbUFenRU3NfZhMj2Vnbm4ZfX3949SyhoaG+qmpqeV0Og2DwcBjN4xGE7Ta
+ eh4+OIfB8Eh2EokFDA2NLFPLdDqdY3V1dX1paQnV1dVobm7hkuWfGI2NsiPyY3Lywzq1TKPRPE8mk4jH
+ 41AqlbDbn8JieXIp5IyNjWF6ehrUMrVa7U+lPmFmJgmf7wUGB0cwMDCMaHSkiNECXm87FhY+y1DLVCqV
+ tLi4gvn5FTidzv8iv4BaVlZW1lZeXt5PlJSUDGT5C6OPZvHmXRbD7z+i7qUT91okaL2j+L65CXLyPrWM
+ zy3OHUJRW/tKfumL5vjkRCZ3fIwc/yYn75+1p3NdoWA3q6qe3aisjF4FOeSeDmN/Aa+qAjvcCoH6AAAA
+ AElFTkSuQmCC
+</value>
+ </data>
+ <data name="document" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+ <value>
+ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
+ YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAABnElEQVQ4T42SP0tCURjG31Xa
+ HGpqELRBgoaGpCEhCLpQUWTg4OJgJSWhSKKlQksfoK9gH6DFD+BnqKEpCjQRqbz+vf47vc/lvkFQpw78
+ hnt4nh/nvPdQqFCwOSgWt5nDP/Du5/O0l8vRbjZrQ9hwOOqOx+rdslSj11PVTke9tNvq2TRt7ioVhQzj
+ +ybAh8NxezhUTS6+tlrqqdlUj/W6eqjV1H21qm7LZYWFHOP7EuxkMkK8w4K3bvdHyU2p9IXPMC4ZArSV
+ TgsnvdFIffDxf5PgJLgOstKjzWRSOO3zDMx+XyuBAFnp0UYiISQGLOgMBloJBous9Gg9HhfOhpOJ6vEc
+ dBL8HWSlR2uxmJAcsWDAc9BJGryHrPRoNRoVUuPpVFl8DZ0E7wRZ6dFKJCKkJyzAKXQSk/eQlR4th8PC
+ +ZQfypgFOgkeG7LSI28wSEuhEMjgpU35FDpJl7+RRQdde80HArRgGBcQYOkkeGzIoiPLxczOBQJXTt9e
+ uA5mgsFChF+Md2LxN7LoOF1yM4sujyc14/df/wdk0SEi9yfyP5Btd7QayAAAAABJRU5ErkJggg==
+</value>
+ </data>
+ <data name="folder_horizontal" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+ <value>
+ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
+ YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAABK0lEQVQ4T6XTzysEcRjH8c9p
+ /wQHf8T8D07+Cqc9KCcHiSLtbmPX72yUVZtaJRLJYQ+yB6WwdqMkZQsly8RoMtu2a9r5+D7igJny5fA6
+ fL/P8z4+IPkvKCbDlVIwlFgIQ3ZkMaokwrR8n26jwarjsGJZ7DjyaeRr/JhHcWDCpLtJ31n/Qv6s8ti7
+ 77PPubTYTyDVslfp3ed+aKnFatHk1e5AIGmxF8OEZy2zeZsN9KpmQbynFUqLwgimm3dLrF8vaJFGWuwM
+ IV2/ydC9TGuRRlrkBzFfq8zROZ/SIo202O5H5uVihvZpUos00mKjD1nnbJyPpbgWaaTFWi9yzyejfDgc
+ 1iKNtFjsxpajHvZxXIs00qKnE7OTXSj8hbTqGhBR2pR2TdJEAk/094g3UoixjopQ+mgAAAAASUVORK5C
+ YII=
+</value>
+ </data>
+ <data name="blueprints" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+ <value>
+ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
+ YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAACIElEQVQ4T4WQTUhUYRSGz8q2
+ BW2azURMJFkQBIEQjqsoaJHmgAuXWREMlZn9qOnCTS6MgoohZ1pUZpPDUFEUVkrqaM0HZUrOJBOJ0y9y
+ F869znX1ds6Hc7kzTHjg4d6Pc897nu+SP/KHau/+1cj72jnEqHJUBQK+nQ0NVFlfTzvq6qgoQKjp/yWo
+ jqk8YvOrODeygjOv8zg9nEfTYBY8fILx/TdAzvtDWRXPrGJs0cbgFwsDsxbuf7ZwpD8FKR4+yWx3BxQp
+ +8O/rcMPlxCILuF4LK1DTr0wUNObcPAEXyqG1lVuu/cczbEUeieXdYiYSG/fjYxiSHTXVQ6Gn6J5KIXg
+ K0P3ZMHevrRiiKpvLQjqcsJEdE6aRlnlqs4xpyeWe67OKoZINESnfTKHaMpyQkqVD4YXcPaNgUfcb3tn
+ YVfPR8UQiYbodEzlMJ610fLWwJ1pU4e4lWtvZ5wFF8dNVHYnFUMkGqLT+T6HobSFx4yEyDa38qHQPD8N
+ HXJpwoSvPaEYItEQnSsfcpj4YaN11NAf9iWXi5QP3JzTC8QynrGx9fyoYohEQ3S6kmzw1dIBkRnT2VZQ
+ rr42A7F88s1Gt1rB5mNxVeHZTSQaotPFG2McUAiRbW5lb+uIteFoRBWo8F8YIKJttKXxOonOs+82Ej9t
+ HSJXkQC3srdleJoHPCVsYmij6PR8MiEhYiLXkX9SqlwYKC0v6zxw65XDUS4qon++0Xk/qAJ7LQAAAABJ
+ RU5ErkJggg==
+</value>
+ </data>
+ <data name="cross" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+ <value>
+ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
+ YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAABcUlEQVQ4T6WNvUtCYRTGz19g
+ 3PIGkUlB1iYI5eYoOAgODi1iJYGr3EH3glpqqKWgoC/6IIKWoGhoiqY3aAgKWqOhpTUaOj3P7d6b5nWo
+ hJ8v5zy/81xR1X8RuvwN7t++iByAI5EcMHw573qEZbz5WcDAaKOhfDk3FbjZW60WZC0Fnmg+6nW9y+f1
+ 3XGUM2AJMS+Vips9lUp+9l2wjQHkthC8Vqt6mU7rc7msnMl9oeDubrJZd0eXNy0FCGQDwTqEx2JRz5JJ
+ vc5k9CKV0k3b1sN4XJnRoRtaAEHWIKxCPE0kdMeyXPaiUeWOGZ22gnkMC2AJLENagXyCrx7j2Ic7ZnTo
+ 8qatYPFLMOc4CIMZnU4FDMwVRB/OHXa5loJZDMDcQvDhPAeRhGW8CQriGCYgOggeIPDlPIg9Cct4ExTg
+ FwMjYyIzkxDGRaYxD4MB0A+G0iJTzOhgHgWx5oII6AF9Hr2gG3QBZhawgZ9HQSQo+Dsqn8s+qAWjmxJ/
+ AAAAAElFTkSuQmCC
+</value>
+ </data>
+ <data name="folder__plus" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+ <value>
+ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
+ YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAACBElEQVQ4T43OXUhTYRwG8P+F
+ BUoMPRdLui0iULbCuyDMi7rpIhKii760YiF0FRWJS5mNzVqtDMUt3VIm2pfS6INIZkWf6imDPogMpS/d
+ mK7TXOZS9/S+L533otWhP/x4Ls7zvBwaaiBBbaBKxvGfKvUdDbqlenwPA8leY6zDu/qOBlySE9+uIjPZ
+ bYh3eFff0WOn5FpIXMJ8rNMQ7/CuvqOHx6UT8/EuzI13GOId3tV3dN8heeaiIaQ/BQzxDu/qO+qvk7zp
+ L0HMjPkM/Yx2gHf7a4kiDPUdkxp/fGhFaqTpn9Kfgxi9ZwfvMiV37OyB2zVS08xoC5Jvz/4V//Y+Us0c
+ xUImA97nO9ruySWbN5dK/abXa65bUNG3AdorT5bUu3MY7qkSOT07i5vV1MKwCyi0+IJChcGC+L7EYVh7
+ ijD1wp0l+cYL9bJN5LimIXyEzjPs2hQ/e0Qt9OVPbo3bYO1eJey6Vor4s3pJe3kST7v2iByJxdB7iAIM
+ u+Z8tWyiHH+ytq9EbLBO+sr+4lFot8iygQyuHKR2ht1pk59OmdSl7iWJ4o/rYPGtEHZ2rkX0iV1KPHci
+ 0rpNpOVWCqEDdLGmnD9AlMeYzbV52rKxIqxuXI6pIUcWbdiF8JlNIpv30o2K9bTl95YUprhgc84D8/5F
+ 0yW2nAnPDrprpGojtfENESm/AAqRc9toKh4FAAAAAElFTkSuQmCC
+</value>
+ </data>
+ <data name="box__arrow" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+ <value>
+ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
+ YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAAB5UlEQVQ4T6XRX0hTYRjH8Wee
+ QzcZBl0EXXQjCgldSdBVKSwywXRiIXMjExljYRIrpUycimgkyMS/zDKYzVoli83+TTJLQ2FKCkIRomEK
+ iqhoBF3U4/sT9noOCxQ88Dkv532f73tziJn3hQaLVFA/FKl24X6UK40iWtozwY4GLb2/qkJi5G7K47WB
+ e7wabtjmsZ/Sie5jBrNo0FL4ikoDher5by1Zw9oLem+mSz03zuguwCwatPRWvISSWd+1ucWgi6NC1Rel
+ vooMuQ+YRYOWXlkVaP33vfcvz/g5asZfLkU6bXIfMIsGLQULFOj4M9XNm6OtUrjhkhR0ZenOMIsGLQXM
+ Cnh+T3h4fdgtIfSXG7dXnzNNd4ZZNGjpeb4C3Rtjbbwy2Cgh1q5amEWDlp5cVsC7+rGJl97V76r26RAH
+ Xr9kNGipJy8OfMviFy301+zK7Bnngq4JList/Oy47iB6ZIqDZz9D1fwjUBnjVnuAc5uGdNoXmM9WhdZO
+ 1n2xUPIRA7VkGt7M9VXw7Is7MS7U9nPzPLNjmtk6ucP5lTnx9qcIiee4LdXwsN5oGPmfdItzKaW445fW
+ 6RHmpOIHK4fPlZXiggThqHBsLw6ZvZMQb3LbxDfavT/KiWw6YOrqFCwHc9xih2gLWd04Qz1T2awAAAAA
+ SUVORK5CYII=
+</value>
+ </data>
+ <data name="box__plus" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+ <value>
+ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
+ YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAAB5UlEQVQ4T6XSX0hTYRjH8Wee
+ Y2AKmoKCF91EGv4FxQsvFCUhCQzSlFAklZgT8UI0JE04eqOhEIWL1sQ/5bacJoOplJOMMEg4CHknItMo
+ xZIZFUEX9fT+Bns5I7WgA5+9nPd9vu/NGTHzf6GlBhXUlw2qRRgI0YpINzKeCRY0aOlFvQpn9FtpjoPF
+ 2xzw9QfZLXlhQvuYwSwatOS7ptJinXphfahs2XiBq71YmmgtDLsAs2jQ0nPxI7T4nc1bO16NQ2Z7Lkkz
+ XaVyHzCLBi3N1ypg/bXh+smbbg7ZdHdIus0s9wGzaNCSt0aBBz/WRvnrG6vk66+UvFpZ2Blm0aAlT7UC
+ 9u+rdv68fFdC6O4oCa7OtqKwM8yiQUvTVxUY/bJyn/eXBiXExtUIs2jQ0pMqBR4HXt3hvYW+Y9V6znP2
+ dAbXz5UyGrQ0cSUCnB/FJ/ow13usLFcaXw/c4OzJdEZTcfMk0djlCJh6P9vD257uQ9U4CjhzPDWo8pOZ
+ sx6d46R7cQc0HG+jlAQTDV00Pdua6WL/085DZT48y8W75X8ga5xO4jltzjWN9JWYXh8lpzVqL1GL+QYZ
+ 7woY66nemH1qjHbgglghSUj+Ky36bbI/nbGKdzRo//HJF3/blhM2aorUgyveieg3zn8k9o1oG/MAAAAA
+ SUVORK5CYII=
+</value>
+ </data>
+ <data name="disks" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+ <value>
+ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
+ YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAABx0lEQVQ4T42QyytEcRTHf/fe
+ +QcoGxslC1uRpcg7sWGMJI9JHlsWijTGI9wxnmU8pibPmmQo7zzyHLGwUBRlEsVCTR6JBXPc7x2mO3NH
+ zanP5pzvOb9fH6YX+lmF0OeH1KuRMGkNhqr/wBw5+QCoEHqVmK9mX8lDRN8ejwr0MUfOd6CovI2VCT1/
+ 9J/bnujj64vePj9VoI85cr4D0rekI62sVBDB0Nn4I7ml8MPzswr0MUfO7wDQlRtZCd9pObXc063rhR7e
+ 31WgjzlyWFYJ06UZD0ZM6zTUsSRjSlmgkfwN2uq+8HE06KJivn08ZGH1sRbq0k5Qd+EkibopOhm+Ix1v
+ tIUsTCycJqfzmMzFszRYNkeHAzek5ZunQxZmyLHS2tq2vGytXaFd8xXl8432kIU1ZYzR/PwmWSoXaaZu
+ h7bFS8rl6pYZRECIUlAgmKcK+nONRiOmc9WHfyRweaMMIvZ6r2U5kKREKUz+LmORAYQziMArkANJ+/sH
+ MsGEJfOl0k5A4TIOIAhJDWkD5HAsBxWWxJewCC7qd/O34rjsAshoybS6IQlft9tXgwtjLMy75V/xMVyi
+ HlIgSUmAMJuUjfaueCuOz2I/W6hPXuElcbEAAAAASUVORK5CYII=
+</value>
+ </data>
+ <data name="document__arrow" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+ <value>
+ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
+ YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAACCUlEQVQ4T4WSO2hTYRTHz6RU
+ waGDj8Gh2IgUH6BIL4UY8AEGtCimJcPt0KFqaqMkTQ3pIwVRszmYQShYUJrBUdDqKCluQWqwYB2UWhJL
+ iY/m/f57zvV+NYPeHvhx4eP8f5zv3I9c4bBB3/T0RebqFnRemZqiy+PjdCkUokN2O5EcmFwr1Ov4Walg
+ vVhEKp/H11wOK9mswfN4HNLD2JRAMGwm13PVKjIc/LaxgS+ZDJbX1rCUTuNDKoXY/DykpI+xbQp6g0GF
+ J8+CH4XCPyXRublNbE7nJEMCXQgEFDeKtRp+8fj/k8gkch3pVTk67/MpRkq8g2ypZCkRgfSqHJ3zehXe
+ Mgvy5bKlRBYrvSpHpz0exa1qo4Ei78FKIn9HelWOTg0NKXw1FpR5D1aSdT6TXpWjnsFBhb/ebKLC17CS
+ 3H3zHfbw01jPxBM6OTZD1K3rikCDBTKFlWTgWQrag+Rqd/SzfjSSJDrhdituN/mh1FnQKgm/WEH/42X0
+ mfTPfsKjFMDhxJF7izp1Ohx0zOUSgvLSmjxFq6Q3+g4PV4HhJWDg/V9GPwIHQgsJktqvaXTQ6ZwQgVSr
+ ZDSWxNnIwh/ux42v9hbYO/wysW/klS75Nmb3Hk27Y+aNkuvITmSxIpJfLO/EPvkau9wz6R0O/00zS+3M
+ 4baODv/Orq7IVmw/M7a47bhrVjJE1P4b0KeTZ3olMBoAAAAASUVORK5CYII=
+</value>
+ </data>
+ <data name="server__arrow" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+ <value>
+ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
+ YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAAB4ElEQVQ4T43SwWuSYRwH8EeR
+ DkUdFoEFJRRBl5KY0NzBAhdCMkTTQ/DWrbZ3JSNkoy6DXsh12qFFQ1i3Qdvuw4O9obxNQV4x31BSpHgn
+ EvhPfHt+79vzJvgy9sDn9P3+vsiLDABLp9OWTCYzzy0c5/76FzWy/Uea+fCb3Vo3mDWQSqWExdFohOFw
+ 6Iqy2Q3D5Mf6nc1fkjOQSCQEeTAYoNfrOXK7bSS3flgeFtq4rRyaW0OAH+s3336XrIF4PC48r1QqqFar
+ jrl33/B+ACy1gcet/3I/gWuvNd0aiMViQtY0TfT7fcfTjxruvlEt95SvuPxs/2jmEPAvHegXXxTtXxCN
+ RoXlbreLZrPpirKpR5+Ozkqf9XNP9iQ+Yn+DSCQivCwWiyiVSq4o88fXqqeS2xIfYc5AOBwWcp1OB61W
+ yxVl1LkyJ7OrD5bZjeSqPRAKhYSVRqMBTdMmFAoFUEadsb49EAwGhVf1eh3lcnmCYRigjDpjfXsgEAgI
+ a7VaDaqquqKMOmN9e8Dr9Qq7/O+K41BnrG8PeDwe5vP5yGY2m4UsyxOm9WlQRh3q0o31aIAeX7vOg418
+ Pg9FUVxRRh3qWkf0/g2c54sLPNg5Cd5d5DcX6FAMnOb83KUTou4Zxhj7C8X+6Zc/4WHkAAAAAElFTkSu
+ QmCC
+</value>
+ </data>
+ <data name="arrow_circle_double" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+ <value>
+ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
+ YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAAC1klEQVQ4T6WMXUjTURjGj8Mk
+ k2qiJRM/pmjK6qLcDGaYwyGJoCFJGa1Mky5yQ0mUpeiFaelytpFGZlkpzZlaatP8bBopSX9b5Ae6Fiyc
+ uqDMaeqs6ek9/xkUBl104HfO87zvcx6EMf4v6EtQ/akSoP4CmbOBQIAVcdfsFH57GvFvfkShSgMNXRBe
+ NSOCBVVuxFg+uU6jNGBMZmX69Yjc19aEs8/m4yLvzUbCjLWpgAyAQoAqm7DhAmoVy8ZsmPiSUZvgytsf
+ aUW67xL5hE0irDYl8SuM/n8U8K7rPfk3DNqi4RWc82IBy0ZWMdE8xXsK4B59aJJeGlxU5g18U5S8syrC
+ Kj5I4Q+TWzZpL9hfMio+2WCayu75gvMHLRg8JRtZod8Q+QQ6IBsLAV2cpZ1rhYwmsd6kAh8L2As4BcN1
+ 4nbzUkabGUdX6Q3gywFqA7SvUIf2Xn4Tc6RK3w2ZccjqYF5KdnRBYM4Ald5hxmLNDCY6KH8I7ckdFAGV
+ ftn9yDfzOQrKe0Vy/ZCxQNZCNGAvgED/ec2sJbl52kK0d0Y38svqQ2zA52JvJSDySu8iOQoyGLKYaFJM
+ F7DS2kvj64y6OPXUOO/qUDfrQluMe+oTMidQG5TDzgAZHK82LoGvI3u6AMKx3GuU6pDarIlSm1rBF7ud
+ exzimtxIdpSodx6TN7rlM4YM5smHp8CLAXvBzjP1TLfUJqmwY1HBafiqOKieVbJztNIdp9VcgOI/XcDC
+ zkUcoJ7DRDNTmrTwx5OZ9MhesP2UCrkk1vozUxqSeF1WiVfzssSnZSUtqM0q2HaihuK0W7F74zIO7bJi
+ 4oFC5+MPkKMHx15ADmN3MHIMz2ZtTayJ9Mh/Ged135TA7rRFbIm/QwX3rGHvDhsNt28Nkxkgoj/+KoDj
+ ArAdnF25Dj78ww6cY0JGQJSAEZapYsTeojYRllkLed/fC5wAJsACPP8ByexCCDF/AmcTDYhm8b/cAAAA
+ AElFTkSuQmCC
+</value>
+ </data>
+ <data name="system_monitor" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+ <value>
+ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
+ YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAACBElEQVQ4T6WTPYsaURSGb7WN
+ 2KYI+BNsbFxQoiyujjqjrjrD6o7f7PgVN+OuO2uqpFhIFwghXSCBhPyBVEmKVIJosLCwECIImsIibco3
+ 59wiVYq4GXiYucVzz/seGAHgvxC6rmuEdUc0kc1mW7vdDtvtdi/YYVdkMpn2ZrNBOp2GpmmSZDKJRCKB
+ eDyOWCyGaDSKcDiMw8MAAoEHUNUU2GFXqKraWa/XUnQcB4PBALZto/X+JZrNJur1OnI5HcfHSShKmmQd
+ R0cxsMOuUBTl4Wq14gP6/T56vR7a7Tasrx9QqVRoSo5SaJQoRykLdFlFntlhV0QikYvlcikjd7tdWJaF
+ Wq0G6/sXnJzkqUaG0hnU14Rh1FEsNmlYDuywK6ibvVgsZNdGo4HGm+coFAryAlXNQ7/qy+/q6xcolTqo
+ Vh9RqlOww64IBoOX8/kcyu0Vqp/eovDqVgrM6fW1fBtGFbXP7/D0xzd8/PUT+bwJdtgVfr9/MJvNEAqF
+ KPIJUqkU1UnSZFvKxaFDlWyafCETlMsd6HoJ7LArfD6fM51O5QW8SFoMLUuHabZx9nhItS5xfu7Qbm7+
+ oOtlsMOu8Hq9w/F4LJfIlzCKolESgxLx1s9kZJ7KImOaNbDDrvB4PE8mkwlGo9FesMOucLlcLbfb/ewu
+ sCvoOSDuEff3hJ2Dv/6i/w7Eb47lI/Z9WNmlAAAAAElFTkSuQmCC
+</value>
+ </data>
+ <data name="marker" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+ <value>
+ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
+ YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAABpUlEQVQ4T4WSPUhCURiGz5Gg
+ oZ+l6AfcXBtanF1FB0HQJIdIkRRUuGgONQkiuLnUIlTUIjlE0VhLIEQltbRFQ+AoqaFYaV/fe1M5Z+rA
+ w8vzfe+5XLhXENGYupRgjjGYI6Y8TDjmWh9owoVl5qDlct33C4U2FYuEhGOOvdoHmnAh3fZ4HimbpZ9M
+ Zgwcc+zVPtDkTcqTfi73MUinqRwO06bfbyYcc+zVPtDkRcrKIJ8f9A2D1txucjqdZsIxx17tA02epTzs
+ plKN72SSSj4fuRwOM+GYY6/2gSY1Kbde7fbaF7/yZzw+Bo459mofaFKVcr5qsZw3o9FWLxajEXDMsVf7
+ QJMb/s5XUm4+2GwPvUSCupEIIeGYY6/2gSaXQoCpCyHO6l5voxMKERKOOfZqH2hS4QI4FWL92mp96vAn
+ RMJHO7UPNDnhwpCZYyGq7Y0NQsIx3/3vATjbTOmP21YwSEg45jhq37yjyfAYzL4Qd81AgJDw0VH75h1N
+ hLAw08zCHl98518Zyb7EzDITat+8owkXmEVmZUuIHVxGsq8yVmZS7ROR+AWHNTFET84WNQAAAABJRU5E
+ rkJggg==
+</value>
+ </data>
+ <data name="box__pencil" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+ <value>
+ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
+ YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAACCUlEQVQ4T6XRXUhTcRjH8ee/
+ c6DLkIigiyhCA6Fuostigb0QqKQlYYi2iQ3C6A3GsuSYgqsZvaBRDDyr7EymyWLrxSZbhUYvw4uoTGO4
+ IIUiplQ0uqin8xudw84qb/rDZwf+z/P934yY+b9QwiGD/MAhu3Q+g2KnZL78mc6FBi3F98mwOnmi9Mbc
+ yGnOxLw5ftcGC+MeO9hFg5Zi9TKNNMjbJrvLR/MfCB7bbOo7vMnyAHbRoKVh/UfXPK0dSM9GFDZE2ypM
+ Qy3bzXvALhq0dKdOgp6fb4M/OBViQyrkNiWvNJn3gF00aCmyV4LL31+o/OVJjynm3W2KKOWWGXbRJNbZ
+ iMK1Evi/jft5fvSCCWHIXZb7akftltncVQ+/XCrSj4Ww0+AeCdTPTy/xp0SXCXH+1zAR7uDh1kZmReFb
+ Qjyk/hoJrmceneMP9zsXlIruZ83XzNlslg+uLZpQibZS3y4baB/1v2jm9ql/mgo7ORFYw9lZD3sP1XDH
+ lkV3A6WCKLDTBgPvo238Lnzyr94MNnBcLcnF/b5V/Pyag9GgpZIlgrp3iHvpoRaevnn8D69DdRzvLc7F
+ wTMr+Zlay9hFgxZnRdN60dtZJsYKdVWIca1dZBBfPCLmvVXilTFDgxYPLNYt0y0v1O4UZ/nrJJ/3iDFn
+ NVUVzNGgXfCwq1IMuOvFxsbq3zeWQ/QLcuUwAJjM/EMAAAAASUVORK5CYII=
+</value>
+ </data>
+ <data name="edit_language" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+ <value>
+ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
+ YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAABGUlEQVQ4T6XTv0rDUBTH8Zuh
+ mKmUSkEULC4VRKs46DsIKnRwcBPEV3AQwdXFqZODk27+A0EQRCsIDhacfQFfI35/4dzLbSqm0MAnOeeX
+ kwMhxGVZNhaXJIlsYdbq2A6uo161sjDji1tzhWrUlwkLmtjGIWpYNAe4iHrVynwfFhQt4aGEZsKCGxyh
+ gwraeMQ66ji1XrUy1ZoJC45xjydMYtnq/2hm6BXmkGIKK5EzPBcyzQwt2IMW6NoroZmBBRt4xwRWC5R3
+ C5kMLLjDpdUfIwoLNtGHvrHPZAHKT7CLc8vCjD9e8Y1W3jk3j3184QUzRrUy3dNMfqT4xBumzY/pYc0y
+ Ua3M39ez+amKBvxgGc3qmfTPX3R0mfsFWPGuR6RoYUoAAAAASUVORK5CYII=
+</value>
+ </data>
+ <data name="edit_diff" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+ <value>
+ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
+ YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAABwElEQVQ4T5XSSyhEYRQH8DML
+ a5KFVxYeaRjPPEpoCGEmrxkzHnmEYUjY0CwUWRB5Z2thYUWN5JEwfTPeGxIbSikkYWVjd5xz606uuYqp
+ 39T9n//3ne400Db6Jmxj76iGZ43DT6DRaNg62SCbZIuz+OweACqg5+JTlWPhFRuGHoXFcQe6nF4FzswD
+ t8BfUrm+cx7r7XNYZ5/F2o5Z7yV9Uw/IHTWm/hsBxV3n3vJ/8VnIbvRID7y1tn0Ga5ht2qdsbplAU/M4
+ VpHKpjEp47OQat72Kf8VnwWtwSk98FarbQotrZNYTeRSebcbuaMmzrgmIKpwxVv+yWB3YXTRiojIHIGg
+ GKsCZ3QJQGTBqiD4C0EL5P/BATkkx+SEM61hS7oAQtNGIDDKqsAZz7SGPYgt2aGtDQqc8QySq07lDbtk
+ n7iI4Cyx4gh0ZR49FemdfcUZXQLSLJeSMF2nAmep5nN9UuUpLjrfVH8jnkG69Upk1FzjbwYXnqVysWUI
+ i0yDmF/hwFxjv5TxnLZ1QXhCtypd4bI+p+kelzY+FJtlPAP6+JNgeufvv/AZZaEsICSrLq/1BdWklDrd
+ 3gvkA3/EfToHfl8ttAXpbVl2CQAAAABJRU5ErkJggg==
+</value>
+ </data>
+ <data name="folder_open_document" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+ <value>
+ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
+ YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAACk0lEQVQ4T43SXUhTYRjA8ecu
+ +rqwywy6sF2ZEUF0YUWRDYVAEaldZOWoRDHLispaLZdrprbEmXNoRjVNy9AkbKZhDQLTLEExa+ral19z
+ bs7j3KdP7/vmGZzoogO/8Ry258972IF+FTBfSiCLKPpPWfwe9JGPVXc4UwnOfDyFsz0nkRu6jRFbHeLk
+ U6HZRqS/5fegVxmlxIVXuOJ+iX5rFbp687FTewjfvVULdHVrsK04tlpdtB/K5fsAPhVHqSLzzRie0TMR
+ 9wscaD2HdpcLpzgObYTF68XXRiMq5WJDukwmSissBDAqokrDzkYMTT5h6Py5SYrDJhN+Gx3FcacTR6am
+ sKGjA+lFlnMIEfTIgXc/NP0MA7ZHDJ2NjyX4fWyMRSY9HhbR6PVRopQUGXTdBF5FwFGPPnMNQ+eeuqP4
+ Y2KCRebII/ARehL6OMkFBXlguAG8qmVLLXKmKobO3bp0NJnNLOJeWhJEbIuLmJSXlw9vrgFP65vQone0
+ gqGzoToVxy0WFllYXhZEpn0+PJCdfQHargCvlvtZiZ7hMobOHZVH0EwCNML5/YLIPLnfK5VeBMUxgJZL
+ TL13RI2uQRVD5/YHyWixWlnEFwwKIl5yvycz8zJ5lQBuZQA8Pw96z1ApOgcUDJ1by8RotdlYxB8KCSIc
+ mXdJJOTsAGuJTbqz0O4eJK9yn5xxk1O03EtCu93OIqFwWBBZIvP21FTy/wHEENtyxVDzvmK3d9yQE5zr
+ V+D8VyU23T2IDocD7URkZQXDRDASwQCJBcgcm5hYQgPsOrwDQHcG0rSnQdd8fcuHgYb0X1cz1ljXiUSa
+ DfHxpRsTElR/Wx8Xl7u6/idAlkEjBVCfgJ3lx0FWLIGH5KutxOZ/g5jf/+OE9zO7JyQAAAAASUVORK5C
+ YII=
+</value>
+ </data>
+ <data name="water" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+ <value>
+ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
+ YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAACOElEQVQ4T23OW0xScRzA8X82
+ J71Em7Udl3M6B7RuK0tRu209VC899dbaarXZQ0xnzSi7t7QpVkoEWJLr9oBONt1qvYg3YE7/oDawCyAQ
+ KNpNUPACLPr9TzuO/xlsH/475/x+3/1RMplEh3WzaR15OVd88MUMSofsEezfobZgOkIgg2Ehf5mgAgee
+ T6cjAlXlrQFRmdaP+KhAugFw/F7v78ZSzfcTUrUP8VGBkmdePgEMVS+s/rUUqzxX9indAoBSUYH9T6co
+ sCSt7Ak2QQDLumce7212lu958g2logJFLa5UWeCyybv03htK4CFP9MPuR1/kOxWTAoA4VAAG1kD96MWu
+ gNL9J47tczFMzgsdPs32BvsxSf0E4lCBXU2fWRDYCG5bp5eNvlAcT/6MYYt/BRvdEeO2h5/qxXXjQtGD
+ MURQgR2NDs7JSwa/bmo+geE9/vorjj86l3C/dwVX6D1vC+9bTwFEUAGoc26+Gw/3koWJ2Ri72OGIsl5b
+ 5/sK7o7W5d8ZQQQV4K4FFHpHZKTNtog5tuAqe+rtkdG8W8NqgAgqwF0LKN6MhU0avIibh8NryPMrW8ic
+ e8Oi2lprRpvPqOgA+TFnteRqFVUGj2HAt4y1eAE3mELsSZ5lna6enGtDsuzTSnaeH1gHBBsKpeLcWlNL
+ dZfLYAtETT+iCQynubLT2c3U9KmzCkokZA5k8AMZQAjyMhlJ6Zbz7fIc+YCWkQ+2M1f7W7PP6a5nMuIy
+ +J4PNoH1/wNJ9A/aKC7unrr4fwAAAABJRU5ErkJggg==
+</value>
+ </data>
+ <assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
+ <data name="grid" type="System.Resources.ResXFileRef, System.Windows.Forms">
+ <value>..\Resources\Images\grid.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+ </data>
<data name="MapGuide_Maestro" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAABAAwAMDAQAAEABABoBgAAxgAAACAgEAABAAQA6AIAAC4HAAAYGBAAAQAEAOgBAAAWCgAAEBAQAAEA
@@ -714,874 +1580,6 @@
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAEAAIABAADAAwAA8A8AAA==
</value>
</data>
- <data name="plug__arrow" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
- <value>
- iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
- YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAACVUlEQVQ4T4WRXWhSYRjHTyGM
- mI4KIwdHCRKPn0tr4DnoSF06P/IDVMKTy69ctJQaLiRQxGDp3agGo4tud9VVEEGXiy4WGvaxkA0WQ6S7
- QSMIBvX0vIJLm2wHfrxf/H/v85yXoo74pFIpFQgEqEwmoyoUCnOVSoWpVqtUl6PyFBH4fD5NLBbLb2xs
- A473E4kEVS6XO5LDPice1mmavmmz2Yr1ehP0ev0Cx3HaVCpFlUqlQwW3MPwhl8sBGVdXGyCTyZaUSuVF
- j8fT186gCnQSieRLNpuFdDoN2DuRNIRCYVahUBxoZ5CgaLfbd7BMCIVCEI1GIZlMEslnbGfm/3YGCV5E
- IpFffr8fvF4vYMngdrvB4XAQyXpvOyzLDvyHazzP/3a5XGC1WkGt1gJNy4BhVKDR6Iikie3cFYvFFFZ0
- QODFnU1SOseZMKQFuVy9j1ZrQOEFItkcdLUPN7fi8TiYzRYwGDh8Nnaf8XETEJjE4q6cf7RIu+9RZ6/c
- 7vNsk7DN5oCJiSmUTMHk5FWwWJx/jMbLewyj+ykUjrQuVd632KVvNePTrehY5VOf4DGu2jyfBKczDMHg
- NCm1TYce7jK5lz9U+TffteW1rxiqLbcByKhbaES7Bh4nEA6HSWiH52c6IxI8/+Bt7UkLYHYdYPrjP3JN
- AHJGBL1hElxG9pBrQ/QYNZp5/Uwy+6rWC/sOgKzxrFNB92YSvoOIkdPISWQEESHDyAlkSHR9pS6KrtSH
- 7cUbuD5GBHkiQeYRDaJE5Mg5hDz0KHIGOUVkAvP8c4FpLoFzAXL8L0AoE8TVvKFBAAAAAElFTkSuQmCC
-</value>
- </data>
- <data name="navigation-000-white" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
- <value>
- iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
- YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAACL0lEQVQ4T6WQTWgTURSFHyou
- RRcFrYvEIu50YRaCikUsTf2Ny1YUExtUFHUjilroJhh0oUsRdKG4EzdW6EpUbKkKiZM6bZNayaTJND9j
- ZmIz00maweO7DzMhULsx8MF955x7Ju8xAOx/EMvdoTF29EqCnRrKsHORkjd892eUI3Gsv9AcJY8ylKUd
- 2m0r6L+dDoYjWe3FqIEfuWXY9d8CmkkjjzIrFhy+/DUYGp6pz2WX4DgOGo1GG6SRRxnKtv2Dvaffef0X
- xrVUehG1Wg22bQv2nfkgaJ7Jowxlace9ws7ASPT+UxmWZaFarbqcvfUR3BM0dcrceyKTFnULtve+lGJT
- JVQqFRdN06AoCgIX34D7gng8jkRiEu8n5ugsuQVdPa+ssmFC13XweVUkaRIzyTRlLLdgR9+oVdZNqGoe
- fF4VWU5iOpmhTKtg18lx6ZNUwuxsBuXyrzYGh6bAfUE2W0QqpeDtWIbOrSvsGZjmj6hifr6EdDrvErrz
- HdwT5PO60BWlgMijDGmtRzwQzHqPXFrQYt+q/BoV5HKGoDukCjTNdLWJmAHK0o77BgcHC6znvB4cuGHU
- 47KNYtFGoWDDNB0BzaR9SSyhn2coSztuwbbd11mX7ybzHR8JBq4Z2sPnFg8vQ807UBccfE7U8eCZiRNX
- DY0ymzr3M/q5BeLE2DrO1g5PX6/v2OvHh8JFmX/JImgmrcPj9/OMh7N+pYI1XNzA2czp/AdbuL6Rs7ZZ
- 8Acd9ZrhecHpOQAAAABJRU5ErkJggg==
-</value>
- </data>
- <data name="clipboard_paste" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
- <value>
- iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
- YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAACc0lEQVQ4T43SW0hUURQG4PWS
- 0JsIFUQ9lWMTFo63RqXRLKoRDMbMcbyMWtqY5qBOjsEEFmlRJAaTlJRdTLtn+ZBBL4EE9rBDu0AlIURZ
- D4VQjo3j7W+v0+xT+tSBj7M5Z6+ftdc5dC6diLVn/HXIaozIzc3NkVxhOfzs3z2qTisOB3TIDYKdMNFw
- 12H3l5GRD2C85mfqvbx36AF+GRAm3rfvRV9NKgYHX2Fo6B1GRz9reM3P+N1bfynkfqHq6OxmUsTrtiJc
- L4nFRftaXCtej5v74nC7Ih7dpRtwuSAGPWUb8bK1ALJGqDpqTSVFDJ9x4NnRbDz2ZGguNNjQ1ujQnW8q
- Q2eLC83bl72pLbSQ25FGdNqsEy9O5eGpb6fO7yvGr7k5/JyexvepKYwFAugbGECtPeWjzeeLzvZ6iU4m
- 6cTzZhueeLfqWr35mJyZwfjkJL5NTODT+Dh6+vvBlyyukgx0PIEUwe0/qrNoeGDHqrIRnJ3Fj2BQD/F3
- d0OJtlqPUFMcKYLbv38gWRvkpfxoNJRkIiSPEAiFFoRwJ2Oyq23V1W7yxZIi+uvTcaVwHTodBo3HmYkZ
- GRCUM1gcwjOxVFTUUaORFPGg2oyrRUZdXfEWzM3PIySPsTiEB2t2Oj1UbyBF9MqALtm+4i7MwLwc2Kzs
- YnFIQAbE2+1e2r2SyL1GI3qrNmk/i1KZl6ZNnEO4Ez4Oz4QHOyXvMVlZPuJr1woi1+o/AbfKTboaWzzy
- raYFHFkmJBlXfY00mVqiEhPLuX6ptHxPJImHB1O0r3CvMgl3XYm6O/sTwPi3ZryXa8K1FCUXsclL6MaO
- CBL/g/dyjRT1G7y5F+bDPK+HAAAAAElFTkSuQmCC
-</value>
- </data>
- <data name="document_copy" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
- <value>
- iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
- YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAAB70lEQVQ4T42SPUubYRSGz+Kg
- IphFqCAFY4YiWboIUkyLhZjQWhULWVwcNJUgRqpECWazP6DkF9S2UkTqoAjBqnF3dOtQBC1YNOb7+/Tc
- Dz3yECvkgQteeN735lz3eWlybY3exmKvhZkH6JuIRmlsZQXvGUYnh8nf30aurhYiXArBXLXK18Ui/87n
- +TyT4V/pNO8kk4w7wWUHaOCg10MmWXiXLZf5TzbLF6kU/7y64rPLS/68t8c4uBdcOoEGvIlEiF4tLYG5
- XKXCN7mcCUmcnvLXoyNejcfveBEMfv+neKdkAkbCYRAqiMJtoWBCtk9OuBklE/AyFALzJQnISgcI2Rb3
- ZpRMwPPZWbBQrtU4Lz0gZOv4mG0l7eXjxgYrLp8vKhA9m54Gi9V6nYvSA0K2Dg/ZVmosFxuCNvRpYGoK
- vK9JQEU0EPLt4IBtJS1XJzmXoqENfXoaCIDluqyrKhoI2Uwk2FbScnUS/CvQhj65x8dBBPuuyxQI+bK/
- z7aSlquT3JRKDG3oU6vDQT0eT8z8MQgRPu3usq2k5eokaekJ2tDHedzudIY73O4PSp/X+8NW0nJ1EqwY
- 2tDH6RQeCd3KE79/3VbScnWSvBQN7d6hIRPQeDoblaCDTlAstlOSZ7wjHzr+F3BPydbTZ2jLx71/Ad5i
- gsnRJ2HiAAAAAElFTkSuQmCC
-</value>
- </data>
- <data name="server" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
- <value>
- iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
- YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAABaUlEQVQ4T42SMWvCUBRGr+LU
- jqVQujh1dtDFxSVDBhFB9DdokCAigpNDBscundw7+A8cRDAEFKQiySAYXESy+Ceu95Z3H0IerYGTId+5
- ZwogIjSbzV9arVaNaP9DTXy+BX41Gg2hc71eMUkSI7yR2xFfB+r1Oiicy+WCcRwb4Y08R3wdqFaroOj6
- vo/r9doIb+R1xdcB27ZB4Z7PZzydTkZ4I88VXwcsywJF73g84n6/N8IbeT3xdaBSqYCiP5/PcbFYGOGN
- vL74OlAul0ExOBwOGIahEd7IG4ivA6VSCRTD3W6HQRCkmE6nyBt5Q/F1oFAogGK03W5xtVqliKIIeSNv
- JL4O5PN5UIw3mw0ul0sjvJE3Fl8HstksKGb0G+NfkDcTXwcymQzkcjnmy3VddBwnRfGniLyxwy7f6ADQ
- Q9UPGj4nkwl6nmeEN3bY5Zv7wAsV2zR8PwK5Hbp/vQ880Yc34v1B2H3mwA1XqPmpzb5U7wAAAABJRU5E
- rkJggg==
-</value>
- </data>
- <data name="plug__plus" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
- <value>
- iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
- YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAACTElEQVQ4T4WR3WtScRjHn1YS
- KzPdTmChEmTqfCGNwZRNUofv+VIq4cHwba4gJcLWCBxiEBqti6AXBosIuuyqP2F3gcqgGmODYsHYReFV
- EBvU0/MTHLrJduDD7/x+nu/nPF8PwCGXXC6HcDgM+Xx+pFQq3atWq+parQYdDssDEwSDQV0ymZxdW9tA
- WmfS6TRUKpW25KDLQz82ZDLZlMPhmGs0VtFoND62WCz6bDYL5XL5QMEtCjeLxSKydWlpGRUKxQuNRnPZ
- 7/f31Ok3gUEqlX4pFAqYy+WQujPJslAoLKhUqn11+gnmnE5ni8bEaDSKiUQCM5kMk3ymOtN76/QTfIjH
- 439CoRAGAgGkkdHn86HL5WKSr911zGZz3//wE8/zf71eL9rtdtRq9SiTKVCtHkGdzsAkq1TnLsdxQBPt
- EwToZJ2NbrGMU0iPSqV2F73eRMJLTLLe79VBOvyWSqVwYsKGJpOFPpt5l9HRceQeXkB4KtmGB6c/QvQE
- QGiwx7PBwg6HC61WN0ncODl5FW02z7+xsSs7arXh99Enw9tTrRmE91wd3g0DvBnqETyn3SbPZ9DjiWEk
- cpONukmsQE74C+bFW/BKshL7OY0UrLdZHFroGHi6wVgsxkItnqeHaCUicPEYwEtx3b51HffCzpmgO8yC
- r4kd4kbb7j4O8Ey0APOiOkP/w4qd+/Z515tZ+A7BEaycmBARp4iTxCA8EjbPfdchrQ3aDxBHmGCWSYj7
- hI7QEEriPME+9FniDCGBsOAt3BY04ZpgkfbUDQb+AzWA+1Qy0hyuAAAAAElFTkSuQmCC
-</value>
- </data>
- <data name="navigation" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
- <value>
- iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
- YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAACgUlEQVQ4T6WPX0hTcRTHf96p
- ROpbli6IhZpkk6noEEsti1wLyvDvLNDZpkZFYkSZUPSiWG+BBaX10ENQRKGrruKylFAzMP9uzmm7aM1s
- Puhu4MPG6Zxr7poUPfSDD5zfOef7+d3LAID9D1JYoW5nisSXTKHhkY4oRVKnCbmHvPoF1SZpRju0ixnK
- bhToItKt7QeqJx1VtxaXLt4RfbXNoq+yaXEpu9LuoBkKdH8T6CKz3vZU3Vz0mhu/Q9kNN+TV2qHkqkuq
- zY0LUNGw4N2S2d2DAt2GL2iLjkjjLaaGb15DvQuK6z6D/twIfuHqoTtBs9Jrs97w1NcWhbotWv6FhOfm
- fcbhqaIrTjhWMyFx5Oww9A8vBCRr/fxLDkgpHphSYCYg4OKfthbVTS/nnhmCNXJMH0BzgofuPgHcbjcI
- ggCxh59BvP4FaA3vlikjC+Iedxjqp32HKj/CysqKtDw+Pg42mw2cTie4XC6Ym5uD+fl52KW3QHKB1cdh
- RhbEPOosvDzp31vWD2NjYzA6OvrHsMfjgYS8N6Ap7PFzmJEFqocPcsyfvEmGQdh9vOs3LNYJ6WUK00xT
- MoiS914OM7Jgx/3quFzrTPrpSUgrt0uknBqBjl4hEFbn9wZmykx+hsOMLNh+N3rTzhY+3egQM6q/QkbV
- F0gtswXCmuIBqUckn7SLoaoWnsOMLFA2My7qtj4strVPWyGI2ReWIAtJLh2SoJpILXeJm2Na+2iXw0xA
- wPAEhcayoDDj0dDIpi5VJi9ojbPi/poffoJq6tGMdmiXznpBMN63IXsYpzrIgvOvs5DzT1hIbe8qWFOP
- ZowlIlFI8HoBh41wZCui/Af0EO1yJPgJP5onawv8eSgAAAAASUVORK5CYII=
-</value>
- </data>
- <data name="application_task" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
- <value>
- iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
- YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAABmElEQVQ4T6WUPUgCQBiGD5wa
- BCGKCIKQSFqCbHFycnEQVHCIdq2IIIKWoK2m1qZMBEkkRQRRRHHJ/ClNFJQUdHHQUERBQRHl7b6DGsWf
- g4f3444H7jvujgFgy8BMJpOcc8Qxzwk5cmY0Go8TiUShUqmgXC6hWCwin88hk8kglUqBryEeJz54/YVk
- Mo90+huh0HuBXKbX608jkQjC4TCfDCEYDMLv98Pn88Hr9cLtdsPlcsHpdMLhcMBut8Nms8FqtUIikZip
- BQs/g4UGucxgMJxMJhN8/iQwHo9FHr7KRT0NcshlOp3ubDQa4cC1jcfcg8jhcIhqtQpqjc7ij1gsJmpK
- cshlWq32fDAYoN/vY/9lS+QskEMu02g0F71eD51OZy7IIZep1erLbreLSCmIVqslcs++IeppkEMuU6lU
- V+12G7vPa7h/uxVZr9eRzWbh8XjEPaCMRqP/BAIBkEMuUyqV181mE7VaDTtPqyJngRxymUKhuKGtNhqN
- uSCHXCaVSi0ymexuEchlfKxw1jmbc0LOylJPmb6BX0e9uo6xgLh6AAAAAElFTkSuQmCC
-</value>
- </data>
- <data name="navigation-180-white" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
- <value>
- iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
- YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAACMElEQVQ4T6WQTWgTURSFHyou
- RRcFrYvEIu50YRaCikUsTf2Ny1YUExtUFHUjilroJhh0oUsRdKG4EzcW6UpUbKkKiZM6zU+tJGkyzc+Y
- mdjMdJJm8Pjuw0wI1G4c+ODec889b95jANj/IJZ7AxPs6JUYOzWSZedCZXfw7s8wR+KYf6E6TDPykJd2
- aLcjYPB22h8M5dQX4zp+5JdhNX4LqCaNZuRZMeDw5a/+wGiiMZdbgm3baDabHZBGM/KQt+MP9p5+5/Ze
- mFRT6UXU63VYliXYd+aDoNXTjDzkpR3nCjt9Y+H7T2WYpolarSbgmuDsrY+ORjp57j2RaRZ2Arb3v5Qi
- M2VUq1UB7wW+i28QjycQi00jGo0KqH4/NUdzyQno6XtlVnQDmqaB16siSdNIJNPkMZ2AHQPjZkUzoCgF
- 8HpVZDmJeDJLnnbArpOT0iepjNnZLHK5EngvGB6ZQaXyq4NUKoO3E1mat6+wZyjOH1HB/HwZ6XQBhYIG
- rgkCd74LrUUmU0ToUZZm7Uc84M+5j1xaUCPfavwaVeTzOlTVQG9AEVDfYiqig7y047zBweEi6zuv+Ydu
- 6I2obKFUslAsWjAMW0A1aV9iSxjkHvLSjhOwbfd11uO5yTzHx/y+a7r68LnJzctQCjaUBRufYw08eGbg
- xFVdJc+m7v2MPidAdIyt42ztcg30e469fnwoWJL5SSZBNWldLq+Xe1yc9SsFrOHiBs5mTvc/2ML1jZy1
- rYA/mPmaEqC8vtwAAAAASUVORK5CYII=
-</value>
- </data>
- <data name="loading" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
- <value>
- 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
- dEUlCwsUDOCQdasFE1yCAAA7AAAAAAAAAAAA
-</value>
- </data>
- <data name="navigation-180" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
- <value>
- iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
- YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAACe0lEQVQ4T6WPXUiTYRTHH9+p
- ROpdli6IhTPJlDmZMiy1L3ItKMH8mAU626ZRlBhRJhTdKNZdYEFpXXQRFFGp1fyslFIxsLmtfTjtHa5a
- Sy90b7CLjdNznnKvSNFFB35wnvOc/+99XgIA5H9gYUlWD5FkPycShZnSlyLJ6TdQblNe/AZ7A7vDHdyl
- GcyuFWiS1EM9expc7vrri0vnbgrhpg4hbGpfXCo2Od14RwWavwk0yUWvR+qvLQaNbd+h5upXqLrEQ2mT
- k/XGtgDUtQaCGwpfjVCBZs0LulOT8sy9htZvQV0LD5XNnxgrpT09zc54V315PpioetkryepOFX8h84lx
- l94yU3HRA4cbPzJWatwSgIOnLNF52Xk35FZOzEhoJirgMh51VTTPLpecnAIEKxQKwfAYDxnapwz5gccM
- 7PN1b5YxIwrSH/TpWmbD+03vWdDr9YLdbgeHwwEejwd4ngefzwd+vx+2aXtBeXQozNGMKEi7319+wRXZ
- WTMONpsNrFbrH8MLCwuQWToMivKRCEczokB27+5e44dgjm4Sth8ZjIaf9VnZeTWKqkkqeRvkaEYUbLnT
- kF4yNKc+4YK8WidklY1Gnz3wbh5yj0+z+QrSQvMcRzOiYPOt1HVbO81qvVsoaPgCBfWfQVE5wf4Zn62q
- cbAZojzmFOJlnWaOZkSBtINwKTe0CfKusfw6r1B8dgmKKMrqKQb2iKqWF9andY3hLkczUQGhFRMvJzEJ
- +kPxye2DskKzN18/L+xu/BFBsMcZ3uEO7mKtFsTS8ybKDsLJ9pHYsisk7sxDEtc0+gva4wzvCMmmpFBi
- Vws4OkikbKRI/wF+CHc5FPwEO0ImlGXCA6EAAAAASUVORK5CYII=
-</value>
- </data>
- <data name="arrow-circle-045-left" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
- <value>
- iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
- YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAAC0klEQVQ4T6WPa0iTcRTG/47y
- g5aKpbiRZZJmWmTNxCtaiy7SksLIVmmkKOmsbCSjNMolZIg5vFBRqY28lHO6vKBNTbOSeG0gVpTLlDnn
- xEtT5lCs0/lvXSiCPvTCj/c5z3nOs3cEAMj/YDneJtWQ4JJhEn5bRyLujnEi7xmESAXCIJ1IHsLHnRPN
- 0Cy9ofxZwOeV6dXJbTNaSd+CSar5CogRtTpJZazglerFWOD594LiIf6ucl1f4eAXyFEvQDYz/wMj6rfo
- NeCuYGfpSHxw8RD7ty8IuPGBE1YyqJYOLEJW9yykq6bN+8q1moCCAQbpRN16pnVamdk9W4CZtNDijzy8
- seXmv7f+Bf/cfmF8vV4rbp+C1AaDGWdmy/U3AhqgoI5C71pynV6KmbQjNbr9OLMRa4Fvdm+lqGPCJKzT
- wY6idxo/yWsBXdLjDVcYsvGqmqC3NSy/X3xKPiIUthhi8MYLsRZ4XXjOZDydhKRaLVC9PquH+OKhe7qK
- rBG1E4/zHcRT3EVz3LgHnyIxG+F98YWHd+ZLawGGmNQWA5zAAqrdzz4hqxBasPpc2y3q/Qn16d5SwE5t
- qoypHjZFV49AYO4rDTulUbAyUUHcUhoJR9h8DPdMkmoSDin0FuKaxoF6iLUAw0JuXq82tGoMohWjZpyZ
- FQm1Asf4h8T5pJzui6h3sHkKAmSjsLd+AuhMf8RS4BhXzXFOlKuDHhvBr+Yz7FaOmzdJujUOx6sYCtVh
- DTOwrmoK9rTOAtXfd9aC5UcriH2sjO+QIO9bqzSDW+0ceDeaIVA1b4FqjmIO/JvNYHf4PhP1bN7yRqwF
- 9GG5+pAl4Rl821iZ2v5Sj3ZZmcFkp1yEkK5F2FwzbnKV9Ghx17H0wJ0chKGwXHx+FWCHPeJh4+q3nRV0
- +jIrqvARi3+z1wLV6Nm4+vIww2VxE0WsEJGM5n9+AQ62iBPCRjj/gGZcaP4bffAO2z+OFqAAAAAASUVO
- RK5CYII=
-</value>
- </data>
- <data name="cross_script" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
- <value>
- iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
- YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAACFElEQVQ4T6WTT0iTcRjHn3D6
- 5nJbr+2dZo3Ci0KE6EC9rpNEl52yS4HFhKyItJIKCwnBlVYUFh0a2b95yYJRHdYunYJJZBZEeogxhJAu
- ecnSt88zt5cF0WWDz37P832e5/v7A6/Yti3lUNawbpw3SIjIlEgXZArcfII2CXfhHjwE+nZRH4JnEHUM
- tAiZ3wMD9nJf39pMe3tO8/slBg9ERhNVVe/QXz8S2QsbHIM4jRBlp8zbjo7ct54eO9vdvTIdCHziBKEp
- rzeebm5eoJ6kb4duiEH+9Pk/NdBj3qF5QiQGmZlw+PvnSGT1ZVNTNt3SkkV7jlm99v7PQK7TMIbROCap
- 1tYfqVBo5XZ19Ry5XANdlb9OcAmhyLCINcIjJRoaFpONjT/HDWM27vd/HausnKUmF2CwgHOFonCewpDI
- jceWlUsHg6sxw5i7KHIY7ektt3ue9cW5fxmcRFROi/ROeDzzmbo6e9Lny51FYkh06AzGMZfrI+tIP/mp
- 0kc8RnKc1z3Bvd9b1q83prlMnMTUVGM9oQ6gDcMresM641whSgJX4253bqG21h6sqPjQy0NG0Iu/ToKj
- 632XYfSIiMsxqKdwiN2/mObadE3NEvGVrSXDpWHbem9/l0ibY4C2ncLBA5jsF0kFRPag7QRC8YEHNoMF
- 24IinbtF9pUaeCn4QTdWdFAHNsFGMAqr5tprwhbHoJzP+Q95lHpGrVHH8wAAAABJRU5ErkJggg==
-</value>
- </data>
- <data name="disk" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
- <value>
- iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
- YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAABwklEQVQ4T6XOT0iTcRzH8e+e
- 7e7BgxDixbuXELyKlxQPgiwx/JOa4UE8CR4UFcTUubUJk4nhX6ytRHCCqJvicuEk6KBWZKgVRaIM/IPK
- YLBPv8+jgwR5VBy8tvH7fd7PJgDkPqTa7FRcdUqvta3t+W1we9E4RarUm+LYenOi/giQuAE33LJhK0/N
- DnJujkYRTyQQi8cNccMtG7ZSabZT3/rwAc5UfHR+bogbbtmwlQqzjdyfBv/iMBbD3vGxIW64ZcNWyrQu
- 8nz0/Ma++vUf0aghbrhlw1aeaJ00GHH/xO7OEf6cnhrihls2bKVU66ChsGsbga7NW+GWDVsp0dppNOTY
- Qs/jcXRbx67Fu6S1/l9gw1asWitNLPZ8gb30NSKRNayshK/gGe/eNYXhLPPhQ98O2LCVYq2ZfAsvNuAq
- f4tgMISW/H7dzMycjme84wM8z6bx/uV3sGErRVoTTQW7P8NdNQW/P6B/ks/n1yXP+ICR+nks27+BDVtJ
- NaVLjqk4t8DUEGh/9OpwcnIBA7V+ndc7q0ue8QHexhCWbF/BPVu+MpSsTMmuyZPaVYvFYrsO7/73UAqH
- L1tJUV/SlAd3xCblH+s4aw2T/BzJAAAAAElFTkSuQmCC
-</value>
- </data>
- <data name="clock" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
- <value>
- iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
- YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAACKklEQVQ4T6WR32tSYRjHD8Mb
- xaIbK/oLhAxFkImEgU0R5y9Qb8pJHCgmLW/1diCMgZMuxqCNsW4Xu9vlqLHdBM0dY61Mzbkd80i0pcMb
- u3p7voedFy3GLjrw5X3O83y/n/d9zxEYY8L/SA2Hw2EhGo0KsVhMiMfj1xKJxDgpRhIvhHocM3jgRQbZ
- vwHmJ6KYXlpbe1OqVJrt09MBhBo9zAhgvgxgfjo9nduWpFa902E/z8/Zu50ddYXQw+xZOp0jgHnkBKFQ
- 6PrjqamZ7f391sfjY/aj11NDhUKBA9DDbLdcbiVTqRlk+BUCgYDr5fLyRqnRYDVF4aF8Ps9rADGTmk22
- tLq6gQwH+Hy+R2/39k4AGFYymRx512bvDw5OkOEAj8fzvFSvDzSDdu9IJDJygk63qwK/yPIAGQ5wu90v
- pEZDBWhhh8PBstks8/v9jH4hE0WRZTIZ9np9nVXb7QEyHOByuVK7kiQPA77RXZ1OJ8OqqU51qVpl5UpF
- RoYDaLcHxcXFTXxlHFM7BYJajRWzT7LMXq2sbCLDAXa7/cbDiYnsh8ND5fvZ2UhoGNCm2edaTfF6vVlk
- OMBmswkWi8UamJych+FXv/8PBL360ZESDAbn4UWGAwR6DAaDYDKZ7FardbawsLBVqVaVbr//u0f6StBi
- sbhFoVl44MUzDNDR+y3SXZ1Od1+v16eMRmOONHehHHqYkece6TZJNwwYo4aRdJN05wphI3jHAPgDEUJm
- RtMH560AAAAASUVORK5CYII=
-</value>
- </data>
- <data name="disk__arrow" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
- <value>
- iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
- YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAACIElEQVQ4T5XNX0hTYRjH8Xfn
- 7N6LLqKIILyMvClJGgVhUEpIIKuMM0vLkBBvCkYYuZA5XVv702Rl5ezvViI1yZab1dqqmRX5J00ry1il
- xkANk8Fgv97n0KqFzDrw4Rye9/0+h5WLFlYuWmXq2tpFbTo/cZaTirZ2shzDAOOhvKCSO8kXHFzMBvvr
- 8Y11w5MF6m67vKCML+DMo9e+gZ7kX07ciWK3620a52cgV/t0co2+T2L7RDOxDLbGkEgmEU8k0hSdfgl7
- FDg0BGj6fzs8AmQfDT9ne0UTsfW3fMV3Hs/Mz6epvtyH/PrQL1sMYeQ9BlZpbk4tq/JJrFQ0EseL5i+Y
- jscxMTubkarGh3WVt6Fa7Qyo1rsYkwQDcfY6o5jif/8Qi2VUarsPve4ZqKGW7RH0pDniGMf7sRl8mpvL
- iO7QXWqoZSVCHbkQtr6D3zD4T+guNdSyXYKOtAbNo2jceQkN6osLorOUnqaPoIZaphaOkyvdjUMwlVxF
- JNKDUCichmZ0dkMbhkXy4JFtDNRQy4qFGuLpqh+AVXMdgUAQxwqaZB0dPhnN6IwWOA/cwsNTb0ANtWyH
- oCXtgYZXcJS1w+v1y2/i8XhlqRktcFXdxQPTCKihli1RrGB5iuLNhYpqv27buem2ti6cqfDK3O5OWWpG
- C9xHgrhnHAbdp5aelVxONsvdn88qniiVSuNC6OxPa9n2lp8ty+IfS7nl/4marB9dh0ZMPnnUHQAAAABJ
- RU5ErkJggg==
-</value>
- </data>
- <data name="document_code" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
- <value>
- iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
- YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAACEElEQVQ4T42Sz0vTcRjHn6t0
- 65CnDoLrIIIHD40OCUHQwMJwgQwvMkyHG7IxHH5LBQ/rD/APENOOHQbpKRgaJNIhiTUSjHBrboxhud+/
- n97Phz3DwLQPvODz/fJ5vXk+z+ch5/IyCc9WVh6D59fQP760RE8ti8YWFw0kPzrMlJpN/lWrcbZc5lSx
- yIlCgU/yeUNkb49xbgbY/gqQjw6zhXqdcxDT5+f8I5fjo0yGv56eciyV4jc7OywLZ2eBrVvBk1CIOniK
- CDgrlS4NWdvaYsXmcLwEJNBoMKjMlRsN/o3y/xUilch14MypR4/8fsVbQQ/ylcqVIRIAx6sePfT5FF8V
- AcVq9coQaSwcn3r0wONR5uutFpfRh2/HxxwOhzmJJp6k02b/OR43jZXXgTOvHt2fnlb8DQRkslm2LIs/
- Hhx0K/mwv2/+HSUSnMUV4fjVo3tTU0qg2W7zu+1tfr25aSq5eJ31jQ1+G4mYOYETUI/uTk4qwRYCpAK3
- 283R3d1uyPto1Pz7nkxyHsFwgurR8MSEstDGoDRxjS+xGLtcLv6JIUrg6WT/6fDQvI4MG5wF9ah/ZISG
- nE4hJJPWRhUSIv2o4VWqmI2L1ynhW86KI65Zt+12uuNwvDCzek2IDJucFUdXDza3eu32VQ0wIUB6Io2V
- auSJZU5q+Jaz4gBx6SYY7OnrC9wYGHj1P8hZccT9A/S/eqCvfnWTAAAAAElFTkSuQmCC
-</value>
- </data>
- <data name="document_search_result" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
- <value>
- iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
- YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAACsUlEQVQ4T32Sa0iTURjHj2aa
- SkUmTiNBUpeT5sCEUJIN24eELhpdjFREyMtcc0pmhihDRSfMLyaEgRE4I1u4EkSUgYww8ENChUOzVrrp
- 1Nzc5q4qT895c2st6MAPznl5/r9zeV5yvaWFBHKjtfUyUvEfUq41N5OCpiYCAITQRRBVzr09sHk8YHa7
- weRwwLLdDj9sNnij1QLWViGpfgGdBFG97fWCGYMbGDRubcHi+jrMra6CcmwMNwXA+moklTnBpYaGYETO
- nR3Ycjr/kfQODoKP1Pz8ZkZwsa4uGLFlexuWcNfljQ1YMZthzWoFg8XiPwm9DubEjCBPJPJzAedCsViy
- aDDATyyip7DsXyVQsowb0DpGwK+o8COorEyRKhRdm1arp6OvT5MmFD4+jch6ezXGzU2PT2JCMdZKGcH5
- 8vJAbur0+s+KgYGJK/eaumbmV15RCmofyTv7+yfoo5rwOrQ7mKtnBOdKSgKRuL1eZ15ZWfczzfzQi3dL
- oxTV9FeVoLS0m3YGT8K0GHP3GUFmUVEgtVRQKJW2qab1w3MG2wRF89E4ehW/0TfRYzvt2GbMPWAE3MLC
- QO58WljQvZycHJENDMm+mazj39dsk93K4fbB8fGRddoJoxEc2GbMPWQErOxsEp+TQ07k5pKTfL7guVo9
- 7d3ddam1WlVNT09jjULR+HpqSmWx210fdDqgEjf+qYl8fisjOMzlkiM8HjmelZXZIJeP0D/tiVI58352
- 9ovD5XJR6FxYXPwUazt9HOXx7v4RZGQI6js61DRc196ujuJwhGHJydVI2z50zo1gs0MiORxCoRszgvC4
- OBKVnt5FwxKZ7O2hpKSzB2NjSWhMzF+EREYS3zgQHU0iWKzfAhzRYQkJt8PZbHlYfPwtXJ9B0pBTSCLC
- Qo7ROiQcCfWJqOAXIWscMdZSSXsAAAAASUVORK5CYII=
-</value>
- </data>
- <data name="tick" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
- <value>
- iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
- YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAACHElEQVQ4T2P4//8/AyWYIs0g
- i8EGMEwXZGCYLcTAMAeIQTSIv0iYgWGpCAQvA+IVogwMK0XlGVaJngFiD4blIhC9OA2YCTRkPtAwEIYY
- JgDUtCHtXfl/IH0GiD1IMYCNYbHIPMNjzk+jHmX/j39Z8BvIP0OsAYwMC4RbFXYY3wu4kfjf+2rML54V
- cpcYFgr7oBvgAfT/GSD2AIfBZH5Y2GQKr1K54XY+/J/L2dC/AssVrwHDKhloKFIYTBMEaTqT9Kr4L4hm
- APFBBkwT9OGYK3FZZ5vtb7X15v/4FsjfAspXM8yABDrCBZP4z8Q8zf3lcSHyf8TDzD8MQD4Q57JMFT6t
- vMXkh+Imo//88+XvA8V6GKYIMDFMFWAAYYQBfXweDL18Z/xvxv9U2mP83+FCwA8QX2qT1mfpHTr/+RfJ
- PQHy5zH083MADQBrZvDmQDKgl4+BoYPXg6Gd94zxKedvEoc1/2ucsfwvfkjjP/8quVdA8XUMXbwCQAMY
- GLw4GGAA4QJ3dgaGVC4GhmZuD4Ym7jPSB7S+CJ9V+c+3TfY9YzPPboZWHmkGV6AaNIAwACahwMzAEM7m
- wVDEfoZrmdgLxjKOI0C+JoMcE4ZmkACyASAVQPcxyAOxLoMxUxpDPNMZBm3GUCBfE4iVgFgKiIFJkoEH
- iNmAmBHZAEagAMhzwNBhEIcqloSygZmAARhvDLxADPQnWDPQqUgGUJKdAYAsiHz3wn5/AAAAAElFTkSu
- QmCC
-</value>
- </data>
- <data name="cross_small" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
- <value>
- iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
- YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAAA0ElEQVQ4T2P4//8/AyWYIs0g
- i4ebASsYGBhWMjB4APEZEL0UjQ+SRw9wFIElQAVAfOZfScl/EA3E1Wh8/AbMBxowD2jzXKDmH8nJ/5Hp
- hQwMxosIuWAqUAEUVwPpMx+8vf+D6CkMDIU9QLkuQgaAFHQDXQBUfOaFoeF/ZBokTtAAJaABzUDND2Vl
- /4PoZKDNyHyQPN5ABMrLWTMwJGUCNcsyMPgD+dL2DAxRIL4VA0MKkK9IyAB+oCJxIJYEYmEg5gNiASQx
- QbwGkJOpBj4vAADjam5oGtX6AwAAAABJRU5ErkJggg==
-</value>
- </data>
- <data name="reports_stack" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
- <value>
- iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
- YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAABm0lEQVQ4T42Ry0tCQRTG5/EP
- hEFYK6lVLpVaeJMsjTbRJjdu2hQlESnEbRPoptplRBC4D/orekeLiDZBBXGhTYsgytTM9+mMOtadm+XA
- j2Ee5/vON0MAgBA7IWyKEa5zwleQ+pxADv4gIe4RIaAUEvtSLwnGYvN41nLwZX6I/CqQ4GF+p21r4Iw7
- IZAMgLYz2mR2PwJVlOVRFIgqAu04+3f9UK5WgS/yI8TUQVvOnk0fFCoVYGF2jNQFuhyOfzNL5+EtH3yW
- y8Bm2AlSF8AxZxgGJJNJqGB7xlPOhMgsnQfXvPBRKgGbZqdIU4BM6PqCyFZEdRWxL521DS+ki0VgIXaG
- WDvI4eH9Y9aEyCyd3asapAoFYEF2jnx3MBIOR0S2TD5vQexLZ098CNK4puP0gnZSawepXA5uHt5NiMxN
- 50mWoQP0kvbTPXy7PvmIxB0K6SLbSzZrQew3ncfoFRb2NLBZfuE5nYbr2zcTtcyqs/g7MRrfSGwu17rI
- 9opvoFLLrDorAg6RqZatFTKzLFQEOnDd/SObzKjONrX+CySWIL/K0gqeAAAAAElFTkSuQmCC
-</value>
- </data>
- <data name="applications_stack" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
- <value>
- iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
- YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAABc0lEQVQ4T5WSMWvCQBiGv8Ut
- pZMIxcVMri4ZI4hjBhUdikvpYKmLS5cu/Qv5Bw4OdXCRokYQHKoGETooLhldgw5ZxMm399kkikZJAw+5
- cHdv7uU5IvdJp9NULBZ9SqWSLHgUVK7AczJFo1E63VwoFMilbJrm0rIsLBZzzGYzTCYmxuMpptM5DON7
- KdaVz/96+M7lcszrYDBAv99Hp9NBu91Gq9VCs9lEo9FAvV5HJBKpXASIYxEjgl72+z1uwWuu9s7n85+G
- YaDb7foMh0OsVitst1vsdjtomlY9BITtPRr9oNfrYb1ew3EcZDKZmnfc0L11XYdt29hsNlAU5e0Q8J/e
- qqp+JRKJDyYejz/zZt93mN7ZbPZdXJ0Hl3vuf9N3UO9UKuXdPwrl+7y36E7JZPIvJIzv896xWIwYSZKI
- 2CU7ZbdB8NxF72MBInbJTtltEJ5vWZZPtx3H7JKdstsgfN9Ed4EJwuWT5/XaW6yputouMn4B8esdOkQY
- S3EAAAAASUVORK5CYII=
-</value>
- </data>
- <data name="application_browser" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
- <value>
- iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
- YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAACiklEQVQ4T6WUXUiTURiAT3rl
- heBNXQTdCGF2E+1qUIwkiwwsleyHfonUrAhCMTAKE7xINCORgnSslqYNZSmJusrQnH9zttraVkNJdLOt
- uaWbzrH19H1eBF2aLzycc97D8/KeA+cIQGwEkZ+fnypxSqJwnchOqsjLyzttNBqtLpcLp9OBzWbDYvmI
- yWRiZGQEaY+hIZlRaT7B8LCF8XE7PT0frLIrcnJyig0GA319fVKyh+7ubrq6utDr9XR0dKDT6WhtbaWl
- pQWtVotGo0GtVtPY2EhiYmKhfIQi6Q7+K2RX5ObmXo7H48RisX8Ir8YwTC1T1h8kX7/Awbafa6O8lvPL
- 0TiyK7Kzs69Eo1EikchfvnnDFHS6uaB3Uz/qp/XLIp3ORSYXY7z6vsLVXh+FXR5kV2RlZV1bWVkhFAqt
- YZ8LcPL5VyoMs+jsAUyS1Gz7xRNzAKM3gj0K9lVQfw6yufxdm8jMzLy+tLREIBBg3rfAuSYzd3qmuTfo
- oc8TkQr8ptkaoF3qYPBHhLFgjLEwGEOQeNfxXqhUqhvBYBCfz4fug5Ps+wOcb/vK5c5pnjpDVL6b5fbb
- WV44luj3w53XLrRSvmMeEkqNA0KpVJb4/X7cbjeXHvZSrLVwSG3ngMbBUa2DEy9dnG2folg/zRnNJ47U
- j1JniVIuVUso6BwSCoWizOv1MjMzw76SZ5R2z5PRYGVX3QTKx1b2PLGiarSxt2GSc+1ubg7FuWYIo6oz
- s+m4ekSkpaXdktv3eDwoCh6hrHjDfvUc26tG2VEzQXqNmZ21ZtKrx1FUm1E9sHOsPcy20l7E4dpxkZyc
- XJSSklIlIzIqTeti98UmIUWSxBaJretEdpI29JTlb+APrpaoVzbDpskAAAAASUVORK5CYII=
-</value>
- </data>
- <data name="application_sidebar_list" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
- <value>
- iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
- YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAAB90lEQVQ4T6WUz4sSYRyHX/C0
- B8FTh457ka6ePHnykAdBBaHoGrsVFUTQpQ5dgg79CWaylkwIYgji6uouozO6jmGmos5arVrjriZKGopo
- n97vHvY0BNu+8MDwPjzD+77zgwFgl4F5vd5Nzk3O1gWhZpN5PJ5bsizX2u02Wq0m6vU6KpVPKJVKKBQK
- 4A6SRBzy64/I5ytQlAYSiVyNWuZyue6mUikkk0k+mUA8HkcsFkM0GkUkEkE4HIYgCAiFQggGgwgEAvD7
- /fD5fDAYDFu0he2j3gzNzq9z1O4Uqqryo/n3oJa53e47t4U/uOH7jeuvTmF91sa1B5/RaDSwXq+xWq10
- IUctczqd96pHP6HUfpxTUYeoVqtYLpdYLBa6kKOWORyO++XmKV4KTXzYLSASlyEqxyiXy5jP55jNZrqQ
- o5bZ7faHpbqGw0oHYvELdg9UpLJf+UkrmE6nGI/HupCjltlstkfF6nc8f1PD67f78L87wF7umD+uPCaT
- CYbDoS7kqGVWq/VxVukgnfuGjNTBvtxDWupBFEWMRiNomqYLOWqZxWJ5kpa6fAUt7AgSdt7n+Q00ZDIZ
- DAYDdLtdXchRy8xm89OMrCGnnJyRLZ7wLWhnLxQtv9/v60KOWmY0GrdNJtOL/4FaxscG5wrn6gWhZuNS
- nzL9Bv4CC9e7f90EUzwAAAAASUVORK5CYII=
-</value>
- </data>
- <data name="database_share" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
- <value>
- iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
- YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAACqklEQVQ4T5WSa0iTURjHz6oP
- Db8EpfghDLpRKH5RhBXJGIE52VzNVaybEGibFZZ9UNIuGDgIxRRzF3NL1FDx0tzm5iWdl3nZ61Rkajd1
- inOogRJlkPDvvAMTh4Ed+MF5Xt73d97n/xwik8lIACJap+wC9j0S+DERi8UpS0tLmJ6ehtvtBsOMwmzu
- hdU6hL6+SfrMi4WFnxCJREqJRLKzwOv1wuVyob29HSaTBbqyWhgqjGg29WJg8CNmPav/K6iBvqIJRnM3
- +ocmMOP5tiXg8xO2tUFbiFIoFM1arRZqtRoqlQqZmZnIzs7270tLS5GRkdFCW4jxtxASEhMoCMhgBKYW
- O0y2HnQ5hjHi/ozZheWtPyAkfJuEDTEwA62+GrrKGtRbrOh2Mvjkmd8uYCWbo9xJoNFXQVv1DnUtZnQ5
- BzE1N/NvQXLiuV1lIBQKYxISEghd4cMsUqk0lcUgP2gbe6OEU6uEqyEfTocdzbYONLbaYOu3Y2DChSnv
- V/D5/FSBQEBIenoRJJKH2NjYgNFoBL7U+Pk9WYn51jy0qpJQnnsbakMxqqz1aGM6MT43gcjIyLQs4WFC
- 4uPTwONdh8/nQ3V1NdZdOqz1Ff3lB6PBVH0WGp/Go+r1Ixhr82EpkKNQxHV0JO9Tkujoy4iISPRfXY1G
- g+8DJRgtT4O94BraVDKMGe5h+cNL/KLit/fPgCm7g1V6AFs3yffqSFycAlFRMiwuLiI0NPT5K2nw+GDJ
- jRXP+ydgNCmw5Eqgv8uDNjUanflyzBtz1nvyLrgbFMe69Bf3XKEhnlhjCQoKyuNyuQ/OhpGbj2NJXeGl
- Q+OOwqsrPksuNmHr4qTgkRcCTsn5oxye+BSHnQIJo5ymRFCOU05SoqjoFit6xifMJjmxpDb2CKH3lxyg
- 7Kdw/gAsOxzv+3rD2AAAAABJRU5ErkJggg==
-</value>
- </data>
- <data name="database__arrow" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
- <value>
- iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
- YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAACRElEQVQ4T5WSX0hTURzHz8Mc
- Wy+BD1F7DYSg9VC0WhANwkW1BmPsbT02aK0eGkMrif0hehmMFNO5cuaczk1NU3e3eafiWrZ5Z+tWOpKc
- XXGQFFQvPX47V4wwDbYDH845nN/3C+fLl5hMJrLNFbpbqkSc3dL9ERO9Xm/Z3NxEuVzG0tISeP4d0ul5
- TExkwbKLyOVWsLz8BZXKL9BZq8FgICI7DCqVCorFIhWmkUymEAoNI/Akhv6BBBLJPBa4T/gs/KzBoG8Y
- XdQgHImDSb1GnlvBmvC9FoMh+J8Ooi8yiXjqFXJcCWXh238NTthstvFAIAC/3w+fz4eWlhY0NzfD6XTC
- 6/VCfHM4HAzNQLVnBv+GyE5nMRafAZPOIpMvgi+tYq3ytfov9IZj6AiG0RMdwYupaWQLRawIGzUY9Efx
- OBhCMBrDKDuFl4UCPgpCDQYDUbT3PEN3bBDP2QTmCnncZQRccHT1NNo7icbWuqMHVYV4vo3/oX5UWj7V
- tmo+9pAnxGg0bqHT6XY1kZ3NwNLN4WJrAZfb30DfwcPQ9R4dGwAVc8oHRTNRqVREq9USjUZzbWcTk+iN
- RHDGxaJ1HbB+AK6+/Yu9BBy+k+GIuBoaGohSqby+l8ElVwzHm8Zw8t441PcZnHVP4XQWOGid5A7ZGLOo
- l1MOKBQK+64ezM5hKDGBkZlJJBemMV/KQdU0iv2mzvV9527f2taSeno4KpfLb8pkMlddXZ1LIpGIuCke
- evdIpVIPffPQGbdUfWNRekQXEDWU+t+QVDs9OokdeQAAAABJRU5ErkJggg==
-</value>
- </data>
- <data name="images_stack" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
- <value>
- iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
- YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAACAElEQVQ4T6WRXUiTURjHz03o
- lK0EE1SwL9JCvJj4dZF14S5sMEVJB13YRYiitpjKbt7cuhGxZJDlLoKapkwqxUVRM9YkEwTPhR8QTENE
- /ID0ItLEhrp/5znqcFim+MKf83J4nv/v/fEyAOw4YSVWK7vR0LD3NIi7ikPGEFZQYrOxIkWpFF+E4H9C
- MzS7j1ysKK5+zvH86bV/5pUzA5vBIAwWS5UsOCr5hVOH31tbuG4211CBdN4l6x9wFLRwFNs5DA85bj7m
- uOXguNfN0ebxS7KrS49fGxvQVVebjuTc+WlEkjvaC/EjEMDV8nIzIw9qHe2N/UtOh+5o5uXAsCQ3N2Vh
- eX0dOWVldYw8qHWs7yz875Mw+WE7Ux/PYHrgPL55z2HSkyTJLq9Pku+atFhcW0O60Whh5EGtt3VX4LRl
- YO7zJcwPXsbyRDYCK0b8nNFhYShVkq2vvZLscLuxJIpS9HqFkQe15iYmoiAtFfY76ehpyYR/uFT86Uas
- fDdhdjBbkmvb+yX5Yn6+75RW26hOTq5g5EGtbnuUSDTePlLjXasGX1wxWPiagHFPHHzPToaRL+TlNTPG
- EkRUjDyo9UltZChtdSo476sw9EaN3tYoOOoj95FPaDRiXzzkQT7zq6sHhmbCyNvrjJEH+RwmNBsi7xaI
- M0IkfseJvA6Kas+efP0DD+tcAk1PV7wAAAAASUVORK5CYII=
-</value>
- </data>
- <data name="layer" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
- <value>
- iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
- YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAABwElEQVQ4T6XS6ytDcRzH8e8z
- yTMkUUpJLsntP/AP8ERJuSV3kdwe+QvkkrtaybXUMcPmNilmdjEP7IHNZbScmWNnmLtH8/sclvFAR1av
- zvme832fXRr5/X76D8pu10Ick8sUyoRdNERZbeuQZzrxrlz73iyC79X8G+xgFw1aymxdgyLh7nXP6XnS
- yoFdNGgpo2UVit23L4Zz4XFNDuyiQUvpzStQ6vI+60/dD8tyYBcNWkpr0kAZ++g6G3+vDnbgvFPq7eKE
- 1no1pN6/7J03851gPPHOoEFLqY1LUH4mPG1Znb4F2D+75Vg0OmfiuznjRZfE8EVn80yhQUspDYtQcex+
- 2GShcvvQMzlvdvVxBr6XM0p6pCPmj2s9Ops4gwYtJdWroOqQv9/YsArj7F0H5ozf9LM5QLrHHjCLBi0l
- 1iqhxuK40ShN/Agz/AnnwTOuS7PO7uHQoKWEag7q9EeiSmV2KQLY11AA5p/nO3ZRhQYtxVfMQgP7ZTUL
- FteYZO/zGJiDj+wedtGgpZDoZIotmayc3nKssr/o8u6RqP4NdrCLBi1e4WFpuTkR+YNNkQWKDjmwiwYt
- HhDKRDExf4Qm9B0h5nPvHST9+wAAAABJRU5ErkJggg==
-</value>
- </data>
- <data name="map" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
- <value>
- iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
- YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAACnklEQVQ4T52RSU9TUQBGu1V/
- gMYdS8PGhQtDXLgwcWEwMYYNCzYNFMFSBqENswwCgUIjg6KCgMVQELAyyVQGsVBskakWFASEgoWIYssU
- huO7L/4A8SVf8hbnnLx3ryIoLS1QWth/LBBQKG6npKiklxM/fz2F4lZiYvixpNcOJdM8ms3QdAnOuVrs
- c10Yp6bJsq2gG3QT0+lG3eImosmN4IUnf8FNrTbi8PiY55YEuuf02FbKGXWVs7lr4ZN3lro1H6lWN5lO
- SLZDhNmN4IUnB27ExUXuHx1R3hlDq+sBlq8GOsf0fPe+ZmPHysjPJfI/LJD3GdIn4W7LMoIXnhy4rtGo
- dw8PKWmJ5ElXLDX9iZgdOfRNGJicqcE2206dy0WGdZGEviU0HUsIXnhy4FpkZJTv4ICixnDq7EmYpzMx
- DiQxvPyYhU0TP3Z66XX2Ylr7jX7+mNjuRQQvPDlwVaWK3trfR/8yDKNVS/1YCs+64+mZL8KxWsHqVjMO
- V4P0K4tULO+j61tA8MKTA1eUytjNvT0KK1VUD8RTa9NR1qahbSaX/oWHONdrsE9XsOyz07nhIX3wC4IX
- nhy4HBISt7G7i6EsgvyqUArqQiltV/OoPZrKHh317zKwOsuwT1XTNdFB8fA4gheeHLgUHBzv2dmhxKDG
- aNZR3XuPAlMoJkcyZmeWdLWFNL3PZuVXI+vbgzQ5LAheeHLgYlCQdnV7m9J8Dab6FGpaE8g1KjGOaGn4
- mCpdbQ4vLMlMearweFsYHH+F4IUnBy4EBiau+HyU5kVRnB+FvjicvAolebVK9A0qit+oefpWOpu+NLps
- ekbGKxG88OTAuYCA+x7pVL95vf88wQtPDpzy87tzxt8/56QTnhyQntPSzko7f4IJ/rQI/AE63awC7yrB
- bwAAAABJRU5ErkJggg==
-</value>
- </data>
- <data name="printer" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
- <value>
- iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
- YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAACYklEQVQ4T42SX0hTYRjGX1To
- omIggdDVLvJi5o0IJjrI5ZgtNuG4KVsodtPZGSNScirHzY2mTIQSDPVK8MKBN6JSyVTUGAkTuqyLBInU
- iQRZ+OdChz5978nBxJTew+/84/c853zwkbO7mzLUh0J2gXwJdxzBIEldXecgfpmF51c6jdTBATb29/F9
- b09jJpGAcDyCwgsFkqpSFsrvoyNs7O7i684Ovmxv43MqhdjsLHiEp1hbW/UmRSGmzuMhcjgcVCfLVNvR
- wXj3j4/xQ3w1u+TN+DgyFFqtAQE9qK/XstrJ6XSSo6mJbG1tvgNR8PPw8EIJ/wkvhx12tcxZQY54sAs8
- eXl5r/x+P66CHXY5IwpySJKkW6qqhnbEmhVFQSQSQTAYvEAgEEA4HNacra0tdHZ2hjhLNpvNMDg4OLa2
- tgaXy4X29nbIsozm5mZIUh2qq82orDSirOwerNZHmjM3t4yent4xzlJNTU3V5OTk8urqKsxmswh7YLFY
- YTRWieD9c5jNDzVnZmYBAwPDy5wlk8nkSiaT60tLSygpKUFDQ6OQ7P/EYqnVHFkcExPv1zlLFRUVz+Lx
- OGKxGPR6PZzOJ7DbH18KO6Ojo5iamgJnqbS01J9IfMT0dBw+33P09w+jr28I0ehwFiPi/i9ebysWFj5p
- cJYMBoO6uLiC+fkVuN3u/yJTwFnS6XQt+fn5vUxubm5fSmyY6mgKr9+mMPTuAypfuHG3UYXRO4Jvm5tg
- J+NzlsTcFNxmCsrLX2qbPmtOTk/BpE9OkBZXdjL+WZY7iK4VFNCN4uKn14uKolfBDruZ+QOvqgI74xfB
- qAAAAABJRU5ErkJggg==
-</value>
- </data>
- <data name="document" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
- <value>
- iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
- YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAABp0lEQVQ4T42SzUoCYRSGz1ba
- tahVC0FbSNCiRdIiIQgSKooMWrhxUSk6yIgoVhq06QK6BbuANl5A11CLVlGgRUjl//h7es/gCYIa++CB
- meE8L+c7cyhUKJCwf36+BY4m4NnL52n35IR2cjkbkg9jjluDAX90u/zWbnO52eTnRoOf6nWbm9tbRt0x
- 8P4IkJcx0Uavx1WIL7UaP1ar/PD6yveVCt+Vy3xdKrEc1EaB97uD7WyWxsSaCHhvtX4NuSoWWfEGg2eA
- BNpMp5V4u9/nT7T/V4h0IteBE1ePNkxTSXQwg3qn4xgiAXAS6tG6YSiGhYCmZTmGyGDhGOrRWiymJHvD
- IbcxB6cQ+TtwkurR6uGhYvYRYGEOTiFvuCIcUz1aiUSU1GA04i6u4RQiewInpR4th8NKeogA6cIppI4r
- wkmrR0sHB0pmhEUZIMApRJYNTkY98gQCtBgKCVnZtBG6cAppYUZSK4649pnz+2k+GDy1d3VCiCyb1Iqj
- x4WHmVm//0ID7BAgM5HBypXkF8uedPEuteIAcWkaLLjc7tSUz3f5H6RWHHG/API/kG3WfDzsAAAAAElF
- TkSuQmCC
-</value>
- </data>
- <data name="folder_horizontal" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
- <value>
- iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
- YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAABLUlEQVQ4T6XUvUoDQRSG4a/K
- JVh4EXsPVl6FVQrBykJEQZEkrIn/GBSMEIQIoogiFinEFIKgxoiCiGBABTG66MrihpC47B7nExt1txhT
- PMWZM285AxFBO1BOI1IlA0NJRDDYMo4rqSh+EIjbbErNcaRqWdJ1EohRrMv3/TiOTJjibkvgbP7AM+ts
- 4svvHWfu2eIwhYxvr4v3VPjDVxdrZVNu94dCscVBAlOetSqth3yoD7UL472uCVuUxjDbelyRxt2SFjZs
- sTeCbOM+J+5NVgsbtigOY7FeXRDnakYLG7bYHUTu/XpO7Iu0FjZssTWAvHM5KS+VpBY2bLHRj8Lb+bg8
- H49qYcMWy73YcdRgnya1sGGLvm7MT/eg9B9s1WtATOlQOjWxibX1lPkNfAJSiLGOr2CqXQAAAABJRU5E
- rkJggg==
-</value>
- </data>
- <data name="blueprints" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
- <value>
- iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
- YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAACLklEQVQ4T4WSTUhUURTHz8q2
- BW2azURMJFkQBIEQjqsoaJHmQIuWWREMlZl9qOnCTS6UgoohZ1pUZpPDUFEUVkrqaM2FMiVnkomk6cOQ
- t3Dec56r0/lfmsfzMdWFH9zLfed/fufyKBhboNpbvzTY/zlH5KzKURUKBbY2NFBlfT1tqaujUoETUtP3
- gwTVNlnkxNwKnxle5lMvinxyqMiHB/IsxceEwF8DYLA7klfJ3AqPfrV54KPF/TMW3/lg8YG+DGNJ8XFh
- s9tglXIw+tPaf2+RQ/FFPprI6pATTw2u6U45+MLPlEDQ/adyy+0n3JjIcPfEkg6BCcbZdTWnBILuf5XD
- 0UfcOJjh8HNDj4M32dmTVQJR9fV5oC6mTI7P4tIoq1zVPurc4WF3XJ5RAhE0oNM6UeB4xnJCvMp7o/N8
- +qXB96VJy2uLt3W9UwIRNKDTNlngsbzNTa8Mvjll6m5u5dobOafB+TGTKzvTSiCCBnTa3xR4MGvxAwEh
- 6FYaB8r7InPyTxg65MK4yYHWlBKIoAGdS28LPP7N5uYRQ3/Yk15apbzn2qxuAMtkzuaNZ0eUQAQN6HSk
- xeCTpQNi06bTDQ8L5ereaYblw882d6plXn8kqSp824mgAZ0O6ZiQgFIIurmV/c3D1pqDMVWiIniun4g2
- 0YZDVwg6j7/YnPpu6xCMggC3sr9paEoKfB7WyZnWQqfrvckIgQnGwZt4leVbXeBdftG569Yrt3eUPdW/
- Ab7ReT9BDLTyAAAAAElFTkSuQmCC
-</value>
- </data>
- <data name="cross" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
- <value>
- iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
- YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAABfUlEQVQ4T6WTu0vDUBTGz1+g
- VBtB1KBgdSsUNFvHQoZChw4upWoRupYO7a6giw66KCj4wgciuAiKg5M4XcFBUHAVBxdXcfD4fTGJqaZT
- hx+353yPezNUVFU6oaMwL/YKDkXkCJyIuMDw5LzvE6cx87eAIaPNpvIEbqTA0z5qtVBrKfCN5qvR0Id8
- Xj/rdcXOAJYQ81apeNpLqRRovy/YxXOAuwPje7Wq146jr+WyciaPhYK3u8vlvB29zISfwAGCbEHYhOG5
- WNSLdFpvs1m9ymR027L02LaVGj30xhbAIBswrMN4nkrpXiLhcZBMKnfU6PlXsIjlElgBqzCtwXyGW08R
- DuCOGj30MhN+QlCw/GMwlwjGQY2edgUUzA3CAZzb7NyWF8zjOcDcIxzAeQG3kTiNmfATbAxTMNYRekIJ
- T87D2JM4jZmwAL8HwdiEyNw0wpMis5hHwRAYACOOyAw1ejCPMxMt6MKiF/T79OHsAd2AWgJYET3JfVjQ
- yd/5G8s+qAWdGU8YAAAAAElFTkSuQmCC
-</value>
- </data>
- <data name="folder__plus" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
- <value>
- iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
- YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAACDUlEQVQ4T43OXUjTYRTH8XNh
- gRJDd7Gk2yICZSu8C8K8qJsuIiG66E0rFkJXUZG4lK2xaavVYuKWbikT7U1p9EIks6JXdWbQC5GhlKYb
- 0/VvLnOp+3Ue6dlFqz8d+HAGO9+HPw3UEwnheqpk5v9UKTvqt5NkwfcgkOhWxzfcWGRHfTaSrPh2A+mp
- TlXihhur7OiZlSTbYvwqFqLtqsQNNzbZ0ZPTJDUsxDowP9GmStxw0yA7emQmyTEfCSA15lMlbrhxyI56
- 60hypr74MTvqUfUz0gZunL21RCFGPacyXD8+NSM57P6n1LgfIw9N4MbFSu6b+IF7NRnu2ZEmJN5f+Cvx
- 38dQNTuJxXQa3LlFS7sduWR05lKpV/N2wy09Knq2QHnjyJL8cBFDXVUQe2ZuDneqqYnx+LS0/LKWCv0F
- sUPx4zB0FWH6lT1L4p0T4WtGiD2hKAieoEuMp0Xr5UfChZ78qZ0xIwyd65bsu1mK2KAlQ3l9Bi86DkDs
- 4WgU3cfIx3ga88Nlk+X4k6F1LaL9dRlf+aueBvZD7LK+NK4fpVbGc07jpbOa8Er7injx503Qe9Ys2du+
- EZHnpoz4SytCzbsgtv5uEoEjdKWmXDxAlMd0uto8ZdVoEda7VmN6wJxFGbIheH4bxG48SLcrNtOO3y1p
- +Udxwfacx7rDy2ZKjDmTjj30QE3VVmoRDdP+AgqRc9vLR4PDAAAAAElFTkSuQmCC
-</value>
- </data>
- <data name="box__arrow" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
- <value>
- iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
- YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAAB7klEQVQ4T6XRX0hTYRjH8Wee
- gzcWBl4IXngjBgleheBVTTBKwWpRInOiiQxZpMRSMZVmEhoJsvAvMw3UqdNksq0/TjRLJWFKBoEholEG
- hqhUBF3o4/tbnuMZBgoe+Oxs7/N835sRM9Nx0Hi+DPKbfLlQeKyw6SmgpZ1hFw1aGrspQ1ygMqFnc/QR
- b/jrghyFSSGUc+xgFw1a8ufKNJonX/zcmDGpvaD3bgoruu+cUy/GDnbRoKXX4kO4vey8tfLdY2OFt/oy
- K4YqLqnnmGMXDVp6kSNB085i7zYvuVix5CoTX/8JtJnVc8yxiwYtebIlaP37sZN/vW9S+etusMJjywiZ
- YRcNWnIbJXD8mXPw1qRdhdhVlhq8xGnVh8ywiwYtDWZJ0PlzppnXx+tViPFbeWtn2EWDlvoyJejaeNvA
- ayO1h6rpn2D3y2FGg5a6r4eB84f471d9Dw5ldMxydvsclxbnTVuKLETPDGEw8M1bzV/cVQeUtLj5WsNE
- iJZV5vP3vZuJDz+Y6HSUjhrTda9Whip4+fm9A9JqfPzkK7PlE3PO/D7rAnNc+bsAiSfWfFbXUZuqm/qf
- FJN1LaGg9bdW8hRzfMHT9VMXSotxQaQQLcQcxUlj1zycMNjNey3uONojnblC4Yb2NsEUcdUejHYBWd04
- Q/Z8szgAAAAASUVORK5CYII=
-</value>
- </data>
- <data name="box__plus" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
- <value>
- iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
- YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAAB8ElEQVQ4T6WSXUhTYRjHn3mO
- giloCgpeeCOa+DGh6KILQ1FIAgMrQxQpJZYSXkiFlAZHb1wYROLCNdE+3KbTZDCNakMlJigcgrqTkKn0
- gTZmaAhe5OP7X53DRmaBD/zOc973+f+em3OImekw0EyjDOTZRrlJ0KOhlJAaSeQMWThwabpBBllqR559
- w3ePQ15zGFvTySi0e2SQhQOXvJdl8l2Rzyz2VfojFzhvlrLGcOtpfTEyyMKBS6/FQ9AScFxf/uJRWGOy
- 8xxrTLRX6PeYIwsHLr2sl4Bl96PzJy+5WGPJ1SZef6FaTfo95sjCgUueOgn073wY4q15i47XXM0aHqUy
- aoYsHLjkrpWAbfudjb/7H+pAdrWVh5c4bpREzZCFA5fGayQwtLnwiIMz93Ug46z1yBmycODSyCUJPA+9
- fcBrb7oPpN5dxkXjBdwwVcFw4NLwxRjgWBff/vNU14EYnXl8NXSLi0bzGc6F20eInlTFgLFPk5284r67
- L3X2Yi58eixM9TcTG5/lcnpv8gYNpFgpJ9VAfWcNr5Yn2jnw4s6+FD7O5tKv5/+ALMkqico0nTAMdpcb
- 5v7G8db4tTQl8QcoWC1m9KNdiUG6lmDHgiRBuiDjnygJ7zMC+Uyi/3bg/medEr9tS5yVmmPVcMdZ1B7O
- fyT2oAVNdAAAAABJRU5ErkJggg==
-</value>
- </data>
- <data name="disks" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
- <value>
- iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
- YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAAB2UlEQVQ4T42Q70sTcRzHP3e3
- fyChJz0Jwgc+HUoPo2ilIvpkbidjzDXE6qk9CJSYU6O8tbU56CwHIzVhyCzIsqhJTTP0gQ+EggkNKdAH
- gixD3APbp3ufKLe7BTt4wfH58f5+vy8KSDG6IT2uQKvd0gi7gsHe/4E+5ggBxyFRI5H8zD6XmflvuWwB
- dfS1nchpQJd/mLqlRyfENlK7fHh0xH9KJQuoo6/NH58OtKtSl3+IfJICEusTO7ynLW8XixZQRx9zFQEI
- kf0h8ooP1DX1F28VfvP2wYEF1NHHHAIswmRHaGk8/I4T91/rhK+85HHne/44+u2UL2MF9ogjExBXk7A7
- DSo/dD3nUfckK/IUrz75ybIYSkFaTcIU9zSvrHzliGeGx7pneTn+g13ivemahQXbkrywkNWXk7ff8KdI
- np1if7pmYQPXn3Em84HVnlf8om+Rs8p3bhf65gkiIMQoyPyP/lUpsGGz2ZRrws3lE5qEjqcEEZ+jm7oc
- SDJiFKZfl+iciTqCCJwIOZCUyy3pVBN2WfRp+6YPyQiAHEi664jz3Nx8VWGXRC+dFc5XJtiF1k7IGGxO
- 7kESnpBOv60ujOiM9QpEjfXCxQDEQJIRk7CUtnzBGGAXW+gfW6hPXoP3cZ4AAAAASUVORK5CYII=
-</value>
- </data>
- <data name="document__arrow" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
- <value>
- iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
- YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAACEUlEQVQ4T4WSO2hTYRTHz6RU
- waGDj8Gh2IgUH6BIL4UY8AEGtCimJcPt0KG2aRNL0tSQPlIQNZuDGYSCBaUZHAWtjpLiFqQGC9ZBqSWx
- lGht3u+/51zzYRG9/eDHvVy+/49zzj3kCIVI6JmZucrc3IH2G9PTdH1igq4Fg3TMaiWSD00G87UaNstl
- bBQKSOZy+JrNYjWTMXgei4HvDTIWJRCJYWsylK1UkObgt60tfEmnsbK+juVUCh+SSUQXFiCH7w4xFgkb
- gu5AQOHKseBHPv9PSWR+HgqL3T7FkEBX/H7FSKFaxU8u/38SqUTa4cyIytFlr1fhLvIMMsWiqUQEnHGr
- HF3yeBSeEgtypZKpRAbLGY/K0XmXSzFaqddR4DmYSeTvcGZU5ejcwIDCW2VBiedgJtngFjnjVTnq6u9X
- +GqNBsrchpnk7pvvsIaeRrsmn9DZ8VmiTl1X+OsskCrMJH3PktAeJNY6I5/1k+EE0RmnU3G7wYtSY8F2
- SejFKnofr6CnSe/cJzxKAhyOn7i3pFO7zUanHA4hIJvW4Cq2S7oj7/BwDRheBvre/2HsI3AkuBgnOYc1
- jY7a7ZPGrv4lGYsmcDG8+Jv7MeOpvQUODr+MH3K/0iXfwuw/oGl3lMCQMDITGay0JL9Y9sQ69Rr7nLOp
- PTbfrWaWWvnleEtbm29vR0d4J3ZfGF/addoxJxmm9RfQp5NnTum+ngAAAABJRU5ErkJggg==
-</value>
- </data>
- <data name="server__arrow" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
- <value>
- iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
- YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAAB6ElEQVQ4T43SwWvTYBgG8K+l
- eFDcQRGqoIUNwYsWWcF1h07opLAipbU9CNGbbpkrY5TJdikYsPO0gxsbhXkTrN6lhxppiWuhpNRGWmwp
- SlbKoP/Eu/dN9mWBhrHA7xCe53v4CGEAwJLJpCGVSj1Fi+d5svVDDh0cCzO7/9mDLY0xGkgkEtzSaDSC
- 4XDoiLLZbU3Hw+qjnX+CNRCLxdgpcTAYQK/Xs2QKbYjv/zE8y7fhoXSo7w8B8LB6//1vwbhBNBrl3lQq
- FahWq5b5D7/g4wBguQ3wonUm8xdgalNRjYFIJMKldV2Hfr9vebWnwNw72fBY+gm3X387mjkE8C5/V2+u
- FM0bhMNhbrXb7UKz2XRE2bXnn46uCl/UiZdfBRwxP2IoFOLWisUilEolR5R5o9nqpfiBgCPMGggGg+xU
- ptPpQKvVckQZ9jJ35kU2ubDK7sXfmjcIBALceqPRAEVRxuTzeaAMu+u2vjng9/u5jXq9DuVyeYymaUAZ
- djdsfXPA5/Nx2VqtBrIsO6IMu1lb3xxwu91cAX9jOA92C7a+OeByuZjH4yE76XQaRFEcM61OA2XUoS6d
- MR4aoAdX72KwncvlQJIkR5RRh7rm6bOB67i4iMHni8DuEh69YR+4jC9edOuCqHuFBk4Axf7pl4umza0A
- AAAASUVORK5CYII=
-</value>
- </data>
- <data name="arrow_circle_double" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
- <value>
- iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
- YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAAC2klEQVQ4T6WPb0hTURjGr8Mk
- k2qiJRP/TNGU1YdyM5hhDockgoYkZbQyTfqQG0qiLEU/mJYuZxtpZJaV0pyppTbNv00jJenYIv+ga8HC
- qQvKnKbOmp7ec2dQGPShCz/O8z7vc557L4Uxpv4H+rKg+lMlgP4C8dlAIMCKuGt2Cr89TfFvfqRClQYa
- uiC8akYEC1RuxFg+uU6jNGBMvDL9ekTua2vC2WfzcZH3ZiPBY20qIAZQCKCyCRsuQKtYNmbDZC4ZtQmu
- vP2RVqT7LpFP2CTCalMSv8Lo/8cX8K7rPfk3DNqi4RWc82IBy0ZWMdE8xXsEcI8+NEkvDS4q8wa+KUre
- WRVhFR+kcIfJLZu0/8L+klHxyQbTVHbPF5w/aMEwI9nICn2GyCeoA7KxENDFWdq5VshoEutNKphjAXsB
- p2C4TtxuXspoM+PoKr0B5nIAbUDtK9RRey+/iTlSpe+GzDhkdbArBewFgTkDKL3DjMWaGUx0UP4QtSd3
- UARU+mX3U76Zz6mgvFck1w8ZC2QtRAP2Agj0n9fMWpKbpy1Ee2d0U35ZfRQb8LnYWwmIvNK7SA5BBkMW
- E02K6QJWWntpfJ1RF6eeGuddHepmXWiLcU99QnwC2qAcdgbI4Hi1cQm8OrKnCyAcy72GVIfUZk2U2tQK
- c7HbucchrsmNZIdEvfOYnNEtnzFkME8+PAWzmLyELth5pp7pltokFXYsKjgNXxUH1bNKdo5WuuO0mgsg
- /tMFLOxcxAHqOUw0M6VJC3c8mUmP7AXbT6kol8Raf2ZKQxKvyyrxal6W+LSspAW1WQXbTtQgTrsVuzcu
- 49AuKyYzUOh8/AHl6MGxF5CHsTuYcgzPZm1NrIn0yH8Z53XflMDutEVsib+DgnvWsHeHjYbbt4aJB4jo
- i78KQLoAbAdnV66DD/+wA+eYkBEQJWCEZaoYsbfQJsIyayHv+3uBExhMgAV4/gOS2UXyPwFnEw2I72Hm
- QAAAAABJRU5ErkJggg==
-</value>
- </data>
- <data name="system_monitor" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
- <value>
- iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
- YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAACA0lEQVQ4T6WUPYsaURSGb7WN
- 2KYI+BNsbFxQoiyujjrj9wyrO36z41fcjLvuxFRJsZAuEEK6QAIJ+QOpkhSpBNFgYWEhRBA0hUXalG/O
- uUV6dwce5t7iOec9B2YEAHEfhK7rGmHdEU3kcrn2fr/Hbrc7CHbYFZlMprPdbpFOp6FpmiSZTCKRSCAe
- jyMWiyEajSIcDuP4OIBA4BFUNQV22BWqqnY3m40UHcfBcDiEbdtof3qDVquFRqOBfF7H6WkSipImWcfJ
- SQzssCsURXm8Xq/5gsFggH6/j06nA+vHZ1SrVeqSpxQaJcpTyiIVq8o7O+yKSCRyuVqtZORerwfLslCv
- 12H9+o5stkBjZCidQfOaMIwGSqUWNcuDHXYFzWYvl0s5a7PZRPP9KxSLRVlAVQvQrwfyXHv3GuVyF7Xa
- E0p1BnbYFcFg8GqxWEC5vUbt6wcU395KgTm7uZFvw6ih/u0jXvz+iS9//6BQMMEOu8Lv9w/n8zlCoRBF
- ziKVStE4SepsS7k0cmgkmzpfygSVShe6XgY77Aqfz+fMZjNZgBdJi6Fl6TDNDs6fjWisK1xcOLSbp//R
- 9QrYYVd4vd7RZDKRS+QijKJolMSgRLz1cxmZu7LImGYd7LArPB7P8+l0ivF4fBDssCtcLlfb7Xa/vAvs
- CnqOiAfEwwNh5+henzL/Bv4BjuUj9lP+EFEAAAAASUVORK5CYII=
-</value>
- </data>
- <data name="marker" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
- <value>
- iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
- YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAABlklEQVQ4T4WSP0iCURTF75Og
- oWwp+gNurQ0tzq6igyBokkOUhAkqiOZQkyCCW0stQkUukkMUjbUEQpRRS1s0BI6SGoqVdrvH/KQanh/8
- ON85977jg09iZjKoKEXCpBATDoVCX+GRD3aNM38CWZgT9usOx20nm23wzg5D4ZFj/vsH8f6/INFwue45
- leKvZHIAPHIpSGgLXpTKd9Lpt24iwYVAgFe93p7CI8dcW/CkVLGbyXQ7sRgvOZ1st9t7Co8cc23Bo1IH
- rXi8+hmNcs7jYYfN1lN45JhrC+6UCj5brXcfcuX3cHgAPHLMtQUlpaZKJtNpbWOj3g6F2AAeOebagiv5
- zhdKrZbn58vtSIRb6+sMhUeOubbgnIiEsTOik4rbXW2urTEUHjnm2oKiLIBjouVLi+WhKZ8QCm/MtAV5
- OdzHfERUaqysMFQyM/LtYTeQOW0KuR+u634/Q+GR49HeoL9DMXnZI7qp+XwMhTeeYQUmWRwXpnfl4Kv8
- laHiZ4UJYWRYwYgszQgLQaItHIaKXxQswuj/gm+HNTFEuMVJpAAAAABJRU5ErkJggg==
-</value>
- </data>
- <data name="box__pencil" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
- <value>
- iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
- YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAACEElEQVQ4T6XRXUhTcRjH8ee/
- c6DLiIigiygiA6Fuostigb0QaKQlYYi2iQ3C6A3GsuKYgqsZvaBRDDyr7EymyWLrxSZbhUovw4uozGK4
- oIQiplQ0uqin81v8D9sybzrw2dn+z/P934yYmf4HJRwqqA8cqsvkkzQ7JfPlz7CLBi3F96qwInm89Mb0
- 0GnOxLw5fte6AvIcO9hFg5ZidSoN1atbJjrLh/MvCB7dyFLPoQ3WxdjBLhq0NGh+mJomjf3pqYjGUrSl
- gqWB5q3WOebYRYOW7tQq0PXrbfAnp0IspUJu8+sfySuN1jnm2EWDliJ7FLj847nOXx93WWLeXSxFtPKC
- GXbRJNbYiMI1Cvi/j/l5ZviCBXHIXZa7xDhiL5hNX/Xwi0UiPSqEnfp3K6B/eXKJPyc6LIjxW77lbDzc
- xoMnG5g1jW8J8ZB6qxW4nnl0jj/eb59TKrqPDV8TZ7NZPrB6wbhOtJl6dtrA+GT+9x9un/qnN2EnJwKr
- ODvlYe/Bam7bNO9uoFQQBXbYoO99tIXfhU/M6nV/Pcf1klzc61vOz645GA1aKlkoqHObuJceaObJm8f+
- 8ipUy/Hulbk4eGYZP9VrGLto0OJZ2rhWdLeXiZFiHRVizGgVGcQXD4sZb6V4KXfQoMUF802LTUuKtTrF
- Wf42wec9YsRZRZVFczRo53zYtV30uevE+oaq2fd+A3LlMACdPVtkAAAAAElFTkSuQmCC
-</value>
- </data>
- <data name="edit_language" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
- <value>
- iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
- YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAABMElEQVQ4T6XUP0uCURTH8fsM
- 0TNJFEEUFC0J0R9pqPcgVODQ4CaIb8EhgtaWpqaGptqygkAIwgyChoLm3kBv4+n7s3OvV80MFD7cc3/3
- 3IPyqC7LMjcOlySJ7GHRap9pPcB1lKtWFnp8cUMoV8hZ7bO/VucHLHFpH3VMYc3UWC+ivWpl/jwMiN+2
- 6nXcj6CeMKDB5hAlTGADTexgGie2V61MZ+oJA47Y3OEBM9i0Wvth1DPwEZYJU8yhEDmlfuzL1DMwoGID
- tLZHUE/PgCLBCyax1Uf52S95z4BbGi41Fa//FAbscuEdesbxI121/Ji1jHMo634T3c/rCZ9YsX2etYoP
- tLBgVCvTmXo6rxRveMa8+WKVNrajXLUyf667nQE5zEaNftCwVb26k471U9bfwDdY8a5H6+SIIQAAAABJ
- RU5ErkJggg==
-</value>
- </data>
- <data name="edit_diff" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
- <value>
- iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
- YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAABxUlEQVQ4T52SSyhEYRTHzyys
- SRZeWXikYTzzKKEhhJm8Zsx45BGGIWFDs1BkQeSdrYWFFTWSR8L0Ge8NiQ2lFJKwsrE7zrm56nJvya3f
- vfU/5/z/p+9+0DL8Khwjb6gG1+oHH0Gn0zGrxBqxTmywFpvZBUAN6D3/UMU194J1Aw/C5roFQ1a3Atas
- fTfAL2m4tn0Wa50zWOOcxuq26W/Dnol75B41LL3XAgo7zjQ30NpM1nkWMuu9kgGnVrdOYRXjmPxlam0a
- Q0vjKFYQ5Q0jUp1nIdm6+e8NeBb0JrdkwKl2xwTamsexkpDXLO3cQ+5RI8a8IiAif0lzA5PTg5EFSyIs
- fQgCouwKWCNTgPC8ZUGgBoIC5HuwT//+gDgijvke6E0bkgEEpwyBf4RdAWtc05t2ILpoi9LrFLDGNUis
- OJETtsl1l/AQghPiyw7BUOI1UiOdwW9izB4BKbYLiRBDuwLWkq1nxoTyE5x3v6qeE9cg1X4p0qquUIv+
- uSdpuNA2gAWWfswtc2G2uVfSeIZSOyA0rlMVQ/6iMavhDhfW3lU34BrQ40sE/jjhU9KCGb+gjJqc5mdU
- I6nYvfdtIA/88Rv4FezzCS20Bem86KckAAAAAElFTkSuQmCC
-</value>
- </data>
- <data name="folder_open_document" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
- <value>
- iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
- YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAACkklEQVQ4T43SX0hTURzA8d9b
- 9O/BHjPowfZkRgTRgxVFJgrBRKT2kJWjEsUsKyprtZyumdoSZ86hGdU0LUOTsJXGahCYthIUs6au/fPf
- nJvzOvfXX+ccusINgg584Hfhni/ncC8MqACoL+WQQ5T8pxx+H/STzX+UcpZynPl4CmeNJ5Ebuo0xRyPi
- 5BOh2RYk75fy+6BPCTwlLrzEFe8LDNpr0dNXiG+1h/DdG7VAT68GO8vi69Ql+6FKvg/gU9kqVWy+DaMz
- eibmfY7mjnPo9HhwiuPQQdj8fnxlMqFSnmrIlMlEGcXFACbFqoqouwUjk48ZOn9uleKwxYLfRkdx3O3G
- kakpbO7uRrrI5jxCBEY58O5Fpp9iyPGQobPpkQS/j42xyKTPxyIavX6VKD1dBj03gVcdcjVhwFrP0NnY
- eBR/TEywyBy5Ah+hJ6HXSSsqKgDDDeDVLtsakLPUMnTu1WWixWplEe/SkiDiWFzElIKCQnh9DXjawIQW
- /aPVDJ0NdWIct9lYZGF5WRCZDgTwQG7uBei8ArwG7mcN+oYrGTp31xxBKwnQCBcMCiLz5HmvVHoRFMcA
- 2i8xTf4RNXoGVQydu+6noc1uZ5FAOCyI+Mnznuzsy0DXrSyAZ+dB7xuqQLdZwdC5ozIV7Q4HiwQjEUGE
- I4FdEgk5P8BaYpPuLHR5B8mv3C9nvOQU7XdT0Ol0skgkGhVElkhwu1hMviFAHLEtPxXq31fv9o8b8sJz
- Awqc/6rE1jsH0eVyoZOIraxglAjHYhgisRCZ45OTy9kV6Dq8A0B3BjK0p0HXdn3LB3Nz5q+rWWvs60Qi
- zYbExIqNSUmqv61PSMgXBMhm0EgB1CdgZ9VxkJVJ4AF5YSux+R/ifgP/44T3ShVnvwAAAABJRU5ErkJg
- gg==
-</value>
- </data>
- <data name="water" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
- <value>
- iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
- YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAACQ0lEQVQ4T2P4//8/g93cF1ix
- /byXpjaznzFgwyB9IAwmbOc8x4b5geI5QM38BA2wnvWUAQtWBYrlW818omo54zEDOkZxATYFQDH3xr1v
- uyymP/Iwn/aQAR2jGGA29QEDGuYAaij89PPfMdMp94uNJ93lAGIGZIxigMnkewzIGKjJPG/T8x6gAWdy
- Nj7rM5xw28qg/xYDMkYxwGjiHQYkzA5kFx158G3rgw9/zhy+/3WbXu+Ncp3uaxxAzADDKAYAFTDAMNAW
- p/S1Tybdfff7zJWXv86A6ORVD6drdV5xU2+7yADDKAbo9lxnAGGgIXxAXHf26fd9Dz/8PnPt9a8zxx7/
- OLPv7pd9Gu2X2tRaL/CrtpxnAGEUA7S7rjJAsW/2usdz773/cwao4MzNN7/P7Lj97cyBBz/OpK28v0S5
- 6WwwEDOAMIoBQNMZoLhm6YWPe0EaLr74Bda46upXMF509v1+xYbTrQr1pxhAGMUAmLOAdPfKq19OzTn3
- +QwMn3v+E8xeeeXLabnaE9OAmAGEUQyAOQtIdy8+//HI9DOfz0w48RGOQfyF5z4clak+NkW66iiDSMwU
- VAMYgEAifgbIaWn56+6vO/jw+5kZZz6d6TzyAUyD+Dmr72ySrDicIxw1CaQcwwBGoBgHp7K5mkzVkYmF
- a++sO/fk65FXX/+cAdJH81bf3ihRun8au6KZOkgdEDOheAEkAMT8QCzHKqFuIZo0v1yy/OAMifJD8yXK
- DswUTphbySqhZgmUVwBiASBmhhkAANooLu4WadDEAAAAAElFTkSuQmCC
-</value>
- </data>
<data name="icon_drawingsource" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAABAAEAEBAAAAAAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAQAQAAAAAAAAAAAAAAAAAAAAA
@@ -1870,4 +1868,7 @@
//8AAP//AAD//w==
</value>
</data>
+ <data name="icon_tileset" type="System.Resources.ResXFileRef, System.Windows.Forms">
+ <value>..\Resources\Icons\icon_tileset.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+ </data>
</root>
\ No newline at end of file
Added: trunk/Tools/Maestro/Maestro.Base/Resources/Icons/icon_tileset.ico
===================================================================
(Binary files differ)
Property changes on: trunk/Tools/Maestro/Maestro.Base/Resources/Icons/icon_tileset.ico
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/Tools/Maestro/Maestro.Base/Resources/Images/grid.png
===================================================================
(Binary files differ)
Property changes on: trunk/Tools/Maestro/Maestro.Base/Resources/Images/grid.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Modified: trunk/Tools/Maestro/Maestro.Base/UI/ProfilingDialog.cs
===================================================================
--- trunk/Tools/Maestro/Maestro.Base/UI/ProfilingDialog.cs 2015-02-13 07:20:26 UTC (rev 8544)
+++ trunk/Tools/Maestro/Maestro.Base/UI/ProfilingDialog.cs 2015-02-18 10:23:23 UTC (rev 8545)
@@ -292,7 +292,7 @@
if (mdef.BaseMap != null)
{
- foreach (var g in mdef.BaseMap.BaseMapLayerGroup)
+ foreach (var g in mdef.BaseMap.BaseMapLayerGroups)
{
if (g.BaseMapLayer != null)
{
Modified: trunk/Tools/Maestro/Maestro.Base/UI/RepositoryTreeModel.cs
===================================================================
--- trunk/Tools/Maestro/Maestro.Base/UI/RepositoryTreeModel.cs 2015-02-13 07:20:26 UTC (rev 8544)
+++ trunk/Tools/Maestro/Maestro.Base/UI/RepositoryTreeModel.cs 2015-02-18 10:23:23 UTC (rev 8545)
@@ -61,6 +61,7 @@
}
else
{
+ //TODO: Should probably centralize this in ResourceIconCache
switch (item.ResourceType)
{
case "DrawingSource":
@@ -107,6 +108,10 @@
this.Icon = Properties.Resources.water;
break;
+ case "TileSetDefinition":
+ this.Icon = Properties.Resources.grid;
+ break;
+
default:
this.Icon = Properties.Resources.document;
break;
Modified: trunk/Tools/Maestro/Maestro.Base/UI/ResourceIconCache.cs
===================================================================
--- trunk/Tools/Maestro/Maestro.Base/UI/ResourceIconCache.cs 2015-02-13 07:20:26 UTC (rev 8544)
+++ trunk/Tools/Maestro/Maestro.Base/UI/ResourceIconCache.cs 2015-02-18 10:23:23 UTC (rev 8545)
@@ -91,6 +91,7 @@
icons._small.Images.Add(ResourceTypes.ApplicationDefinition.ToString(), Properties.Resources.applications_stack);
icons._small.Images.Add(ResourceTypes.SymbolLibrary.ToString(), Properties.Resources.images_stack);
icons._small.Images.Add(ResourceTypes.PrintLayout.ToString(), Properties.Resources.printer);
+ icons._small.Images.Add(ResourceTypes.TileSetDefinition.ToString(), Properties.Resources.grid);
icons._small.Images.Add(Properties.Resources.document);
icons._large.Images.Add(ResourceTypes.DrawingSource.ToString(), Properties.Resources.blueprints);
@@ -102,6 +103,7 @@
icons._large.Images.Add(ResourceTypes.ApplicationDefinition.ToString(), Properties.Resources.applications_stack);
icons._large.Images.Add(ResourceTypes.SymbolLibrary.ToString(), Properties.Resources.images_stack);
icons._large.Images.Add(ResourceTypes.PrintLayout.ToString(), Properties.Resources.printer);
+ icons._large.Images.Add(ResourceTypes.TileSetDefinition.ToString(), Properties.Resources.grid);
icons._large.Images.Add(Properties.Resources.document);
return icons;
@@ -126,6 +128,7 @@
case "ApplicationDefinition":
case "SymbolLibrary":
case "PrintLayout":
+ case "TileSetDefinition":
return rt.ToString();
default:
Modified: trunk/Tools/Maestro/Maestro.Editors/Maestro.Editors.csproj
===================================================================
--- trunk/Tools/Maestro/Maestro.Editors/Maestro.Editors.csproj 2015-02-13 07:20:26 UTC (rev 8544)
+++ trunk/Tools/Maestro/Maestro.Editors/Maestro.Editors.csproj 2015-02-18 10:23:23 UTC (rev 8545)
@@ -1230,6 +1230,36 @@
<Compile Include="SymbolDefinition\UsageContextsCtrl.Designer.cs">
<DependentUpon>UsageContextsCtrl.cs</DependentUpon>
</Compile>
+ <Compile Include="TileSetDefinition\GroupPropertiesCtrl.cs">
+ <SubType>UserControl</SubType>
+ </Compile>
+ <Compile Include="TileSetDefinition\GroupPropertiesCtrl.Designer.cs">
+ <DependentUpon>GroupPropertiesCtrl.cs</DependentUpon>
+ </Compile>
+ <Compile Include="TileSetDefinition\LayerStructureCtrl.cs">
+ <SubType>UserControl</SubType>
+ </Compile>
+ <Compile Include="TileSetDefinition\LayerStructureCtrl.Designer.cs">
+ <DependentUpon>LayerStructureCtrl.cs</DependentUpon>
+ </Compile>
+ <Compile Include="TileSetDefinition\Providers\GenericProviderCtrl.cs">
+ <SubType>UserControl</SubType>
+ </Compile>
+ <Compile Include="TileSetDefinition\Providers\GenericProviderCtrl.Designer.cs">
+ <DependentUpon>GenericProviderCtrl.cs</DependentUpon>
+ </Compile>
+ <Compile Include="TileSetDefinition\TileSetDefinitionEditorCtrl.cs">
+ <SubType>UserControl</SubType>
+ </Compile>
+ <Compile Include="TileSetDefinition\TileSetDefinitionEditorCtrl.Designer.cs">
+ <DependentUpon>TileSetDefinitionEditorCtrl.cs</DependentUpon>
+ </Compile>
+ <Compile Include="TileSetDefinition\TileSetSettingsCtrl.cs">
+ <SubType>UserControl</SubType>
+ </Compile>
+ <Compile Include="TileSetDefinition\TileSetSettingsCtrl.Designer.cs">
+ <DependentUpon>TileSetSettingsCtrl.cs</DependentUpon>
+ </Compile>
<Compile Include="WatermarkDefinition\NsDoc.cs" />
<Compile Include="WatermarkDefinition\TilePositionEditor.cs">
<SubType>UserControl</SubType>
@@ -1931,6 +1961,22 @@
<EmbeddedResource Include="SymbolDefinition\UsageContextsCtrl.resx">
<DependentUpon>UsageContextsCtrl.cs</DependentUpon>
</EmbeddedResource>
+ <EmbeddedResource Include="TileSetDefinition\GroupPropertiesCtrl.resx">
+ <DependentUpon>GroupPropertiesCtrl.cs</DependentUpon>
+ <SubType>Designer</SubType>
+ </EmbeddedResource>
+ <EmbeddedResource Include="TileSetDefinition\LayerStructureCtrl.resx">
+ <DependentUpon>LayerStructureCtrl.cs</DependentUpon>
+ </EmbeddedResource>
+ <EmbeddedResource Include="TileSetDefinition\Providers\GenericProviderCtrl.resx">
+ <DependentUpon>GenericProviderCtrl.cs</DependentUpon>
+ </EmbeddedResource>
+ <EmbeddedResource Include="TileSetDefinition\TileSetDefinitionEditorCtrl.resx">
+ <DependentUpon>TileSetDefinitionEditorCtrl.cs</DependentUpon>
+ </EmbeddedResource>
+ <EmbeddedResource Include="TileSetDefinition\TileSetSettingsCtrl.resx">
+ <DependentUpon>TileSetSettingsCtrl.cs</DependentUpon>
+ </EmbeddedResource>
<EmbeddedResource Include="WatermarkDefinition\TilePositionEditor.resx">
<DependentUpon>TilePositionEditor.cs</DependentUpon>
</EmbeddedResource>
Modified: trunk/Tools/Maestro/Maestro.Editors/MapDefinition/ExtentCalculationDialog.cs
===================================================================
--- trunk/Tools/Maestro/Maestro.Editors/MapDefinition/ExtentCalculationDialog.cs 2015-02-13 07:20:26 UTC (rev 8544)
+++ trunk/Tools/Maestro/Maestro.Editors/MapDefinition/ExtentCalculationDialog.cs 2015-02-18 10:23:23 UTC (rev 8545)
@@ -62,7 +62,7 @@
private int GetLayerCount(IBaseMapDefinition baseMap)
{
int count = 0;
- foreach (var grp in baseMap.BaseMapLayerGroup)
+ foreach (var grp in baseMap.BaseMapLayerGroups)
{
foreach (var layer in grp.BaseMapLayer)
{
@@ -153,7 +153,7 @@
}
if (mdf.BaseMap != null)
{
- foreach (var group in mdf.BaseMap.BaseMapLayerGroup)
+ foreach (var group in mdf.BaseMap.BaseMapLayerGroups)
{
foreach (var layer in group.BaseMapLayer)
{
Modified: trunk/Tools/Maestro/Maestro.Editors/MapDefinition/GroupPropertiesCtrl.cs
===================================================================
--- trunk/Tools/Maestro/Maestro.Editors/MapDefinition/GroupPropertiesCtrl.cs 2015-02-13 07:20:26 UTC (rev 8544)
+++ trunk/Tools/Maestro/Maestro.Editors/MapDefinition/GroupPropertiesCtrl.cs 2015-02-18 10:23:23 UTC (rev 8545)
@@ -113,7 +113,7 @@
}
if (map.BaseMap != null)
{
- foreach (var grp in map.BaseMap.BaseMapLayerGroup)
+ foreach (var grp in map.BaseMap.BaseMapLayerGroups)
{
if (grp.Name == name)
count++;
Modified: trunk/Tools/Maestro/Maestro.Editors/MapDefinition/MapDefinitionEditorCtrl.cs
===================================================================
--- trunk/Tools/Maestro/Maestro.Editors/MapDefinition/MapDefinitionEditorCtrl.cs 2015-02-13 07:20:26 UTC (rev 8544)
+++ trunk/Tools/Maestro/Maestro.Editors/MapDefinition/MapDefinitionEditorCtrl.cs 2015-02-18 10:23:23 UTC (rev 8545)
@@ -104,7 +104,7 @@
this.Controls.Add(mapSettingsCtrl);
}
- mapLayersCtrl.RequestLayerOpen += new OpenLayerEventHandler(OnRequestLayerOpen);
+ mapLayersCtrl.RequestLayerOpen += OnRequestLayerOpen;
}
private void OnRequestLayerOpen(object sender, string layerResourceId)
Modified: trunk/Tools/Maestro/Maestro.Editors/MapDefinition/MapLayersSectionCtrl.cs
===================================================================
--- trunk/Tools/Maestro/Maestro.Editors/MapDefinition/MapLayersSectionCtrl.cs 2015-02-13 07:20:26 UTC (rev 8544)
+++ trunk/Tools/Maestro/Maestro.Editors/MapDefinition/MapLayersSectionCtrl.cs 2015-02-18 10:23:23 UTC (rev 8545)
@@ -203,7 +203,7 @@
private void InitInlineModel()
{
- trvBaseLayers.Model = _tiledLayerModel = new TiledLayerModel(_map);
+ trvBaseLayers.Model = _tiledLayerModel = new TiledLayerModel(_map.BaseMap);
}
private void OnMapPropertyChanged(object sender, PropertyChangedEventArgs e)
Modified: trunk/Tools/Maestro/Maestro.Editors/MapDefinition/MapTreeModels.cs
===================================================================
--- trunk/Tools/Maestro/Maestro.Editors/MapDefinition/MapTreeModels.cs 2015-02-13 07:20:26 UTC (rev 8544)
+++ trunk/Tools/Maestro/Maestro.Editors/MapDefinition/MapTreeModels.cs 2015-02-18 10:23:23 UTC (rev 8545)
@@ -23,6 +23,7 @@
using Aga.Controls.Tree;
using OSGeo.MapGuide.MaestroAPI;
using OSGeo.MapGuide.ObjectModels.MapDefinition;
+using OSGeo.MapGuide.ObjectModels.TileSetDefinition;
using System;
using System.Collections.Generic;
using System.ComponentModel;
@@ -267,28 +268,30 @@
internal class TiledLayerModel : TreeModelBase
{
- private IMapDefinition _map;
+ private ITileSetAbstract _tileSet;
- public TiledLayerModel(IMapDefinition map)
+ public TiledLayerModel(ITileSetAbstract tileSet)
{
- _map = map;
+ _tileSet = tileSet;
}
public override System.Collections.IEnumerable GetChildren(TreePath treePath)
{
if (treePath.IsEmpty())
{
- if (_map.BaseMap != null)
+ if (_tileSet != null)
{
- yield return new ScaleItem(Strings.FiniteDisplayScales, new List<double>(_map.BaseMap.FiniteDisplayScale));
- foreach (var grp in _map.BaseMap.BaseMapLayerGroup)
+ if (_tileSet.SupportsCustomFiniteDisplayScales)
+ yield return new ScaleItem(Strings.FiniteDisplayScales, new List<double>(_tileSet.FiniteDisplayScale));
+ foreach (var grp in _tileSet.BaseMapLayerGroups)
{
yield return new BaseLayerGroupItem(grp);
}
}
else
{
- yield return new ScaleItem(Strings.FiniteDisplayScales, new List<double>());
+ if (_tileSet.SupportsCustomFiniteDisplayScales)
+ yield return new ScaleItem(Strings.FiniteDisplayScales, new List<double>());
}
}
else
@@ -296,9 +299,9 @@
var grp = treePath.LastNode as BaseLayerGroupItem;
if (grp != null)
{
- if (_map.BaseMap != null)
+ if (_tileSet != null)
{
- foreach (var layer in _map.BaseMap.GetLayersForGroup(grp.Tag.Name))
+ foreach (var layer in _tileSet.GetLayersForGroup(grp.Tag.Name))
{
yield return new BaseLayerItem(layer, grp.Tag);
}
Modified: trunk/Tools/Maestro/Maestro.Editors/Strings.Designer.cs
===================================================================
--- trunk/Tools/Maestro/Maestro.Editors/Strings.Designer.cs 2015-02-13 07:20:26 UTC (rev 8544)
+++ trunk/Tools/Maestro/Maestro.Editors/Strings.Designer.cs 2015-02-18 10:23:23 UTC (rev 8545)
@@ -2104,7 +2104,7 @@
}
/// <summary>
- /// Looks up a localized string similar to This is not a Map Definition with tiled layers.
+ /// Looks up a localized string similar to This resource has no tiled layers.
/// </summary>
internal static string NotATiledMap {
get {
Modified: trunk/Tools/Maestro/Maestro.Editors/Strings.resx
===================================================================
--- trunk/Tools/Maestro/Maestro.Editors/Strings.resx 2015-02-13 07:20:26 UTC (rev 8544)
+++ trunk/Tools/Maestro/Maestro.Editors/Strings.resx 2015-02-18 10:23:23 UTC (rev 8545)
@@ -1023,7 +1023,7 @@
<value>Not a folder: {0}</value>
</data>
<data name="NotATiledMap" xml:space="preserve">
- <value>This is not a Map Definition with tiled layers</value>
+ <value>This resource has no tiled layers</value>
</data>
<data name="NoTransformationRequired" xml:space="preserve">
<value>No transformation required</value>
Added: trunk/Tools/Maestro/Maestro.Editors/TileSetDefinition/GroupPropertiesCtrl.Designer.cs
===================================================================
--- trunk/Tools/Maestro/Maestro.Editors/TileSetDefinition/GroupPropertiesCtrl.Designer.cs (rev 0)
+++ trunk/Tools/Maestro/Maestro.Editors/TileSetDefinition/GroupPropertiesCtrl.Designer.cs 2015-02-18 10:23:23 UTC (rev 8545)
@@ -0,0 +1,100 @@
+namespace Maestro.Editors.TileSetDefinition
+{
+ partial class GroupPropertiesCtrl
+ {
+ /// <summary>
+ /// Required designer variable.
+ /// </summary>
+ private System.ComponentModel.IContainer components = null;
+
+ /// <summary>
+ /// Clean up any resources being used.
+ /// </summary>
+ /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Component Designer generated code
+
+ /// <summary>
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ /// </summary>
+ private void InitializeComponent()
+ {
+ this.components = new System.ComponentModel.Container();
+ System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(GroupPropertiesCtrl));
+ this.groupBox1 = new System.Windows.Forms.GroupBox();
+ this.txtLegendLabel = new System.Windows.Forms.TextBox();
+ this.txtName = new System.Windows.Forms.TextBox();
+ this.label2 = new System.Windows.Forms.Label();
+ this.label1 = new System.Windows.Forms.Label();
+ this.errorProvider = new System.Windows.Forms.ErrorProvider(this.components);
+ this.groupBox1.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).BeginInit();
+ this.SuspendLayout();
+ //
+ // groupBox1
+ //
+ this.groupBox1.Controls.Add(this.txtLegendLabel);
+ this.groupBox1.Controls.Add(this.txtName);
+ this.groupBox1.Controls.Add(this.label2);
+ this.groupBox1.Controls.Add(this.label1);
+ resources.ApplyResources(this.groupBox1, "groupBox1");
+ this.groupBox1.Name = "groupBox1";
+ this.groupBox1.TabStop = false;
+ //
+ // txtLegendLabel
+ //
+ resources.ApplyResources(this.txtLegendLabel, "txtLegendLabel");
+ this.txtLegendLabel.Name = "txtLegendLabel";
+ //
+ // txtName
+ //
+ resources.ApplyResources(this.txtName, "txtName");
+ this.txtName.Name = "txtName";
+ this.txtName.TextChanged += new System.EventHandler(this.txtName_TextChanged);
+ //
+ // label2
+ //
+ resources.ApplyResources(this.label2, "label2");
+ this.label2.Name = "label2";
+ //
+ // label1
+ //
+ resources.ApplyResources(this.label1, "label1");
+ this.label1.Name = "label1";
+ //
+ // errorProvider
+ //
+ this.errorProvider.ContainerControl = this;
+ //
+ // GroupPropertiesCtrl
+ //
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
+ this.Controls.Add(this.groupBox1);
+ this.Name = "GroupPropertiesCtrl";
+ resources.ApplyResources(this, "$this");
+ this.groupBox1.ResumeLayout(false);
+ this.groupBox1.PerformLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).EndInit();
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+
+ private System.Windows.Forms.GroupBox groupBox1;
+ private System.Windows.Forms.TextBox txtLegendLabel;
+ private System.Windows.Forms.TextBox txtName;
+ private System.Windows.Forms.Label label2;
+ private System.Windows.Forms.Label label1;
+ private System.Windows.Forms.ErrorProvider errorProvider;
+ }
+}
Added: trunk/Tools/Maestro/Maestro.Editors/TileSetDefinition/GroupPropertiesCtrl.cs
===================================================================
--- trunk/Tools/Maestro/Maestro.Editors/TileSetDefinition/GroupPropertiesCtrl.cs (rev 0)
+++ trunk/Tools/Maestro/Maestro.Editors/TileSetDefinition/GroupPropertiesCtrl.cs 2015-02-18 10:23:23 UTC (rev 8545)
@@ -0,0 +1,139 @@
+#region Disclaimer / License
+
+// Copyright (C) 2010, Jackie Ng
+// http://trac.osgeo.org/mapguide/wiki/maestro, jumpinjackie at gmail.com
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+//
+
+#endregion Disclaimer / License
+
+using Maestro.Shared.UI;
+using OSGeo.MapGuide.MaestroAPI;
+using OSGeo.MapGuide.ObjectModels.MapDefinition;
+using OSGeo.MapGuide.ObjectModels.TileSetDefinition;
+using System;
+using System.ComponentModel;
+using System.Windows.Forms;
+
+namespace Maestro.Editors.TileSetDefinition
+{
+ [ToolboxItem(false)]
+ internal partial class GroupPropertiesCtrl : UserControl
+ {
+ private GroupPropertiesCtrl()
+ {
+ InitializeComponent();
+ }
+
+ public event EventHandler GroupChanged;
+
+ private ITileSetDefinition _mdf;
+ private IMapLegendElementBase _el;
+
+ private bool _init = false;
+
+ public GroupPropertiesCtrl(ITileSetDefinition map, IMapLayerGroup group)
+ : this()
+ {
+ _init = true;
+ try
+ {
+ _mdf = map;
+ _el = group;
+ group.PropertyChanged += WeakEventHandler.Wrap<PropertyChangedEventHandler>(OnGroupChanged, (eh) => group.PropertyChanged -= eh);
+ string currentName = group.Name;
+ txtName.Text = currentName;
+ //TextBoxBinder.BindText(txtName, group, "Name");
+ /*
+ IMapDefinition mdf = group.Parent;
+ string currentName = group.Name;
+ txtName.Text = currentName;
+ txtName.TextChanged += (s, e) =>
+ {
+ string newName = txtName.Text;
+ group.Name = newName;
+ mdf.UpdateDynamicGroupName(currentName, newName);
+ System.Diagnostics.Debug.WriteLine(string.Format("Updated group name {0} -> {1}", currentName, newName));
+ currentName = newName;
+ };*/
+
+ TextBoxBinder.BindText(txtLegendLabel, group, "LegendLabel");
+ }
+ finally
+ {
+ _init = false;
+ }
+ }
+
+ public GroupPropertiesCtrl(ITileSetDefinition map, IBaseMapGroup group)
+ : this()
+ {
+ _init = true;
+ try
+ {
+ _mdf = map;
+ _el = group;
+ group.PropertyChanged += WeakEventHandler.Wrap<PropertyChangedEventHandler>(OnGroupChanged, (eh) => group.PropertyChanged -= eh);
+
+ txtName.Text = group.Name;
+ TextBoxBinder.BindText(txtLegendLabel, group, "LegendLabel");
+ }
+ finally
+ {
+ _init = false;
+ }
+ }
+
+ private void OnGroupChanged(object sender, PropertyChangedEventArgs e)
+ {
+ var handler = this.GroupChanged;
+ if (handler != null)
+ handler(this, EventArgs.Empty);
+ }
+
+ private static int GetGroupCount(ITileSetDefinition map, string name)
+ {
+ int count = 0;
+ foreach (var grp in map.BaseMapLayerGroups)
+ {
+ if (grp.Name == name)
+ count++;
+ }
+ System.Diagnostics.Debug.WriteLine("{0} groups with the name: {1}", count, name);
+ return count;
+ }
+
+ private void txtName_TextChanged(object sender, EventArgs e)
+ {
+ if (_init)
+ return;
+
+ string newName = txtName.Text;
+ //Before we apply to model, check if another one of the same name exists
+ if (GetGroupCount(_mdf, newName) == 0)
+ {
+ errorProvider.Clear();
+ string currentName = _el.Name;
+ _el.Name = newName;
+ System.Diagnostics.Debug.WriteLine(string.Format("Updated group name {0} -> {1}", currentName, newName));
+ }
+ else
+ {
+ errorProvider.SetError(txtName, string.Format(Strings.GroupAlreadyExists, newName));
+ }
+ }
+ }
+}
\ No newline at end of file
Added: trunk/Tools/Maestro/Maestro.Editors/TileSetDefinition/GroupPropertiesCtrl.resx
===================================================================
--- trunk/Tools/Maestro/Maestro.Editors/TileSetDefinition/GroupPropertiesCtrl.resx (rev 0)
+++ trunk/Tools/Maestro/Maestro.Editors/TileSetDefinition/GroupPropertiesCtrl.resx 2015-02-18 10:23:23 UTC (rev 8545)
@@ -0,0 +1,273 @@
+<?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.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
+ <data name="txtLegendLabel.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
+ <value>Top, Left, Right</value>
+ </data>
+ <assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
+ <data name="txtLegendLabel.Location" type="System.Drawing.Point, System.Drawing">
+ <value>107, 45</value>
+ </data>
+ <data name="txtLegendLabel.Size" type="System.Drawing.Size, System.Drawing">
+ <value>266, 20</value>
+ </data>
+ <assembly alias="mscorlib" name="mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
+ <data name="txtLegendLabel.TabIndex" type="System.Int32, mscorlib">
+ <value>11</value>
+ </data>
+ <data name=">>txtLegendLabel.Name" xml:space="preserve">
+ <value>txtLegendLabel</value>
+ </data>
+ <data name=">>txtLegendLabel.Type" xml:space="preserve">
+ <value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ </data>
+ <data name=">>txtLegendLabel.Parent" xml:space="preserve">
+ <value>groupBox1</value>
+ </data>
+ <data name=">>txtLegendLabel.ZOrder" xml:space="preserve">
+ <value>0</value>
+ </data>
+ <data name="txtName.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
+ <value>Top, Left, Right</value>
+ </data>
+ <data name="txtName.Location" type="System.Drawing.Point, System.Drawing">
+ <value>107, 19</value>
+ </data>
+ <data name="txtName.Size" type="System.Drawing.Size, System.Drawing">
+ <value>266, 20</value>
+ </data>
+ <data name="txtName.TabIndex" type="System.Int32, mscorlib">
+ <value>10</value>
+ </data>
+ <data name=">>txtName.Name" xml:space="preserve">
+ <value>txtName</value>
+ </data>
+ <data name=">>txtName.Type" xml:space="preserve">
+ <value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ </data>
+ <data name=">>txtName.Parent" xml:space="preserve">
+ <value>groupBox1</value>
+ </data>
+ <data name=">>txtName.ZOrder" xml:space="preserve">
+ <value>1</value>
+ </data>
+ <data name="label2.AutoSize" type="System.Boolean, mscorlib">
+ <value>True</value>
+ </data>
+ <data name="label2.Location" type="System.Drawing.Point, System.Drawing">
+ <value>15, 48</value>
+ </data>
+ <data name="label2.Size" type="System.Drawing.Size, System.Drawing">
+ <value>72, 13</value>
+ </data>
+ <data name="label2.TabIndex" type="System.Int32, mscorlib">
+ <value>9</value>
+ </data>
+ <data name="label2.Text" xml:space="preserve">
+ <value>Legend Label</value>
+ </data>
+ <data name=">>label2.Name" xml:space="preserve">
+ <value>label2</value>
+ </data>
+ <data name=">>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=">>label2.Parent" xml:space="preserve">
+ <value>groupBox1</value>
+ </data>
+ <data name=">>label2.ZOrder" xml:space="preserve">
+ <value>2</value>
+ </data>
+ <data name="label1.AutoSize" type="System.Boolean, mscorlib">
+ <value>True</value>
+ </data>
+ <data name="label1.Location" type="System.Drawing.Point, System.Drawing">
+ <value>15, 22</value>
+ </data>
+ <data name="label1.Size" type="System.Drawing.Size, System.Drawing">
+ <value>35, 13</value>
+ </data>
+ <data name="label1.TabIndex" type="System.Int32, mscorlib">
+ <value>8</value>
+ </data>
+ <data name="label1.Text" xml:space="preserve">
+ <value>Name</value>
+ </data>
+ <data name=">>label1.Name" xml:space="preserve">
+ <value>label1</value>
+ </data>
+ <data name=">>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=">>label1.Parent" xml:space="preserve">
+ <value>groupBox1</value>
+ </data>
+ <data name=">>label1.ZOrder" xml:space="preserve">
+ <value>3</value>
+ </data>
+ <data name="groupBox1.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
+ <value>Fill</value>
+ </data>
+ <data name="groupBox1.Location" type="System.Drawing.Point, System.Drawing">
+ <value>0, 0</value>
+ </data>
+ <data name="groupBox1.Size" type="System.Drawing.Size, System.Drawing">
+ <value>400, 86</value>
+ </data>
+ <data name="groupBox1.TabIndex" type="System.Int32, mscorlib">
+ <value>0</value>
+ </data>
+ <data name="groupBox1.Text" xml:space="preserve">
+ <value>Selected Layer Group Properties</value>
+ </data>
+ <data name=">>groupBox1.Name" xml:space="preserve">
+ <value>groupBox1</value>
+ </data>
+ <data name=">>groupBox1.Type" xml:space="preserve">
+ <value>System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ </data>
+ <data name=">>groupBox1.Parent" xml:space="preserve">
+ <value>$this</value>
+ </data>
+ <data name=">>groupBox1.ZOrder" xml:space="preserve">
+ <value>0</value>
+ </data>
+ <metadata name="errorProvider.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
+ <value>17, 17</value>
+ </metadata>
+ <metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+ <value>True</value>
+ </metadata>
+ <data name="$this.Size" type="System.Drawing.Size, System.Drawing">
+ <value>400, 86</value>
+ </data>
+ <data name=">>errorProvider.Name" xml:space="preserve">
+ <value>errorProvider</value>
+ </data>
+ <data name=">>errorProvider.Type" xml:space="preserve">
+ <value>System.Windows.Forms.ErrorProvider, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ </data>
+ <data name=">>$this.Name" xml:space="preserve">
+ <value>GroupPropertiesCtrl</value>
+ </data>
+ <data name=">>$this.Type" xml:space="preserve">
+ <value>System.Windows.Forms.UserControl, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ </data>
+</root>
\ No newline at end of file
Added: trunk/Tools/Maestro/Maestro.Editors/TileSetDefinition/LayerStructureCtrl.Designer.cs
===================================================================
--- trunk/Tools/Maestro/Maestro.Editors/TileSetDefinition/LayerStructureCtrl.Designer.cs (rev 0)
+++ trunk/Tools/Maestro/Maestro.Editors/TileSetDefinition/LayerStructureCtrl.Designer.cs 2015-02-18 10:23:23 UTC (rev 8545)
@@ -0,0 +1,275 @@
+namespace Maestro.Editors.TileSetDefinition
+{
+ partial class LayerStructureCtrl
+ {
+ /// <summary>
+ /// Required designer variable.
+ /// </summary>
+ private System.ComponentModel.IContainer components = null;
+
+ /// <summary>
+ /// Clean up any resources being used.
+ /// </summary>
+ /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Component Designer generated code
+
+ /// <summary>
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ /// </summary>
+ private void InitializeComponent()
+ {
+ System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(LayerStructureCtrl));
+ this.splitContainer1 = new System.Windows.Forms.SplitContainer();
+ this.trvBaseLayers = new Aga.Controls.Tree.TreeViewAdv();
+ this.nodeIcon1 = new Aga.Controls.Tree.NodeControls.NodeIcon();
+ this.nodeTextBox1 = new Aga.Controls.Tree.NodeControls.NodeTextBox();
+ this.toolStrip1 = new System.Windows.Forms.ToolStrip();
+ this.btnNewBaseLayerGroup = new System.Windows.Forms.ToolStripButton();
+ this.btnRemoveBaseLayerGroup = new System.Windows.Forms.ToolStripButton();
+ this.toolStripSeparator2 = new System.Windows.Forms.ToolStripSeparator();
+ this.btnAddBaseLayer = new System.Windows.Forms.ToolStripButton();
+ this.btnRemoveBaseLayer = new System.Windows.Forms.ToolStripButton();
+ this.toolStripSeparator4 = new System.Windows.Forms.ToolStripSeparator();
+ this.btnMoveBaseLayerUp = new System.Windows.Forms.ToolStripButton();
+ this.btnMoveBaseLayerDown = new System.Windows.Forms.ToolStripButton();
+ this.toolStripSeparator8 = new System.Windows.Forms.ToolStripSeparator();
+ this.btnInvokeMgCooker = new System.Windows.Forms.ToolStripButton();
+ this.propertiesPanel = new System.Windows.Forms.Panel();
+ this.contentPanel.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit();
+ this.splitContainer1.Panel1.SuspendLayout();
+ this.splitContainer1.Panel2.SuspendLayout();
+ this.splitContainer1.SuspendLayout();
+ this.toolStrip1.SuspendLayout();
+ this.SuspendLayout();
+ //
+ // contentPanel
+ //
+ this.contentPanel.Controls.Add(this.splitContainer1);
+ this.contentPanel.Size = new System.Drawing.Size(610, 259);
+ //
+ // splitContainer1
+ //
+ this.splitContainer1.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.splitContainer1.FixedPanel = System.Windows.Forms.FixedPanel.Panel1;
+ this.splitContainer1.Location = new System.Drawing.Point(0, 0);
+ this.splitContainer1.Name = "splitContainer1";
+ //
+ // splitContainer1.Panel1
+ //
+ this.splitContainer1.Panel1.Controls.Add(this.trvBaseLayers);
+ this.splitContainer1.Panel1.Controls.Add(this.toolStrip1);
+ //
+ // splitContainer1.Panel2
+ //
+ this.splitContainer1.Panel2.Controls.Add(this.propertiesPanel);
+ this.splitContainer1.Size = new System.Drawing.Size(610, 259);
+ this.splitContainer1.SplitterDistance = 291;
+ this.splitContainer1.TabIndex = 0;
+ //
+ // trvBaseLayers
+ //
+ this.trvBaseLayers.BackColor = System.Drawing.SystemColors.Window;
+ this.trvBaseLayers.BorderStyle = System.Windows.Forms.BorderStyle.None;
+ this.trvBaseLayers.DefaultToolTipProvider = null;
+ this.trvBaseLayers.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.trvBaseLayers.DragDropMarkColor = System.Drawing.Color.Black;
+ this.trvBaseLayers.LineColor = System.Drawing.SystemColors.ControlDark;
+ this.trvBaseLayers.Location = new System.Drawing.Point(0, 25);
+ this.trvBaseLayers.Model = null;
+ this.trvBaseLayers.Name = "trvBaseLayers";
+ this.trvBaseLayers.NodeControls.Add(this.nodeIcon1);
+ this.trvBaseLayers.NodeControls.Add(this.nodeTextBox1);
+ this.trvBaseLayers.SelectedNode = null;
+ this.trvBaseLayers.SelectionMode = Aga.Controls.Tree.TreeSelectionMode.Multi;
+ this.trvBaseLayers.Size = new System.Drawing.Size(291, 234);
+ this.trvBaseLayers.TabIndex = 1;
+ this.trvBaseLayers.Text = "trvBaseLayers";
+ this.trvBaseLayers.ItemDrag += new System.Windows.Forms.ItemDragEventHandler(this.trvBaseLayers_ItemDrag);
+ this.trvBaseLayers.SelectionChanged += new System.EventHandler(this.trvBaseLayers_SelectionChanged);
+ this.trvBaseLayers.DragDrop += new System.Windows.Forms.DragEventHandler(this.trvBaseLayers_DragDrop);
+ this.trvBaseLayers.DragEnter += new System.Windows.Forms.DragEventHandler(this.trvBaseLayers_DragEnter);
+ this.trvBaseLayers.DragOver += new System.Windows.Forms.DragEventHandler(this.trvBaseLayers_DragOver);
+ this.trvBaseLayers.KeyUp += new System.Windows.Forms.KeyEventHandler(this.trvBaseLayers_KeyUp);
+ this.trvBaseLayers.MouseDoubleClick += new System.Windows.Forms.MouseEventHandler(this.trvBaseLayers_MouseDoubleClick);
+ //
+ // nodeIcon1
+ //
+ this.nodeIcon1.DataPropertyName = "Icon";
+ this.nodeIcon1.LeftMargin = 1;
+ this.nodeIcon1.ParentColumn = null;
+ this.nodeIcon1.ScaleMode = Aga.Controls.Tree.ImageScaleMode.Clip;
+ //
+ // nodeTextBox1
+ //
+ this.nodeTextBox1.DataPropertyName = "Text";
+ this.nodeTextBox1.IncrementalSearchEnabled = true;
+ this.nodeTextBox1.LeftMargin = 3;
+ this.nodeTextBox1.ParentColumn = null;
+ //
+ // toolStrip1
+ //
+ this.toolStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
+ this.btnNewBaseLayerGroup,
+ this.btnRemoveBaseLayerGroup,
+ this.toolStripSeparator2,
+ this.btnAddBaseLayer,
+ this.btnRemoveBaseLayer,
+ this.toolStripSeparator4,
+ this.btnMoveBaseLayerUp,
+ this.btnMoveBaseLayerDown,
+ this.toolStripSeparator8,
+ this.btnInvokeMgCooker});
+ this.toolStrip1.Location = new System.Drawing.Point(0, 0);
+ this.toolStrip1.Name = "toolStrip1";
+ this.toolStrip1.Size = new System.Drawing.Size(291, 25);
+ this.toolStrip1.TabIndex = 0;
+ this.toolStrip1.Text = "toolStrip1";
+ //
+ // btnNewBaseLayerGroup
+ //
+ this.btnNewBaseLayerGroup.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
+ this.btnNewBaseLayerGroup.Image = global::Maestro.Editors.Properties.Resources.folder__plus;
+ this.btnNewBaseLayerGroup.ImageTransparentColor = System.Drawing.Color.Magenta;
+ this.btnNewBaseLayerGroup.Name = "btnNewBaseLayerGroup";
+ this.btnNewBaseLayerGroup.Size = new System.Drawing.Size(23, 22);
+ this.btnNewBaseLayerGroup.ToolTipText = "Add a new group";
+ this.btnNewBaseLayerGroup.Click += new System.EventHandler(this.btnNewBaseLayerGroup_Click);
+ //
+ // btnRemoveBaseLayerGroup
+ //
+ this.btnRemoveBaseLayerGroup.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
+ this.btnRemoveBaseLayerGroup.Enabled = false;
+ this.btnRemoveBaseLayerGroup.Image = global::Maestro.Editors.Properties.Resources.folder__minus;
+ this.btnRemoveBaseLayerGroup.ImageTransparentColor = System.Drawing.Color.Magenta;
+ this.btnRemoveBaseLayerGroup.Name = "btnRemoveBaseLayerGroup";
+ this.btnRemoveBaseLayerGroup.Size = new System.Drawing.Size(23, 22);
+ this.btnRemoveBaseLayerGroup.ToolTipText = "Remove selected group";
+ this.btnRemoveBaseLayerGroup.Click += new System.EventHandler(this.btnRemoveBaseLayerGroup_Click);
+ //
+ // toolStripSeparator2
+ //
+ this.toolStripSeparator2.Name = "toolStripSeparator2";
+ this.toolStripSeparator2.Size = new System.Drawing.Size(6, 25);
+ //
+ // btnAddBaseLayer
+ //
+ this.btnAddBaseLayer.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
+ this.btnAddBaseLayer.Enabled = false;
+ this.btnAddBaseLayer.Image = global::Maestro.Editors.Properties.Resources.layer__plus;
+ this.btnAddBaseLayer.ImageTransparentColor = System.Drawing.Color.Magenta;
+ this.btnAddBaseLayer.Name = "btnAddBaseLayer";
+ this.btnAddBaseLayer.Size = new System.Drawing.Size(23, 22);
+ this.btnAddBaseLayer.ToolTipText = "Add a new layer";
+ this.btnAddBaseLayer.Click += new System.EventHandler(this.btnAddBaseLayer_Click);
+ //
+ // btnRemoveBaseLayer
+ //
+ this.btnRemoveBaseLayer.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
+ this.btnRemoveBaseLayer.Enabled = false;
+ this.btnRemoveBaseLayer.Image = global::Maestro.Editors.Properties.Resources.layer__minus;
+ this.btnRemoveBaseLayer.ImageTransparentColor = System.Drawing.Color.Magenta;
+ this.btnRemoveBaseLayer.Name = "btnRemoveBaseLayer";
+ this.btnRemoveBaseLayer.Size = new System.Drawing.Size(23, 22);
+ this.btnRemoveBaseLayer.ToolTipText = "Remove selected layer";
+ this.btnRemoveBaseLayer.Click += new System.EventHandler(this.btnRemoveBaseLayer_Click);
+ //
+ // toolStripSeparator4
+ //
+ this.toolStripSeparator4.Name = "toolStripSeparator4";
+ this.toolStripSeparator4.Size = new System.Drawing.Size(6, 25);
+ //
+ // btnMoveBaseLayerUp
+ //
+ this.btnMoveBaseLayerUp.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
+ this.btnMoveBaseLayerUp.Enabled = false;
+ this.btnMoveBaseLayerUp.Image = global::Maestro.Editors.Properties.Resources.arrow_090;
+ this.btnMoveBaseLayerUp.ImageTransparentColor = System.Drawing.Color.Magenta;
+ this.btnMoveBaseLayerUp.Name = "btnMoveBaseLayerUp";
+ this.btnMoveBaseLayerUp.Size = new System.Drawing.Size(23, 22);
+ this.btnMoveBaseLayerUp.ToolTipText = "Move selected layer up";
+ this.btnMoveBaseLayerUp.Click += new System.EventHandler(this.btnMoveBaseLayerUp_Click);
+ //
+ // btnMoveBaseLayerDown
+ //
+ this.btnMoveBaseLayerDown.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
+ this.btnMoveBaseLayerDown.Enabled = false;
+ this.btnMoveBaseLayerDown.Image = global::Maestro.Editors.Properties.Resources.arrow_270;
+ this.btnMoveBaseLayerDown.ImageTransparentColor = System.Drawing.Color.Magenta;
+ this.btnMoveBaseLayerDown.Name = "btnMoveBaseLayerDown";
+ this.btnMoveBaseLayerDown.Size = new System.Drawing.Size(23, 22);
+ this.btnMoveBaseLayerDown.ToolTipText = "Move selected layer down";
+ this.btnMoveBaseLayerDown.Click += new System.EventHandler(this.btnMoveBaseLayerDown_Click);
+ //
+ // toolStripSeparator8
+ //
+ this.toolStripSeparator8.Name = "toolStripSeparator8";
+ this.toolStripSeparator8.Size = new System.Drawing.Size(6, 25);
+ //
+ // btnInvokeMgCooker
+ //
+ this.btnInvokeMgCooker.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
+ this.btnInvokeMgCooker.Image = ((System.Drawing.Image)(resources.GetObject("btnInvokeMgCooker.Image")));
+ this.btnInvokeMgCooker.ImageTransparentColor = System.Drawing.Color.Magenta;
+ this.btnInvokeMgCooker.Name = "btnInvokeMgCooker";
+ this.btnInvokeMgCooker.Size = new System.Drawing.Size(23, 22);
+ this.btnInvokeMgCooker.Text = "Start MgCooker";
+ this.btnInvokeMgCooker.Click += new System.EventHandler(this.btnInvokeMgCooker_Click);
+ //
+ // propertiesPanel
+ //
+ this.propertiesPanel.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.propertiesPanel.Location = new System.Drawing.Point(0, 0);
+ this.propertiesPanel.Name = "propertiesPanel";
+ this.propertiesPanel.Size = new System.Drawing.Size(315, 259);
+ this.propertiesPanel.TabIndex = 0;
+ //
+ // LayerStructureCtrl
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.HeaderText = "Layer Structure";
+ this.Name = "LayerStructureCtrl";
+ this.Size = new System.Drawing.Size(610, 286);
+ this.contentPanel.ResumeLayout(false);
+ this.splitContainer1.Panel1.ResumeLayout(false);
+ this.splitContainer1.Panel1.PerformLayout();
+ this.splitContainer1.Panel2.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).EndInit();
+ this.splitContainer1.ResumeLayout(false);
+ this.toolStrip1.ResumeLayout(false);
+ this.toolStrip1.PerformLayout();
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+
+ private System.Windows.Forms.SplitContainer splitContainer1;
+ private Aga.Controls.Tree.TreeViewAdv trvBaseLayers;
+ private System.Windows.Forms.ToolStrip toolStrip1;
+ private System.Windows.Forms.ToolStripButton btnNewBaseLayerGroup;
+ private System.Windows.Forms.ToolStripButton btnRemoveBaseLayerGroup;
+ private System.Windows.Forms.ToolStripSeparator toolStripSeparator2;
+ private System.Windows.Forms.ToolStripButton btnAddBaseLayer;
+ private System.Windows.Forms.ToolStripButton btnRemoveBaseLayer;
+ private System.Windows.Forms.ToolStripSeparator toolStripSeparator4;
+ private System.Windows.Forms.ToolStripButton btnMoveBaseLayerUp;
+ private System.Windows.Forms.ToolStripButton btnMoveBaseLayerDown;
+ private System.Windows.Forms.ToolStripSeparator toolStripSeparator8;
+ private System.Windows.Forms.ToolStripButton btnInvokeMgCooker;
+ private Aga.Controls.Tree.NodeControls.NodeIcon nodeIcon1;
+ private Aga.Controls.Tree.NodeControls.NodeTextBox nodeTextBox1;
+ private System.Windows.Forms.Panel propertiesPanel;
+ }
+}
Added: trunk/Tools/Maestro/Maestro.Editors/TileSetDefinition/LayerStructureCtrl.cs
===================================================================
--- trunk/Tools/Maestro/Maestro.Editors/TileSetDefinition/LayerStructureCtrl.cs (rev 0)
+++ trunk/Tools/Maestro/Maestro.Editors/TileSetDefinition/LayerStructureCtrl.cs 2015-02-18 10:23:23 UTC (rev 8545)
@@ -0,0 +1,761 @@
+#region Disclaimer / License
+
+// Copyright (C) 2015, Jackie Ng
+// http://trac.osgeo.org/mapguide/wiki/maestro, jumpinjackie at gmail.com
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+//
+
+#endregion Disclaimer / License
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Drawing;
+using System.Data;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+using Maestro.Editors.Common;
+using OSGeo.MapGuide.ObjectModels.TileSetDefinition;
+using Maestro.Editors.MapDefinition;
+using Aga.Controls.Tree;
+using OSGeo.MapGuide.MaestroAPI;
+using OSGeo.MapGuide.ObjectModels.MapDefinition;
+using OSGeo.MapGuide.ObjectModels;
+using Maestro.Editors.Generic;
+using OSGeo.MapGuide.MaestroAPI.Tile;
+
+namespace Maestro.Editors.TileSetDefinition
+{
+ [ToolboxItem(false)]
+ internal partial class LayerStructureCtrl : EditorBindableCollapsiblePanel
+ {
+ public LayerStructureCtrl()
+ {
+ InitializeComponent();
+ }
+
+ private TiledLayerModel _tiledLayerModel;
+ private ITileSetDefinition _tsd;
+ private IEditorService _edSvc;
+
+ public override void Bind(IEditorService service)
+ {
+ _edSvc = service;
+ _edSvc.RegisterCustomNotifier(this);
+ _tsd = (ITileSetDefinition)service.GetEditedResource();
+ trvBaseLayers.Model = _tiledLayerModel = new TiledLayerModel(_tsd);
+ }
+
+ private object GetSelectedTiledLayerItem()
+ {
+ if (trvBaseLayers.SelectedNode != null)
+ return trvBaseLayers.SelectedNode.Tag;
+ else
+ return null;
+ }
+
+ private IEnumerable<object> GetSelectedTiledLayerItems()
+ {
+ var result = new List<object>();
+ var nodes = trvBaseLayers.SelectedNodes;
+ if (nodes != null)
+ {
+ result.AddRange(nodes.Select(x => x.Tag));
+ }
+ return result;
+ }
+
+ private static string GenerateBaseGroupName(ITileSetDefinition tsd)
+ {
+ int counter = 0;
+ string name = Strings.BaseLayerGroup;
+ if (tsd.GroupExists(name))
+ {
+ counter++;
+ name = Strings.BaseLayerGroup + counter;
+ }
+ while (tsd.GroupExists(name))
+ {
+ counter++;
+ name = Strings.BaseLayerGroup + counter;
+ }
+ return name;
+ }
+
+ private void btnNewBaseLayerGroup_Click(object sender, EventArgs e)
+ {
+ var grp = _tsd.AddBaseLayerGroup(GenerateBaseGroupName(_tsd));
+ _tiledLayerModel.Invalidate();
+ }
+
+ private void btnRemoveBaseLayerGroup_Click(object sender, EventArgs e)
+ {
+ var remove = new List<BaseLayerGroupItem>();
+ foreach (var item in GetSelectedTiledLayerItems())
+ {
+ var group = item as BaseLayerGroupItem;
+ if (group != null)
+ {
+ remove.Add(group);
+ }
+ }
+ RemoveSelectedTiledLayerItems(remove);
+ }
+
+ private void btnAddBaseLayer_Click(object sender, EventArgs e)
+ {
+ using (var picker = new ResourcePicker(_edSvc.CurrentConnection, ResourceTypes.LayerDefinition.ToString(), ResourcePickerMode.OpenResource))
+ {
+ if (picker.ShowDialog() == DialogResult.OK)
+ {
+ LastSelectedFolder.FolderId = picker.SelectedFolder;
+ string layerId = picker.ResourceID;
+ IBaseMapGroup grp = null;
+ var group = GetSelectedTiledLayerItem() as BaseLayerGroupItem;
+ if (group != null)
+ {
+ grp = group.Tag;
+ }
+ else
+ {
+ grp = _tsd.GetFirstGroup();
+ if (grp == null)
+ {
+ grp = _tsd.AddBaseLayerGroup(GenerateBaseGroupName(_tsd));
+ }
+ }
+ var bl = grp.AddLayer(GenerateBaseLayerName(layerId, _tsd), layerId);
+ _tiledLayerModel.Invalidate();
+ RestoreBaseLayerSelection(bl);
+ }
+ }
+ }
+
+ private void btnRemoveBaseLayer_Click(object sender, EventArgs e)
+ {
+ foreach (var item in GetSelectedTiledLayerItems())
+ {
+ var layer = item as BaseLayerItem;
+ if (layer != null)
+ {
+ RemoveSelectedTiledLayerItem(layer);
+ }
+ }
+ }
+
+ private void btnMoveBaseLayerUp_Click(object sender, EventArgs e)
+ {
+ var layer = GetSelectedTiledLayerItem() as BaseLayerItem;
+ if (layer != null)
+ {
+ var grp = layer.Parent;
+ grp.MoveUp(layer.Tag);
+ var node = trvBaseLayers.SelectedNode.Parent;
+ var path = trvBaseLayers.GetPath(node);
+ _tiledLayerModel.Invalidate(path);
+
+ RestoreBaseLayerSelection(layer);
+ }
+ }
+
+ private void btnMoveBaseLayerDown_Click(object sender, EventArgs e)
+ {
+ var layer = GetSelectedTiledLayerItem() as BaseLayerItem;
+ if (layer != null)
+ {
+ var grp = layer.Parent;
+ grp.MoveDown(layer.Tag);
+ var node = trvBaseLayers.SelectedNode.Parent;
+ var path = trvBaseLayers.GetPath(node);
+ _tiledLayerModel.Invalidate(path);
+
+ RestoreBaseLayerSelection(layer);
+ }
+ }
+
+ private void btnInvokeMgCooker_Click(object sender, EventArgs e)
+ {
+ if (_edSvc.IsNew || _edSvc.IsDirty)
+ {
+ MessageBox.Show(Strings.SaveMapBeforeTiling);
+ return;
+ }
+
+ var conn = _edSvc.CurrentConnection;
+ //HACK: Can't support other connection types beyond HTTP atm
+ if (!conn.ProviderName.ToLower().Contains("maestro.http"))
+ {
+ MessageBox.Show(string.Format(Strings.UnsupportedConnectionType, conn.ProviderName));
+ return;
+ }
+
+ if (_tsd.GroupCount == 0)
+ {
+ MessageBox.Show(Strings.NotATiledMap);
+ return;
+ }
+
+ _edSvc.RunProcess("MgCooker",
+ "--" + TileRunParameters.PROVIDER + "=Maestro.Http",
+ "--" + TileRunParameters.CONNECTIONPARAMS + "=\"Url=" + conn.GetCustomProperty("BaseUrl").ToString() + ";SessionId=" + conn.SessionID + "\"",
+ "--" + TileRunParameters.MAPDEFINITIONS + "=" + _edSvc.ResourceID);
+ }
+
+ private void trvBaseLayers_ItemDrag(object sender, ItemDragEventArgs e)
+ {
+ trvBaseLayers.DoDragDrop(e.Item, DragDropEffects.All);
+ }
+
+ private void trvBaseLayers_DragDrop(object sender, DragEventArgs e)
+ {
+ var rids = e.Data.GetData(typeof(RepositoryHandle[])) as RepositoryHandle[];
+ var data = e.Data.GetData(typeof(TreeNodeAdv[])) as TreeNodeAdv[];
+ if (rids != null && rids.Length > 0)
+ {
+ int added = 0;
+ var node = trvBaseLayers.GetNodeAt(trvBaseLayers.PointToClient(new Point(e.X, e.Y)));
+
+ IBaseMapGroup group = null;
+ if (node != null && node.Tag is BaseLayerGroupItem)
+ {
+ group = ((BaseLayerGroupItem)node.Tag).Tag;
+ }
+
+ //No group? Let's make one!
+ if (group == null)
+ {
+ group = _tsd.AddBaseLayerGroup(GenerateBaseGroupName(_tsd));
+ }
+
+ foreach (var rid in rids)
+ {
+ if (rid.ResourceId.ResourceType == ResourceTypes.LayerDefinition.ToString())
+ {
+ group.AddLayer(GenerateBaseLayerName(rid.ResourceId.ToString(), _tsd), rid.ResourceId.ToString());
+ added++;
+ }
+ }
+
+ if (added > 0)
+ {
+ _tiledLayerModel.Invalidate();
+ }
+ }
+ else if (data != null && data.Length == 1)
+ {
+ var li = data[0].Tag as BaseLayerItem;
+ if (li != null)
+ {
+ IBaseMapLayer sourceLayer = li.Tag;
+ IBaseMapLayer targetLayer = null;
+ IBaseMapGroup targetGroup = null;
+ var node = trvBaseLayers.GetNodeAt(trvBaseLayers.PointToClient(new Point(e.X, e.Y)));
+ BaseLayerItem tli = null;
+ if (node != null)
+ {
+ tli = node.Tag as BaseLayerItem;
+ var tlg = node.Tag as BaseLayerGroupItem;
+ if (tli != null)
+ targetLayer = tli.Tag;
+ else if (tlg != null)
+ targetGroup = tlg.Tag;
+ }
+
+ if (sourceLayer != null && targetGroup != null && targetGroup.GetIndex(sourceLayer) < 0) //Dropping to a different base layer group
+ {
+ var srcGroup = _tsd.GetGroupForLayer(sourceLayer);
+ srcGroup.RemoveBaseMapLayer(sourceLayer);
+ targetGroup.InsertLayer(0, sourceLayer);
+
+ _tiledLayerModel.Invalidate();
+
+ //Keep group expanded
+ if (tli != null)
+ RestoreBaseLayerSelection(sourceLayer);
+ }
+ else if (sourceLayer != null && targetLayer != null && sourceLayer != targetLayer)
+ {
+ var srcGroup = _tsd.GetGroupForLayer(sourceLayer);
+ var dstGroup = _tsd.GetGroupForLayer(targetLayer);
+
+ if (srcGroup != null)
+ {
+ if (srcGroup == dstGroup)
+ {
+ int idx = srcGroup.GetIndex(targetLayer);
+ if (idx >= 0)
+ {
+ srcGroup.RemoveBaseMapLayer(sourceLayer);
+ srcGroup.InsertLayer(idx, sourceLayer);
+
+ _tiledLayerModel.Invalidate();
+
+ //Keep group expanded
+ if (tli != null)
+ RestoreBaseLayerSelection(sourceLayer);
+ }
+ }
+ else
+ {
+ srcGroup.RemoveBaseMapLayer(sourceLayer);
+ dstGroup.InsertLayer(0, targetLayer);
+
+ _tiledLayerModel.Invalidate();
+
+ //Keep group expanded
+ if (tli != null)
+ RestoreBaseLayerSelection(targetLayer);
+ }
+ }
+ }
+ }
+ }
+ }
+
+ private static void HandleDragEnter(DragEventArgs e)
+ {
+ //Accepting all resource id drops
+ var rids = e.Data.GetData(typeof(RepositoryHandle[])) as RepositoryHandle[];
+ if (rids == null || rids.Length == 0)
+ {
+ e.Effect = DragDropEffects.None;
+ return;
+ }
+
+ //But only of the Layer Definition kind
+ if (rids.Length == 1 && rids[0].ResourceId.ResourceType != ResourceTypes.LayerDefinition.ToString())
+ {
+ e.Effect = DragDropEffects.None;
+ return;
+ }
+
+ //Even in multiples
+ foreach (var r in rids)
+ {
+ if (r.ResourceId.ResourceType != ResourceTypes.LayerDefinition.ToString())
+ {
+ e.Effect = DragDropEffects.None;
+ return;
+ }
+ }
+ }
+
+ private void HandleDragOver(DragEventArgs e)
+ {
+ var rids = e.Data.GetData(typeof(RepositoryHandle[])) as RepositoryHandle[];
+ if (rids == null || rids.Length == 0)
+ {
+ e.Effect = DragDropEffects.None;
+ return;
+ }
+ else
+ {
+ //All handles should have the same connection, so sample the first
+ //Must be the same connection as this current editor
+ if (rids[0].Connection != _edSvc.CurrentConnection)
+ {
+ e.Effect = DragDropEffects.None;
+ return;
+ }
+ }
+
+ e.Effect = DragDropEffects.Copy;
+ }
+
+ private void trvBaseLayers_DragEnter(object sender, DragEventArgs e)
+ {
+ HandleDragEnter(e);
+ }
+
+ private void trvBaseLayers_DragOver(object sender, DragEventArgs e)
+ {
+ var data = e.Data.GetData(typeof(TreeNodeAdv[])) as TreeNodeAdv[];
+ if (data == null)
+ {
+ HandleDragOver(e);
+ }
+ else
+ {
+ var li = data[0].Tag as BaseLayerItem;
+ if (li == null)
+ {
+ e.Effect = DragDropEffects.None;
+ return;
+ }
+ else
+ {
+ e.Effect = DragDropEffects.Move;
+ }
+ }
+ }
+
+ private void trvBaseLayers_SelectionChanged(object sender, EventArgs e)
+ {
+ if (trvBaseLayers.SelectedNodes.Count == 1)
+ {
+ TreeNodeAdv node = trvBaseLayers.SelectedNodes[0];
+ if (node != null)
+ {
+ var layer = node.Tag as BaseLayerItem;
+ var group = node.Tag as BaseLayerGroupItem;
+
+ btnRemoveBaseLayerGroup.Enabled = false;
+ btnRemoveBaseLayer.Enabled = false;
+ btnMoveBaseLayerDown.Enabled = false;
+ btnMoveBaseLayerUp.Enabled = false;
+ btnAddBaseLayer.Enabled = false;
+
+ if (layer != null)
+ {
+ OnBaseLayerItemSelected(layer);
+ }
+ else if (group != null)
+ {
+ OnBaseLayerGroupItemSelected(group);
+ }
+ }
+ }
+ else if (trvBaseLayers.SelectedNodes.Count > 1)
+ {
+ OnMultipleItemsSelected(trvBaseLayers.SelectedNodes);
+ }
+ }
+
+ private void trvBaseLayers_KeyUp(object sender, KeyEventArgs e)
+ {
+ if (e.KeyCode == Keys.Delete || e.KeyCode == Keys.Up || e.KeyCode == Keys.Down)
+ {
+ var group = GetSelectedTiledLayerItem() as BaseLayerGroupItem;
+ var layer = GetSelectedTiledLayerItem() as BaseLayerItem;
+ if (e.KeyCode == Keys.Delete)
+ {
+ if (group != null)
+ {
+ RemoveSelectedTiledLayerItem(group);
+ }
+ else if (layer != null)
+ {
+ RemoveSelectedTiledLayerItem(layer);
+ }
+ }
+ else
+ {
+ if (layer != null)
+ {
+ OnBaseLayerItemSelected(layer);
+ }
+ else if (group != null)
+ {
+ OnBaseLayerGroupItemSelected(group);
+ }
+ }
+ }
+ }
+
+ public event OpenLayerEventHandler RequestLayerOpen;
+
+ private void trvBaseLayers_MouseDoubleClick(object sender, MouseEventArgs e)
+ {
+ TreeNodeAdv node = trvBaseLayers.GetNodeAt(new Point(e.X, e.Y));
+ if (node != null)
+ {
+ var layer = node.Tag as BaseLayerItem;
+ if (layer != null)
+ {
+ var handler = this.RequestLayerOpen;
+ if (handler != null)
+ handler(this, layer.Tag.ResourceId);
+ }
+ }
+ }
+
+ private void OnBaseLayerGroupItemSelected(BaseLayerGroupItem group)
+ {
+ btnAddBaseLayer.Enabled = true;
+ btnRemoveBaseLayerGroup.Enabled = true;
+
+ propertiesPanel.Controls.Clear();
+ //var item = new GroupPropertiesCtrl(_tsd, group.Tag);
+ //item.GroupChanged += (s, evt) => { OnResourceChanged(); };
+ //item.Dock = DockStyle.Fill;
+ _activeLayer = null;
+ AddBaseGroupControl(group);
+ }
+
+ private void OnBaseLayerItemSelected(BaseLayerItem layer)
+ {
+ btnRemoveBaseLayer.Enabled = true;
+ btnMoveBaseLayerDown.Enabled = true;
+ btnMoveBaseLayerUp.Enabled = true;
+
+ //var item = new LayerPropertiesCtrl(layer.Tag, _edSvc.ResourceService, _edSvc);
+ //item.LayerChanged += (s, evt) => { OnResourceChanged(); };
+ //item.Dock = DockStyle.Fill;
+ _activeLayer = null;
+ AddBaseLayerControl(layer);
+ }
+
+ private void AddMultiControl(System.Collections.ObjectModel.ReadOnlyCollection<TreeNodeAdv> nodes)
+ {
+ propertiesPanel.Controls.Clear();
+
+ CommonPropertyCtrl commCtrl = new CommonPropertyCtrl();
+ commCtrl.Dock = DockStyle.Fill;
+
+ List<object> values = new List<object>();
+ for (int i = 0; i < nodes.Count; i++)
+ {
+ var bgrp = nodes[i].Tag as BaseLayerGroupItem;
+ var blyr = nodes[i].Tag as BaseLayerItem;
+ if (bgrp != null)
+ {
+ values.Add(new Maestro.Editors.MapDefinition.MapLayersSectionCtrl.BaseGroupItemDesigner(bgrp));
+ }
+ else if (blyr != null)
+ {
+ values.Add(new Maestro.Editors.MapDefinition.MapLayersSectionCtrl.BaseLayerItemDesigner(blyr));
+ }
+ }
+
+ propertiesPanel.Controls.Add(commCtrl);
+
+ commCtrl.SelectedObjects = values.ToArray();
+ }
+
+ private void AddBaseGroupControl(BaseLayerGroupItem group)
+ {
+ propertiesPanel.Controls.Clear();
+
+ Control ctrl = new Control();
+
+ CommonPropertyCtrl commCtrl = new CommonPropertyCtrl();
+ commCtrl.Dock = DockStyle.Fill;
+
+ var item = new GroupPropertiesCtrl(_tsd, group.Tag);
+ //item.GroupChanged += (s, evt) => { OnResourceChanged(); };
+ item.GroupChanged += WeakEventHandler.Wrap((s, evt) => OnResourceChanged(), (eh) => item.GroupChanged -= eh);
+ item.Dock = DockStyle.Top;
+
+ ctrl.Controls.Add(commCtrl);
+ ctrl.Controls.Add(item);
+
+ ctrl.Dock = DockStyle.Fill;
+
+ propertiesPanel.Controls.Add(ctrl);
+
+ commCtrl.SelectedObject = new Maestro.Editors.MapDefinition.MapLayersSectionCtrl.BaseGroupItemDesigner(group);
+ }
+
+ private void AddBaseLayerControl(BaseLayerItem layer)
+ {
+ propertiesPanel.Controls.Clear();
+
+ Control ctrl = new Control();
+
+ CommonPropertyCtrl commCtrl = new CommonPropertyCtrl();
+ commCtrl.Dock = DockStyle.Fill;
+
+ var item = new LayerPropertiesCtrl(layer.Tag, _edSvc);
+ //item.LayerChanged += (s, evt) => { OnResourceChanged(); };
+ item.LayerChanged += WeakEventHandler.Wrap((s, evt) => OnResourceChanged(), (eh) => item.LayerChanged -= eh);
+ item.Dock = DockStyle.Top;
+
+ ctrl.Controls.Add(commCtrl);
+ ctrl.Controls.Add(item);
+
+ ctrl.Dock = DockStyle.Fill;
+
+ propertiesPanel.Controls.Add(ctrl);
+
+ commCtrl.SelectedObject = new Maestro.Editors.MapDefinition.MapLayersSectionCtrl.BaseLayerItemDesigner(layer);
+ }
+
+ private void RemoveSelectedTiledLayerItems(IEnumerable<BaseLayerGroupItem> groups)
+ {
+ foreach (var group in groups)
+ {
+ _tsd.RemoveBaseLayerGroup(group.Tag);
+ }
+ propertiesPanel.Controls.Clear();
+ _tiledLayerModel.Invalidate();
+ }
+
+ private void RemoveSelectedTiledLayerItem(BaseLayerItem layer)
+ {
+ var grp = layer.Parent;
+ grp.RemoveBaseMapLayer(layer.Tag);
+ propertiesPanel.Controls.Clear();
+ _tiledLayerModel.Invalidate();
+ }
+
+ private void RemoveSelectedTiledLayerItem(BaseLayerGroupItem group)
+ {
+ _tsd.RemoveBaseLayerGroup(group.Tag);
+ propertiesPanel.Controls.Clear();
+ _tiledLayerModel.Invalidate();
+ }
+
+ private void OnMultipleItemsSelected(System.Collections.ObjectModel.ReadOnlyCollection<TreeNodeAdv> nodes)
+ {
+ bool bAllLayers = AllLayers(nodes);
+ bool bAllGroups = AllGroups(nodes);
+ bool bAllBaseLayers = AllBaseLayers(nodes);
+ bool bAllBaseGroups = AllBaseGroups(nodes);
+
+ btnNewBaseLayerGroup.Enabled = false;
+ btnAddBaseLayer.Enabled = false;
+ btnRemoveBaseLayer.Enabled = bAllBaseLayers;
+ btnRemoveBaseLayerGroup.Enabled = bAllBaseGroups;
+
+ AddMultiControl(nodes);
+ _activeLayer = null;
+ }
+
+ private IMapLayer _activeLayer;
+
+ private static bool AllLayers(System.Collections.ObjectModel.ReadOnlyCollection<TreeNodeAdv> nodes)
+ {
+ foreach (var node in nodes)
+ {
+ var layer = node.Tag as LayerItem;
+ if (layer == null)
+ return false;
+ }
+ return true;
+ }
+
+ private static bool AllBaseLayers(System.Collections.ObjectModel.ReadOnlyCollection<TreeNodeAdv> nodes)
+ {
+ foreach (var node in nodes)
+ {
+ var layer = node.Tag as BaseLayerItem;
+ if (layer == null)
+ return false;
+ }
+ return true;
+ }
+
+ private static bool AllGroups(System.Collections.ObjectModel.ReadOnlyCollection<TreeNodeAdv> nodes)
+ {
+ foreach (var node in nodes)
+ {
+ var group = node.Tag as GroupItem;
+ if (group == null)
+ return false;
+ }
+ return true;
+ }
+
+ private static bool AllBaseGroups(System.Collections.ObjectModel.ReadOnlyCollection<TreeNodeAdv> nodes)
+ {
+ foreach (var node in nodes)
+ {
+ var group = node.Tag as BaseLayerGroupItem;
+ if (group == null)
+ return false;
+ }
+ return true;
+ }
+
+ private static string GenerateBaseLayerName(string layerId, ITileSetDefinition tileSet)
+ {
+ Check.ArgumentNotNull(tileSet, "baseMapDef");
+ Check.ArgumentNotEmpty(layerId, "layerId");
+
+ int counter = 0;
+ string prefix = ResourceIdentifier.GetName(layerId);
+ string name = prefix;
+ if (tileSet.LayerExists(name))
+ {
+ name = prefix + counter;
+ }
+ while (tileSet.LayerExists(name))
+ {
+ counter++;
+ name = prefix + counter;
+ }
+
+ return name;
+ }
+
+ private void RestoreBaseLayerSelection(IBaseMapLayer layer)
+ {
+ //The node tag will probably be different, but the wrapped
+ //instance is what we're checking for
+ var it = RestoreSelection<BaseLayerItem>(trvBaseLayers, (tag) => { return tag.Tag == layer; });
+ if (it != null)
+ OnBaseLayerItemSelected(it);
+ }
+
+ private void RestoreBaseLayerSelection(BaseLayerItem item)
+ {
+ //The node tag will probably be different, but the wrapped
+ //instance is what we're checking for
+ var it = RestoreSelection<BaseLayerItem>(trvBaseLayers, (tag) => { return tag.Tag == item.Tag; });
+ if (it != null)
+ OnBaseLayerItemSelected(it);
+ }
+
+ private static TaggedType RestoreSelection<TaggedType>(TreeViewAdv tree, Predicate<TaggedType> predicate) where TaggedType : class
+ {
+ TaggedType ret = null;
+
+ //Restore selection
+ TreeNodeAdv selectedNode = null;
+ foreach (var node in tree.AllNodes)
+ {
+ var tag = node.Tag as TaggedType;
+
+ if (tag != null && predicate(tag))
+ {
+ selectedNode = node;
+ ret = tag;
+ break;
+ }
+ }
+ if (selectedNode != null)
+ tree.SelectedNode = selectedNode;
+
+ return ret;
+ }
+
+ private static void ExpandNode<TaggedType>(TreeViewAdv tree, Predicate<TaggedType> predicate) where TaggedType : class
+ {
+ //Restore selection
+ TreeNodeAdv selectedNode = null;
+ foreach (var node in tree.AllNodes)
+ {
+ var tag = node.Tag as TaggedType;
+
+ if (tag != null && predicate(tag))
+ {
+ selectedNode = node;
+ break;
+ }
+ }
+ if (selectedNode != null)
+ {
+ var n = selectedNode;
+ while (n != null)
+ {
+ n.Expand();
+ n = n.Parent;
+ }
+ }
+ }
+ }
+}
Added: trunk/Tools/Maestro/Maestro.Editors/TileSetDefinition/LayerStructureCtrl.resx
===================================================================
--- trunk/Tools/Maestro/Maestro.Editors/TileSetDefinition/LayerStructureCtrl.resx (rev 0)
+++ trunk/Tools/Maestro/Maestro.Editors/TileSetDefinition/LayerStructureCtrl.resx 2015-02-18 10:23:23 UTC (rev 8545)
@@ -0,0 +1,141 @@
+<?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>
+ <metadata name="toolStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
+ <value>17, 17</value>
+ </metadata>
+ <assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
+ <data name="btnInvokeMgCooker.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+ <value>
+ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
+ YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAKfSURBVDhPfZDdT1JhHMe9qr+g27xoa8ta5ShQUJEsFF8a
+ 2qZJ2tJprpKbXMOW8wgbrVpqTEyQF2H5glNUKD2CwAEOglhmkr271S0LtrqrC790qpPM4fps35vn9/08
+ z29P1l5IGmcOl1/39BbcNAaFHcZlSZvzcYVslsOO/09lu6+NSxA/mqaMEJkJlBr4yNWcR93kxnZ5w4KK
+ re1NRZu3nP/o4nalVYnsu1JUj+sg0MtRNLWKo/Ykmsa2IK5xXGPrmQg7DbESPR8i3RnkaQtRM/oQcn8S
+ VWQSHKsNJ4dVkN4e+VpWJt/PKmlyRXeyuUQHSob5EAzmQ27vx/3VOLroBGRLSZzQduG4RgYecRV5BRoh
+ q6U5UqzkdY/S4A20otX2AOOvE+h/kQARSqBx4Q2zUQXyBiWQ6gic4vXXsVoajkBxsNu4ASKcQLW1BxJD
+ PRTkMyiCCdTMLIGv5eMcs51IeQVcfl8hq+3mqnJ1XeGPQzY1DDHz+8KhAlSND6F0PgmefQunB2pR2K6K
+ 5+QQ+1hlN9LLM+Ib0+vbLeQn5DOfKBi6APHcJjizSRyyxVHUQ6D+0kgnW89EqzUWqe7NoYmwoNjSmDpL
+ fkxxye8pifdbqllNgyDGMDlpp9h6Ji6XZ5okvTCPPGXKDiYL6CKcuNVpglKph9PpAkkuQa1WH2OVNMzh
+ AYqifoZCKwiFIqAoGl5v4I8wP++CzxdEMLiMcDgKs9nax2ppTCZLLU2vwO8P74SiwvBRy/D6QvB4aSwu
+ +uB2B+BwLH5gtTQm05OGtZebzJrujPj9UeblVzA0t8ChtyAQiHxhtTS/L4jF3mNiwp4ROvQcb999hqdX
+ g7VgFJFINPMCnc6Yzwxi4XB4k1mfjX/T7f4Xaic2m33sr5WV9QsmZMGukh1bXAAAAABJRU5ErkJggg==
+</value>
+ </data>
+</root>
\ No newline at end of file
Added: trunk/Tools/Maestro/Maestro.Editors/TileSetDefinition/Providers/GenericProviderCtrl.Designer.cs
===================================================================
--- trunk/Tools/Maestro/Maestro.Editors/TileSetDefinition/Providers/GenericProviderCtrl.Designer.cs (rev 0)
+++ trunk/Tools/Maestro/Maestro.Editors/TileSetDefinition/Providers/GenericProviderCtrl.Designer.cs 2015-02-18 10:23:23 UTC (rev 8545)
@@ -0,0 +1,84 @@
+namespace Maestro.Editors.TileSetDefinition.Providers
+{
+ partial class GenericProviderCtrl
+ {
+ /// <summary>
+ /// Required designer variable.
+ /// </summary>
+ private System.ComponentModel.IContainer components = null;
+
+ /// <summary>
+ /// Clean up any resources being used.
+ /// </summary>
+ /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Component Designer generated code
+
+ /// <summary>
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ /// </summary>
+ private void InitializeComponent()
+ {
+ this.grdSettings = new System.Windows.Forms.DataGridView();
+ this.COL_NAME = new System.Windows.Forms.DataGridViewTextBoxColumn();
+ this.COL_VALUE = new System.Windows.Forms.DataGridViewTextBoxColumn();
+ ((System.ComponentModel.ISupportInitialize)(this.grdSettings)).BeginInit();
+ this.SuspendLayout();
+ //
+ // grdSettings
+ //
+ this.grdSettings.AllowUserToAddRows = false;
+ this.grdSettings.AllowUserToDeleteRows = false;
+ this.grdSettings.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
+ this.grdSettings.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
+ this.COL_NAME,
+ this.COL_VALUE});
+ this.grdSettings.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.grdSettings.Location = new System.Drawing.Point(0, 0);
+ this.grdSettings.Name = "grdSettings";
+ this.grdSettings.Size = new System.Drawing.Size(301, 150);
+ this.grdSettings.TabIndex = 0;
+ //
+ // COL_NAME
+ //
+ this.COL_NAME.DataPropertyName = "Name";
+ this.COL_NAME.HeaderText = "Name";
+ this.COL_NAME.Name = "COL_NAME";
+ this.COL_NAME.ReadOnly = true;
+ this.COL_NAME.Width = 150;
+ //
+ // COL_VALUE
+ //
+ this.COL_VALUE.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill;
+ this.COL_VALUE.DataPropertyName = "Value";
+ this.COL_VALUE.HeaderText = "Value";
+ this.COL_VALUE.Name = "COL_VALUE";
+ //
+ // GenericProviderCtrl
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.Controls.Add(this.grdSettings);
+ this.Name = "GenericProviderCtrl";
+ this.Size = new System.Drawing.Size(301, 150);
+ ((System.ComponentModel.ISupportInitialize)(this.grdSettings)).EndInit();
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+
+ private System.Windows.Forms.DataGridView grdSettings;
+ private System.Windows.Forms.DataGridViewTextBoxColumn COL_NAME;
+ private System.Windows.Forms.DataGridViewTextBoxColumn COL_VALUE;
+ }
+}
Added: trunk/Tools/Maestro/Maestro.Editors/TileSetDefinition/Providers/GenericProviderCtrl.cs
===================================================================
--- trunk/Tools/Maestro/Maestro.Editors/TileSetDefinition/Providers/GenericProviderCtrl.cs (rev 0)
+++ trunk/Tools/Maestro/Maestro.Editors/TileSetDefinition/Providers/GenericProviderCtrl.cs 2015-02-18 10:23:23 UTC (rev 8545)
@@ -0,0 +1,117 @@
+#region Disclaimer / License
+
+// Copyright (C) 2015, Jackie Ng
+// http://trac.osgeo.org/mapguide/wiki/maestro, jumpinjackie at gmail.com
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+//
+
+#endregion Disclaimer / License
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Drawing;
+using System.Data;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+using OSGeo.MapGuide.ObjectModels.Common;
+using OSGeo.MapGuide.ObjectModels.TileSetDefinition;
+using OSGeo.MapGuide.ObjectModels;
+
+namespace Maestro.Editors.TileSetDefinition.Providers
+{
+ public partial class GenericProviderCtrl : UserControl
+ {
+ private GenericProviderCtrl()
+ {
+ InitializeComponent();
+ }
+
+ private ITileSetDefinition _tsd;
+ private TileProvider _provider;
+ private Action _resourceChangeHandler;
+
+ public GenericProviderCtrl(TileProvider provider, ITileSetDefinition tsd, Action resourceChangeHandler)
+ : this()
+ {
+ Check.ArgumentNotNull(provider, "provider");
+ Check.ArgumentNotNull(tsd, "tsd");
+ _tsd = tsd;
+ _provider = provider;
+ _resourceChangeHandler = resourceChangeHandler;
+ }
+
+ protected override void OnLoad(EventArgs e)
+ {
+ base.OnLoad(e);
+ grdSettings.DataSource = GetParameters();
+ }
+
+ private void OnValueChanged(TileSetParameter param)
+ {
+ _tsd.TileStoreParameters.SetParameter(param.Name, param.Value);
+ _resourceChangeHandler();
+ }
+
+ private TileSetParameter[] GetParameters()
+ {
+ var param = new Dictionary<string, TileSetParameter>();
+ //First collect parameters already set
+ foreach (var p in _tsd.TileStoreParameters.Parameters)
+ {
+ param.Add(p.Name, new TileSetParameter(p.Name, p.Value, OnValueChanged));
+ }
+ //Then fill in missing parameters as indicated by the provider
+ foreach (var p in _provider.ConnectionProperties)
+ {
+ if (!param.ContainsKey(p.Name))
+ param.Add(p.Name, new TileSetParameter(p.Name, p.DefaultValue, OnValueChanged));
+ }
+ return param.Values.ToArray();
+ }
+ }
+
+ class TileSetParameter
+ {
+ private Action<TileSetParameter> _valueChangeListener;
+
+ public TileSetParameter(string name, string value, Action<TileSetParameter> valueChangeListener)
+ {
+ this.Name = name;
+ this.Value = value;
+ _valueChangeListener = valueChangeListener;
+ }
+
+ public string Name { get; private set; }
+
+ private string _value;
+
+ public string Value
+ {
+ get { return _value; }
+ set
+ {
+ if (_value != value)
+ {
+ _value = value;
+ if (_valueChangeListener != null)
+ _valueChangeListener(this);
+ }
+ }
+ }
+ }
+}
Added: trunk/Tools/Maestro/Maestro.Editors/TileSetDefinition/Providers/GenericProviderCtrl.resx
===================================================================
--- trunk/Tools/Maestro/Maestro.Editors/TileSetDefinition/Providers/GenericProviderCtrl.resx (rev 0)
+++ trunk/Tools/Maestro/Maestro.Editors/TileSetDefinition/Providers/GenericProviderCtrl.resx 2015-02-18 10:23:23 UTC (rev 8545)
@@ -0,0 +1,126 @@
+<?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>
+ <metadata name="COL_NAME.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+ <value>True</value>
+ </metadata>
+ <metadata name="COL_VALUE.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+ <value>True</value>
+ </metadata>
+</root>
\ No newline at end of file
Added: trunk/Tools/Maestro/Maestro.Editors/TileSetDefinition/TileSetDefinitionEditorCtrl.Designer.cs
===================================================================
--- trunk/Tools/Maestro/Maestro.Editors/TileSetDefinition/TileSetDefinitionEditorCtrl.Designer.cs (rev 0)
+++ trunk/Tools/Maestro/Maestro.Editors/TileSetDefinition/TileSetDefinitionEditorCtrl.Designer.cs 2015-02-18 10:23:23 UTC (rev 8545)
@@ -0,0 +1,68 @@
+namespace Maestro.Editors.TileSetDefinition
+{
+ partial class TileSetDefinitionEditorCtrl
+ {
+ /// <summary>
+ /// Required designer variable.
+ /// </summary>
+ private System.ComponentModel.IContainer components = null;
+
+ /// <summary>
+ /// Clean up any resources being used.
+ /// </summary>
+ /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Component Designer generated code
+
+ /// <summary>
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ /// </summary>
+ private void InitializeComponent()
+ {
+ System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(TileSetDefinitionEditorCtrl));
+ this.layerStructureCtrl = new Maestro.Editors.TileSetDefinition.LayerStructureCtrl();
+ this.tileSetSettingsCtrl = new Maestro.Editors.TileSetDefinition.TileSetSettingsCtrl();
+ this.SuspendLayout();
+ //
+ // layerStructureCtrl
+ //
+ this.layerStructureCtrl.ContentBackgroundColor = System.Drawing.SystemColors.Control;
+ resources.ApplyResources(this.layerStructureCtrl, "layerStructureCtrl");
+ this.layerStructureCtrl.HeaderBackgroundColor = System.Drawing.Color.LightSteelBlue;
+ this.layerStructureCtrl.HeaderFont = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold);
+ this.layerStructureCtrl.Name = "layerStructureCtrl";
+ //
+ // tileSetSettingsCtrl
+ //
+ this.tileSetSettingsCtrl.ContentBackgroundColor = System.Drawing.SystemColors.Control;
+ resources.ApplyResources(this.tileSetSettingsCtrl, "tileSetSettingsCtrl");
+ this.tileSetSettingsCtrl.HeaderBackgroundColor = System.Drawing.Color.LightSteelBlue;
+ this.tileSetSettingsCtrl.HeaderFont = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold);
+ this.tileSetSettingsCtrl.Name = "tileSetSettingsCtrl";
+ //
+ // TileSetDefinitionEditorCtrl
+ //
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
+ resources.ApplyResources(this, "$this");
+ this.Controls.Add(this.layerStructureCtrl);
+ this.Controls.Add(this.tileSetSettingsCtrl);
+ this.Name = "TileSetDefinitionEditorCtrl";
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+
+ private LayerStructureCtrl layerStructureCtrl;
+ private TileSetSettingsCtrl tileSetSettingsCtrl;
+ }
+}
Added: trunk/Tools/Maestro/Maestro.Editors/TileSetDefinition/TileSetDefinitionEditorCtrl.cs
===================================================================
--- trunk/Tools/Maestro/Maestro.Editors/TileSetDefinition/TileSetDefinitionEditorCtrl.cs (rev 0)
+++ trunk/Tools/Maestro/Maestro.Editors/TileSetDefinition/TileSetDefinitionEditorCtrl.cs 2015-02-18 10:23:23 UTC (rev 8545)
@@ -0,0 +1,58 @@
+#region Disclaimer / License
+
+// Copyright (C) 2015, Jackie Ng
+// http://trac.osgeo.org/mapguide/wiki/maestro, jumpinjackie at gmail.com
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+//
+
+#endregion Disclaimer / License
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+using OSGeo.MapGuide.MaestroAPI.Commands;
+
+namespace Maestro.Editors.TileSetDefinition
+{
+ public partial class TileSetDefinitionEditorCtrl : EditorBase
+ {
+ public TileSetDefinitionEditorCtrl()
+ {
+ InitializeComponent();
+ }
+
+ private IEditorService _edSvc;
+
+ public override void Bind(IEditorService service)
+ {
+ _edSvc = service;
+ _edSvc.RegisterCustomNotifier(this);
+
+ tileSetSettingsCtrl.Bind(_edSvc);
+ layerStructureCtrl.Bind(_edSvc);
+ layerStructureCtrl.RequestLayerOpen += OnRequestLayerOpen;
+ }
+
+ private void OnRequestLayerOpen(object sender, string layerResourceId)
+ {
+ _edSvc.OpenResource(layerResourceId);
+ }
+ }
+}
Added: trunk/Tools/Maestro/Maestro.Editors/TileSetDefinition/TileSetDefinitionEditorCtrl.resx
===================================================================
--- trunk/Tools/Maestro/Maestro.Editors/TileSetDefinition/TileSetDefinitionEditorCtrl.resx (rev 0)
+++ trunk/Tools/Maestro/Maestro.Editors/TileSetDefinition/TileSetDefinitionEditorCtrl.resx 2015-02-18 10:23:23 UTC (rev 8545)
@@ -0,0 +1,192 @@
+<?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.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
+ <data name="layerStructureCtrl.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
+ <value>Top</value>
+ </data>
+ <data name="layerStructureCtrl.HeaderText" xml:space="preserve">
+ <value>Layer Structure</value>
+ </data>
+ <assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
+ <data name="layerStructureCtrl.Location" type="System.Drawing.Point, System.Drawing">
+ <value>0, 319</value>
+ </data>
+ <data name="layerStructureCtrl.Size" type="System.Drawing.Size, System.Drawing">
+ <value>728, 286</value>
+ </data>
+ <assembly alias="mscorlib" name="mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
+ <data name="layerStructureCtrl.TabIndex" type="System.Int32, mscorlib">
+ <value>0</value>
+ </data>
+ <data name=">>layerStructureCtrl.Name" xml:space="preserve">
+ <value>layerStructureCtrl</value>
+ </data>
+ <data name=">>layerStructureCtrl.Type" xml:space="preserve">
+ <value>Maestro.Editors.TileSetDefinition.LayerStructureCtrl, Maestro.Editors, Version=6.0.0.0, Culture=neutral, PublicKeyToken=f526c48929fda856</value>
+ </data>
+ <data name=">>layerStructureCtrl.Parent" xml:space="preserve">
+ <value>$this</value>
+ </data>
+ <data name=">>layerStructureCtrl.ZOrder" xml:space="preserve">
+ <value>0</value>
+ </data>
+ <data name="tileSetSettingsCtrl.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
+ <value>Top</value>
+ </data>
+ <data name="tileSetSettingsCtrl.HeaderText" xml:space="preserve">
+ <value>Tile Set Settings</value>
+ </data>
+ <data name="tileSetSettingsCtrl.Location" type="System.Drawing.Point, System.Drawing">
+ <value>0, 0</value>
+ </data>
+ <data name="tileSetSettingsCtrl.Size" type="System.Drawing.Size, System.Drawing">
+ <value>728, 319</value>
+ </data>
+ <data name="tileSetSettingsCtrl.TabIndex" type="System.Int32, mscorlib">
+ <value>1</value>
+ </data>
+ <data name=">>tileSetSettingsCtrl.Name" xml:space="preserve">
+ <value>tileSetSettingsCtrl</value>
+ </data>
+ <data name=">>tileSetSettingsCtrl.Type" xml:space="preserve">
+ <value>Maestro.Editors.TileSetDefinition.TileSetSettingsCtrl, Maestro.Editors, Version=6.0.0.0, Culture=neutral, PublicKeyToken=f526c48929fda856</value>
+ </data>
+ <data name=">>tileSetSettingsCtrl.Parent" xml:space="preserve">
+ <value>$this</value>
+ </data>
+ <data name=">>tileSetSettingsCtrl.ZOrder" xml:space="preserve">
+ <value>1</value>
+ </data>
+ <metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+ <value>True</value>
+ </metadata>
+ <data name="$this.AutoScroll" type="System.Boolean, mscorlib">
+ <value>True</value>
+ </data>
+ <data name="$this.Size" type="System.Drawing.Size, System.Drawing">
+ <value>728, 393</value>
+ </data>
+ <data name=">>$this.Name" xml:space="preserve">
+ <value>TileSetDefinitionEditorCtrl</value>
+ </data>
+ <data name=">>$this.Type" xml:space="preserve">
+ <value>System.Windows.Forms.UserControl, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ </data>
+</root>
\ No newline at end of file
Added: trunk/Tools/Maestro/Maestro.Editors/TileSetDefinition/TileSetSettingsCtrl.Designer.cs
===================================================================
--- trunk/Tools/Maestro/Maestro.Editors/TileSetDefinition/TileSetSettingsCtrl.Designer.cs (rev 0)
+++ trunk/Tools/Maestro/Maestro.Editors/TileSetDefinition/TileSetSettingsCtrl.Designer.cs 2015-02-18 10:23:23 UTC (rev 8545)
@@ -0,0 +1,94 @@
+namespace Maestro.Editors.TileSetDefinition
+{
+ partial class TileSetSettingsCtrl
+ {
+ /// <summary>
+ /// Required designer variable.
+ /// </summary>
+ private System.ComponentModel.IContainer components = null;
+
+ /// <summary>
+ /// Clean up any resources being used.
+ /// </summary>
+ /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Component Designer generated code
+
+ /// <summary>
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ /// </summary>
+ private void InitializeComponent()
+ {
+ this.label1 = new System.Windows.Forms.Label();
+ this.grpSettings = new System.Windows.Forms.GroupBox();
+ this.txtProvider = new System.Windows.Forms.TextBox();
+ this.contentPanel.SuspendLayout();
+ this.SuspendLayout();
+ //
+ // contentPanel
+ //
+ this.contentPanel.Controls.Add(this.txtProvider);
+ this.contentPanel.Controls.Add(this.grpSettings);
+ this.contentPanel.Controls.Add(this.label1);
+ this.contentPanel.Size = new System.Drawing.Size(582, 292);
+ //
+ // label1
+ //
+ this.label1.AutoSize = true;
+ this.label1.Location = new System.Drawing.Point(23, 16);
+ this.label1.Name = "label1";
+ this.label1.Size = new System.Drawing.Size(46, 13);
+ this.label1.TabIndex = 0;
+ this.label1.Text = "Provider";
+ //
+ // grpSettings
+ //
+ this.grpSettings.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
+ | System.Windows.Forms.AnchorStyles.Left)
+ | System.Windows.Forms.AnchorStyles.Right)));
+ this.grpSettings.Location = new System.Drawing.Point(13, 47);
+ this.grpSettings.Name = "grpSettings";
+ this.grpSettings.Size = new System.Drawing.Size(554, 227);
+ this.grpSettings.TabIndex = 2;
+ this.grpSettings.TabStop = false;
+ this.grpSettings.Text = "Settings";
+ //
+ // txtProvider
+ //
+ this.txtProvider.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
+ | System.Windows.Forms.AnchorStyles.Right)));
+ this.txtProvider.Location = new System.Drawing.Point(93, 13);
+ this.txtProvider.Name = "txtProvider";
+ this.txtProvider.ReadOnly = true;
+ this.txtProvider.Size = new System.Drawing.Size(474, 20);
+ this.txtProvider.TabIndex = 3;
+ //
+ // TileSetSettingsCtrl
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.HeaderText = "Tile Set Settings";
+ this.Name = "TileSetSettingsCtrl";
+ this.Size = new System.Drawing.Size(582, 319);
+ this.contentPanel.ResumeLayout(false);
+ this.contentPanel.PerformLayout();
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+
+ private System.Windows.Forms.Label label1;
+ private System.Windows.Forms.GroupBox grpSettings;
+ private System.Windows.Forms.TextBox txtProvider;
+ }
+}
Added: trunk/Tools/Maestro/Maestro.Editors/TileSetDefinition/TileSetSettingsCtrl.cs
===================================================================
--- trunk/Tools/Maestro/Maestro.Editors/TileSetDefinition/TileSetSettingsCtrl.cs (rev 0)
+++ trunk/Tools/Maestro/Maestro.Editors/TileSetDefinition/TileSetSettingsCtrl.cs 2015-02-18 10:23:23 UTC (rev 8545)
@@ -0,0 +1,85 @@
+#region Disclaimer / License
+
+// Copyright (C) 2015, Jackie Ng
+// http://trac.osgeo.org/mapguide/wiki/maestro, jumpinjackie at gmail.com
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+//
+
+#endregion Disclaimer / License
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+using Maestro.Editors.Common;
+using OSGeo.MapGuide.MaestroAPI.Commands;
+using OSGeo.MapGuide.ObjectModels.Common;
+using Maestro.Editors.TileSetDefinition.Providers;
+using OSGeo.MapGuide.ObjectModels.TileSetDefinition;
+
+namespace Maestro.Editors.TileSetDefinition
+{
+ [ToolboxItem(false)]
+ internal partial class TileSetSettingsCtrl : EditorBindableCollapsiblePanel
+ {
+ public TileSetSettingsCtrl()
+ {
+ InitializeComponent();
+ }
+
+ private bool _init = false;
+ private ITileSetDefinition _tsd;
+
+ public override void Bind(IEditorService service)
+ {
+ service.RegisterCustomNotifier(this);
+ try
+ {
+ _init = true;
+ _tsd = (ITileSetDefinition)service.GetEditedResource();
+ var cmd = (IGetTileProviders)service.CurrentConnection.CreateCommand((int)CommandType.GetTileProviders);
+ var providers = cmd.Execute();
+
+ var provider = providers.TileProvider.FirstOrDefault(p => p.Name == _tsd.TileStoreParameters.TileProvider);
+ if (provider != null)
+ {
+ txtProvider.Text = provider.DisplayName;
+ LoadProviderCtrl(provider);
+ }
+ }
+ finally
+ {
+ _init = false;
+ }
+ }
+
+ private void LoadProviderCtrl(TileProvider provider)
+ {
+ var ctrl = MakeProviderCtrl(provider);
+ ctrl.Dock = DockStyle.Fill;
+ grpSettings.Controls.Clear();
+ grpSettings.Controls.Add(ctrl);
+ }
+
+ private Control MakeProviderCtrl(TileProvider provider)
+ {
+ return new GenericProviderCtrl(provider, _tsd, OnResourceChanged);
+ }
+ }
+}
Added: trunk/Tools/Maestro/Maestro.Editors/TileSetDefinition/TileSetSettingsCtrl.resx
===================================================================
--- trunk/Tools/Maestro/Maestro.Editors/TileSetDefinition/TileSetSettingsCtrl.resx (rev 0)
+++ trunk/Tools/Maestro/Maestro.Editors/TileSetDefinition/TileSetSettingsCtrl.resx 2015-02-18 10:23:23 UTC (rev 8545)
@@ -0,0 +1,120 @@
+<?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>
+</root>
\ No newline at end of file
Modified: trunk/Tools/Maestro/MgCooker/SetupRun.cs
===================================================================
--- trunk/Tools/Maestro/MgCooker/SetupRun.cs 2015-02-13 07:20:26 UTC (rev 8544)
+++ trunk/Tools/Maestro/MgCooker/SetupRun.cs 2015-02-18 10:23:23 UTC (rev 8545)
@@ -182,7 +182,7 @@
mn.ImageIndex = mn.SelectedImageIndex = 0;
mn.Tag = mdef;
- foreach (var g in baseMap.BaseMapLayerGroup)
+ foreach (var g in baseMap.BaseMapLayerGroups)
{
TreeNode gn = mn.Nodes.Add(g.Name);
gn.Tag = g;
Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Commands/CommandType.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Commands/CommandType.cs 2015-02-13 07:20:26 UTC (rev 8544)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Commands/CommandType.cs 2015-02-18 10:23:23 UTC (rev 8545)
@@ -70,6 +70,11 @@
/// <summary>
/// Describes the structure of an existing runtime map
/// </summary>
- DescribeRuntimeMap
+ DescribeRuntimeMap,
+
+ /// <summary>
+ /// Enumerates registered Tile Set Providers
+ /// </summary>
+ GetTileProviders
}
}
\ No newline at end of file
Added: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Commands/IGetTileProviders.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Commands/IGetTileProviders.cs (rev 0)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Commands/IGetTileProviders.cs 2015-02-18 10:23:23 UTC (rev 8545)
@@ -0,0 +1,42 @@
+#region Disclaimer / License
+
+// Copyright (C) 2015, Jackie Ng
+// http://trac.osgeo.org/mapguide/wiki/maestro, jumpinjackie at gmail.com
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+//
+
+#endregion Disclaimer / License
+using OSGeo.MapGuide.ObjectModels.Common;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace OSGeo.MapGuide.MaestroAPI.Commands
+{
+ /// <summary>
+ /// A command that enumerates the list of registered tile set providers
+ /// </summary>
+ public interface IGetTileProviders : ICommand
+ {
+ /// <summary>
+ /// Execute this command
+ /// </summary>
+ /// <returns></returns>
+ TileProviderList Execute();
+ }
+}
Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Mapping/RuntimeMap.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Mapping/RuntimeMap.cs 2015-02-13 07:20:26 UTC (rev 8544)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Mapping/RuntimeMap.cs 2015-02-18 10:23:23 UTC (rev 8545)
@@ -214,7 +214,7 @@
}
if (mdf.BaseMap != null)
{
- foreach (var group in mdf.BaseMap.BaseMapLayerGroup)
+ foreach (var group in mdf.BaseMap.BaseMapLayerGroups)
{
foreach (var layer in group.BaseMapLayer)
{
@@ -320,7 +320,7 @@
if (mdf.BaseMap != null)
{
var bm = mdf.BaseMap;
- foreach (var group in bm.BaseMapLayerGroup)
+ foreach (var group in bm.BaseMapLayerGroups)
{
if (group.HasLayers())
{
@@ -1356,7 +1356,7 @@
var change = new Change(type, param);
changes.Changes.Add(change);
- Debug.WriteLine("Tracked change for " + (isLayer ? "Layer " : "Group ") + objectId + " (type: " + type + ", value: " + param + ")");
+ //Debug.WriteLine("Tracked change for " + (isLayer ? "Layer " : "Group ") + objectId + " (type: " + type + ", value: " + param + ")");
this.IsDirty = true;
}
Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/OSGeo.MapGuide.MaestroAPI.csproj
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/OSGeo.MapGuide.MaestroAPI.csproj 2015-02-13 07:20:26 UTC (rev 8544)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/OSGeo.MapGuide.MaestroAPI.csproj 2015-02-18 10:23:23 UTC (rev 8545)
@@ -97,6 +97,7 @@
<Compile Include="Commands\CommandType.cs" />
<Compile Include="Commands\ExecuteLoadProcedure.cs" />
<Compile Include="Commands\ICommand.cs" />
+ <Compile Include="Commands\IGetTileProviders.cs" />
<Compile Include="Commands\NsDoc.cs" />
<Compile Include="CoordinateSystem\ActualCoordinateSystem.cs" />
<Compile Include="CoordinateSystem\DegreeBasedCoordinateSystem.cs" />
Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Resource/Validation/BaseMapDefinitionValidator.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Resource/Validation/BaseMapDefinitionValidator.cs 2015-02-13 07:20:26 UTC (rev 8544)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Resource/Validation/BaseMapDefinitionValidator.cs 2015-02-18 10:23:23 UTC (rev 8545)
@@ -113,7 +113,7 @@
if (mdef.BaseMap.ScaleCount == 0)
issues.Add(new ValidationIssue(mdef, ValidationStatus.Error, ValidationStatusCode.Error_MapDefinition_NoFiniteDisplayScales, Strings.MDF_NoFiniteDisplayScalesSpecified));
- foreach (IBaseMapGroup g in mdef.BaseMap.BaseMapLayerGroup)
+ foreach (IBaseMapGroup g in mdef.BaseMap.BaseMapLayerGroups)
{
foreach (IBaseMapLayer l in g.BaseMapLayer)
layers.Add(l);
Added: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI.Http/Commands/HttpGetTileProviders.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI.Http/Commands/HttpGetTileProviders.cs (rev 0)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI.Http/Commands/HttpGetTileProviders.cs 2015-02-18 10:23:23 UTC (rev 8545)
@@ -0,0 +1,51 @@
+#region Disclaimer / License
+
+// Copyright (C) 2015, Jackie Ng
+// http://trac.osgeo.org/mapguide/wiki/maestro, jumpinjackie at gmail.com
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+//
+
+#endregion Disclaimer / License
+using OSGeo.MapGuide.MaestroAPI.Commands;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace OSGeo.MapGuide.MaestroAPI.Http.Commands
+{
+ public class HttpGetTileProviders : IGetTileProviders
+ {
+ private readonly HttpServerConnection _conn;
+
+ public HttpGetTileProviders(HttpServerConnection conn)
+ {
+ _conn = conn;
+ }
+
+
+ public ObjectModels.Common.TileProviderList Execute()
+ {
+ return _conn.GetTileProviders();
+ }
+
+ public IServerConnection Parent
+ {
+ get { return _conn; }
+ }
+ }
+}
Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI.Http/HttpCapabilities.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI.Http/HttpCapabilities.cs 2015-02-13 07:20:26 UTC (rev 8544)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI.Http/HttpCapabilities.cs 2015-02-18 10:23:23 UTC (rev 8545)
@@ -52,6 +52,12 @@
cmds.Add((int)CommandType.CreateRuntimeMap);
cmds.Add((int)CommandType.DescribeRuntimeMap);
}
+
+ //GetTileProviders available with 3.0
+ if (_implConn.SiteVersion >= new Version(3, 0))
+ {
+ cmds.Add((int)CommandType.GetTileProviders);
+ }
return cmds.ToArray();
}
}
Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI.Http/HttpServerConnection.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI.Http/HttpServerConnection.cs 2015-02-13 07:20:26 UTC (rev 8544)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI.Http/HttpServerConnection.cs 2015-02-18 10:23:23 UTC (rev 8545)
@@ -1969,6 +1969,8 @@
return new HttpCreateRuntimeMap(this);
else if (ct == CommandType.DescribeRuntimeMap)
return new HttpDescribeRuntimeMap(this);
+ else if (ct == CommandType.GetTileProviders)
+ return new HttpGetTileProviders(this);
return base.CreateCommand(cmdType);
}
@@ -2027,5 +2029,14 @@
{
return new HttpResourcePreviewUrlGenerator(this, m_reqBuilder.HostURI);
}
+
+ internal TileProviderList GetTileProviders()
+ {
+ var req = m_reqBuilder.GetTileProviders();
+ using (var s = this.OpenRead(req))
+ {
+ return this.DeserializeObject<OSGeo.MapGuide.ObjectModels.Common.TileProviderList>(s);
+ }
+ }
}
}
\ No newline at end of file
Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI.Http/OSGeo.MapGuide.MaestroAPI.Http.csproj
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI.Http/OSGeo.MapGuide.MaestroAPI.Http.csproj 2015-02-13 07:20:26 UTC (rev 8544)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI.Http/OSGeo.MapGuide.MaestroAPI.Http.csproj 2015-02-18 10:23:23 UTC (rev 8545)
@@ -78,6 +78,7 @@
<Compile Include="Commands\HttpCreateRuntimeMap.cs" />
<Compile Include="Commands\HttpDescribeRuntimeMap.cs" />
<Compile Include="Commands\HttpGetFdoCacheInfo.cs" />
+ <Compile Include="Commands\HttpGetTileProviders.cs" />
<Compile Include="Files.Designer.cs">
<AutoGen>True</AutoGen>
<DesignTime>True</DesignTime>
Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI.Http/RequestBuilder.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI.Http/RequestBuilder.cs 2015-02-13 07:20:26 UTC (rev 8544)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI.Http/RequestBuilder.cs 2015-02-18 10:23:23 UTC (rev 8545)
@@ -1785,5 +1785,15 @@
return m_hosturi + "?" + EncodeParameters(param);
}
+
+ internal string GetTileProviders()
+ {
+ NameValueCollection param = new NameValueCollection();
+ param.Add("OPERATION", "GETTILEPROVIDERS");
+ param.Add("VERSION", "3.0.0");
+ param.Add("SESSION", m_sessionID);
+
+ return m_hosturi + "?" + EncodeParameters(param);
+ }
}
}
\ No newline at end of file
Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI.Tests/Mapping/RuntimeMapTests.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI.Tests/Mapping/RuntimeMapTests.cs 2015-02-13 07:20:26 UTC (rev 8544)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI.Tests/Mapping/RuntimeMapTests.cs 2015-02-18 10:23:23 UTC (rev 8545)
@@ -43,7 +43,7 @@
var layers = new Dictionary<string, ILayerDefinition>();
var mdf = (IMapDefinition)ObjectFactory.Deserialize(ResourceTypes.MapDefinition.ToString(), File.OpenRead("UserTestData\\TestTiledMap.xml"));
mdf.ResourceID = "Library://UnitTest/Test.MapDefinition";
- foreach (var lyr in mdf.BaseMap.BaseMapLayerGroup.First().BaseMapLayer)
+ foreach (var lyr in mdf.BaseMap.BaseMapLayerGroups.First().BaseMapLayer)
{
var ldf = ObjectFactory.CreateDefaultLayer(LayerType.Vector, new Version(1, 0, 0));
ldf.ResourceID = lyr.ResourceId;
Modified: trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModel.Tests/TileSetDefinitionTests.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModel.Tests/TileSetDefinitionTests.cs 2015-02-13 07:20:26 UTC (rev 8544)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModel.Tests/TileSetDefinitionTests.cs 2015-02-18 10:23:23 UTC (rev 8545)
@@ -113,8 +113,8 @@
Assert.AreEqual(43.6868578621819, ext.MinY);
Assert.AreEqual(43.8037962206133, ext.MaxY);
- Assert.AreEqual(1, tsd.BaseGroups.Count());
- var grp = tsd.BaseGroups.First();
+ Assert.AreEqual(1, tsd.BaseMapLayerGroups.Count());
+ var grp = tsd.BaseMapLayerGroups.First();
Assert.AreEqual("BaseLayers", grp.Name);
Assert.True(grp.Visible);
Assert.True(grp.ShowInLegend);
Added: trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/Common/TileProviderList.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/Common/TileProviderList.cs (rev 0)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/Common/TileProviderList.cs 2015-02-18 10:23:23 UTC (rev 8545)
@@ -0,0 +1,235 @@
+#region Disclaimer / License
+
+// Copyright (C) 2015, Jackie Ng
+// http://trac.osgeo.org/mapguide/wiki/maestro, jumpinjackie at gmail.com
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+//
+
+#endregion Disclaimer / License
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace OSGeo.MapGuide.ObjectModels.Common
+{
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
+ [System.Xml.Serialization.XmlRootAttribute(Namespace = "", IsNullable = false)]
+ public partial class TileProviderList
+ {
+
+ private TileProvider[] tileProviderField;
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlElementAttribute("TileProvider")]
+ public TileProvider[] TileProvider
+ {
+ get
+ {
+ return this.tileProviderField;
+ }
+ set
+ {
+ this.tileProviderField = value;
+ }
+ }
+ }
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
+ public partial class TileProvider
+ {
+
+ private string nameField;
+
+ private string displayNameField;
+
+ private string descriptionField;
+
+ private TileProviderConnectionProperty[] connectionPropertiesField;
+
+ /// <remarks/>
+ public string Name
+ {
+ get
+ {
+ return this.nameField;
+ }
+ set
+ {
+ this.nameField = value;
+ }
+ }
+
+ /// <remarks/>
+ public string DisplayName
+ {
+ get
+ {
+ return this.displayNameField;
+ }
+ set
+ {
+ this.displayNameField = value;
+ }
+ }
+
+ /// <remarks/>
+ public string Description
+ {
+ get
+ {
+ return this.descriptionField;
+ }
+ set
+ {
+ this.descriptionField = value;
+ }
+ }
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlArrayItemAttribute("ConnectionProperty", IsNullable = false)]
+ public TileProviderConnectionProperty[] ConnectionProperties
+ {
+ get
+ {
+ return this.connectionPropertiesField;
+ }
+ set
+ {
+ this.connectionPropertiesField = value;
+ }
+ }
+ }
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
+ public partial class TileProviderConnectionProperty
+ {
+
+ private string nameField;
+
+ private string localizedNameField;
+
+ private string defaultValueField;
+
+ private string[] valueField;
+
+ private bool enumerableField;
+
+ private bool protectedField;
+
+ private bool requiredField;
+
+ /// <remarks/>
+ public string Name
+ {
+ get
+ {
+ return this.nameField;
+ }
+ set
+ {
+ this.nameField = value;
+ }
+ }
+
+ /// <remarks/>
+ public string LocalizedName
+ {
+ get
+ {
+ return this.localizedNameField;
+ }
+ set
+ {
+ this.localizedNameField = value;
+ }
+ }
+
+ /// <remarks/>
+ public string DefaultValue
+ {
+ get
+ {
+ return this.defaultValueField;
+ }
+ set
+ {
+ this.defaultValueField = value;
+ }
+ }
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlElementAttribute("Value")]
+ public string[] Value
+ {
+ get
+ {
+ return this.valueField;
+ }
+ set
+ {
+ this.valueField = value;
+ }
+ }
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public bool Enumerable
+ {
+ get
+ {
+ return this.enumerableField;
+ }
+ set
+ {
+ this.enumerableField = value;
+ }
+ }
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public bool Protected
+ {
+ get
+ {
+ return this.protectedField;
+ }
+ set
+ {
+ this.protectedField = value;
+ }
+ }
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public bool Required
+ {
+ get
+ {
+ return this.requiredField;
+ }
+ set
+ {
+ this.requiredField = value;
+ }
+ }
+ }
+}
Modified: trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/MapDefinition/MapDefinitionInterfaces.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/MapDefinition/MapDefinitionInterfaces.cs 2015-02-13 07:20:26 UTC (rev 8544)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/MapDefinition/MapDefinitionInterfaces.cs 2015-02-18 10:23:23 UTC (rev 8545)
@@ -21,6 +21,7 @@
#endregion Disclaimer / License
using OSGeo.MapGuide.ObjectModels.Common;
+using OSGeo.MapGuide.ObjectModels.TileSetDefinition;
using OSGeo.MapGuide.ObjectModels.WatermarkDefinition;
using System;
using System.Collections.Generic;
@@ -358,10 +359,10 @@
/// <param name="map"></param>
/// <param name="layer"></param>
/// <returns></returns>
- public static IBaseMapGroup GetGroupForLayer(this IBaseMapDefinition map, IBaseMapLayer layer)
+ public static IBaseMapGroup GetGroupForLayer(this ITileSetAbstract map, IBaseMapLayer layer)
{
Check.ArgumentNotNull(map, "map"); //NOXLATE
- foreach (var group in map.BaseMapLayerGroup)
+ foreach (var group in map.BaseMapLayerGroups)
{
foreach (var tl in group.BaseMapLayer)
{
@@ -394,7 +395,7 @@
if (!map.HasGroups())
return false;
- foreach (var group in map.BaseMapLayerGroup)
+ foreach (var group in map.BaseMapLayerGroups)
{
if (group.HasLayers())
return true;
@@ -410,7 +411,7 @@
public static bool HasGroups(this IBaseMapDefinition map)
{
Check.ArgumentNotNull(map, "map"); //NOXLATE
- return new List<IBaseMapGroup>(map.BaseMapLayerGroup).Count > 0;
+ return new List<IBaseMapGroup>(map.BaseMapLayerGroups).Count > 0;
}
/// <summary>
@@ -418,10 +419,10 @@
/// </summary>
/// <param name="map"></param>
/// <returns></returns>
- public static IBaseMapGroup GetFirstGroup(this IBaseMapDefinition map)
+ public static IBaseMapGroup GetFirstGroup(this ITileSetAbstract map)
{
Check.ArgumentNotNull(map, "map"); //NOXLATE
- var list = new List<IBaseMapGroup>(map.BaseMapLayerGroup);
+ var list = new List<IBaseMapGroup>(map.BaseMapLayerGroups);
if (list.Count > 0)
return list[0];
return null;
@@ -433,12 +434,12 @@
/// <param name="map"></param>
/// <param name="layerName"></param>
/// <returns></returns>
- public static bool LayerExists(this IBaseMapDefinition map, string layerName)
+ public static bool LayerExists(this ITileSetAbstract map, string layerName)
{
Check.ArgumentNotNull(map, "map"); //NOXLATE
Check.ArgumentNotEmpty(layerName, "layerName"); //NOXLATE
- foreach (var group in map.BaseMapLayerGroup)
+ foreach (var group in map.BaseMapLayerGroups)
{
foreach (var layer in group.BaseMapLayer)
{
@@ -459,7 +460,7 @@
{
Check.ArgumentNotNull(map, "map"); //NOXLATE
Check.ArgumentNotEmpty(groupName, "groupName"); //NOXLATE
- foreach (var group in map.BaseMapLayerGroup)
+ foreach (var group in map.BaseMapLayerGroups)
{
if (groupName.Equals(group.Name))
return group;
@@ -477,7 +478,7 @@
{
Check.ArgumentNotNull(map, "map"); //NOXLATE
Check.ArgumentNotEmpty(groupName, "groupName"); //NOXLATE
- foreach (var group in map.BaseMapLayerGroup)
+ foreach (var group in map.BaseMapLayerGroups)
{
if (groupName.Equals(group.Name))
return true;
@@ -496,7 +497,7 @@
Check.ArgumentNotNull(map, "map"); //NOXLATE
Check.ArgumentNotEmpty(groupName, "groupName"); //NOXLATE
- foreach (var group in map.BaseMapLayerGroup)
+ foreach (var group in map.BaseMapLayerGroups)
{
if (groupName.Equals(group.Name))
{
@@ -787,14 +788,9 @@
/// <summary>
/// Represents the tiled map portion of the Map Definition
/// </summary>
- public interface IBaseMapDefinition
+ public interface IBaseMapDefinition : ITileSetAbstract
{
/// <summary>
- /// Gets the finite display scales
- /// </summary>
- IEnumerable<double> FiniteDisplayScale { get; }
-
- /// <summary>
/// Adds the finite display scale.
/// </summary>
/// <param name="value">The value.</param>
@@ -826,38 +822,6 @@
double GetScaleAt(int index);
/// <summary>
- /// Gets the base map layer groups.
- /// </summary>
- /// <value>The base map layer groups.</value>
- IEnumerable<IBaseMapGroup> BaseMapLayerGroup { get; }
-
- /// <summary>
- /// Gets the group count.
- /// </summary>
- /// <value>The group count.</value>
- int GroupCount { get; }
-
- /// <summary>
- /// Gets the group at the specified index
- /// </summary>
- /// <param name="index">The index.</param>
- /// <returns></returns>
- IBaseMapGroup GetGroupAt(int index);
-
- /// <summary>
- /// Adds the base layer group.
- /// </summary>
- /// <param name="name">The name.</param>
- /// <returns></returns>
- IBaseMapGroup AddBaseLayerGroup(string name);
-
- /// <summary>
- /// Removes the base layer group.
- /// </summary>
- /// <param name="group">The group.</param>
- void RemoveBaseLayerGroup(IBaseMapGroup group);
-
- /// <summary>
/// Removes all scales.
/// </summary>
void RemoveAllScales();
Modified: trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/MapDefinition/v1_0_0/MapDefinitionImpl.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/MapDefinition/v1_0_0/MapDefinitionImpl.cs 2015-02-13 07:20:26 UTC (rev 8544)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/MapDefinition/v1_0_0/MapDefinitionImpl.cs 2015-02-18 10:23:23 UTC (rev 8545)
@@ -23,6 +23,7 @@
#define MDF_100
using OSGeo.MapGuide.ObjectModels.Common;
using OSGeo.MapGuide.ObjectModels.LayerDefinition;
+using OSGeo.MapGuide.ObjectModels.TileSetDefinition;
using System;
using System.Collections.Generic;
using System.ComponentModel;
@@ -760,12 +761,12 @@
}
[XmlIgnore]
- int IBaseMapDefinition.GroupCount
+ int ITileSetAbstract.GroupCount
{
get { return this.BaseMapLayerGroup.Count; }
}
- IBaseMapGroup IBaseMapDefinition.GetGroupAt(int index)
+ IBaseMapGroup ITileSetAbstract.GetGroupAt(int index)
{
return this.BaseMapLayerGroup[index];
}
@@ -776,18 +777,6 @@
get { return this.FiniteDisplayScale.Count; }
}
- [XmlIgnore]
- IEnumerable<double> IBaseMapDefinition.FiniteDisplayScale
- {
- get
- {
- foreach (var scale in this.FiniteDisplayScale)
- {
- yield return scale;
- }
- }
- }
-
public void AddFiniteDisplayScale(double value)
{
this.FiniteDisplayScale.Add(value);
@@ -805,10 +794,33 @@
}
[XmlIgnore]
- IEnumerable<IBaseMapGroup> IBaseMapDefinition.BaseMapLayerGroup
+ IEnumerable<double> ITileSetAbstract.FiniteDisplayScale
{
get
{
+ foreach (double dbl in this.FiniteDisplayScale)
+ {
+ yield return dbl;
+ }
+ }
+ }
+
+ IEnumerable<IBaseMapLayer> ITileSetAbstract.GetLayersForGroup(string groupName)
+ {
+ return this.GetLayersForGroup(groupName);
+ }
+
+ [XmlIgnore]
+ bool ITileSetAbstract.SupportsCustomFiniteDisplayScales
+ {
+ get { return true; }
+ }
+
+ [XmlIgnore]
+ IEnumerable<IBaseMapGroup> ITileSetAbstract.BaseMapLayerGroups
+ {
+ get
+ {
foreach (var grp in this.BaseMapLayerGroup)
{
yield return grp;
Modified: trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/MapDefinition/v2_3_0/MapDefinitionImpl.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/MapDefinition/v2_3_0/MapDefinitionImpl.cs 2015-02-13 07:20:26 UTC (rev 8544)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/MapDefinition/v2_3_0/MapDefinitionImpl.cs 2015-02-18 10:23:23 UTC (rev 8545)
@@ -23,6 +23,7 @@
#define MDF_230
using OSGeo.MapGuide.ObjectModels.Common;
using OSGeo.MapGuide.ObjectModels.LayerDefinition;
+using OSGeo.MapGuide.ObjectModels.TileSetDefinition;
using OSGeo.MapGuide.ObjectModels.WatermarkDefinition;
using System;
using System.Collections.Generic;
@@ -761,12 +762,12 @@
}
[XmlIgnore]
- int IBaseMapDefinition.GroupCount
+ int ITileSetAbstract.GroupCount
{
get { return this.BaseMapLayerGroup.Count; }
}
- IBaseMapGroup IBaseMapDefinition.GetGroupAt(int index)
+ IBaseMapGroup ITileSetAbstract.GetGroupAt(int index)
{
return this.BaseMapLayerGroup[index];
}
@@ -777,18 +778,6 @@
get { return this.FiniteDisplayScale.Count; }
}
- [XmlIgnore]
- IEnumerable<double> IBaseMapDefinition.FiniteDisplayScale
- {
- get
- {
- foreach (var scale in this.FiniteDisplayScale)
- {
- yield return scale;
- }
- }
- }
-
public void AddFiniteDisplayScale(double value)
{
this.FiniteDisplayScale.Add(value);
@@ -806,10 +795,33 @@
}
[XmlIgnore]
- IEnumerable<IBaseMapGroup> IBaseMapDefinition.BaseMapLayerGroup
+ IEnumerable<double> ITileSetAbstract.FiniteDisplayScale
{
get
{
+ foreach (double dbl in this.FiniteDisplayScale)
+ {
+ yield return dbl;
+ }
+ }
+ }
+
+ IEnumerable<IBaseMapLayer> ITileSetAbstract.GetLayersForGroup(string groupName)
+ {
+ return this.GetLayersForGroup(groupName);
+ }
+
+ [XmlIgnore]
+ bool ITileSetAbstract.SupportsCustomFiniteDisplayScales
+ {
+ get { return true; }
+ }
+
+ [XmlIgnore]
+ IEnumerable<IBaseMapGroup> ITileSetAbstract.BaseMapLayerGroups
+ {
+ get
+ {
foreach (var grp in this.BaseMapLayerGroup)
{
yield return grp;
Modified: trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/MapDefinition/v2_4_0/MapDefinitionImpl.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/MapDefinition/v2_4_0/MapDefinitionImpl.cs 2015-02-13 07:20:26 UTC (rev 8544)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/MapDefinition/v2_4_0/MapDefinitionImpl.cs 2015-02-18 10:23:23 UTC (rev 8545)
@@ -23,6 +23,7 @@
#define MDF_240
using OSGeo.MapGuide.ObjectModels.Common;
using OSGeo.MapGuide.ObjectModels.LayerDefinition;
+using OSGeo.MapGuide.ObjectModels.TileSetDefinition;
using OSGeo.MapGuide.ObjectModels.WatermarkDefinition;
using System;
using System.Collections.Generic;
@@ -762,12 +763,12 @@
}
[XmlIgnore]
- int IBaseMapDefinition.GroupCount
+ int ITileSetAbstract.GroupCount
{
get { return this.BaseMapLayerGroup.Count; }
}
- IBaseMapGroup IBaseMapDefinition.GetGroupAt(int index)
+ IBaseMapGroup ITileSetAbstract.GetGroupAt(int index)
{
return this.BaseMapLayerGroup[index];
}
@@ -778,18 +779,6 @@
get { return this.FiniteDisplayScale.Count; }
}
- [XmlIgnore]
- IEnumerable<double> IBaseMapDefinition.FiniteDisplayScale
- {
- get
- {
- foreach (var scale in this.FiniteDisplayScale)
- {
- yield return scale;
- }
- }
- }
-
public void AddFiniteDisplayScale(double value)
{
this.FiniteDisplayScale.Add(value);
@@ -807,10 +796,33 @@
}
[XmlIgnore]
- IEnumerable<IBaseMapGroup> IBaseMapDefinition.BaseMapLayerGroup
+ IEnumerable<double> ITileSetAbstract.FiniteDisplayScale
{
get
{
+ foreach (double dbl in this.FiniteDisplayScale)
+ {
+ yield return dbl;
+ }
+ }
+ }
+
+ IEnumerable<IBaseMapLayer> ITileSetAbstract.GetLayersForGroup(string groupName)
+ {
+ return this.GetLayersForGroup(groupName);
+ }
+
+ [XmlIgnore]
+ bool ITileSetAbstract.SupportsCustomFiniteDisplayScales
+ {
+ get { return true; }
+ }
+
+ [XmlIgnore]
+ IEnumerable<IBaseMapGroup> ITileSetAbstract.BaseMapLayerGroups
+ {
+ get
+ {
foreach (var grp in this.BaseMapLayerGroup)
{
yield return grp;
Modified: trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/MapDefinition/v3_0_0/MapDefinitionImpl.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/MapDefinition/v3_0_0/MapDefinitionImpl.cs 2015-02-13 07:20:26 UTC (rev 8544)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/MapDefinition/v3_0_0/MapDefinitionImpl.cs 2015-02-18 10:23:23 UTC (rev 8545)
@@ -23,6 +23,7 @@
#define MDF_240
using OSGeo.MapGuide.ObjectModels.Common;
using OSGeo.MapGuide.ObjectModels.LayerDefinition;
+using OSGeo.MapGuide.ObjectModels.TileSetDefinition;
using OSGeo.MapGuide.ObjectModels.WatermarkDefinition;
using System;
using System.Collections.Generic;
@@ -794,12 +795,12 @@
}
[XmlIgnore]
- int IBaseMapDefinition.GroupCount
+ int ITileSetAbstract.GroupCount
{
get { return this.BaseMapLayerGroup.Count; }
}
- IBaseMapGroup IBaseMapDefinition.GetGroupAt(int index)
+ IBaseMapGroup ITileSetAbstract.GetGroupAt(int index)
{
return this.BaseMapLayerGroup[index];
}
@@ -810,18 +811,6 @@
get { return this.FiniteDisplayScale.Count; }
}
- [XmlIgnore]
- IEnumerable<double> IBaseMapDefinition.FiniteDisplayScale
- {
- get
- {
- foreach (var scale in this.FiniteDisplayScale)
- {
- yield return scale;
- }
- }
- }
-
public void AddFiniteDisplayScale(double value)
{
this.FiniteDisplayScale.Add(value);
@@ -839,10 +828,33 @@
}
[XmlIgnore]
- IEnumerable<IBaseMapGroup> IBaseMapDefinition.BaseMapLayerGroup
+ IEnumerable<double> ITileSetAbstract.FiniteDisplayScale
{
get
{
+ foreach (double dbl in this.FiniteDisplayScale)
+ {
+ yield return dbl;
+ }
+ }
+ }
+
+ IEnumerable<IBaseMapLayer> ITileSetAbstract.GetLayersForGroup(string groupName)
+ {
+ return this.GetLayersForGroup(groupName);
+ }
+
+ [XmlIgnore]
+ bool ITileSetAbstract.SupportsCustomFiniteDisplayScales
+ {
+ get { return true; }
+ }
+
+ [XmlIgnore]
+ IEnumerable<IBaseMapGroup> ITileSetAbstract.BaseMapLayerGroups
+ {
+ get
+ {
foreach (var grp in this.BaseMapLayerGroup)
{
yield return grp;
Modified: trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/OSGeo.MapGuide.ObjectModels.csproj
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/OSGeo.MapGuide.ObjectModels.csproj 2015-02-13 07:20:26 UTC (rev 8544)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/OSGeo.MapGuide.ObjectModels.csproj 2015-02-18 10:23:23 UTC (rev 8545)
@@ -221,6 +221,7 @@
<Compile Include="Common\ResourceItems.cs" />
<Compile Include="Common\ResourceList.cs" />
<Compile Include="Common\ResourcePackageManifest.cs" />
+ <Compile Include="Common\TileProviderList.cs" />
<Compile Include="Common\UnmanagedDataList.cs" />
<Compile Include="DrawingSource\v1_0_0\DrawingSourceImpl.cs" />
<Compile Include="DrawingSource\DrawingSourceInterfaces.cs" />
Modified: trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/TileSetDefinition/TileSetInterfaces.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/TileSetDefinition/TileSetInterfaces.cs 2015-02-13 07:20:26 UTC (rev 8544)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/TileSetDefinition/TileSetInterfaces.cs 2015-02-18 10:23:23 UTC (rev 8545)
@@ -31,13 +31,11 @@
namespace OSGeo.MapGuide.ObjectModels.TileSetDefinition
{
- public interface ITileSetDefinition : IResource
+ public interface ITileSetDefinition : IResource, ITileSetAbstract
{
ITileStoreParameters TileStoreParameters { get; }
IEnvelope Extents { get; set; }
-
- IEnumerable<IBaseMapGroup> BaseGroups { get; }
}
public interface ITileStoreParameters
@@ -55,9 +53,79 @@
event EventHandler ParametersChanged;
}
+ public interface ITileSetAbstract
+ {
+ IEnumerable<double> FiniteDisplayScale { get; }
+
+ bool SupportsCustomFiniteDisplayScales { get; }
+
+ IEnumerable<IBaseMapGroup> BaseMapLayerGroups { get; }
+
+ IEnumerable<IBaseMapLayer> GetLayersForGroup(string groupName);
+
+ /// <summary>
+ /// Gets the group count.
+ /// </summary>
+ /// <value>The group count.</value>
+ int GroupCount { get; }
+
+ /// <summary>
+ /// Gets the group at the specified index
+ /// </summary>
+ /// <param name="index">The index.</param>
+ /// <returns></returns>
+ IBaseMapGroup GetGroupAt(int index);
+
+ /// <summary>
+ /// Adds the base layer group.
+ /// </summary>
+ /// <param name="name">The name.</param>
+ /// <returns></returns>
+ IBaseMapGroup AddBaseLayerGroup(string name);
+
+ /// <summary>
+ /// Removes the base layer group.
+ /// </summary>
+ /// <param name="group">The group.</param>
+ void RemoveBaseLayerGroup(IBaseMapGroup group);
+ }
+
public static class ExtensionMethods
{
/// <summary>
+ /// Removes the given base layer group from the Map Definition
+ /// </summary>
+ /// <param name="map"></param>
+ /// <param name="group"></param>
+ /// <param name="bDetachIfEmpty"></param>
+ public static void RemoveBaseLayerGroup(this ITileSetDefinition map, IBaseMapGroup group)
+ {
+ Check.ArgumentNotNull(map, "map"); //NOXLATE
+ if (null == group)
+ return;
+
+ map.RemoveBaseLayerGroup(group);
+ }
+
+ /// <summary>
+ /// Gets whether the specified base group exists in the tile set
+ /// </summary>
+ /// <param name="tileSet"></param>
+ /// <param name="groupName"></param>
+ /// <returns></returns>
+ public static bool GroupExists(this ITileSetDefinition tileSet, string groupName)
+ {
+ Check.ArgumentNotNull(tileSet, "map"); //NOXLATE
+ Check.ArgumentNotEmpty(groupName, "groupName"); //NOXLATE
+ foreach (var group in tileSet.BaseMapLayerGroups)
+ {
+ if (groupName.Equals(group.Name))
+ return true;
+ }
+ return false;
+ }
+
+ /// <summary>
/// Gets the tile set parameter of the specified name
/// </summary>
/// <param name="tileSet"></param>
Modified: trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/TileSetDefinition/v3_0_0/TileSetImpl.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/TileSetDefinition/v3_0_0/TileSetImpl.cs 2015-02-13 07:20:26 UTC (rev 8544)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/TileSetDefinition/v3_0_0/TileSetImpl.cs 2015-02-18 10:23:23 UTC (rev 8545)
@@ -45,13 +45,25 @@
},
Extents = new Box2DType() { MaxX = 0.0, MaxY = 0.0, MinX = 0.0, MinY = 0.0 },
BaseMapLayerGroup = new System.ComponentModel.BindingList<BaseMapLayerGroupCommonType>()
+ {
+ new BaseMapLayerGroupCommonType()
+ {
+ Name = "Base Layer Group", //NOXLATE
+ LegendLabel = "Base Layer Group", //NOXLATE
+ Visible = true,
+ ShowInLegend = true,
+ ExpandInLegend = true,
+ BaseMapLayer = new System.ComponentModel.BindingList<BaseMapLayerType>()
+ }
+ }
};
}
- [XmlIgnore]
+ [XmlAttribute("noNamespaceSchemaLocation", Namespace = "http://www.w3.org/2001/XMLSchema-instance")] //NOXLATE
public string ValidatingSchema
{
get { return "TileSetDefinition-3.0.0.xsd"; } //NOXLATE
+ set { }
}
private string _resId;
@@ -142,8 +154,38 @@
}
}
- public IEnumerable<IBaseMapGroup> BaseGroups
+ public IEnumerable<IBaseMapLayer> GetLayersForGroup(string groupName)
{
+ foreach (var grp in this.BaseMapLayerGroup)
+ {
+ if (grp.Name == groupName)
+ {
+ foreach (var layer in grp.BaseMapLayer)
+ {
+ yield return layer;
+ }
+ }
+ }
+ }
+
+ public IEnumerable<double> FiniteDisplayScale
+ {
+ get
+ {
+ return this.GetDefaultFiniteScaleList();
+ }
+ }
+
+ public bool SupportsCustomFiniteDisplayScales
+ {
+ get
+ {
+ return false;
+ }
+ }
+
+ public IEnumerable<IBaseMapGroup> BaseMapLayerGroups
+ {
get
{
if (this.BaseMapLayerGroup != null )
@@ -155,6 +197,38 @@
}
}
}
+
+
+ public int GroupCount
+ {
+ get { return this.BaseMapLayerGroup.Count; }
+ }
+
+ public IBaseMapGroup GetGroupAt(int index)
+ {
+ return this.BaseMapLayerGroup[index];
+ }
+
+ public IBaseMapGroup AddBaseLayerGroup(string name)
+ {
+ var grp = new BaseMapLayerGroupCommonType()
+ {
+ Name = name,
+ LegendLabel = name,
+ BaseMapLayer = new System.ComponentModel.BindingList<BaseMapLayerType>()
+ };
+ this.BaseMapLayerGroup.Add(grp);
+ return grp;
+ }
+
+ public void RemoveBaseLayerGroup(IBaseMapGroup group)
+ {
+ var grp = group as BaseMapLayerGroupCommonType;
+ if (grp != null)
+ {
+ this.BaseMapLayerGroup.Remove(grp);
+ }
+ }
}
partial class Box2DType : IEnvelope
More information about the mapguide-commits
mailing list