[mapguide-commits] r7997 - in trunk/Tools/Maestro/Maestro.Editors: . LayerDefinition LayerDefinition/Vector LayerDefinition/Vector/GridEditor LayerDefinition/Vector/StyleEditors Properties Resources

svn_mapguide at osgeo.org svn_mapguide at osgeo.org
Sat Mar 29 07:00:47 PDT 2014


Author: jng
Date: 2014-03-29 07:00:46 -0700 (Sat, 29 Mar 2014)
New Revision: 7997

Added:
   trunk/Tools/Maestro/Maestro.Editors/LayerDefinition/LayerEditorSettings.cs
   trunk/Tools/Maestro/Maestro.Editors/LayerDefinition/Vector/GridEditor/
   trunk/Tools/Maestro/Maestro.Editors/LayerDefinition/Vector/GridEditor/RuleGridView.Designer.cs
   trunk/Tools/Maestro/Maestro.Editors/LayerDefinition/Vector/GridEditor/RuleGridView.cs
   trunk/Tools/Maestro/Maestro.Editors/LayerDefinition/Vector/GridEditor/RuleGridView.resx
   trunk/Tools/Maestro/Maestro.Editors/LayerDefinition/Vector/GridEditor/RuleModel.cs
   trunk/Tools/Maestro/Maestro.Editors/LayerDefinition/Vector/GridEditor/VectorScaleRangeGrid.Designer.cs
   trunk/Tools/Maestro/Maestro.Editors/LayerDefinition/Vector/GridEditor/VectorScaleRangeGrid.cs
   trunk/Tools/Maestro/Maestro.Editors/LayerDefinition/Vector/GridEditor/VectorScaleRangeGrid.resx
   trunk/Tools/Maestro/Maestro.Editors/Resources/document-tree.png
   trunk/Tools/Maestro/Maestro.Editors/Resources/theme.png
Modified:
   trunk/Tools/Maestro/Maestro.Editors/LayerDefinition/Vector/FeaturePreviewRender.cs
   trunk/Tools/Maestro/Maestro.Editors/LayerDefinition/Vector/StyleEditors/AreaFeatureStyleEditor.cs
   trunk/Tools/Maestro/Maestro.Editors/LayerDefinition/Vector/StyleEditors/LineFeatureStyleEditor.cs
   trunk/Tools/Maestro/Maestro.Editors/LayerDefinition/Vector/StyleEditors/PointFeatureStyleEditor.cs
   trunk/Tools/Maestro/Maestro.Editors/LayerDefinition/Vector/VectorLayerStyleSectionCtrl.Designer.cs
   trunk/Tools/Maestro/Maestro.Editors/LayerDefinition/Vector/VectorLayerStyleSectionCtrl.cs
   trunk/Tools/Maestro/Maestro.Editors/LayerDefinition/Vector/VectorLayerStyleSectionCtrl.resx
   trunk/Tools/Maestro/Maestro.Editors/Maestro.Editors.csproj
   trunk/Tools/Maestro/Maestro.Editors/Properties/Resources.Designer.cs
   trunk/Tools/Maestro/Maestro.Editors/Properties/Resources.resx
   trunk/Tools/Maestro/Maestro.Editors/Strings.Designer.cs
   trunk/Tools/Maestro/Maestro.Editors/Strings.resx
Log:
This submission includes the following changes:
 - #2417: Auto-refresh style previews in basic style editors. The refresh link is still there as an emergency for cases that have somehow slipped through.
 - #2418: Add a new grid-based display for style rules. This doesn't replace the current control-based approach. The setting of LayerEditorSettings.UseGridEditor determines which view will be loaded when a Layer is opened for editing.

Added: trunk/Tools/Maestro/Maestro.Editors/LayerDefinition/LayerEditorSettings.cs
===================================================================
--- trunk/Tools/Maestro/Maestro.Editors/LayerDefinition/LayerEditorSettings.cs	                        (rev 0)
+++ trunk/Tools/Maestro/Maestro.Editors/LayerDefinition/LayerEditorSettings.cs	2014-03-29 14:00:46 UTC (rev 7997)
@@ -0,0 +1,42 @@
+#region Disclaimer / License
+// Copyright (C) 2014, 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
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+
+namespace Maestro.Editors.LayerDefinition
+{
+    /// <summary>
+    /// Settings that control resource preview functionality
+    /// </summary>
+    public static class LayerEditorSettings
+    {
+        static LayerEditorSettings()
+        {
+            UseGridEditor = true;
+        }
+
+        /// <summary>
+        /// Determines if vector style rules will be edited with the new Grid-based interface
+        /// </summary>
+        public static bool UseGridEditor { get; set; }
+    }
+}

Modified: trunk/Tools/Maestro/Maestro.Editors/LayerDefinition/Vector/FeaturePreviewRender.cs
===================================================================
--- trunk/Tools/Maestro/Maestro.Editors/LayerDefinition/Vector/FeaturePreviewRender.cs	2014-03-28 08:54:10 UTC (rev 7996)
+++ trunk/Tools/Maestro/Maestro.Editors/LayerDefinition/Vector/FeaturePreviewRender.cs	2014-03-29 14:00:46 UTC (rev 7997)
@@ -173,6 +173,17 @@
             }
         }
 
+        public static Image RenderNullLabel(int width, int height)
+        {
+            Image img = new Bitmap(width, height);
+            using (Graphics g = Graphics.FromImage(img))
+            {
+                g.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAlias;
+                g.DrawString(Strings.EmptyText, new Font("Arial", 10.0f, FontStyle.Regular), Brushes.Black, new RectangleF(new PointF(0, 0), new SizeF(width, height)));
+            }
+            return img;
+        }
+
         public static void RenderPreviewFont(Graphics g, Rectangle size, ITextSymbol item)
         {
             Font font;
@@ -184,7 +195,7 @@
 
             if (item == null || item.FontName == null)
             {
-                font = new Font("Arial", 12); //NOXLATE
+                font = new Font("Arial", 10.0f, FontStyle.Regular); //NOXLATE
                 foreground = Color.Black;
                 background = Color.White;
                 text = Strings.EmptyText;


Property changes on: trunk/Tools/Maestro/Maestro.Editors/LayerDefinition/Vector/GridEditor
___________________________________________________________________
Added: bugtraq:number
   + true

Added: trunk/Tools/Maestro/Maestro.Editors/LayerDefinition/Vector/GridEditor/RuleGridView.Designer.cs
===================================================================
--- trunk/Tools/Maestro/Maestro.Editors/LayerDefinition/Vector/GridEditor/RuleGridView.Designer.cs	                        (rev 0)
+++ trunk/Tools/Maestro/Maestro.Editors/LayerDefinition/Vector/GridEditor/RuleGridView.Designer.cs	2014-03-29 14:00:46 UTC (rev 7997)
@@ -0,0 +1,200 @@
+namespace Maestro.Editors.LayerDefinition.Vector.GridEditor
+{
+    partial class RuleGridView
+    {
+        /// <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(RuleGridView));
+            this.toolStrip1 = new System.Windows.Forms.ToolStrip();
+            this.btnAddRule = new System.Windows.Forms.ToolStripButton();
+            this.btnDeleteRule = new System.Windows.Forms.ToolStripButton();
+            this.toolStripSeparator2 = new System.Windows.Forms.ToolStripSeparator();
+            this.btnCreateTheme = new System.Windows.Forms.ToolStripButton();
+            this.btnExplodeTheme = new System.Windows.Forms.ToolStripButton();
+            this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator();
+            this.btnShowInLegend = new System.Windows.Forms.ToolStripButton();
+            this.toolStripSeparator3 = new System.Windows.Forms.ToolStripSeparator();
+            this.btnRefreshStylePreviews = new System.Windows.Forms.ToolStripButton();
+            this.btnAutoRefresh = new System.Windows.Forms.ToolStripButton();
+            this.grdRules = new System.Windows.Forms.DataGridView();
+            this.toolStrip1.SuspendLayout();
+            ((System.ComponentModel.ISupportInitialize)(this.grdRules)).BeginInit();
+            this.SuspendLayout();
+            // 
+            // toolStrip1
+            // 
+            this.toolStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
+            this.btnAddRule,
+            this.btnDeleteRule,
+            this.toolStripSeparator2,
+            this.btnCreateTheme,
+            this.btnExplodeTheme,
+            this.toolStripSeparator1,
+            this.btnShowInLegend,
+            this.toolStripSeparator3,
+            this.btnRefreshStylePreviews,
+            this.btnAutoRefresh});
+            this.toolStrip1.Location = new System.Drawing.Point(0, 0);
+            this.toolStrip1.Name = "toolStrip1";
+            this.toolStrip1.Size = new System.Drawing.Size(785, 25);
+            this.toolStrip1.TabIndex = 0;
+            this.toolStrip1.Text = "toolStrip1";
+            // 
+            // btnAddRule
+            // 
+            this.btnAddRule.Image = global::Maestro.Editors.Properties.Resources.plus_circle;
+            this.btnAddRule.ImageTransparentColor = System.Drawing.Color.Magenta;
+            this.btnAddRule.Name = "btnAddRule";
+            this.btnAddRule.Size = new System.Drawing.Size(75, 22);
+            this.btnAddRule.Text = "Add Rule";
+            this.btnAddRule.Click += new System.EventHandler(this.btnAddRule_Click);
+            // 
+            // btnDeleteRule
+            // 
+            this.btnDeleteRule.Enabled = false;
+            this.btnDeleteRule.Image = global::Maestro.Editors.Properties.Resources.minus_circle;
+            this.btnDeleteRule.ImageTransparentColor = System.Drawing.Color.Magenta;
+            this.btnDeleteRule.Name = "btnDeleteRule";
+            this.btnDeleteRule.Size = new System.Drawing.Size(91, 22);
+            this.btnDeleteRule.Text = "Delete Rules";
+            this.btnDeleteRule.ToolTipText = "Delete selected rules";
+            this.btnDeleteRule.Click += new System.EventHandler(this.btnDeleteRule_Click);
+            // 
+            // toolStripSeparator2
+            // 
+            this.toolStripSeparator2.Name = "toolStripSeparator2";
+            this.toolStripSeparator2.Size = new System.Drawing.Size(6, 25);
+            // 
+            // btnCreateTheme
+            // 
+            this.btnCreateTheme.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
+            this.btnCreateTheme.Image = ((System.Drawing.Image)(resources.GetObject("btnCreateTheme.Image")));
+            this.btnCreateTheme.ImageTransparentColor = System.Drawing.Color.Magenta;
+            this.btnCreateTheme.Name = "btnCreateTheme";
+            this.btnCreateTheme.Size = new System.Drawing.Size(23, 22);
+            this.btnCreateTheme.Text = "Create Theme";
+            this.btnCreateTheme.Click += new System.EventHandler(this.btnCreateTheme_Click);
+            // 
+            // btnExplodeTheme
+            // 
+            this.btnExplodeTheme.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
+            this.btnExplodeTheme.Enabled = false;
+            this.btnExplodeTheme.Image = global::Maestro.Editors.Properties.Resources.arrow_split;
+            this.btnExplodeTheme.ImageTransparentColor = System.Drawing.Color.Magenta;
+            this.btnExplodeTheme.Name = "btnExplodeTheme";
+            this.btnExplodeTheme.Size = new System.Drawing.Size(23, 22);
+            this.btnExplodeTheme.Text = "Explode Theme";
+            this.btnExplodeTheme.Click += new System.EventHandler(this.btnExplodeTheme_Click);
+            // 
+            // toolStripSeparator1
+            // 
+            this.toolStripSeparator1.Name = "toolStripSeparator1";
+            this.toolStripSeparator1.Size = new System.Drawing.Size(6, 25);
+            // 
+            // btnShowInLegend
+            // 
+            this.btnShowInLegend.Checked = true;
+            this.btnShowInLegend.CheckOnClick = true;
+            this.btnShowInLegend.CheckState = System.Windows.Forms.CheckState.Checked;
+            this.btnShowInLegend.Image = global::Maestro.Editors.Properties.Resources.document_tree;
+            this.btnShowInLegend.ImageTransparentColor = System.Drawing.Color.Magenta;
+            this.btnShowInLegend.Name = "btnShowInLegend";
+            this.btnShowInLegend.Size = new System.Drawing.Size(111, 22);
+            this.btnShowInLegend.Text = "Show In Legend";
+            this.btnShowInLegend.ToolTipText = "These rules will be shown in the legend if checked";
+            // 
+            // toolStripSeparator3
+            // 
+            this.toolStripSeparator3.Name = "toolStripSeparator3";
+            this.toolStripSeparator3.Size = new System.Drawing.Size(6, 25);
+            // 
+            // btnRefreshStylePreviews
+            // 
+            this.btnRefreshStylePreviews.Image = global::Maestro.Editors.Properties.Resources.arrow_circle_135;
+            this.btnRefreshStylePreviews.ImageTransparentColor = System.Drawing.Color.Magenta;
+            this.btnRefreshStylePreviews.Name = "btnRefreshStylePreviews";
+            this.btnRefreshStylePreviews.Size = new System.Drawing.Size(143, 22);
+            this.btnRefreshStylePreviews.Text = "Refresh Style Previews";
+            this.btnRefreshStylePreviews.Click += new System.EventHandler(this.btnRefreshStylePreviews_Click);
+            // 
+            // btnAutoRefresh
+            // 
+            this.btnAutoRefresh.CheckOnClick = true;
+            this.btnAutoRefresh.Image = global::Maestro.Editors.Properties.Resources.tick;
+            this.btnAutoRefresh.ImageTransparentColor = System.Drawing.Color.Magenta;
+            this.btnAutoRefresh.Name = "btnAutoRefresh";
+            this.btnAutoRefresh.Size = new System.Drawing.Size(97, 22);
+            this.btnAutoRefresh.Text = "Auto-Refresh";
+            this.btnAutoRefresh.ToolTipText = "Style previews for currently visible rules will be automatically updated as you s" +
+    "croll the grid. Otherwise, you have to manually refresh these previews";
+            // 
+            // grdRules
+            // 
+            this.grdRules.AllowUserToAddRows = false;
+            this.grdRules.AllowUserToDeleteRows = false;
+            this.grdRules.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
+            this.grdRules.Dock = System.Windows.Forms.DockStyle.Fill;
+            this.grdRules.Location = new System.Drawing.Point(0, 25);
+            this.grdRules.Name = "grdRules";
+            this.grdRules.Size = new System.Drawing.Size(785, 392);
+            this.grdRules.TabIndex = 1;
+            this.grdRules.CellClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.grdRules_CellClick);
+            this.grdRules.Scroll += new System.Windows.Forms.ScrollEventHandler(this.grdRules_Scroll);
+            this.grdRules.SelectionChanged += new System.EventHandler(this.grdRules_SelectionChanged);
+            // 
+            // RuleGridView
+            // 
+            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+            this.Controls.Add(this.grdRules);
+            this.Controls.Add(this.toolStrip1);
+            this.Name = "RuleGridView";
+            this.Size = new System.Drawing.Size(785, 417);
+            this.toolStrip1.ResumeLayout(false);
+            this.toolStrip1.PerformLayout();
+            ((System.ComponentModel.ISupportInitialize)(this.grdRules)).EndInit();
+            this.ResumeLayout(false);
+            this.PerformLayout();
+
+        }
+
+        #endregion
+
+        private System.Windows.Forms.ToolStrip toolStrip1;
+        private System.Windows.Forms.DataGridView grdRules;
+        private System.Windows.Forms.ToolStripButton btnAddRule;
+        private System.Windows.Forms.ToolStripButton btnDeleteRule;
+        private System.Windows.Forms.ToolStripButton btnCreateTheme;
+        private System.Windows.Forms.ToolStripButton btnExplodeTheme;
+        private System.Windows.Forms.ToolStripSeparator toolStripSeparator2;
+        private System.Windows.Forms.ToolStripSeparator toolStripSeparator1;
+        private System.Windows.Forms.ToolStripButton btnShowInLegend;
+        private System.Windows.Forms.ToolStripSeparator toolStripSeparator3;
+        private System.Windows.Forms.ToolStripButton btnRefreshStylePreviews;
+        private System.Windows.Forms.ToolStripButton btnAutoRefresh;
+    }
+}

Added: trunk/Tools/Maestro/Maestro.Editors/LayerDefinition/Vector/GridEditor/RuleGridView.cs
===================================================================
--- trunk/Tools/Maestro/Maestro.Editors/LayerDefinition/Vector/GridEditor/RuleGridView.cs	                        (rev 0)
+++ trunk/Tools/Maestro/Maestro.Editors/LayerDefinition/Vector/GridEditor/RuleGridView.cs	2014-03-29 14:00:46 UTC (rev 7997)
@@ -0,0 +1,779 @@
+#region Disclaimer / License
+// Copyright (C) 2014, 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
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Drawing;
+using System.Data;
+using System.Linq;
+using System.Text;
+using System.Windows.Forms;
+using OSGeo.MapGuide.ObjectModels.LayerDefinition;
+using Maestro.Shared.UI;
+using OSGeo.MapGuide.MaestroAPI.Services;
+using Maestro.Editors.LayerDefinition.Vector.StyleEditors;
+using OSGeo.MapGuide.MaestroAPI.Schema;
+using Maestro.Editors.LayerDefinition.Vector.Scales;
+using System.Diagnostics;
+using OSGeo.MapGuide.ObjectModels.FeatureSource;
+using Maestro.Editors.LayerDefinition.Vector.Thematics;
+using OSGeo.MapGuide.MaestroAPI;
+
+namespace Maestro.Editors.LayerDefinition.Vector.GridEditor
+{
+    [ToolboxItem(false)]
+    internal partial class RuleGridView : UserControl
+    {
+        public RuleGridView()
+        {
+            _init = true;
+            InitializeComponent();
+        }
+
+        private void InitGrid(bool bComposite)
+        {
+            if (bComposite)
+                _rules = new BindingList<IRuleModel>();
+            else
+                _rules = new BindingList<ILabeledRuleModel>();
+            _rules.ListChanged += OnRuleListChanged;
+            grdRules.DataSource = _rules;
+            var col = grdRules.Columns["LegendLabel"];
+            if (col != null)
+                col.ReadOnly = false;
+            grdRules.RowsAdded += OnGridRowsAdded;
+        }
+
+        void OnGridRowsAdded(object sender, DataGridViewRowsAddedEventArgs e)
+        {
+            if (_init)
+                return;
+
+            if (e.RowIndex >= 0)
+            {
+                var row = grdRules.Rows[e.RowIndex];
+                var rule = (IRuleModel)row.DataBoundItem;
+                //Need to sync back to session repo because the rule has been added to the in-memory resource,
+                //but not to the session copy.
+                _edSvc.SyncSessionCopy();
+                UpdateRulePreviewAsync(rule);
+            }
+
+            btnExplodeTheme.Enabled = (grdRules.Rows.Count > 1);
+        }
+
+        private void OnRuleListChanged(object sender, ListChangedEventArgs e)
+        {
+            if (_init)
+                return;
+
+            switch(e.ListChangedType)
+            {
+                case ListChangedType.ItemChanged:
+                    if (e.PropertyDescriptor.Name != "Style" && e.PropertyDescriptor.Name != "Label")
+                        _edSvc.HasChanged();
+                    break;
+                case ListChangedType.ItemMoved:
+                    break;
+            }
+        }
+
+        private bool _init = false;
+        private IBindingList _rules;
+        private IVectorStyle _style;
+        private IVectorScaleRange _parentScaleRange;
+        private IEditorService _edSvc;
+        private ILayerDefinition _editedLayer;
+
+        public void Init(IEditorService edSvc, IVectorScaleRange parentRange, IVectorStyle style)
+        {
+            try
+            {
+                _init = true;
+                _edSvc = edSvc;
+                _style = style;
+                InitGrid(style is ICompositeTypeStyle);
+                _editedLayer = (ILayerDefinition)_edSvc.GetEditedResource();
+                _parentScaleRange = parentRange;
+                ReSyncRules(style);
+            }
+            finally
+            {
+                _init = false;
+            }
+        }
+
+        private void ReSyncRules(IVectorStyle style)
+        {
+            _rules.Clear();
+            if (style != null)
+            {
+                switch (style.StyleType)
+                {
+                    case StyleType.Point:
+                        {
+                            for (int i = 0; i < style.RuleCount; i++)
+                            {
+                                IPointRule pr = (IPointRule)style.GetRuleAt(i);
+                                _rules.Add(new PointRuleModel(pr, i));
+                            }
+                        }
+                        break;
+                    case StyleType.Line:
+                        {
+                            for (int i = 0; i < style.RuleCount; i++)
+                            {
+                                ILineRule lr = (ILineRule)style.GetRuleAt(i);
+                                _rules.Add(new LineRuleModel(lr, i));
+                            }
+                        }
+                        break;
+                    case StyleType.Area:
+                        {
+                            for (int i = 0; i < style.RuleCount; i++)
+                            {
+                                IAreaRule ar = (IAreaRule)style.GetRuleAt(i);
+                                _rules.Add(new AreaRuleModel(ar, i));
+                            }
+                        }
+                        break;
+                }
+            }
+            else
+            {
+                _rules.Clear();
+            }
+        }
+
+        protected override void OnLoad(EventArgs e)
+        {
+            base.OnLoad(e);
+            if (_rules.Count > 0)
+            {
+                GenerateStylePreviewsForVisibleRows(false);
+            }
+        }
+
+        private IEnumerable<DataGridViewRow> GetVisibleRuleRows()
+        {
+            var visRowCount = grdRules.DisplayedRowCount(true);
+            if (grdRules.FirstDisplayedCell == null || visRowCount == 0)
+                yield break;
+            var firstDisplayedRowIndex = grdRules.FirstDisplayedCell.RowIndex;
+            var lastvibileRowIndex = (firstDisplayedRowIndex + visRowCount) - 1;
+            for (int rowIndex = firstDisplayedRowIndex; rowIndex <= lastvibileRowIndex; rowIndex++)
+            {
+                var row = grdRules.Rows[rowIndex];
+                var cells = row.Cells;
+                foreach (DataGridViewCell cell in cells)
+                {
+                    if (cell.Displayed)
+                    {
+                        yield return row;
+                        break;
+                    }
+                }
+            }
+        }
+
+        private void btnRefreshStylePreviews_Click(object sender, EventArgs e)
+        {
+            GenerateStylePreviewsForVisibleRows(false);
+        }
+
+        private void GenerateStylePreviewsForVisibleRows(bool bOnlyForNewlyVisibleRows)
+        {
+            List<DataGridViewRow> visibleRows = new List<DataGridViewRow>(GetVisibleRuleRows());
+            List<RuleModel> visibleRules = new List<RuleModel>();
+            foreach (var row in visibleRows)
+            {
+                RuleModel rule = (RuleModel)row.DataBoundItem;
+                //TODO: Only check for un-drawn rules based on bOnlyForNewlyVisibleRows. Right now it will re-draw all rules in view
+                visibleRules.Add(rule);
+            }
+
+            UpdateRulePreviewsAsync(visibleRules);
+        }
+
+        private void UpdateRulePreviewsAsync(IEnumerable<IRuleModel> visibleRules)
+        {
+            int? styleType = null;
+            switch (_style.StyleType)
+            {
+                case StyleType.Point:
+                    styleType = 1;
+                    break;
+                case StyleType.Line:
+                    styleType = 2;
+                    break;
+                case StyleType.Area:
+                    styleType = 3;
+                    break;
+                case StyleType.Composite:
+                    styleType = 4;
+                    break;
+            }
+            var scale = 0.0;
+            //The min scale is part of the scale range, max scale is not
+            if (_parentScaleRange.MinScale.HasValue)
+                scale = _parentScaleRange.MinScale.Value;
+            var layerId = _edSvc.EditedResourceID;
+            var editedRes = _edSvc.GetEditedResource();
+            var conn = editedRes.CurrentConnection;
+            var mapSvc = (IMappingService)conn.GetService((int)ServiceType.Mapping);
+
+            BusyWaitDialog.Run(Strings.UpdatingStylePreviews, () =>
+            { //Background thread worker
+                var icons = new Dictionary<int, Image>();
+                foreach (var rule in visibleRules)
+                {
+                    var img = mapSvc.GetLegendImage(scale, layerId, rule.Index, styleType.Value, 50, 16, "PNG");
+                    icons[rule.Index] = img;
+                }
+                return icons;
+            }, (res, ex) =>
+            { //Run completion
+                if (ex != null)
+                {
+                    ErrorDialog.Show(ex);
+                }
+                else
+                {
+                    if (res != null)
+                    {
+                        var icons = (Dictionary<int, Image>)res;
+                        //We're back on the GUI thread now
+                        foreach (var rule in visibleRules)
+                        {
+                            if (icons.ContainsKey(rule.Index))
+                            {
+                                rule.SetRuleStylePreview(icons[rule.Index]);
+                            }
+                        }
+                    }
+                }
+            });
+        }
+
+        private void UpdateRulePreviewAsync(IRuleModel rule)
+        {
+            UpdateRulePreviewsAsync(new IRuleModel[] { rule });
+        }
+
+        private void grdRules_CellClick(object sender, DataGridViewCellEventArgs e)
+        {
+            if (e.ColumnIndex >= 0) {
+                var rule = (RuleModel)grdRules.Rows[e.RowIndex].DataBoundItem;
+                var cell = grdRules.Rows[e.RowIndex].Cells[e.ColumnIndex];
+                var col = cell.OwningColumn;
+                //NOTE: These are the property names of RuleModel. If those properties are ever changed be sure to update this as well
+                switch (col.Name)
+                {
+                    case "Style":
+                        EditRuleStyle(rule);
+                        break;
+                    case "Label":
+                        EditLabelStyle(rule);
+                        break;
+                    case "LegendLabel":
+                        grdRules.CurrentCell = cell;
+                        grdRules.BeginEdit(true);
+                        break;
+                    case "Filter":
+                        {
+                            var expr = rule.Filter;
+                            var newExpr = _edSvc.EditExpression(expr, GetLayerClass(), GetLayerProvider(), GetFeatureSource(), true);
+                            if (newExpr != null)
+                            {
+                                rule.Filter = newExpr;
+                            }
+                        }
+                        break;
+                }
+            }
+        }
+
+        private ITextSymbol m_origLabel;
+        private ITextSymbol m_editLabel;
+
+        private void EditLabelStyle(RuleModel rule)
+        {
+            PointRuleModel pr = rule as PointRuleModel;
+            LineRuleModel lr = rule as LineRuleModel;
+            AreaRuleModel ar = rule as AreaRuleModel;
+
+            UserControl uc = null;
+            /*
+            if (m_owner.SelectedClass == null)
+            {
+                MessageBox.Show(Strings.NoFeatureClassAssigned);
+                return;
+            }*/
+            var previewScale = 0.0;
+            if (_parentScaleRange.MinScale.HasValue)
+                previewScale = _parentScaleRange.MinScale.Value;
+            ILayerStylePreviewable prev = new LayerStylePreviewable(_edSvc.EditedResourceID,
+                                                                    previewScale,
+                                                                    80,
+                                                                    40,
+                                                                    "PNG", //NOXLATE
+                                                                    rule.Index);
+
+            //TODO: This is obviously a mess and could do with some future cleanup, but the idea here should be
+            //easy to understand. Each primitive basic style (that's not a label) has 3 actions.
+            // - Commit (When user clicks OK on dialog)
+            // - Rollback (When user clicks Cancel on dialog)
+            // - Edit Commit (When user invokes refresh)
+            //Those that support GETLEGENDIMAGE-based previews will be passed an edit commit action. Invoking the
+            //edit commit action will update the session-based layer with this edit-copy rule, allowing for the changes
+            //to be reflected when we do the GETLEGENDIMAGE call
+            //
+            //Labels are exempt as those previews can be sufficiently simulated with System.Drawing API
+            var vl = (IVectorLayerDefinition)_editedLayer.SubLayer;
+            ClassDefinition clsDef = GetLayerClass();
+            Action commit = null;
+            Action rollback = null;
+
+            ITextSymbol labelToEdit = null;
+            if (pr != null)
+            {
+                labelToEdit = pr.GetLabelStyle();
+            }
+            else if (lr != null)
+            {
+                labelToEdit = lr.GetLabelStyle();
+            }
+            else if (ar != null)
+            {
+                labelToEdit = ar.GetLabelStyle();
+            }
+
+            m_origLabel = labelToEdit;
+            m_editLabel = (labelToEdit == null) ? null : (ITextSymbol)labelToEdit.Clone();
+
+            uc = new FontStyleEditor(_edSvc, clsDef, vl.ResourceId);
+            ((FontStyleEditor)uc).Item = m_editLabel;
+
+            if (uc != null)
+            {
+                EditorTemplateForm dlg = new EditorTemplateForm();
+                dlg.ItemPanel.Controls.Add(uc);
+                uc.Dock = DockStyle.Fill;
+                dlg.RefreshSize();
+                var res = dlg.ShowDialog(this);
+                if (res == DialogResult.OK)
+                {
+                    if (commit != null)
+                    {
+                        commit.Invoke();
+                    }
+
+                    ITextSymbol editedLabel = ((FontStyleEditor)uc).Item;
+                    if (pr != null)
+                    {
+                        pr.SetLabelStyle(editedLabel);
+                        _edSvc.HasChanged();
+                    }
+                    else if (lr != null)
+                    {
+                        lr.SetLabelStyle(editedLabel);
+                        _edSvc.HasChanged();
+                    }
+                    else if (ar != null)
+                    {
+                        ar.SetLabelStyle(editedLabel);
+                        _edSvc.HasChanged();
+                    }
+                }
+                else if (res == DialogResult.Cancel)
+                {
+                    if (rollback != null)
+                        rollback.Invoke();
+                }
+            }
+        }
+
+        private IPointSymbolization2D m_origPoint;
+        private IPointSymbolization2D m_editPoint;
+
+        private IAreaSymbolizationFill m_origArea;
+        private IAreaSymbolizationFill m_editArea;
+
+        private IEnumerable<IStroke> m_origLine;
+        private IList<IStroke> m_editLine;
+
+        private void EditRuleStyle(RuleModel rule)
+        {
+            PointRuleModel pr = rule as PointRuleModel;
+            LineRuleModel lr = rule as LineRuleModel;
+            AreaRuleModel ar = rule as AreaRuleModel;
+
+            UserControl uc = null;
+            /*
+            if (m_owner.SelectedClass == null)
+            {
+                MessageBox.Show(Strings.NoFeatureClassAssigned);
+                return;
+            }*/
+            var previewScale = 0.0;
+            if (_parentScaleRange.MinScale.HasValue)
+                previewScale = _parentScaleRange.MinScale.Value;
+            ILayerStylePreviewable prev = new LayerStylePreviewable(_edSvc.EditedResourceID,
+                                                                    previewScale,
+                                                                    80,
+                                                                    40,
+                                                                    "PNG", //NOXLATE
+                                                                    rule.Index);
+
+            //TODO: This is obviously a mess and could do with some future cleanup, but the idea here should be
+            //easy to understand. Each primitive basic style (that's not a label) has 3 actions.
+            // - Commit (When user clicks OK on dialog)
+            // - Rollback (When user clicks Cancel on dialog)
+            // - Edit Commit (When user invokes refresh)
+            //Those that support GETLEGENDIMAGE-based previews will be passed an edit commit action. Invoking the
+            //edit commit action will update the session-based layer with this edit-copy rule, allowing for the changes
+            //to be reflected when we do the GETLEGENDIMAGE call
+            //
+            //Labels are exempt as those previews can be sufficiently simulated with System.Drawing API
+            var vl = (IVectorLayerDefinition)_editedLayer.SubLayer;
+            ClassDefinition clsDef = GetLayerClass();
+            Action commit = null;
+            Action rollback = null;
+
+            if (pr != null)
+            {
+                var sym = pr.GetSymbolizationStyle();
+
+                m_origPoint = sym;
+                m_editPoint = (sym == null) ? null : (IPointSymbolization2D)sym.Clone();
+
+                var pfse = new PointFeatureStyleEditor(_edSvc, clsDef, vl.ResourceId, pr.Style, prev);
+                uc = pfse;
+                pfse.Item = m_editPoint;
+
+                Action editCommit = () =>
+                {
+                    m_editPoint = pfse.Item;
+                    pr.SetSymbolizationStyle(m_editPoint);
+                };
+                pfse.SetEditCommit(editCommit);
+                commit = () =>
+                {
+                    pr.SetSymbolizationStyle(pfse.Item);
+                    _edSvc.HasChanged();
+                    UpdateRulePreviewAsync(pr);
+                };
+                rollback = () =>
+                {
+                    pr.SetSymbolizationStyle(m_origPoint);
+                };
+            }
+            else if (lr != null)
+            {
+                var lineSym = lr.GetSymbolizationStyle();
+                var strokes = lineSym.Strokes;
+                m_origLine = strokes;
+                m_editLine = (strokes == null) ? new List<IStroke>() : LayerElementCloningUtil.CloneStrokes(strokes);
+
+                var lfse = new LineFeatureStyleEditor(_edSvc, clsDef, vl.ResourceId, _editedLayer, prev);
+                uc = lfse;
+                lfse.Item = m_editLine;
+
+                Action editCommit = () =>
+                {
+                    m_editLine = lfse.Item;
+                    lineSym.SetStrokes(m_editLine);
+                };
+                lfse.SetEditCommit(editCommit);
+                commit = () =>
+                {
+                    lineSym.SetStrokes(lfse.Item);
+                    _edSvc.HasChanged();
+                    UpdateRulePreviewAsync(lr);
+                };
+                rollback = () =>
+                {
+                    lineSym.SetStrokes(m_origLine);
+                };
+            }
+            else if (ar != null)
+            {
+                var area = ar.GetSymbolizationStyle();
+
+                m_origArea = area;
+                m_editArea = (area == null) ? null : (IAreaSymbolizationFill)area.Clone();
+
+                var afse = new AreaFeatureStyleEditor(_edSvc, clsDef, vl.ResourceId, prev);
+                uc = afse;
+                afse.Item = m_editArea;
+
+                Action editCommit = () =>
+                {
+                    m_editArea = afse.Item;
+                    ar.SetSymbolizationStyle(m_editArea);
+                };
+                commit = () =>
+                {
+                    ar.SetSymbolizationStyle(afse.Item);
+                    _edSvc.HasChanged();
+                    UpdateRulePreviewAsync(ar);
+                };
+                rollback = () =>
+                {
+                    ar.SetSymbolizationStyle(m_origArea);
+                };
+                afse.SetEditCommit(editCommit);
+            }
+
+            if (uc != null)
+            {
+                EditorTemplateForm dlg = new EditorTemplateForm();
+                dlg.ItemPanel.Controls.Add(uc);
+                uc.Dock = DockStyle.Fill;
+                dlg.RefreshSize();
+                var res = dlg.ShowDialog(this);
+                if (res == DialogResult.OK)
+                {
+                    if (commit != null)
+                    {
+                        commit.Invoke();
+                    }
+
+                    if (pr != null)
+                    {
+                        _edSvc.HasChanged();
+                    }
+                    else if (lr != null)
+                    {
+                        _edSvc.HasChanged();
+                    }
+                    else if (ar != null)
+                    {
+                        _edSvc.HasChanged();
+                    }
+                }
+                else if (res == DialogResult.Cancel)
+                {
+                    if (rollback != null)
+                        rollback.Invoke();
+                }
+            }
+        }
+
+        private ClassDefinition _layerClass;
+
+        private ClassDefinition GetLayerClass()
+        {
+            if (_layerClass == null) 
+            {
+                IVectorLayerDefinition vl = (IVectorLayerDefinition)_editedLayer.SubLayer;
+                _layerClass = _edSvc.FeatureService.GetClassDefinition(vl.ResourceId, vl.FeatureName);
+            }
+            return _layerClass;
+        }
+
+        private string GetFeatureSource()
+        {
+            IVectorLayerDefinition vl = (IVectorLayerDefinition)_editedLayer.SubLayer;
+            return vl.ResourceId;
+        }
+
+        private string _providerName;
+
+        private string GetLayerProvider()
+        {
+            if (_providerName == null)
+            {
+                IVectorLayerDefinition vl = (IVectorLayerDefinition)_editedLayer.SubLayer;
+                IFeatureSource fs = (IFeatureSource)_edSvc.ResourceService.GetResource(vl.ResourceId);
+                _providerName = fs.Provider;
+            }
+            return _providerName;
+        }
+
+        private void btnAddRule_Click(object sender, EventArgs e)
+        {
+            switch(_style.StyleType)
+            {
+                case StyleType.Point:
+                    {
+                        var rule = _editedLayer.CreateDefaultPointRule();
+                        ((IPointVectorStyle)_style).AddRule(rule);
+                        var model = new PointRuleModel(rule, _style.RuleCount - 1);
+                        _rules.Add(model);
+                    }
+                    break;
+                case StyleType.Line:
+                    {
+                        var rule = _editedLayer.CreateDefaultLineRule();
+                        ((ILineVectorStyle)_style).AddRule(rule);
+                        var model = new LineRuleModel(rule, _style.RuleCount - 1);
+                        _rules.Add(model);
+                    }
+                    break;
+                case StyleType.Area:
+                    {
+                        var rule = _editedLayer.CreateDefaultAreaRule();
+                        ((IAreaVectorStyle)_style).AddRule(rule);
+                        var model = new AreaRuleModel(rule, _style.RuleCount - 1);
+                        _rules.Add(model);
+                    }
+                    break;
+                case StyleType.Composite:
+                    {
+                        var rule = _editedLayer.CreateDefaultCompositeRule();
+                        ((ICompositeTypeStyle)_style).AddCompositeRule(rule);
+                        var model = new CompositeRuleModel(rule, _style.RuleCount - 1);
+                        _rules.Add(model);
+                    }
+                    break;
+            }
+        }
+
+        private void btnDeleteRule_Click(object sender, EventArgs e)
+        {
+            List<RuleModel> remove = new List<RuleModel>();
+            foreach (DataGridViewRow row in grdRules.SelectedRows)
+                remove.Add((RuleModel)row.DataBoundItem);
+
+            if (remove.Count > 0)
+            {
+                try
+                {
+                    _init = true;
+                    remove.Sort((a, b) =>
+                    {
+                        return a.Index.CompareTo(b.Index);
+                    });
+                    //Remove in reverse order
+                    for (int i = remove.Count - 1; i >= 0; i--)
+                    {
+                        switch (_style.StyleType)
+                        {
+                            case StyleType.Point:
+                                {
+                                    var pts = ((IPointVectorStyle)_style);
+                                    var pr = pts.GetRuleAt(remove[i].Index);
+                                    pts.RemoveRule(pr);
+                                }
+                                break;
+                            case StyleType.Line:
+                                {
+                                    var lts = ((ILineVectorStyle)_style);
+                                    var lr = lts.GetRuleAt(remove[i].Index);
+                                    lts.RemoveRule(lr);
+                                }
+                                break;
+                            case StyleType.Area:
+                                {
+                                    var ats = ((IAreaVectorStyle)_style);
+                                    var ar = ats.GetRuleAt(remove[i].Index);
+                                    ats.RemoveRule(ar);
+                                }
+                                break;
+                            case StyleType.Composite:
+                                {
+                                    var cts = ((ICompositeTypeStyle)_style);
+                                    var cr = cts.GetRuleAt(remove[i].Index);
+                                    cts.RemoveCompositeRule(cr);
+                                }
+                                break;
+                        }
+                    }
+                }
+                finally 
+                {
+                    //TODO: Yes, we're going thermonuclear, simply because the RuleModel's indexes may be out of sync as a result
+                    //of removing rules, so we have to be sure these indexes are correct
+                    ReSyncRules(_style);
+                    _init = false;
+                    GenerateStylePreviewsForVisibleRows(false);
+                    _edSvc.HasChanged();
+                }
+            }
+        }
+
+        private void grdRules_Scroll(object sender, ScrollEventArgs e)
+        {
+            if (btnAutoRefresh.Checked)
+            {
+                GenerateStylePreviewsForVisibleRows(true);
+            }
+        }
+
+        private void grdRules_SelectionChanged(object sender, EventArgs e)
+        {
+            btnDeleteRule.Enabled = (grdRules.SelectedRows.Count > 0);
+        }
+
+        private void btnCreateTheme_Click(object sender, EventArgs e)
+        {
+            ThemeCreator dlg = new ThemeCreator(_edSvc, _editedLayer, GetLayerClass(), _style);
+            if (dlg.ShowDialog(this) == DialogResult.OK)
+            {
+                try
+                {
+                    _init = true;
+                    ReSyncRules(_style);
+                    _edSvc.SyncSessionCopy();
+                    GenerateStylePreviewsForVisibleRows(false);
+                }
+                finally
+                {
+                    _init = false;
+                    _edSvc.HasChanged();
+                }
+            }
+        }
+
+        private void btnExplodeTheme_Click(object sender, EventArgs e)
+        {
+            var diag = new ExplodeThemeDialog(_edSvc, _parentScaleRange, _style, _editedLayer);
+            if (diag.ShowDialog() == DialogResult.OK)
+            {
+                var options = new ExplodeThemeOptions()
+                {
+                    ActiveStyle = _style,
+                    FolderId = diag.CreateInFolder,
+                    Layer = _editedLayer,
+                    LayerNameFormat = diag.LayerNameFormat,
+                    LayerPrefix = diag.LayerPrefix,
+                    Range = _parentScaleRange
+                };
+
+                var progress = new ProgressDialog();
+                var worker = new BackgroundWorker();
+                worker.WorkerReportsProgress = true;
+                progress.RunOperationAsync(null, ExplodeThemeWorker, options);
+            }
+        }
+
+        private static object ExplodeThemeWorker(BackgroundWorker worker, DoWorkEventArgs e, params object[] args)
+        {
+            var options = (ExplodeThemeOptions)args[0];
+            LengthyOperationProgressCallBack cb = (s, cbArgs) =>
+            {
+                worker.ReportProgress(cbArgs.Progress, cbArgs.StatusMessage);
+            };
+            Utility.ExplodeThemeIntoFilteredLayers(options, cb);
+            return true;
+        }
+    }
+}

Added: trunk/Tools/Maestro/Maestro.Editors/LayerDefinition/Vector/GridEditor/RuleGridView.resx
===================================================================
--- trunk/Tools/Maestro/Maestro.Editors/LayerDefinition/Vector/GridEditor/RuleGridView.resx	                        (rev 0)
+++ trunk/Tools/Maestro/Maestro.Editors/LayerDefinition/Vector/GridEditor/RuleGridView.resx	2014-03-29 14:00:46 UTC (rev 7997)
@@ -0,0 +1,132 @@
+<?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="btnCreateTheme.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
+        YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAABiSURBVDhPYxhGwNzWbZOFnft/YjFIPVQrBIAEv377TjQG
+        qYdqhQCQwKOnL4nGKAaQ6nwQnj1vMcIAkMD2PUcIYhRNyABkwNLVWwlikDqoFlRAjhdAeJDFBAhQnJiG
+        ImBgAAAeJVK8jX2h1gAAAABJRU5ErkJggg==
+</value>
+  </data>
+</root>
\ No newline at end of file

Added: trunk/Tools/Maestro/Maestro.Editors/LayerDefinition/Vector/GridEditor/RuleModel.cs
===================================================================
--- trunk/Tools/Maestro/Maestro.Editors/LayerDefinition/Vector/GridEditor/RuleModel.cs	                        (rev 0)
+++ trunk/Tools/Maestro/Maestro.Editors/LayerDefinition/Vector/GridEditor/RuleModel.cs	2014-03-29 14:00:46 UTC (rev 7997)
@@ -0,0 +1,420 @@
+#region Disclaimer / License
+// Copyright (C) 2014, 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
+using OSGeo.MapGuide.ObjectModels.LayerDefinition;
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+
+namespace Maestro.Editors.LayerDefinition.Vector.GridEditor
+{
+    public interface IRuleModel : INotifyPropertyChanged
+    {
+        [Browsable(false)]
+        int Index { get; }
+        string Filter { get; }
+        string LegendLabel { get; set; }
+        Image Style { get; }
+
+        void SetRuleStylePreview(Image image);
+    }
+
+    public interface ILabeledRuleModel : INotifyPropertyChanged
+    {
+        [Browsable(false)]
+        int Index { get; }
+        string Filter { get; }
+        string LegendLabel { get; set; }
+        Image Style { get; }
+        Image Label { get; }
+    }
+
+    internal abstract class RuleModel : IRuleModel
+    {
+        [Browsable(false)]
+        public int Index { get; protected set; }
+
+        public abstract string Filter { get; set; }
+
+        public abstract string LegendLabel { get; set; }
+
+        public abstract Image Style { get; protected set; }
+
+        [Browsable(false)]
+        public bool HasStyle { get; protected set; }
+
+        public void SetRuleStylePreview(Image preview)
+        {
+            if (this.Style != null)
+                this.Style.Dispose();
+            this.Style = preview;
+        }
+
+        protected void OnPropertyChanged(string name)
+        {
+            var h = this.PropertyChanged;
+            if (h != null)
+                h(this, new PropertyChangedEventArgs(name));
+        }
+
+        public event PropertyChangedEventHandler PropertyChanged;
+    }
+
+    internal abstract class BasicVectorRuleModelBase<TRuleType, TSymbolizationStyleType> : RuleModel, ILabeledRuleModel where TRuleType : IVectorRule
+    {
+        protected TRuleType _rule;
+
+        protected BasicVectorRuleModelBase(TRuleType rule, int index)
+        {
+            _rule = rule;
+            this.Index = index;
+        }
+
+        public override string Filter
+        {
+            get
+            {
+                return _rule.Filter;
+            }
+            set
+            {
+                if (value != _rule.Filter)
+                {
+                    _rule.Filter = value;
+                    OnPropertyChanged("Filter");
+                }
+            }
+        }
+
+        public override string LegendLabel
+        {
+            get
+            {
+                return _rule.LegendLabel;
+            }
+            set
+            {
+                if (value != _rule.LegendLabel)
+                {
+                    _rule.LegendLabel = value;
+                    OnPropertyChanged("LegendLabel");
+                }
+            }
+        }
+
+        private Image _style;
+
+        public override Image Style
+        {
+            get
+            {
+                return _style;
+            }
+            protected set
+            {
+                if (value != _style)
+                {
+                    _style = value;
+                    OnPropertyChanged("Style");
+                }
+            }
+        }
+
+        protected void UpdateLabelPreview(ITextSymbol style)
+        {
+            if (style != null)
+            {
+                Image img = new Bitmap(80, 20);
+                using (Graphics g = Graphics.FromImage(img))
+                {
+                    g.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAlias;
+                    FeaturePreviewRender.RenderPreviewFont(g, new Rectangle(new Point(0, 0), img.Size), style);
+                }
+                this.SetLabelStylePreview(img);
+                this.HasLabel = true;
+            }
+            else
+            {
+                this.SetLabelStylePreview(FeaturePreviewRender.RenderNullLabel(80, 20));
+                this.HasLabel = false;
+            }
+        }
+
+        private Image _label;
+
+        [Browsable(true)]
+        public Image Label
+        {
+            get
+            {
+                return _label;
+            }
+            protected set
+            {
+                if (value != _label)
+                {
+                    _label = value;
+                    OnPropertyChanged("Label");
+                }
+            }
+        }
+
+        [Browsable(false)]
+        public bool HasLabel { get; protected set; }
+
+        public void SetLabelStylePreview(Image preview)
+        {
+            if (this.Label != null)
+                this.Label.Dispose();
+            this.Label = preview;
+        }
+
+        public abstract TSymbolizationStyleType GetSymbolizationStyle();
+
+        public abstract void SetSymbolizationStyle(TSymbolizationStyleType style);
+    }
+
+    internal abstract class BasicVectorRuleModel<TRuleType, TSymbolizationStyleType> : BasicVectorRuleModelBase<TRuleType, TSymbolizationStyleType> where TRuleType : IBasicVectorRule
+    {
+        protected BasicVectorRuleModel(TRuleType rule, int index) 
+            : base(rule, index)
+        {
+            UpdateLabelPreview(_rule.Label);
+        }
+
+        public ITextSymbol GetLabelStyle()
+        {
+            return _rule.Label;
+        }
+
+        public void SetLabelStyle(ITextSymbol style)
+        {
+            _rule.Label = style;
+            UpdateLabelPreview(style);
+        }
+    }
+
+    internal class PointRuleModel : BasicVectorRuleModel<IPointRule, IPointSymbolization2D>
+    {
+        public PointRuleModel(IPointRule rule, int index)
+            : base(rule, index)
+        {
+            this.HasStyle = (_rule.PointSymbolization2D != null);
+        }
+
+        public override IPointSymbolization2D GetSymbolizationStyle()
+        {
+            return _rule.PointSymbolization2D;
+        }
+
+        public override void SetSymbolizationStyle(IPointSymbolization2D style)
+        {
+            _rule.PointSymbolization2D = style;
+            this.HasStyle = (style != null);
+        }
+    }
+
+    internal class BasicLineSymbolizationAdapter : ILineRule
+    {
+        private ILineRule _wrappee;
+
+        public BasicLineSymbolizationAdapter(ILineRule wrappee)
+        {
+            _wrappee = wrappee;
+        }
+
+        public int StrokeCount
+        {
+            get { return _wrappee.StrokeCount; }
+        }
+
+        public IEnumerable<IStroke> Strokes
+        {
+            get { return _wrappee.Strokes; }
+        }
+
+        public void SetStrokes(IEnumerable<IStroke> strokes)
+        {
+            _wrappee.SetStrokes(strokes);
+        }
+
+        public void AddStroke(IStroke stroke)
+        {
+            _wrappee.AddStroke(stroke);
+        }
+
+        public void RemoveStroke(IStroke stroke)
+        {
+            _wrappee.RemoveStroke(stroke);
+        }
+
+        public ITextSymbol Label
+        {
+            get
+            {
+                return _wrappee.Label;
+            }
+            set
+            {
+                _wrappee.Label = value;
+            }
+        }
+
+        public string LegendLabel
+        {
+            get
+            {
+                return _wrappee.LegendLabel;
+            }
+            set
+            {
+                _wrappee.LegendLabel = value;
+            }
+        }
+
+        public string Filter
+        {
+            get
+            {
+                return _wrappee.Filter;
+            }
+            set
+            {
+                _wrappee.Filter = value;
+            }
+        }
+    }
+
+    internal class LineRuleModel : BasicVectorRuleModel<ILineRule, BasicLineSymbolizationAdapter>
+    {
+        public LineRuleModel(ILineRule rule, int index)
+            : base(rule, index)
+        {
+            this.HasStyle = (_rule.Strokes != null && _rule.StrokeCount > 0);
+        }
+
+        public override void SetSymbolizationStyle(BasicLineSymbolizationAdapter style)
+        {
+            //Do nothing, whatever changes have already been applied to the wrapped instance
+            //by the adapter that's returned
+            this.HasStyle = (_rule.Strokes != null && _rule.StrokeCount > 0);
+        }
+
+        public override BasicLineSymbolizationAdapter GetSymbolizationStyle()
+        {
+            return new BasicLineSymbolizationAdapter(_rule);
+        }
+    }
+
+    internal class AreaRuleModel : BasicVectorRuleModel<IAreaRule, IAreaSymbolizationFill>
+    {
+        public AreaRuleModel(IAreaRule rule, int index)
+            : base(rule, index)
+        {
+            this.HasStyle = (_rule.AreaSymbolization2D != null);
+        }
+
+        public override IAreaSymbolizationFill GetSymbolizationStyle()
+        {
+            return _rule.AreaSymbolization2D;
+        }
+
+        public override void SetSymbolizationStyle(IAreaSymbolizationFill style)
+        {
+            _rule.AreaSymbolization2D = style;
+            this.HasStyle = (style != null);
+        }
+    }
+    
+    internal class CompositeRuleModel : RuleModel
+    {
+        private ICompositeRule _rule;
+
+        public CompositeRuleModel(ICompositeRule rule, int index)
+        {
+            _rule = rule;
+            this.Index = index;
+            this.HasStyle = (_rule.CompositeSymbolization != null);
+        }
+
+        public ICompositeSymbolization GetSymbolizationStyle()
+        {
+            return _rule.CompositeSymbolization;
+        }
+
+        public void SetSymbolizationStyle(ICompositeSymbolization style)
+        {
+            _rule.CompositeSymbolization = style;
+            this.HasStyle = (style != null);
+        }
+
+        public override string Filter
+        {
+            get
+            {
+                return _rule.Filter;
+            }
+            set
+            {
+                if (value != _rule.Filter)
+                {
+                    _rule.Filter = value;
+                    OnPropertyChanged("Filter");
+                }
+            }
+        }
+
+        public override string LegendLabel
+        {
+            get
+            {
+                return _rule.LegendLabel;
+            }
+            set
+            {
+                if (value != _rule.LegendLabel)
+                {
+                    _rule.LegendLabel = value;
+                    OnPropertyChanged("LegendLabel");
+                }
+            }
+        }
+
+        private Image _style;
+
+        public override Image Style
+        {
+            get
+            {
+                return _style;
+            }
+            protected set
+            {
+                if (value != _style)
+                {
+                    _style = value;
+                    OnPropertyChanged("Style");
+                }
+            }
+        }
+    }
+}

Added: trunk/Tools/Maestro/Maestro.Editors/LayerDefinition/Vector/GridEditor/VectorScaleRangeGrid.Designer.cs
===================================================================
--- trunk/Tools/Maestro/Maestro.Editors/LayerDefinition/Vector/GridEditor/VectorScaleRangeGrid.Designer.cs	                        (rev 0)
+++ trunk/Tools/Maestro/Maestro.Editors/LayerDefinition/Vector/GridEditor/VectorScaleRangeGrid.Designer.cs	2014-03-29 14:00:46 UTC (rev 7997)
@@ -0,0 +1,322 @@
+namespace Maestro.Editors.LayerDefinition.Vector.GridEditor
+{
+    partial class VectorScaleRangeGrid
+    {
+        /// <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(VectorScaleRangeGrid));
+            this.geomStyleIcons = new System.Windows.Forms.ImageList(this.components);
+            this.TAB_LINES = new System.Windows.Forms.TabPage();
+            this.lineRuleGrid = new Maestro.Editors.LayerDefinition.Vector.GridEditor.RuleGridView();
+            this.TAB_AREAS = new System.Windows.Forms.TabPage();
+            this.areaRuleGrid = new Maestro.Editors.LayerDefinition.Vector.GridEditor.RuleGridView();
+            this.TAB_POINTS = new System.Windows.Forms.TabPage();
+            this.pointRuleGrid = new Maestro.Editors.LayerDefinition.Vector.GridEditor.RuleGridView();
+            this.TAB_COMPOSITE = new System.Windows.Forms.TabPage();
+            this.tabGeomStyles = new System.Windows.Forms.TabControl();
+            this.label1 = new System.Windows.Forms.Label();
+            this.chkComposite = new System.Windows.Forms.CheckBox();
+            this.chkArea = new System.Windows.Forms.CheckBox();
+            this.chkLine = new System.Windows.Forms.CheckBox();
+            this.chkPoints = new System.Windows.Forms.CheckBox();
+            this.splitContainer1 = new System.Windows.Forms.SplitContainer();
+            this.lstStyles = new System.Windows.Forms.ListBox();
+            this.toolStrip1 = new System.Windows.Forms.ToolStrip();
+            this.btnAdd = new System.Windows.Forms.ToolStripButton();
+            this.btnDelete = new System.Windows.Forms.ToolStripButton();
+            this.TAB_LINES.SuspendLayout();
+            this.TAB_AREAS.SuspendLayout();
+            this.TAB_POINTS.SuspendLayout();
+            this.TAB_COMPOSITE.SuspendLayout();
+            this.tabGeomStyles.SuspendLayout();
+            ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit();
+            this.splitContainer1.Panel1.SuspendLayout();
+            this.splitContainer1.SuspendLayout();
+            this.toolStrip1.SuspendLayout();
+            this.SuspendLayout();
+            // 
+            // geomStyleIcons
+            // 
+            this.geomStyleIcons.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("geomStyleIcons.ImageStream")));
+            this.geomStyleIcons.TransparentColor = System.Drawing.Color.Transparent;
+            this.geomStyleIcons.Images.SetKeyName(0, "layer-small.png");
+            this.geomStyleIcons.Images.SetKeyName(1, "layer-shape-line.png");
+            this.geomStyleIcons.Images.SetKeyName(2, "layer-shape-polygon.png");
+            this.geomStyleIcons.Images.SetKeyName(3, "images-stack.png");
+            // 
+            // TAB_LINES
+            // 
+            this.TAB_LINES.AutoScroll = true;
+            this.TAB_LINES.Controls.Add(this.lineRuleGrid);
+            this.TAB_LINES.Location = new System.Drawing.Point(4, 23);
+            this.TAB_LINES.Name = "TAB_LINES";
+            this.TAB_LINES.Padding = new System.Windows.Forms.Padding(3);
+            this.TAB_LINES.Size = new System.Drawing.Size(679, 390);
+            this.TAB_LINES.TabIndex = 1;
+            this.TAB_LINES.Text = "Lines";
+            this.TAB_LINES.UseVisualStyleBackColor = true;
+            // 
+            // lineRuleGrid
+            // 
+            this.lineRuleGrid.Dock = System.Windows.Forms.DockStyle.Fill;
+            this.lineRuleGrid.Location = new System.Drawing.Point(3, 3);
+            this.lineRuleGrid.Name = "lineRuleGrid";
+            this.lineRuleGrid.Size = new System.Drawing.Size(673, 384);
+            this.lineRuleGrid.TabIndex = 0;
+            // 
+            // TAB_AREAS
+            // 
+            this.TAB_AREAS.AutoScroll = true;
+            this.TAB_AREAS.Controls.Add(this.areaRuleGrid);
+            this.TAB_AREAS.Location = new System.Drawing.Point(4, 23);
+            this.TAB_AREAS.Name = "TAB_AREAS";
+            this.TAB_AREAS.Padding = new System.Windows.Forms.Padding(3);
+            this.TAB_AREAS.Size = new System.Drawing.Size(679, 390);
+            this.TAB_AREAS.TabIndex = 2;
+            this.TAB_AREAS.Text = "Areas";
+            this.TAB_AREAS.UseVisualStyleBackColor = true;
+            // 
+            // areaRuleGrid
+            // 
+            this.areaRuleGrid.Dock = System.Windows.Forms.DockStyle.Fill;
+            this.areaRuleGrid.Location = new System.Drawing.Point(3, 3);
+            this.areaRuleGrid.Name = "areaRuleGrid";
+            this.areaRuleGrid.Size = new System.Drawing.Size(673, 384);
+            this.areaRuleGrid.TabIndex = 0;
+            // 
+            // TAB_POINTS
+            // 
+            this.TAB_POINTS.AutoScroll = true;
+            this.TAB_POINTS.Controls.Add(this.pointRuleGrid);
+            this.TAB_POINTS.Location = new System.Drawing.Point(4, 23);
+            this.TAB_POINTS.Name = "TAB_POINTS";
+            this.TAB_POINTS.Padding = new System.Windows.Forms.Padding(3);
+            this.TAB_POINTS.Size = new System.Drawing.Size(679, 390);
+            this.TAB_POINTS.TabIndex = 0;
+            this.TAB_POINTS.Text = "Points";
+            this.TAB_POINTS.UseVisualStyleBackColor = true;
+            // 
+            // pointRuleGrid
+            // 
+            this.pointRuleGrid.Dock = System.Windows.Forms.DockStyle.Fill;
+            this.pointRuleGrid.Location = new System.Drawing.Point(3, 3);
+            this.pointRuleGrid.Name = "pointRuleGrid";
+            this.pointRuleGrid.Size = new System.Drawing.Size(673, 384);
+            this.pointRuleGrid.TabIndex = 0;
+            // 
+            // TAB_COMPOSITE
+            // 
+            this.TAB_COMPOSITE.AutoScroll = true;
+            this.TAB_COMPOSITE.Controls.Add(this.splitContainer1);
+            this.TAB_COMPOSITE.Location = new System.Drawing.Point(4, 23);
+            this.TAB_COMPOSITE.Name = "TAB_COMPOSITE";
+            this.TAB_COMPOSITE.Padding = new System.Windows.Forms.Padding(3);
+            this.TAB_COMPOSITE.Size = new System.Drawing.Size(679, 390);
+            this.TAB_COMPOSITE.TabIndex = 3;
+            this.TAB_COMPOSITE.Text = "Composite";
+            this.TAB_COMPOSITE.UseVisualStyleBackColor = true;
+            // 
+            // tabGeomStyles
+            // 
+            this.tabGeomStyles.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.tabGeomStyles.Controls.Add(this.TAB_POINTS);
+            this.tabGeomStyles.Controls.Add(this.TAB_LINES);
+            this.tabGeomStyles.Controls.Add(this.TAB_AREAS);
+            this.tabGeomStyles.Controls.Add(this.TAB_COMPOSITE);
+            this.tabGeomStyles.ImageList = this.geomStyleIcons;
+            this.tabGeomStyles.Location = new System.Drawing.Point(0, 27);
+            this.tabGeomStyles.Name = "tabGeomStyles";
+            this.tabGeomStyles.SelectedIndex = 0;
+            this.tabGeomStyles.Size = new System.Drawing.Size(687, 417);
+            this.tabGeomStyles.TabIndex = 16;
+            // 
+            // label1
+            // 
+            this.label1.AutoSize = true;
+            this.label1.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.label1.Location = new System.Drawing.Point(6, 5);
+            this.label1.Name = "label1";
+            this.label1.Size = new System.Drawing.Size(98, 13);
+            this.label1.TabIndex = 15;
+            this.label1.Text = "Enable these styles";
+            // 
+            // chkComposite
+            // 
+            this.chkComposite.AutoSize = true;
+            this.chkComposite.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.chkComposite.Location = new System.Drawing.Point(294, 4);
+            this.chkComposite.Name = "chkComposite";
+            this.chkComposite.Size = new System.Drawing.Size(183, 17);
+            this.chkComposite.TabIndex = 13;
+            this.chkComposite.Text = "Composite (Advanced Stylization)";
+            this.chkComposite.UseVisualStyleBackColor = true;
+            this.chkComposite.CheckedChanged += new System.EventHandler(this.chkComposite_CheckedChanged);
+            // 
+            // chkArea
+            // 
+            this.chkArea.AutoSize = true;
+            this.chkArea.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.chkArea.Location = new System.Drawing.Point(235, 4);
+            this.chkArea.Name = "chkArea";
+            this.chkArea.Size = new System.Drawing.Size(53, 17);
+            this.chkArea.TabIndex = 12;
+            this.chkArea.Text = "Areas";
+            this.chkArea.UseVisualStyleBackColor = true;
+            this.chkArea.CheckedChanged += new System.EventHandler(this.chkArea_CheckedChanged);
+            // 
+            // chkLine
+            // 
+            this.chkLine.AutoSize = true;
+            this.chkLine.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.chkLine.Location = new System.Drawing.Point(178, 4);
+            this.chkLine.Name = "chkLine";
+            this.chkLine.Size = new System.Drawing.Size(51, 17);
+            this.chkLine.TabIndex = 11;
+            this.chkLine.Text = "Lines";
+            this.chkLine.UseVisualStyleBackColor = true;
+            this.chkLine.CheckedChanged += new System.EventHandler(this.chkLine_CheckedChanged);
+            // 
+            // chkPoints
+            // 
+            this.chkPoints.AutoSize = true;
+            this.chkPoints.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.chkPoints.Location = new System.Drawing.Point(117, 4);
+            this.chkPoints.Name = "chkPoints";
+            this.chkPoints.Size = new System.Drawing.Size(55, 17);
+            this.chkPoints.TabIndex = 14;
+            this.chkPoints.Text = "Points";
+            this.chkPoints.UseVisualStyleBackColor = true;
+            this.chkPoints.CheckedChanged += new System.EventHandler(this.chkPoints_CheckedChanged);
+            // 
+            // splitContainer1
+            // 
+            this.splitContainer1.Dock = System.Windows.Forms.DockStyle.Fill;
+            this.splitContainer1.Location = new System.Drawing.Point(3, 3);
+            this.splitContainer1.Name = "splitContainer1";
+            // 
+            // splitContainer1.Panel1
+            // 
+            this.splitContainer1.Panel1.Controls.Add(this.lstStyles);
+            this.splitContainer1.Panel1.Controls.Add(this.toolStrip1);
+            this.splitContainer1.Size = new System.Drawing.Size(673, 384);
+            this.splitContainer1.SplitterDistance = 161;
+            this.splitContainer1.TabIndex = 0;
+            // 
+            // lstStyles
+            // 
+            this.lstStyles.DisplayMember = "DisplayString";
+            this.lstStyles.Dock = System.Windows.Forms.DockStyle.Fill;
+            this.lstStyles.FormattingEnabled = true;
+            this.lstStyles.Location = new System.Drawing.Point(0, 25);
+            this.lstStyles.Name = "lstStyles";
+            this.lstStyles.Size = new System.Drawing.Size(161, 359);
+            this.lstStyles.TabIndex = 3;
+            // 
+            // toolStrip1
+            // 
+            this.toolStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
+            this.btnAdd,
+            this.btnDelete});
+            this.toolStrip1.Location = new System.Drawing.Point(0, 0);
+            this.toolStrip1.Name = "toolStrip1";
+            this.toolStrip1.Size = new System.Drawing.Size(161, 25);
+            this.toolStrip1.TabIndex = 2;
+            this.toolStrip1.Text = "toolStrip1";
+            // 
+            // btnAdd
+            // 
+            this.btnAdd.Image = global::Maestro.Editors.Properties.Resources.plus_circle;
+            this.btnAdd.ImageTransparentColor = System.Drawing.Color.Magenta;
+            this.btnAdd.Name = "btnAdd";
+            this.btnAdd.Size = new System.Drawing.Size(49, 22);
+            this.btnAdd.Text = "Add";
+            this.btnAdd.ToolTipText = "Add a Composite Style";
+            // 
+            // btnDelete
+            // 
+            this.btnDelete.Enabled = false;
+            this.btnDelete.Image = global::Maestro.Editors.Properties.Resources.cross_script;
+            this.btnDelete.ImageTransparentColor = System.Drawing.Color.Magenta;
+            this.btnDelete.Name = "btnDelete";
+            this.btnDelete.Size = new System.Drawing.Size(60, 22);
+            this.btnDelete.Text = "Delete";
+            this.btnDelete.ToolTipText = "Delete this Composite Style";
+            // 
+            // VectorScaleRangeGrid
+            // 
+            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+            this.Controls.Add(this.tabGeomStyles);
+            this.Controls.Add(this.label1);
+            this.Controls.Add(this.chkComposite);
+            this.Controls.Add(this.chkArea);
+            this.Controls.Add(this.chkLine);
+            this.Controls.Add(this.chkPoints);
+            this.Name = "VectorScaleRangeGrid";
+            this.Size = new System.Drawing.Size(687, 444);
+            this.TAB_LINES.ResumeLayout(false);
+            this.TAB_AREAS.ResumeLayout(false);
+            this.TAB_POINTS.ResumeLayout(false);
+            this.TAB_COMPOSITE.ResumeLayout(false);
+            this.tabGeomStyles.ResumeLayout(false);
+            this.splitContainer1.Panel1.ResumeLayout(false);
+            this.splitContainer1.Panel1.PerformLayout();
+            ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).EndInit();
+            this.splitContainer1.ResumeLayout(false);
+            this.toolStrip1.ResumeLayout(false);
+            this.toolStrip1.PerformLayout();
+            this.ResumeLayout(false);
+            this.PerformLayout();
+
+        }
+
+        #endregion
+
+        private System.Windows.Forms.ImageList geomStyleIcons;
+        private System.Windows.Forms.TabPage TAB_LINES;
+        private System.Windows.Forms.TabPage TAB_AREAS;
+        private System.Windows.Forms.TabPage TAB_POINTS;
+        private System.Windows.Forms.TabPage TAB_COMPOSITE;
+        private System.Windows.Forms.TabControl tabGeomStyles;
+        private System.Windows.Forms.Label label1;
+        private System.Windows.Forms.CheckBox chkComposite;
+        private System.Windows.Forms.CheckBox chkArea;
+        private System.Windows.Forms.CheckBox chkLine;
+        private System.Windows.Forms.CheckBox chkPoints;
+        private RuleGridView lineRuleGrid;
+        private RuleGridView areaRuleGrid;
+        private RuleGridView pointRuleGrid;
+        private System.Windows.Forms.SplitContainer splitContainer1;
+        private System.Windows.Forms.ListBox lstStyles;
+        private System.Windows.Forms.ToolStrip toolStrip1;
+        private System.Windows.Forms.ToolStripButton btnAdd;
+        private System.Windows.Forms.ToolStripButton btnDelete;
+    }
+}

Added: trunk/Tools/Maestro/Maestro.Editors/LayerDefinition/Vector/GridEditor/VectorScaleRangeGrid.cs
===================================================================
--- trunk/Tools/Maestro/Maestro.Editors/LayerDefinition/Vector/GridEditor/VectorScaleRangeGrid.cs	                        (rev 0)
+++ trunk/Tools/Maestro/Maestro.Editors/LayerDefinition/Vector/GridEditor/VectorScaleRangeGrid.cs	2014-03-29 14:00:46 UTC (rev 7997)
@@ -0,0 +1,213 @@
+#region Disclaimer / License
+// Copyright (C) 2014, 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
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Drawing;
+using System.Data;
+using System.Linq;
+using System.Text;
+using System.Windows.Forms;
+using OSGeo.MapGuide.ObjectModels.LayerDefinition;
+
+namespace Maestro.Editors.LayerDefinition.Vector.GridEditor
+{
+    internal partial class VectorScaleRangeGrid : UserControl
+    {
+        private VectorScaleRangeGrid()
+        {
+            InitializeComponent();
+        }
+
+        private bool _init = false;
+        private VectorLayerStyleSectionCtrl _parent;
+        private IVectorScaleRange _vsr;
+        private IPointVectorStyle _pts;
+        private ILineVectorStyle _lts;
+        private IAreaVectorStyle _ats;
+        private List<ICompositeTypeStyle> _cts;
+
+        public VectorScaleRangeGrid(IVectorScaleRange vsr, VectorLayerStyleSectionCtrl parent)
+            : this()
+        {
+            try
+            {
+                _init = true;
+                _parent = parent;
+                _vsr = vsr;
+                _pts = _vsr.PointStyle;
+                _lts = _vsr.LineStyle;
+                _ats = _vsr.AreaStyle;
+
+                chkPoints.Checked = (_pts != null);
+                chkLine.Checked = (_lts != null);
+                chkArea.Checked = (_ats != null);
+                var vsr2 = _vsr as IVectorScaleRange2;
+                if (vsr2 != null)
+                {
+                    _cts = new List<ICompositeTypeStyle>(vsr2.CompositeStyle);
+                    chkComposite.Checked = (vsr2.CompositeStyleCount > 0);
+                }
+                else
+                {
+                    chkComposite.Visible = false;
+                    SetCompositeTabVisibility(false);
+                }
+
+                SetPointUI();
+                SetLineUI();
+                SetAreaUI();
+                SetCompositeUI();
+
+                pointRuleGrid.Init(_parent.EditorService, _vsr, _vsr.PointStyle);
+                lineRuleGrid.Init(_parent.EditorService, _vsr, _vsr.LineStyle);
+                areaRuleGrid.Init(_parent.EditorService, _vsr, _vsr.AreaStyle);
+            }
+            finally
+            {
+                _init = false;
+            }
+        }
+
+        private void chkPoints_CheckedChanged(object sender, EventArgs e)
+        {
+            if (_init) return;
+
+            SetPointUI();
+        }
+
+        private void SetPointUI()
+        {
+            SetPointTabVisibility(chkPoints.Checked);
+            _vsr.PointStyle = (chkPoints.Checked) ? _pts : null;
+            pointRuleGrid.Init(_parent.EditorService, _vsr, _vsr.PointStyle);
+            if (!_init)
+                _parent.RaiseResourceChanged();
+        }
+
+        private void chkLine_CheckedChanged(object sender, EventArgs e)
+        {
+            if (_init) return;
+
+            SetLineUI();
+        }
+
+        private void SetLineUI()
+        {
+            SetLineTabVisibility(chkLine.Checked);
+            _vsr.LineStyle = (chkLine.Checked) ? _lts : null;
+            lineRuleGrid.Init(_parent.EditorService, _vsr, _vsr.LineStyle);
+            if (!_init)
+                _parent.RaiseResourceChanged();
+        }
+
+        private void chkArea_CheckedChanged(object sender, EventArgs e)
+        {
+            if (_init) return;
+
+            SetAreaUI();
+        }
+
+        private void SetAreaUI()
+        {
+            SetAreaTabVisibility(chkArea.Checked);
+            _vsr.AreaStyle = (chkArea.Checked) ? _ats : null;
+            areaRuleGrid.Init(_parent.EditorService, _vsr, _vsr.AreaStyle);
+            if (!_init)
+                _parent.RaiseResourceChanged();
+        }
+
+        private void SetPointTabVisibility(bool visible)
+        {
+            int idx = tabGeomStyles.TabPages.IndexOf(TAB_POINTS);
+            if (visible)
+            {
+                if (idx < 0)
+                    tabGeomStyles.TabPages.Insert(tabGeomStyles.TabPages.Count, TAB_POINTS);
+            }
+            else
+            {
+                if (idx >= 0)
+                    tabGeomStyles.TabPages.RemoveAt(idx);
+            }
+        }
+
+        private void chkComposite_CheckedChanged(object sender, EventArgs e)
+        {
+            if (_init) return;
+        }
+
+        private void SetCompositeUI()
+        {
+            var vsr2 = _vsr as IVectorScaleRange2;
+            if (vsr2 == null) return;
+            SetCompositeTabVisibility(chkComposite.Checked);
+            vsr2.CompositeStyle = (chkComposite.Checked) ? _cts : null;
+
+            if (!_init)
+                _parent.RaiseResourceChanged();
+        }
+
+        private void SetCompositeTabVisibility(bool visible)
+        {
+            int idx = tabGeomStyles.TabPages.IndexOf(TAB_COMPOSITE);
+            if (visible)
+            {
+                if (idx < 0)
+                    tabGeomStyles.TabPages.Insert(tabGeomStyles.TabPages.Count, TAB_COMPOSITE);
+            }
+            else
+            {
+                if (idx >= 0)
+                    tabGeomStyles.TabPages.RemoveAt(idx);
+            }
+        }
+
+        private void SetLineTabVisibility(bool visible)
+        {
+            int idx = tabGeomStyles.TabPages.IndexOf(TAB_LINES);
+            if (visible)
+            {
+                if (idx < 0)
+                    tabGeomStyles.TabPages.Insert(tabGeomStyles.TabPages.Count, TAB_LINES);
+            }
+            else
+            {
+                if (idx >= 0)
+                    tabGeomStyles.TabPages.RemoveAt(idx);
+            }
+        }
+
+        private void SetAreaTabVisibility(bool visible)
+        {
+            int idx = tabGeomStyles.TabPages.IndexOf(TAB_AREAS);
+            if (visible)
+            {
+                if (idx < 0)
+                    tabGeomStyles.TabPages.Insert(tabGeomStyles.TabPages.Count, TAB_AREAS);
+            }
+            else
+            {
+                if (idx >= 0)
+                    tabGeomStyles.TabPages.RemoveAt(idx);
+            }
+        }
+    }
+}

Added: trunk/Tools/Maestro/Maestro.Editors/LayerDefinition/Vector/GridEditor/VectorScaleRangeGrid.resx
===================================================================
--- trunk/Tools/Maestro/Maestro.Editors/LayerDefinition/Vector/GridEditor/VectorScaleRangeGrid.resx	                        (rev 0)
+++ trunk/Tools/Maestro/Maestro.Editors/LayerDefinition/Vector/GridEditor/VectorScaleRangeGrid.resx	2014-03-29 14:00:46 UTC (rev 7997)
@@ -0,0 +1,178 @@
+<?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="geomStyleIcons.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
+    <value>17, 17</value>
+  </metadata>
+  <data name="geomStyleIcons.ImageStream" mimetype="application/x-microsoft.net.object.binary.base64">
+    <value>
+        AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
+        LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
+        ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAABY
+        CgAAAk1TRnQBSQFMAgEBBAEAAUgBAAFIAQABEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
+        AwABQAMAASADAAEBAQABCAYAAQgYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA
+        AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5
+        AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA
+        AWYDAAGZAwABzAIAATMDAAIzAgABMwFmAgABMwGZAgABMwHMAgABMwH/AgABZgMAAWYBMwIAAmYCAAFm
+        AZkCAAFmAcwCAAFmAf8CAAGZAwABmQEzAgABmQFmAgACmQIAAZkBzAIAAZkB/wIAAcwDAAHMATMCAAHM
+        AWYCAAHMAZkCAALMAgABzAH/AgAB/wFmAgAB/wGZAgAB/wHMAQABMwH/AgAB/wEAATMBAAEzAQABZgEA
+        ATMBAAGZAQABMwEAAcwBAAEzAQAB/wEAAf8BMwIAAzMBAAIzAWYBAAIzAZkBAAIzAcwBAAIzAf8BAAEz
+        AWYCAAEzAWYBMwEAATMCZgEAATMBZgGZAQABMwFmAcwBAAEzAWYB/wEAATMBmQIAATMBmQEzAQABMwGZ
+        AWYBAAEzApkBAAEzAZkBzAEAATMBmQH/AQABMwHMAgABMwHMATMBAAEzAcwBZgEAATMBzAGZAQABMwLM
+        AQABMwHMAf8BAAEzAf8BMwEAATMB/wFmAQABMwH/AZkBAAEzAf8BzAEAATMC/wEAAWYDAAFmAQABMwEA
+        AWYBAAFmAQABZgEAAZkBAAFmAQABzAEAAWYBAAH/AQABZgEzAgABZgIzAQABZgEzAWYBAAFmATMBmQEA
+        AWYBMwHMAQABZgEzAf8BAAJmAgACZgEzAQADZgEAAmYBmQEAAmYBzAEAAWYBmQIAAWYBmQEzAQABZgGZ
+        AWYBAAFmApkBAAFmAZkBzAEAAWYBmQH/AQABZgHMAgABZgHMATMBAAFmAcwBmQEAAWYCzAEAAWYBzAH/
+        AQABZgH/AgABZgH/ATMBAAFmAf8BmQEAAWYB/wHMAQABzAEAAf8BAAH/AQABzAEAApkCAAGZATMBmQEA
+        AZkBAAGZAQABmQEAAcwBAAGZAwABmQIzAQABmQEAAWYBAAGZATMBzAEAAZkBAAH/AQABmQFmAgABmQFm
+        ATMBAAGZATMBZgEAAZkBZgGZAQABmQFmAcwBAAGZATMB/wEAApkBMwEAApkBZgEAA5kBAAKZAcwBAAKZ
+        Af8BAAGZAcwCAAGZAcwBMwEAAWYBzAFmAQABmQHMAZkBAAGZAswBAAGZAcwB/wEAAZkB/wIAAZkB/wEz
+        AQABmQHMAWYBAAGZAf8BmQEAAZkB/wHMAQABmQL/AQABzAMAAZkBAAEzAQABzAEAAWYBAAHMAQABmQEA
+        AcwBAAHMAQABmQEzAgABzAIzAQABzAEzAWYBAAHMATMBmQEAAcwBMwHMAQABzAEzAf8BAAHMAWYCAAHM
+        AWYBMwEAAZkCZgEAAcwBZgGZAQABzAFmAcwBAAGZAWYB/wEAAcwBmQIAAcwBmQEzAQABzAGZAWYBAAHM
+        ApkBAAHMAZkBzAEAAcwBmQH/AQACzAIAAswBMwEAAswBZgEAAswBmQEAA8wBAALMAf8BAAHMAf8CAAHM
+        Af8BMwEAAZkB/wFmAQABzAH/AZkBAAHMAf8BzAEAAcwC/wEAAcwBAAEzAQAB/wEAAWYBAAH/AQABmQEA
+        AcwBMwIAAf8CMwEAAf8BMwFmAQAB/wEzAZkBAAH/ATMBzAEAAf8BMwH/AQAB/wFmAgAB/wFmATMBAAHM
+        AmYBAAH/AWYBmQEAAf8BZgHMAQABzAFmAf8BAAH/AZkCAAH/AZkBMwEAAf8BmQFmAQAB/wKZAQAB/wGZ
+        AcwBAAH/AZkB/wEAAf8BzAIAAf8BzAEzAQAB/wHMAWYBAAH/AcwBmQEAAf8CzAEAAf8BzAH/AQAC/wEz
+        AQABzAH/AWYBAAL/AZkBAAL/AcwBAAJmAf8BAAFmAf8BZgEAAWYC/wEAAf8CZgEAAf8BZgH/AQAC/wFm
+        AQABIQEAAaUBAANfAQADdwEAA4YBAAOWAQADywEAA7IBAAPXAQAD3QEAA+MBAAPqAQAD8QEAA/gBAAHw
+        AfsB/wEAAaQCoAEAA4ADAAH/AgAB/wMAAv8BAAH/AwAB/wEAAf8BAAL/AgAD//8A/wD/AP8ANQAM/xQA
+        DP8B8gG7AfMRAAG8CgcBvBQADP8BuwH/AbsBAAHzAbsB8gr/AfIBuwHzAbwB/wj0Af8BBwL/HQAB/wK8
+        AfMBAAEJAf8BCQrwAQkB/wEJAbwB9AQqATABNwEwASoB9AHsAQcBvAUAAfQB8AW8AfAB9A4AAf8B8AH/
+        AwAB9AG8AQkK8gEJAbwB9AG8AfQFMQFYATcBMQH0AfcB/wEHAv8DAAHxAfAF8gHwAfENAAH/AfAB/wUA
+        AfAK8gHwAfQCAAG8Af8BEQEVAUsBUQF5AaAB5QFYAf8BtAH0AewBBwG8AwAB8AfyAfAMAAH/AfEB/wYA
+        AfEI8gHzAfEB9AMAAfAB/wFEAUsCWAFZAeUBWQFYAf8BtAH0AfcB/wG8AwAB8QfyAfELAAH/AfEB/wcA
+        AfEB8wXyA/AB9AQAAfAB/wFSB1gB/wHvAf8BSgH0AbwDAAHxAfMG8gHxCgAB/wHxAf8HAAH0AvAB8wTy
+        AfAB/wHwBQAB8AH/CDEB/wEHAf8BUQH0AbwDAAHyBPMC8gHzAfIJAAH/AfEB/wgAAfAB/wHwBfMD8AH0
+        BAAB8Ar/AbsB/wFRAf8BvAMAAfIB9AXzAfQB8ggAAf8B8gH/CQAB9ALwAfQF8wL0AfIB9AMAAfMB8QHv
+        AbwCswG0AbMDtAG7Af8BUQH/AfADAAHzAfIF9AHyAfMHAAH/AfIB/wwAAfQB8gL0BfMB9AHyAfQEAAHw
+        Cv8BUQH/AfADAAH/AfMF8gHzAf8GAAH/AfIB/w4AAfQB8QLwBvQB8QHwAfQCAAHzAfEB7wG8CFEB/wHw
+        EAAB9AHwAfEB/xAAAfEB/wHxBvIB8QH/AfEEAAHwCv8B8BAAAfEB/wHxEQAB9AHxAfQGAAH0AfEB9AQA
+        AfMK8QHzEAAB9AHxAfQtAAFCAU0BPgcAAT4DAAEoAwABQAMAASADAAEBAQABAQYAAQEWAAP/gQAG/wEA
+        AQ8C/wEAAQEC/wEAAQ8C/wEAAQEDAAEDA/8B4QMAAQMB4AEPAf8BxwQAAeABDwH/AY8BgAEDAgAB4AEP
+        Af8BHwGAAQcCAAHgAQ8B/gE/AYABDwIAAeABDwH8AX8BAAEfAgAB4AEPAfgB/wEAAQ8CAAHgAQ8B8QH/
+        AQABBwIAAeABDwHjAf8BwAEDAcABAAHgAQ8BxwH/AeABAAHAAQAC/wEPAf8B8AEAAfABAAL/AR8B/wHx
+        AfgB8AEAAv8BHwX/Cw==
+</value>
+  </data>
+  <metadata name="toolStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
+    <value>155, 17</value>
+  </metadata>
+</root>
\ No newline at end of file

Modified: trunk/Tools/Maestro/Maestro.Editors/LayerDefinition/Vector/StyleEditors/AreaFeatureStyleEditor.cs
===================================================================
--- trunk/Tools/Maestro/Maestro.Editors/LayerDefinition/Vector/StyleEditors/AreaFeatureStyleEditor.cs	2014-03-28 08:54:10 UTC (rev 7996)
+++ trunk/Tools/Maestro/Maestro.Editors/LayerDefinition/Vector/StyleEditors/AreaFeatureStyleEditor.cs	2014-03-29 14:00:46 UTC (rev 7997)
@@ -156,7 +156,7 @@
                     lineStyleEditor.thicknessCombo.Text = m_item.Stroke.Thickness;
                 }
 
-                previewPicture.Refresh();
+                UpdatePreviewResult();
             } 
             finally
             {
@@ -207,7 +207,7 @@
                 return;
 
             m_item.Fill.FillPattern = fillStyleEditor.fillCombo.Text;
-            previewPicture.Refresh();
+            UpdatePreviewResult();
             if (Changed != null)
                 Changed(this, new EventArgs());
         }
@@ -225,7 +225,7 @@
                     previousFill = m_item.Fill;
                 m_item.Fill = null;
             }
-            previewPicture.Refresh();
+            UpdatePreviewResult();
             if (Changed != null)
                 Changed(this, new EventArgs());
         }
@@ -236,7 +236,7 @@
                 return;
 
             m_item.Fill.ForegroundColor = fillStyleEditor.foregroundColor.ColorExpression;
-            previewPicture.Refresh();
+            UpdatePreviewResult();
             if (Changed != null)
                 Changed(this, new EventArgs());
         }
@@ -247,7 +247,7 @@
                 return;
 
             m_item.Fill.BackgroundColor = fillStyleEditor.backgroundColor.ColorExpression;
-            previewPicture.Refresh();
+            UpdatePreviewResult();
             if (Changed != null)
                 Changed(this, new EventArgs());
         }
@@ -265,7 +265,7 @@
                     previousStroke = m_item.Stroke;
                 m_item.Stroke = null;
             }
-            previewPicture.Refresh();
+            UpdatePreviewResult();
             if (Changed != null)
                 Changed(this, new EventArgs());
         }
@@ -276,7 +276,7 @@
                 return;
 
             m_item.Stroke.Color = lineStyleEditor.colorCombo.ColorExpression;
-            previewPicture.Refresh();
+            UpdatePreviewResult();
             if (Changed != null)
                 Changed(this, new EventArgs());
         }
@@ -288,7 +288,7 @@
 
             //TODO: Validate
             m_item.Stroke.LineStyle = lineStyleEditor.fillCombo.Text;
-            previewPicture.Refresh();
+            UpdatePreviewResult();
             if (Changed != null)
                 Changed(this, new EventArgs());
         }
@@ -300,7 +300,7 @@
 
             //TODO: Validate
             m_item.Stroke.Thickness = lineStyleEditor.thicknessCombo.Text;
-            previewPicture.Refresh();
+            UpdatePreviewResult();
             if (Changed != null)
                 Changed(this, new EventArgs());
         }
@@ -348,6 +348,7 @@
                     owner.SelectedIndex = -1;
 
                 owner.Text = text;
+                UpdatePreviewResult();
             }
             finally
             {
@@ -363,7 +364,10 @@
                 return;
 
             if (s2 != null)
+            {
                 s2.SizeContext = (SizeContextType)Enum.Parse(typeof(SizeContextType), (string)sizeContextCombo.SelectedValue);
+                UpdatePreviewResult();
+            }
         }
 
         private void sizeUnitsCombo_SelectedIndexChanged(object sender, EventArgs e)
@@ -372,31 +376,46 @@
                 return;
 
             m_item.Stroke.Unit = (LengthUnitType)Enum.Parse(typeof(LengthUnitType), (string)sizeUnitsCombo.SelectedValue);
+            UpdatePreviewResult();
         }
 
         private void fillStyleEditor_BackgroundRequiresExpression(object sender, EventArgs e)
         {
             string expr = m_editor.EditExpression(fillStyleEditor.backgroundColor.ColorExpression, m_schema, m_providername, m_featureSource, true);
             if (expr != null)
+            {
                 fillStyleEditor.backgroundColor.ColorExpression = expr;
+                UpdatePreviewResult();
+            }
         }
 
         private void fillStyleEditor_ForegroundRequiresExpression(object sender, EventArgs e)
         {
             string expr = m_editor.EditExpression(fillStyleEditor.foregroundColor.ColorExpression, m_schema, m_providername, m_featureSource, true);
             if (expr != null)
+            {
                 fillStyleEditor.foregroundColor.ColorExpression = expr;
+                UpdatePreviewResult();
+            }
         }
         
         void LineStyleEditor_RequiresExpressionEditor(object sender, EventArgs e)
         {
             string expr = m_editor.EditExpression(lineStyleEditor.colorCombo.ColorExpression, m_schema, m_providername, m_featureSource, true);
             if (expr != null)
+            {
                 lineStyleEditor.colorCombo.ColorExpression = expr;
+                UpdatePreviewResult();
+            }
         }
 
         private void lnkRefresh_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
         {
+            UpdatePreviewResult();
+        }
+
+        private void UpdatePreviewResult()
+        {
             if (_editCommit != null)
                 _editCommit.Invoke();
             UpdatePreviewImage();
@@ -405,9 +424,7 @@
         protected override void OnLoad(EventArgs e)
         {
             base.OnLoad(e);
-            if (_editCommit != null)
-                _editCommit.Invoke();
-            UpdatePreviewImage();
+            UpdatePreviewResult();
         }
 
         private Action _editCommit;

Modified: trunk/Tools/Maestro/Maestro.Editors/LayerDefinition/Vector/StyleEditors/LineFeatureStyleEditor.cs
===================================================================
--- trunk/Tools/Maestro/Maestro.Editors/LayerDefinition/Vector/StyleEditors/LineFeatureStyleEditor.cs	2014-03-28 08:54:10 UTC (rev 7996)
+++ trunk/Tools/Maestro/Maestro.Editors/LayerDefinition/Vector/StyleEditors/LineFeatureStyleEditor.cs	2014-03-29 14:00:46 UTC (rev 7997)
@@ -157,7 +157,6 @@
                 }
 
                 UpdateDisplayForSelected();
-
             }
             finally
             {
@@ -207,7 +206,7 @@
                     else
                         sizeContextCombo.Enabled = false;
                 }
-                previewPicture.Refresh();
+                UpdatePreviewResult();
             } 
             finally
             {
@@ -534,7 +533,7 @@
             if (st2 != null)
             {
                 st2.SizeContext = (SizeContextType)Enum.Parse(typeof(SizeContextType), (string)sizeContextCombo.SelectedValue);
-                previewPicture.Refresh();
+                UpdatePreviewResult();
                 lineStyles.Refresh();
                 if (Changed != null)
                     Changed(this, new EventArgs());
@@ -546,7 +545,7 @@
             if (m_inUpdate || this.CurrentStrokeType == null)
                 return;
             this.CurrentStrokeType.Unit = (LengthUnitType)Enum.Parse(typeof(LengthUnitType), (string)sizeUnitsCombo.SelectedValue);
-            previewPicture.Refresh();
+            UpdatePreviewResult();
             lineStyles.Refresh();
             if (Changed != null)
                 Changed(this, new EventArgs());
@@ -569,7 +568,7 @@
 
             //TODO: Validate
             this.CurrentStrokeType.Thickness = lineStyleEditor.thicknessCombo.Text;
-            previewPicture.Refresh();
+            UpdatePreviewResult();
             if (Changed != null)
                 Changed(this, new EventArgs());
         }
@@ -593,7 +592,7 @@
             if (m_inUpdate || this.CurrentStrokeType == null)
                 return;
             this.CurrentStrokeType.Color = lineStyleEditor.colorCombo.ColorExpression;
-            previewPicture.Refresh();
+            UpdatePreviewResult();
             lineStyles.Refresh();
             if (Changed != null)
                 Changed(this, new EventArgs());
@@ -606,7 +605,7 @@
 
             if (lineStyleEditor.fillCombo.SelectedItem as ImageStylePicker.NamedImage != null)
                 this.CurrentStrokeType.LineStyle = (lineStyleEditor.fillCombo.SelectedItem as ImageStylePicker.NamedImage).Name;
-            previewPicture.Refresh();
+            UpdatePreviewResult();
             lineStyles.Refresh();
             if (Changed != null)
                 Changed(this, new EventArgs());
@@ -627,6 +626,7 @@
                 {
                     applyLineStyle.Tag = m_item;
                     m_item = new BindingList<IStroke>();
+                    UpdatePreviewResult();
                 }
                 else
                 {
@@ -736,6 +736,7 @@
                     owner.SelectedIndex = -1;
 
                 owner.Text = text;
+                UpdatePreviewResult();
             }
             finally
             {
@@ -748,11 +749,19 @@
         {
             string expr = m_editor.EditExpression(lineStyleEditor.ColorExpression, m_schema, m_providername, m_featureSource, true);
             if (expr != null)
+            {
                 lineStyleEditor.ColorExpression = expr;
+                UpdatePreviewResult();
+            }
         }
 
         private void lnkRefresh_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
         {
+            UpdatePreviewResult();
+        }
+
+        private void UpdatePreviewResult()
+        {
             if (_editCommit != null)
                 _editCommit.Invoke();
             UpdatePreviewImage();
@@ -768,9 +777,7 @@
         protected override void OnLoad(EventArgs e)
         {
             base.OnLoad(e);
-            if (_editCommit != null)
-                _editCommit.Invoke();
-            UpdatePreviewImage();
+            UpdatePreviewResult();
         }
     }
 }

Modified: trunk/Tools/Maestro/Maestro.Editors/LayerDefinition/Vector/StyleEditors/PointFeatureStyleEditor.cs
===================================================================
--- trunk/Tools/Maestro/Maestro.Editors/LayerDefinition/Vector/StyleEditors/PointFeatureStyleEditor.cs	2014-03-28 08:54:10 UTC (rev 7996)
+++ trunk/Tools/Maestro/Maestro.Editors/LayerDefinition/Vector/StyleEditors/PointFeatureStyleEditor.cs	2014-03-29 14:00:46 UTC (rev 7997)
@@ -334,7 +334,7 @@
                     //TODO: Fix this
                     MessageBox.Show(this, Strings.SymbolTypeNotSupported, Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Information);
 
-                previewPicture.Refresh();
+                UpdatePreviewResult();
             } 
             finally
             {
@@ -506,7 +506,7 @@
             this.HeightText.Items.AddRange(new object[] {
             resources.GetString("HeightText.Items")});
             this.HeightText.Name = "HeightText";
-            this.HeightText.SelectedIndexChanged += new System.EventHandler(this.HeigthText_SelectedIndexChanged);
+            this.HeightText.SelectedIndexChanged += new System.EventHandler(this.HeightText_SelectedIndexChanged);
             this.HeightText.TextChanged += new System.EventHandler(this.HeightText_TextChanged);
             // 
             // WidthText
@@ -964,7 +964,6 @@
         {
             using (new WaitCursor(this))
             {
-                UpdateDisplay();
                 m_editor.SyncSessionCopy();
                 _previewImg = _mappingSvc.GetLegendImage(_preview.Scale, _preview.LayerDefinition, _preview.ThemeCategory, 1, previewPicture.Width, previewPicture.Height, _preview.ImageFormat);
                 previewPicture.Invalidate();
@@ -1099,7 +1098,7 @@
                 return;
             }
 
-            previewPicture.Refresh();
+            UpdatePreviewResult();
             if (Changed != null)
                 Changed(this, new EventArgs());
         }
@@ -1115,7 +1114,7 @@
                 ((IFontSymbol)m_item.Symbol).SizeContext = (SizeContextType)Enum.Parse((typeof(SizeContextType)), (string)SizeContext.SelectedValue);
             else if (m_item.Symbol.Type == PointSymbolType.W2D)
                 ((IW2DSymbol)m_item.Symbol).SizeContext = (SizeContextType)Enum.Parse((typeof(SizeContextType)), (string)SizeContext.SelectedValue);
-            previewPicture.Refresh();
+            UpdatePreviewResult();
             if (Changed != null)
                 Changed(this, new EventArgs());
         }
@@ -1127,7 +1126,7 @@
 
             if (m_item.Symbol.Type == PointSymbolType.Mark || m_item.Symbol.Type == PointSymbolType.Font || m_item.Symbol.Type == PointSymbolType.W2D)
                 m_item.Symbol.Unit = (LengthUnitType)Enum.Parse(typeof(LengthUnitType), (string)SizeUnits.SelectedValue);
-            previewPicture.Refresh();
+            UpdatePreviewResult();
             if (Changed != null)
                 Changed(this, new EventArgs());
         }
@@ -1147,6 +1146,7 @@
                     owner.SelectedIndex = -1;
 
                 owner.Text = text;
+                UpdatePreviewResult();
             }
             finally
             {
@@ -1179,7 +1179,7 @@
             }
         }
 
-        private void HeigthText_SelectedIndexChanged(object sender, System.EventArgs e)
+        private void HeightText_SelectedIndexChanged(object sender, System.EventArgs e)
         {
             if (m_inUpdate)
                 return;
@@ -1218,7 +1218,7 @@
                 else
                     m_item.Symbol.InsertionPointX = ReferenceX.Text;
             }
-            previewPicture.Refresh();		
+            UpdatePreviewResult();		
             if (Changed != null)
                 Changed(this, new EventArgs());
         }
@@ -1236,7 +1236,7 @@
                 else
                     m_item.Symbol.InsertionPointY = "0.5";
             }
-            previewPicture.Refresh();		
+            UpdatePreviewResult();		
             if (Changed != null)
                 Changed(this, new EventArgs());
         }
@@ -1269,6 +1269,7 @@
                     m_item.Symbol.Rotation = (string)RotationBox.SelectedValue;
 
                 //RotationBox.SelectedIndex = -1;
+                UpdatePreviewResult();
             }
 
         }
@@ -1279,15 +1280,17 @@
                 return;
 
             if (m_item.Symbol.Type == PointSymbolType.Mark)
+            {
                 if (fillStyleEditor.displayFill.Checked)
-                    ((IMarkSymbol) m_item.Symbol).Fill = previousFill == null ? _factory.CreateDefaultFill() : previousFill;
+                    ((IMarkSymbol)m_item.Symbol).Fill = previousFill == null ? _factory.CreateDefaultFill() : previousFill;
                 else
                 {
                     if (((IMarkSymbol)m_item.Symbol).Fill != null)
                         previousFill = ((IMarkSymbol)m_item.Symbol).Fill;
                     ((IMarkSymbol)m_item.Symbol).Fill = null;
                 }
-            previewPicture.Refresh();
+            }
+            UpdatePreviewResult();
             if (Changed != null)
                 Changed(this, new EventArgs());
         }
@@ -1298,15 +1301,17 @@
                 return;
 
             if (m_item.Symbol.Type == PointSymbolType.Mark)
+            {
                 if (lineStyleEditor.displayLine.Checked)
-                    ((IMarkSymbol) m_item.Symbol).Edge = previousEdge == null ? _factory.CreateDefaultStroke() : previousEdge;
+                    ((IMarkSymbol)m_item.Symbol).Edge = previousEdge == null ? _factory.CreateDefaultStroke() : previousEdge;
                 else
                 {
                     if (((IMarkSymbol)m_item.Symbol).Edge != null)
                         previousEdge = ((IMarkSymbol)m_item.Symbol).Edge;
                     ((IMarkSymbol)m_item.Symbol).Edge = null;
                 }
-            previewPicture.Refresh();
+            }
+            UpdatePreviewResult();
             if (Changed != null)
                 Changed(this, new EventArgs());
         }
@@ -1318,7 +1323,7 @@
 
             if (m_item.Symbol.Type == PointSymbolType.Mark)
                 ((IMarkSymbol) m_item.Symbol).Fill.FillPattern = fillStyleEditor.fillCombo.Text;
-            previewPicture.Refresh();
+            UpdatePreviewResult();
             if (Changed != null)
                 Changed(this, new EventArgs());
         }
@@ -1330,7 +1335,7 @@
 
             if (m_item.Symbol.Type == PointSymbolType.Mark)
                 ((IMarkSymbol)m_item.Symbol).Fill.ForegroundColor = fillStyleEditor.foregroundColor.ColorExpression;
-            previewPicture.Refresh();
+            UpdatePreviewResult();
             if (Changed != null)
                 Changed(this, new EventArgs());
         }
@@ -1342,7 +1347,7 @@
 
             if (m_item.Symbol.Type == PointSymbolType.Mark)
                 ((IMarkSymbol)m_item.Symbol).Fill.BackgroundColor = fillStyleEditor.backgroundColor.ColorExpression;
-            previewPicture.Refresh();
+            UpdatePreviewResult();
             if (Changed != null)
                 Changed(this, new EventArgs());
         }
@@ -1356,7 +1361,7 @@
             //TODO: Validate
             if (m_item.Symbol.Type == PointSymbolType.Mark)
                 ((IMarkSymbol)m_item.Symbol).Edge.Thickness = lineStyleEditor.thicknessCombo.Text;
-            previewPicture.Refresh();
+            UpdatePreviewResult();
             if (Changed != null)
                 Changed(this, new EventArgs());
         }
@@ -1366,20 +1371,20 @@
             if (m_inUpdate || lineStyleEditor.thicknessCombo.SelectedIndex != lineStyleEditor.thicknessCombo.Items.Count - 1)
                 return;
 
-                string current = null;
-                if (m_item.Symbol.Type == PointSymbolType.Mark)
-                    current = ((IMarkSymbol)m_item.Symbol).Edge.Thickness;
+            string current = null;
+            if (m_item.Symbol.Type == PointSymbolType.Mark)
+                current = ((IMarkSymbol)m_item.Symbol).Edge.Thickness;
 
-                string expr = null;
-                if (current != null)
-                {
-                    expr = m_editor.EditExpression(current, m_schema, m_providername, m_featureSource, true);
-                    if (!string.IsNullOrEmpty(expr))
-                        current = expr;
-                }
+            string expr = null;
+            if (current != null)
+            {
+                expr = m_editor.EditExpression(current, m_schema, m_providername, m_featureSource, true);
+                if (!string.IsNullOrEmpty(expr))
+                    current = expr;
+            }
 
-                //This is required as we cannot update the text from within the SelectedIndexChanged event :(
-                BeginInvoke(new UpdateComboTextFromSelectChangedDelegate(UpdateComboTextFromSelectChanged), lineStyleEditor.thicknessCombo, current, expr != null);
+            //This is required as we cannot update the text from within the SelectedIndexChanged event :(
+            BeginInvoke(new UpdateComboTextFromSelectChangedDelegate(UpdateComboTextFromSelectChanged), lineStyleEditor.thicknessCombo, current, expr != null);
         }
 
         private void colorCombo_CurrentColorChanged(object sender, EventArgs e)
@@ -1389,7 +1394,7 @@
 
             if (m_item.Symbol.Type == PointSymbolType.Mark)
                 ((IMarkSymbol)m_item.Symbol).Edge.Color = lineStyleEditor.colorCombo.ColorExpression;
-            previewPicture.Refresh();
+            UpdatePreviewResult();
             if (Changed != null)
                 Changed(this, new EventArgs());
         }
@@ -1401,7 +1406,7 @@
 
             if (m_item.Symbol.Type == PointSymbolType.Mark)
                 ((IMarkSymbol)m_item.Symbol).Edge.LineStyle = lineStyleEditor.fillCombo.Text;
-            previewPicture.Refresh();
+            UpdatePreviewResult();
             if (Changed != null)
                 Changed(this, new EventArgs());
         }
@@ -1414,7 +1419,7 @@
             if (m_item.Symbol.Type == PointSymbolType.Font)
                 ((IFontSymbol)m_item.Symbol).ForegroundColor = Utility.SerializeHTMLColor(colorFontForeground.CurrentColor, true);
 
-            previewPicture.Refresh();
+            UpdatePreviewResult();
             if (Changed != null)
                 Changed(this, new EventArgs());
         }
@@ -1444,7 +1449,7 @@
             for (char c = 'A'; c < 'Z'; c++)
                 comboBoxCharacter.Items.Add(c);
 
-            previewPicture.Refresh();
+            UpdatePreviewResult();
             if (Changed != null)
                 Changed(this, new EventArgs());
         }
@@ -1460,7 +1465,7 @@
 
             ((IFontSymbol)m_item.Symbol).Character = comboBoxCharacter.Text;
 
-            previewPicture.Refresh();
+            UpdatePreviewResult();
             if (Changed != null)
                 Changed(this, new EventArgs());
         }
@@ -1501,6 +1506,7 @@
                 DisplayPoints.Tag = m_item;
                 this.Item = null;
             }
+            UpdatePreviewResult();
         }
 
         static string DoubleToString(double? value)
@@ -1525,7 +1531,7 @@
             //TODO: Validate
             if (m_item.Symbol.Type == PointSymbolType.Mark || m_item.Symbol.Type == PointSymbolType.Font || m_item.Symbol.Type == PointSymbolType.W2D)
                 m_item.Symbol.SizeX = WidthText.Text;
-            previewPicture.Refresh();
+            UpdatePreviewResult();
             if (Changed != null)
                 Changed(this, new EventArgs());
         }
@@ -1542,7 +1548,7 @@
                 m_item.Symbol.SizeY = HeightText.Text;
             else if (m_item.Symbol.Type == PointSymbolType.W2D)
                 m_item.Symbol.SizeY = HeightText.Text;
-            previewPicture.Refresh();
+            UpdatePreviewResult();
             if (Changed != null)
                 Changed(this, new EventArgs());
         }
@@ -1559,7 +1565,7 @@
                 m_item.Symbol.Rotation = RotationBox.Text;
             else if (m_item.Symbol.Type == PointSymbolType.W2D)
                 m_item.Symbol.Rotation = RotationBox.Text;
-            previewPicture.Refresh();
+            UpdatePreviewResult();
             if (Changed != null)
                 Changed(this, new EventArgs());
         }
@@ -1583,7 +1589,7 @@
                 fs.Bold = FontBoldButton.Checked;
             }
 
-            previewPicture.Refresh();
+            UpdatePreviewResult();
             if (Changed != null)
                 Changed(this, new EventArgs());
         }
@@ -1599,7 +1605,7 @@
                 fs.Italic = FontItalicButton.Checked;
             }
 
-            previewPicture.Refresh();
+            UpdatePreviewResult();
             if (Changed != null)
                 Changed(this, new EventArgs());
         }
@@ -1615,7 +1621,7 @@
                 fs.Underlined = FontUnderlineButton.Checked;
             }
 
-            previewPicture.Refresh();
+            UpdatePreviewResult();
             if (Changed != null)
                 Changed(this, new EventArgs());
         }
@@ -1651,6 +1657,7 @@
                 if (sym.FillColor != null)
                     cmbW2DFillColor.CurrentColor = Utility.ParseHTMLColor(sym.FillColor);
             }
+            UpdatePreviewResult();
         }
 
         private void chkW2DLineColor_CheckedChanged(object sender, EventArgs e)
@@ -1672,6 +1679,7 @@
                 if (sym.LineColor != null)
                     cmbW2DLineColor.CurrentColor = Utility.ParseHTMLColor(sym.LineColor);
             }
+            UpdatePreviewResult();
         }
 
         private void chkW2DTextColor_CheckedChanged(object sender, EventArgs e)
@@ -1693,6 +1701,7 @@
                 if (sym.TextColor != null)
                     cmbW2DTextColor.CurrentColor = Utility.ParseHTMLColor(sym.TextColor);
             }
+            UpdatePreviewResult();
         }
 
         private void cmbW2DFillColor_SelectedIndexChanged(object sender, EventArgs e)
@@ -1709,7 +1718,7 @@
 
             sym.FillColor = Utility.SerializeHTMLColor(cmbW2DFillColor.CurrentColor, true);
 
-            previewPicture.Refresh();
+            UpdatePreviewResult();
             if (Changed != null)
                 Changed(this, new EventArgs());
         }
@@ -1728,7 +1737,7 @@
 
             sym.LineColor = Utility.SerializeHTMLColor(cmbW2DLineColor.CurrentColor, true);
 
-            previewPicture.Refresh();
+            UpdatePreviewResult();
             if (Changed != null)
                 Changed(this, new EventArgs());
         }
@@ -1747,7 +1756,7 @@
 
             sym.TextColor = Utility.SerializeHTMLColor(cmbW2DTextColor.CurrentColor, true);
 
-            previewPicture.Refresh();
+            UpdatePreviewResult();
             if (Changed != null)
                 Changed(this, new EventArgs());
         }
@@ -1756,25 +1765,39 @@
         {
             string expr = m_editor.EditExpression(fillStyleEditor.backgroundColor.ColorExpression, m_schema, m_providername, m_featureSource, true);
             if (expr != null)
+            {
                 fillStyleEditor.backgroundColor.ColorExpression = expr;
+                UpdatePreviewResult();
+            }
         }
         
         void FillStyleEditor_ForegroundRequiresExpression(object sender, EventArgs e)
         {
             string expr = m_editor.EditExpression(fillStyleEditor.foregroundColor.ColorExpression, m_schema, m_providername, m_featureSource, true);
             if (expr != null)
+            {
                 fillStyleEditor.foregroundColor.ColorExpression = expr;
+                UpdatePreviewResult();
+            }
         }
         
         void LineStyleEditor_RequiresExpressionEditor(object sender, EventArgs e)
         {
             string expr = m_editor.EditExpression(lineStyleEditor.colorCombo.ColorExpression, m_schema, m_providername, m_featureSource, true);
             if (expr != null)
+            {
                 lineStyleEditor.colorCombo.ColorExpression = expr;
+                UpdatePreviewResult();
+            }
         }
 
         private void lnkRefresh_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
         {
+            UpdatePreviewResult();
+        }
+
+        private void UpdatePreviewResult()
+        {
             if (_editCommit != null)
                 _editCommit.Invoke();
             UpdatePreviewImage();
@@ -1790,9 +1813,7 @@
         protected override void OnLoad(EventArgs e)
         {
             base.OnLoad(e);
-            if (_editCommit != null)
-                _editCommit.Invoke();
-            UpdatePreviewImage();
+            UpdatePreviewResult();
         }
     }
 }

Modified: trunk/Tools/Maestro/Maestro.Editors/LayerDefinition/Vector/VectorLayerStyleSectionCtrl.Designer.cs
===================================================================
--- trunk/Tools/Maestro/Maestro.Editors/LayerDefinition/Vector/VectorLayerStyleSectionCtrl.Designer.cs	2014-03-28 08:54:10 UTC (rev 7996)
+++ trunk/Tools/Maestro/Maestro.Editors/LayerDefinition/Vector/VectorLayerStyleSectionCtrl.Designer.cs	2014-03-29 14:00:46 UTC (rev 7997)
@@ -69,6 +69,7 @@
             this.btnSort});
             resources.ApplyResources(this.toolStrip1, "toolStrip1");
             this.toolStrip1.Name = "toolStrip1";
+            this.toolStrip1.ItemClicked += new System.Windows.Forms.ToolStripItemClickedEventHandler(this.toolStrip1_ItemClicked);
             // 
             // btnAdd
             // 
@@ -125,6 +126,7 @@
             resources.ApplyResources(this.groupBox1, "groupBox1");
             this.groupBox1.Name = "groupBox1";
             this.groupBox1.TabStop = false;
+            this.groupBox1.Enter += new System.EventHandler(this.groupBox1_Enter);
             // 
             // btnKmlElevation
             // 

Modified: trunk/Tools/Maestro/Maestro.Editors/LayerDefinition/Vector/VectorLayerStyleSectionCtrl.cs
===================================================================
--- trunk/Tools/Maestro/Maestro.Editors/LayerDefinition/Vector/VectorLayerStyleSectionCtrl.cs	2014-03-28 08:54:10 UTC (rev 7996)
+++ trunk/Tools/Maestro/Maestro.Editors/LayerDefinition/Vector/VectorLayerStyleSectionCtrl.cs	2014-03-29 14:00:46 UTC (rev 7997)
@@ -32,6 +32,7 @@
 using System.Globalization;
 using Maestro.Editors.LayerDefinition.Vector.Scales;
 using Maestro.Editors.LayerDefinition.Vector.StyleEditors;
+using Maestro.Editors.LayerDefinition.Vector.GridEditor;
 
 namespace Maestro.Editors.LayerDefinition.Vector
 {
@@ -62,6 +63,8 @@
             EvaluateCommands();
         }
 
+        internal IEditorService EditorService { get { return _edsvc; } }
+
         public VectorLayerEditorCtrl Owner { get; internal set; }
 
         public ILayerElementFactory Factory { get { return _factory; } }
@@ -252,9 +255,9 @@
             btnSort.Enabled = _vl.HasVectorScaleRanges();
         }
 
-        private Dictionary<VectorScaleRange, VectorScaleRangeCtrl> _rangeCtrls = new Dictionary<VectorScaleRange, VectorScaleRangeCtrl>();
+        private Dictionary<VectorScaleRange, Control> _rangeCtrls = new Dictionary<VectorScaleRange, Control>();
 
-        private VectorScaleRangeCtrl _activeScaleRangeCtrl;
+        private Control _activeScaleRangeCtrl;
 
         private void lstScaleRanges_SelectedIndexChanged(object sender, EventArgs e)
         {
@@ -290,10 +293,13 @@
 
                     btnKmlElevation.Enabled = vsc.SupportsElevation;
 
-                    VectorScaleRangeCtrl ctrl = null;
+                    Control ctrl = null;
                     if (!_rangeCtrls.ContainsKey(vsc))
                     {
-                        ctrl = new VectorScaleRangeCtrl(vsc.Item, this);
+                        if (LayerEditorSettings.UseGridEditor)
+                            ctrl = new VectorScaleRangeGrid(vsc.Item, this);
+                        else
+                            ctrl = new VectorScaleRangeCtrl(vsc.Item, this);
                         ctrl.Dock = DockStyle.Fill;
                         _rangeCtrls[vsc] = ctrl;
                     }
@@ -382,5 +388,15 @@
                 }
             }
         }
+
+        private void toolStrip1_ItemClicked(object sender, ToolStripItemClickedEventArgs e)
+        {
+
+        }
+
+        private void groupBox1_Enter(object sender, EventArgs e)
+        {
+
+        }
     }
 }

Modified: trunk/Tools/Maestro/Maestro.Editors/LayerDefinition/Vector/VectorLayerStyleSectionCtrl.resx
===================================================================
--- trunk/Tools/Maestro/Maestro.Editors/LayerDefinition/Vector/VectorLayerStyleSectionCtrl.resx	2014-03-28 08:54:10 UTC (rev 7996)
+++ trunk/Tools/Maestro/Maestro.Editors/LayerDefinition/Vector/VectorLayerStyleSectionCtrl.resx	2014-03-29 14:00:46 UTC (rev 7997)
@@ -490,6 +490,6 @@
     <value>VectorLayerStyleSectionCtrl</value>
   </data>
   <data name=">>$this.Type" xml:space="preserve">
-    <value>Maestro.Editors.Common.EditorBindableCollapsiblePanel, Maestro.Editors, Version=5.0.0.6514, Culture=neutral, PublicKeyToken=f526c48929fda856</value>
+    <value>Maestro.Editors.Common.EditorBindableCollapsiblePanel, Maestro.Editors, Version=5.1.0.0, Culture=neutral, PublicKeyToken=f526c48929fda856</value>
   </data>
 </root>
\ No newline at end of file

Modified: trunk/Tools/Maestro/Maestro.Editors/Maestro.Editors.csproj
===================================================================
--- trunk/Tools/Maestro/Maestro.Editors/Maestro.Editors.csproj	2014-03-28 08:54:10 UTC (rev 7996)
+++ trunk/Tools/Maestro/Maestro.Editors/Maestro.Editors.csproj	2014-03-29 14:00:46 UTC (rev 7997)
@@ -614,6 +614,7 @@
     <Compile Include="LayerDefinition\Drawing\DrawingLayerSettingsCtrl.Designer.cs">
       <DependentUpon>DrawingLayerSettingsCtrl.cs</DependentUpon>
     </Compile>
+    <Compile Include="LayerDefinition\LayerEditorSettings.cs" />
     <Compile Include="LayerDefinition\LayerPropertiesSectionCtrl.cs">
       <SubType>UserControl</SubType>
     </Compile>
@@ -652,6 +653,19 @@
       <DependentUpon>VectorLayerEditorCtrl.cs</DependentUpon>
     </Compile>
     <Compile Include="LayerDefinition\Vector\FeaturePreviewRender.cs" />
+    <Compile Include="LayerDefinition\Vector\GridEditor\RuleGridView.cs">
+      <SubType>UserControl</SubType>
+    </Compile>
+    <Compile Include="LayerDefinition\Vector\GridEditor\RuleGridView.Designer.cs">
+      <DependentUpon>RuleGridView.cs</DependentUpon>
+    </Compile>
+    <Compile Include="LayerDefinition\Vector\GridEditor\RuleModel.cs" />
+    <Compile Include="LayerDefinition\Vector\GridEditor\VectorScaleRangeGrid.cs">
+      <SubType>UserControl</SubType>
+    </Compile>
+    <Compile Include="LayerDefinition\Vector\GridEditor\VectorScaleRangeGrid.Designer.cs">
+      <DependentUpon>VectorScaleRangeGrid.cs</DependentUpon>
+    </Compile>
     <Compile Include="LayerDefinition\Vector\ILayerStylePreviewable.cs" />
     <Compile Include="LayerDefinition\Vector\Scales\CompositeStyleListCtrl.cs">
       <SubType>UserControl</SubType>
@@ -1546,6 +1560,12 @@
       <DependentUpon>VectorLayerEditorCtrl.cs</DependentUpon>
       <SubType>Designer</SubType>
     </EmbeddedResource>
+    <EmbeddedResource Include="LayerDefinition\Vector\GridEditor\RuleGridView.resx">
+      <DependentUpon>RuleGridView.cs</DependentUpon>
+    </EmbeddedResource>
+    <EmbeddedResource Include="LayerDefinition\Vector\GridEditor\VectorScaleRangeGrid.resx">
+      <DependentUpon>VectorScaleRangeGrid.cs</DependentUpon>
+    </EmbeddedResource>
     <EmbeddedResource Include="LayerDefinition\Vector\Scales\Condition.resx">
       <DependentUpon>Condition.cs</DependentUpon>
     </EmbeddedResource>
@@ -2324,6 +2344,8 @@
     <Content Include="OdbcDriverMap.xml">
       <CopyToOutputDirectory>Always</CopyToOutputDirectory>
     </Content>
+    <None Include="Resources\theme.png" />
+    <None Include="Resources\document-tree.png" />
     <None Include="Resources\TextWatermark.txt" />
     <None Include="Resources\document-code.png" />
     <None Include="Resources\document-search-result.png" />

Modified: trunk/Tools/Maestro/Maestro.Editors/Properties/Resources.Designer.cs
===================================================================
--- trunk/Tools/Maestro/Maestro.Editors/Properties/Resources.Designer.cs	2014-03-28 08:54:10 UTC (rev 7996)
+++ trunk/Tools/Maestro/Maestro.Editors/Properties/Resources.Designer.cs	2014-03-29 14:00:46 UTC (rev 7997)
@@ -457,6 +457,16 @@
         /// <summary>
         ///   Looks up a localized resource of type System.Drawing.Bitmap.
         /// </summary>
+        internal static System.Drawing.Bitmap document_tree {
+            get {
+                object obj = ResourceManager.GetObject("document-tree", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized resource of type System.Drawing.Bitmap.
+        /// </summary>
         internal static System.Drawing.Bitmap drive_download {
             get {
                 object obj = ResourceManager.GetObject("drive-download", resourceCulture);
@@ -1838,6 +1848,16 @@
         /// <summary>
         ///   Looks up a localized resource of type System.Drawing.Bitmap.
         /// </summary>
+        internal static System.Drawing.Bitmap theme {
+            get {
+                object obj = ResourceManager.GetObject("theme", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized resource of type System.Drawing.Bitmap.
+        /// </summary>
         internal static System.Drawing.Bitmap tick {
             get {
                 object obj = ResourceManager.GetObject("tick", resourceCulture);

Modified: trunk/Tools/Maestro/Maestro.Editors/Properties/Resources.resx
===================================================================
--- trunk/Tools/Maestro/Maestro.Editors/Properties/Resources.resx	2014-03-28 08:54:10 UTC (rev 7996)
+++ trunk/Tools/Maestro/Maestro.Editors/Properties/Resources.resx	2014-03-29 14:00:46 UTC (rev 7997)
@@ -216,27 +216,6 @@
         owBWKl06MCAAOw==
 </value>
   </data>
-  <data name="icon_panup" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
-    <value>
-        R0lGODlhEAAQAIeDAJhpZZpqZiJNeNikptelprG+zCBPfSJNdyJOfVJvjMybl9Kgn7ShnSNOeCJPea2f
-        nq6entWjojVkl6CBgB9NfjVjlB5OftOnqDJejp1xbp9wbM6cnbWEgbaGhKh3eJBkYbeKh9CdnM2jpMeU
-        kcCNirqIi9qoqZ5ybdOfodSmptenpbuKhriHg6uWkyNQeq59fNakpciYljZklaB1dCtXhTFhkC1Zid2m
-        qdilpJlxbah2cyBPe////9ioqLCRjtCdmrKiotuop8OWkaZ0c3+hvdmhpMyZlipZhkFiirWgnd2prcGP
-        jvXm6TNfjcmdmtShoMKPjoKVs9KanbmTkrqIiaiOjVFwjNulpZJnZqNwcpd0dE9wkGF8mNimpdimp7GR
-        kvfk6MeVlKyfqcSSkd6rqDVjk9KeoqGEgbyWk5emu36SscSUkjFfj8WUkDdlltOaoDJeirqurqOPjiBM
-        eax/f9Ghn8aUkyBOf9yorNympKJybtKeoMOTkcuYlShYh6R/fpx6eL6KjL6LigAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        ACH/C05FVFNDQVBFMi4wAwEBAAAh+QQBAACDACwAAAAAEAAQAAAIxAAHCRxIcKCLgggHFhBQQKAdLwGm
-        VEGYQECCQSJ0CLkCgMyMOAUbCJzQI8CIAQCU/IFA8IDAM3QIAFiDAwAeJ18GuhSYg0OeAG0GdLiRwkfC
-        D2G6sPjxZo+JCwwSalABY0MIFEUIoCnoIUadLEukLDDzJEIQMQSTYDGi4EUJQWP68AGTxgpBIIBWQAFB
-        gkogJlHK+NlSsMWQDCf08FBzpEINGkgQPpCjhYiBO00kYLCQUCAXBAjm2HADp7NANhR2ODAgIyAAOw==
-</value>
-  </data>
   <data name="sum" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
     <value>
         iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
@@ -247,6 +226,10 @@
         QmCC
 </value>
   </data>
+  <assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
+  <data name="document-search-result" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\document-search-result.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
   <data name="map--arrow" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
     <value>
         iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
@@ -266,7 +249,6 @@
         jU/YIEHvAAAAAElFTkSuQmCC
 </value>
   </data>
-  <assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
   <data name="folder-horizontal-open" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\Resources\folder-horizontal-open.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
@@ -284,26 +266,15 @@
         meT8RJx9c/QXPR3oL5YnjaBUK8UhAAAAAElFTkSuQmCC
 </value>
   </data>
-  <data name="icon_plotdwf_disabled" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+  <data name="function" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
     <value>
-        R0lGODlhEAAQAIecAP7+/rW6x9PW48TD1uHg6ba6x////8HBxMTFyMC/wrK+y/r6+v39/cTD173JyMLG
-        0fT09/P09d3d5qGprPX3+MPFxtXW2dLT1vj4+JOjqcXFxujo6OLk5+Dl58TFyba7x8fIy7a6xuDi4+Li
-        4drb3cHG0Onp6cLP29vb3u7w8ODg6LG2utjc4IeSk+Tx6dTr5dLV4urq6palqp2ho6ezwL69vrTBz8TD
-        1ebu9rvI1Lq+vKSvvdzm89XY3r+/wtLV2PX3+dTX3tHQ3Ymbj+Lk6b/KxOvt8PD1+bS5xvz9/aGvvPX3
-        98LOzLa6yJ+suuvr66CsurzKyM7Q0OHf6NHT1uzu8sTGyb3KyMrKztLX5M3L2b2+wdbY3O3u8sTGyODg
-        6cbIyNrb4Le9v8rLzrq+y5GunKvMuNna3eHi5fDx8qayu7u7vpShq/Py9fX19ZKop8LU2Jmps+nq67TN
-        x5eosPn6++/1+bO/zKCsu/T398XR36Goqp+rutbX2r/AwdHe6tPW5O3v787M2sfL1fz8/K22v/X199ze
-        4t3c5rW6xr/Dz/n5+c7Q0cnKzdze5MTGyoaSiJenndPW4o+ul+Df6MDAxL3BzcHDxcvX1Jyws8XD142g
-        lv///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        ACH/C05FVFNDQVBFMi4wAwEBAAAh+QQBAACcACwAAAAAEAAQAAAI8QA5CRwoEJODKHcUMElBcOCCQA5c
-        2OFx4k0GDAMNCRkw4MqLIzj+5NgEaQUnQVoGAACwqMMcM3D0KJDRYganBitXMoBQZFKZTDTwsNlz8wkA
-        AwAYAOAQaQgdJTvUiBGoKacBFQR0TIhTyIYTNwNvACBA4EsYDzU08IEih2AASlO4gNjiBwaYNX0GEioR
-        4MClClIESKKQ5wKZgQWojAEkQoCAJUDONDoQADGAQxayAEBBAkGCEAESDQzAAkAVNF6sPEIgIc0GLKN7
-        dEnwIwAjRBGSmBBgaSCRD0Yq+QjQpE4MRUHaNFzwAEkBTiMGOWrIKSAAOw==
+        iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
+        YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAABC0lEQVQ4T6XSPUpDQRiF4bkh
+        IsEgwb+gawg2pomFhUUs0gcLtbQSGwsrN5BKF2Bnp1gJAS0EUUil2LmFrOLmPZPvhmGYW5gMPJlvDsPJ
+        zY/L83whLsuylD6ejObUndKCNp5xiJbNqXulBed4xHqQJZUV3OIuypLiggGGkd1gPoHuNYtz6gk6eLNd
+        5zPbj6Fc38sDukh+hEu8YjPIZB/vZpanCu5NnPfwCf1Cszwu0Lt+4CrIRP+DkTmyzIsLDvBtu9Niv7ZM
+        s/bTYJ4WBOsGv2j6k3MX+JuOfhVn6SkICzr4wos/la+68asoGJsf7GEDa2hgFSuoYRlLqKKCrCjYwTb0
+        6Fv4X4Fe5pe7CSINtCR/xwMpAAAAAElFTkSuQmCC
 </value>
   </data>
   <data name="icon_maptip_disabled" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
@@ -317,6 +288,25 @@
         syYUpEiAFm3BBm3VskULoUFBFHjxXkjBIS9eCilCePDgt/BgDwkHGCjs14ABigIJqkSoMCAAOw==
 </value>
   </data>
+  <data name="layers-stack-arrange-back" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
+        YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAAC2klEQVQ4T4WQe0hTURzHzz/9
+        Jf0TFf3RA5KeSGFG0D8VZBGEJEh/ZEj5wgoxMR8Y9oAeGFSU5EBrganMudbcnM5NbZtzd65N5+Zybne7
+        2+5ed083txVCcDpnlgyR+sGHw73n++B3wKHi16CgZTxDxdMQqHwWLql6HqEQ8D9QWLtuxpxpJUBpG00J
+        VfFlVzgtc4ZSY5uB77AGa7MD9iKuFDboYKfUbmofWprejLcjNoXEwAioYEpadNcM1wNONMuK5ebQ0AjB
+        QGcoHbIHkr6NOJiUX70UoV+KluQ2f1J8tnw6E5BpRgEs3NzYPQ9ZUkesY5QMZtM94WBkxiBtQ0GPuGbV
+        d09iOL9kFK436+xRM27WWiIQtf1EDem/kIHkD/VSONU5Zg8gI93ab1QaXXHhwUt8CPKbpGV4H/GsX2Ny
+        J7ySb344Ry2n9Y7YSjZW30r6hcASQEa6sceg1DuWBfsLeRAcvye5gfcRaL0EMtIiwge1ZCylsUUT2SzQ
+        idQTntmPwlx1bL0C/ePnXhBCcKxhtBzvw1W7CS0ZpfkqL5xaDCfHTcFliSEQE88GosOz/qjKEkk84Jj8
+        hDXqvNWlVUxZwvwjlychyKsXV+J9PimoaeVi2MmWuKFQ54t/nvFGsvlqDsVbeud9SENVvNMo0fklv0QP
+        wdE6UTXep2PUqkRGG2vYtdor9/ziaTzxQQyxxsRCMNnSawihZm89W2fo4DKR09dJChyuHapBaQOPuaZJ
+        /oyX/DDudnYI3atvBDTMhiNnYGm7AXaJQvBk9Rw8V+Fz5Z1nl4EDt/l3xuaZvocDRtnHSQfFJTwkR03b
+        NoLehMbN7AlSvPtmXxUAYBciB+TW8GplRob7SmTpud83J2/u0RNNWeBvTLfMurCnvF+8/SqrfuupGwVb
+        tu1DfjQ47b3MKpIamcGRuQBnM/Ad1vxpzkXkZMx4cBpO3XGN3fYvsCYnr+gisuxcc+IB4DeW/K1D9pQD
+        QwAAAABJRU5ErkJggg==
+</value>
+  </data>
   <data name="database--plus" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
     <value>
         iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
@@ -374,18 +364,6 @@
         GETC8uhhg6Fz5zOq2pgREAA7
 </value>
   </data>
-  <data name="icon_invokescript" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
-    <value>
-        R0lGODlhEAAQAIU6AEtypf///9bn92+wPq3D3hExZKq+r3ugdmupO1WHSD14K7fH3Jiymb7M37HMxlmP
-        RFeLTVyTSVuQRY/SS6DfUZjYTl6fN1iORJ6xxny6Qn+og4jHR5vbTzJpMpvbUIjGR3Gad4/RS4nISHvB
-        RIrOSXCzP5/eUaDeUJ7dUJPVTYfKSIbLSIDGRnWPsoLHR2WkOT95LD11Pp3cUJPVTIPCRZ6+rIPDRWak
-        OZfYTnGzQAAAAAAAAAAAAAAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEBAAAh+QQBAAA6ACwAAAAAEAAQ
-        AAAIuAB1CNSBAYDBgwgxDNRhsEGAhxADNACwEMBEARgzYqQ4EEAAhCA5CvRIoKRJAgUWGjgQAwYEDQ4y
-        ohzIQAKCATJEIIhQA+NMHQYkZBgQYAAFChkixPx5AMEJokVRmECgQcDPBB84QC3qYQMEqyl1KKiAY2vR
-        CgoItAibgEaKrSFm2OhQoMACgQdeTICqgsSEGyAW3BVo4MEAoixcrBjwwMBCgQwuWMgxooSFCwweD1yZ
-        QEGCA441BwQAOw==
-</value>
-  </data>
   <data name="database_share" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
     <value>
         iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
@@ -445,17 +423,26 @@
         kjRK4GmAAQ01mgxQ1SpWjA8jFuAK4edPhgQNHghQdoDbrxcF/oQbl+HVunjrBgQAOw==
 </value>
   </data>
-  <data name="edit-indent" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+  <data name="icon_plotdwf_disabled" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
     <value>
-        iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
-        YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAABdklEQVQ4T5XS3ytDYRgH8Gc3
-        bmdc2HYj2hQNs7RNoya2KTI/brCylpJbJbldUvwT7rjasF8k4viRH1Fyw5XIjaRcu3t9n7ft2I4dy1uf
-        Oud9nvf7vKcOCSHIYDCwOCQgmbcF27ADKUhDFnKwBvJsccC/aQMqTaXOwJLk6lskZ++C/g24odBcMLv6
-        qZpZ+aBo/O0noN4Zk+zuOVmILb8raBJ6uF4S0D19Inmnjig8/8DE6d2XLq5znxrgnjhkwjGc9nsmD6kr
-        cqzwux6u80A1wB5KsBcQ/Nwa3qPmwfQvLUNZco7tyoElAbZgionG/oTfHsogLKPwuxbv20M5ahvZp47x
-        g+Ib5KSmgRy1j16xst/O+/m6pAbU2iJStdlLjuAmrves9ERfhRbvOwIbZKzzEC81QPsfmKw+anAt/GKy
-        +OTBwtIGKHACZ3AOF3AJ13ADt3CPc4/wVC6gIu1SA7CMaFgHvalJsOZZoAaqSgLADIWmvxQFCPoGzyRS
-        PHSKlsAAAAAASUVORK5CYII=
+        R0lGODlhEAAQAIecAP7+/rW6x9PW48TD1uHg6ba6x////8HBxMTFyMC/wrK+y/r6+v39/cTD173JyMLG
+        0fT09/P09d3d5qGprPX3+MPFxtXW2dLT1vj4+JOjqcXFxujo6OLk5+Dl58TFyba7x8fIy7a6xuDi4+Li
+        4drb3cHG0Onp6cLP29vb3u7w8ODg6LG2utjc4IeSk+Tx6dTr5dLV4urq6palqp2ho6ezwL69vrTBz8TD
+        1ebu9rvI1Lq+vKSvvdzm89XY3r+/wtLV2PX3+dTX3tHQ3Ymbj+Lk6b/KxOvt8PD1+bS5xvz9/aGvvPX3
+        98LOzLa6yJ+suuvr66CsurzKyM7Q0OHf6NHT1uzu8sTGyb3KyMrKztLX5M3L2b2+wdbY3O3u8sTGyODg
+        6cbIyNrb4Le9v8rLzrq+y5GunKvMuNna3eHi5fDx8qayu7u7vpShq/Py9fX19ZKop8LU2Jmps+nq67TN
+        x5eosPn6++/1+bO/zKCsu/T398XR36Goqp+rutbX2r/AwdHe6tPW5O3v787M2sfL1fz8/K22v/X199ze
+        4t3c5rW6xr/Dz/n5+c7Q0cnKzdze5MTGyoaSiJenndPW4o+ul+Df6MDAxL3BzcHDxcvX1Jyws8XD142g
+        lv///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        ACH/C05FVFNDQVBFMi4wAwEBAAAh+QQBAACcACwAAAAAEAAQAAAI8QA5CRwoEJODKHcUMElBcOCCQA5c
+        2OFx4k0GDAMNCRkw4MqLIzj+5NgEaQUnQVoGAACwqMMcM3D0KJDRYganBitXMoBQZFKZTDTwsNlz8wkA
+        AwAYAOAQaQgdJTvUiBGoKacBFQR0TIhTyIYTNwNvACBA4EsYDzU08IEih2AASlO4gNjiBwaYNX0GEioR
+        4MClClIESKKQ5wKZgQWojAEkQoCAJUDONDoQADGAQxayAEBBAkGCEAESDQzAAkAVNF6sPEIgIc0GLKN7
+        dEnwIwAjRBGSmBBgaSCRD0Yq+QjQpE4MRUHaNFzwAEkBTiMGOWrIKSAAOw==
 </value>
   </data>
   <data name="gear--exclamation" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
@@ -648,13 +635,6 @@
         Ko4oag7oFQZF2z9oURxU7AxAbAPgy//sQfE9hAAAAABJRU5ErkJggg==
 </value>
   </data>
-  <data name="icon_null" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
-    <value>
-        R0lGODlhEAAQAIECANji87HH6f///wAAACH/C05FVFNDQVBFMi4wAwEBAAAh+QQBAAACACwAAAAAEAAQ
-        AAAIRAAFCBxIsKDBgwYDKFzIUCHBAAAiSpwY4OHEiwAqDoSIUaJGgRw7ZrQocuTGkiZBovwoIGRHli4x
-        wlz5sKFNhDhzHgwIADs=
-</value>
-  </data>
   <data name="globe--minus" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
     <value>
         iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
@@ -734,20 +714,6 @@
         XK5X/wO08BBR8wku3Xk930xtLAAAAABJRU5ErkJggg==
 </value>
   </data>
-  <data name="sort-number" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
-    <value>
-        iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
-        YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAABsUlEQVQ4T42TS0sCARSFJwMJ
-        QWoXCFJEtAhqE/4EN4E7V+rGELWmDJRwREH3bgV/hAu3bvwF4kaC1iIIvvCFIr5u99xyGIcChY/7OucM
-        w6CiaZqSSqX2yGQySjabvWbCqJjNGviISPkvAKYICwgVs1mjBySTySsefEzEyHa7pc1mQ6jmG+ODTwIS
-        iYS/3W5/rtdrMrJarXTMN+jhk4BYLPa8XC5psVgcDPTwSUA0Gn3BcjabUblcpmKxKL2RarUqe1TM0MMn
-        AcFgUJ3P5zSZTIR8Pq/35t2uQg+fBPj9/tfpdErD4VBIp9NSG42G3pdKJel3M/TwSYDX630bj8fU7/cF
-        VVX13kitVqN4PC499PBJgMfjiSG10+lQLpejQCAgFfOOQqFAoVCIKpWKzNDDJwFut/t9MBjg0xwM9PBJ
-        gMvleqrX61+9Xo+63a5Oq9XSMe6hgx4+CXA6nTcOhyPMfBgZjUbUbDYJ1XxjwvBJAA+KzWbbw2q13jIa
-        3hUVs1ljt9t//gu/Pwtzylwwd8yDxWJ5ZDRUzMw9c8mcMcfMXsARc8LgeM44/gB73KHDAzmAlG9yoVrY
-        r1VqEQAAAABJRU5ErkJggg==
-</value>
-  </data>
   <data name="icon_pan" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
     <value>
         R0lGODlhEAAQAIUAAAAAALe7woCEiVNYYTtBSuHi5Keqr2hsc9HT1uzt7pSYnHB3g8fJyrG0t////19k
@@ -791,6 +757,20 @@
         y51RHZMHxFEUq3NN6dToT1bnuuiLfg0IZqE6DxZBHihEzsf8wfAFj2mHD3XhXHEAAAAASUVORK5CYII=
 </value>
   </data>
+  <data name="table" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
+        YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAABzElEQVQ4T52QS0sbYRiF323o
+        vkh3LoubLmyRYGm1QhcSQSQbF26UphrU0iCxQ2MUb/1RKqLENBrHK6KiUby0xJTYkEwuZpLjdwZmMJCN
+        +eDAeQeew8OINxz2qHxpMB7pC4V8aPCRlV5N+1pVR1cc+LRVRedmBR0xEx+iD3gfKaJ9PQ/3moG21Sze
+        rWTwdvk/WpfuQYas9ASDI2a1ag38SsMamE+ZmLsrWwPh2zxC1zlrQLvMYDJxbw2QISvdgYC/VKk4BkO6
+        gfn9FGZ3k5jR/2I6fouprRv8jF1Bi17ix8YFJiMJkCErn8fHRwum6Rgs7P/Dg7qZyNGR01f39py+tL0N
+        MmSly+8fy5XLjgEHYqeniB4fYzeRwPrhIdYODhBX31Z2drCs69aAxShWPvp83zKlUo2BoW6GBnangd05
+        QIastA8Ofk8Xi3UN9PNzx2Dz5KTGgAxZaRsYCKQKhRqDjLoZGtidBnbnABmy0trfP5HM5+saxM/OHIPf
+        6n5qQIasvPF6g38Mo8YgrW6GBnangd05QIasvPZ4tJtcrq4BB2wDDjw1IENWmtzumaT6o1fZ7LNChqy4
+        mpuHX7S0LDYSsqKeS+WlyqtnRjHiegTR9dCO4+5C7wAAAABJRU5ErkJggg==
+</value>
+  </data>
   <data name="icon_zoomnext" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
     <value>
         R0lGODlhEAAQAIZ4AHBJJai7zuqxd9nFs1tgZLjH1xc5Zs/a5CtGdezw9Bg5bypGdWV7khY1bKu0vNjm
@@ -869,6 +849,23 @@
         HibSZsqOLgH0HBEQAIkRg8AHBgQAOw==
 </value>
   </data>
+  <data name="gear--arrow" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
+        YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAACeklEQVQ4T6WQX0hTcRzFr+kS
+        MUNfZv+UKEVCDdvAbfUwsMSai/z3EKHJoJCsnqSBURGCiCCUbWEQlFIZ1EuKEWQmqF1h98b+mprLlm0q
+        vkvky+l37tVSiF668Nn38P2ec7i7EoD/QvtxOByS0+mUqqurpZqaGm3W1dXZBE3r2Dbf6GWGbCmoqqo6
+        KgyXxNzLuba2htXVVWze0fPXgsrKymNut/vuysoKXC7XdWG6vLiYAKHmjjd66N1SUFFRQa7GYjEoig+J
+        RBxDQ0Nz8XgchDoajWo3euhdz+gFNptNstvt+2pra28FgwEEAn7Mz3/BwsI3DWrueKOHXmYsFoteYLVa
+        7WLRQvr6eqORSBj9/c+mi4qK7hNq7njb8DHzu8BkMrlVVcHo6HtMTsoIhUIoLj7ckZycLBFq7nijh15m
+        BHpBYWFh68TEBIaHh8EZDn9CSYmpLSkpSSLU3G32MCPQC/Lz88vz8vJuEI/H+9Xvj2Bw8J3fbC69Sai5
+        46302nPlSMPtl8wI9ILc3FwpJydnv8lk7pJlFSMj45idjWN5+YcGNXe8WTuVZUv357DFM18v/pheYDQa
+        SZssBzAw8BZjYyq83ocxny+C5scBHO9Sfjo9QZy88xGnvSH0JAARVovbA/VaQVZWFjlVVlb+VFFmUFBw
+        qDszM7NdlsM40TmJe9+B5imgIfiHlhngYOu4qhXwSUlJkdLS0hzp6ekdqampBzinp5dwsccHY2PfUnbT
+        q7A2L7yYs34AdjW/VndfeaO/AfOCbIH4rJKZGAyGRlHUSag39hlne6cyzj0J7qzvPy9K9G8gnm2CHQKj
+        YM+/2H7mwSODs9sltMhI0i+I3fKHiOg60AAAAABJRU5ErkJggg==
+</value>
+  </data>
   <data name="icon_viewoptions" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
     <value>
         R0lGODlhEAAQAIYAAAAAAP////7+//39/vv8/gkiTxAwYzhfl4KSqYGRqHuNpnyOp32Pp3+QqICRqLfC
@@ -884,18 +881,6 @@
         sJgIoscTFB1OcKjBeciIIDQmeoCB+WwJG6iBhFgxY2KB17Bjyw4IADs=
 </value>
   </data>
-  <data name="icon_invokeurl" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
-    <value>
-        R0lGODlhEAAQAIU/AP///0typRExZG+wPtbn963D3maPxcyZALfH3FWHSGupO3ugdqq+r5iymaDfUY/S
-        S1iORF6fN56xxmKWSj14K5jYTqqRCT95LHy6Ql6PT5Gzh4fKSIPCRY/RS2akOShXQp/eUZ7dUIrOSYLH
-        R1V8IHvBRFmPRInISH+og0mCPpfYTp3cUJPVTIDGRojHR1eNRIPDRYjGR0dzh5vbT6DeUHCzP7jOsU+E
-        SVuQRZvbUHGzQIbLSJPVTZq0sWWkOQAAACH/C05FVFNDQVBFMi4wAwEBAAAh+QQBAAA/ACwAAAAAEAAQ
-        AAAIugB//JAQoKDBgwUlCAxgoKHDhgAMRBSwEKHFABR/BCDAsaNHjhk3AhhJsmSBjDJQZLiQQYOFAzAP
-        ADj5o0EKBQNWnFAwwYZJAQxwYBgAYIADBxgmvJR5coECGkSLhgChQAPJkwlizIhaNIcLEjBnCqBQQQXX
-        ohUuXBWQgAMPrh1YwLhRoG5THw+ibhDxwMMHAYABMzAxgGiLETsGvOiBoHHjmhAi6ChRIwKEBgIzZ2aw
-        IAGFBAsYaM4cEAA7
-</value>
-  </data>
   <data name="icon_search_disabled" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
     <value>
         R0lGODlhEAAQAIYAAAAAAP///+np6q+xtc3O0JeboqKlqqSnrKOmq5OXncXJz5SZn7q/xaOnrKSqsMLH
@@ -912,6 +897,21 @@
         LMH9gFm+PAvzgAA7
 </value>
   </data>
+  <data name="databases-relation" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
+        YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAACCElEQVQ4T42RvW8ScRjHb+B9
+        0oSBl6EBQsIAcWRDBkdIWFicTAwa3xKGDmIqZ3uCfwBipAbja6MeXkptG5KzoVDeLNuZS2si1lOPVCrG
+        yfXrHaXx7oTGX/KZ7nm++TzfI+Lx+P9wTuLWJCYN/0MkErkwGAzQ6/XA8zxqtW2srbWwuclh4oIWOaDf
+        76Pb7YJlWbx4uYwHxRJKzMYoYKKahKw9NWCxSINmWBBaJY77ClH8jWg0ejkWixHyc7vdoUQi8aZQKCCf
+        z4MkSaRSKVAUBUKr1Gjy+Cz8GgX4fD55/1T2TpZWdbD1DuX1Ktha52/AkdJWi8OeMBwFyMtUNkP/+DmE
+        6oRXDO4/eo6l5RUQWqVcLodkMlnxer1n5zO36f3hAdIkWVUF0AzuPX6CZ2Vm3IFCqcvtYk8cgMxQ9LeD
+        75gj01WPx3P++A4UShvtDj4IXyAM9nEjfbOq0+lOh0KhhKqDRhtMpYLV+ttxgEKJbTexI3zC9fTcaNnp
+        dBJ+v/+S6oTSa9x9WsTDlaXpHQSDwTNWq5UwmUyE3W6fVRu0UKqsolyvjDtQKDXeb2NX/IhwOHzR5XLJ
+        v3HGbDZfNRqN85LREZRer6cMBgN1eIJCab3DghN4BAKBKzabTQ44IWGXcExEq1TnmuDFHTgcjllp4KTE
+        8U+rJN28YLFYFiTta9Jn9+HUtEcQfwDKxQygANp/PwAAAABJRU5ErkJggg==
+</value>
+  </data>
   <data name="icon_plotdwf" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
     <value>
         R0lGODlhEAAQAIe1AP///Vpuov7//f7//////7643ltsoVltoUt+spij2f7+/JGVoZKUo01/s11toLOx
@@ -1134,6 +1134,21 @@
         QoSYcOLEgxYtFsyY8SHHjh8/OhxJsqRJkwEBADs=
 </value>
   </data>
+  <data name="script--arrow" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
+        YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAACAElEQVQ4T43TT0iTYRwH8N/o
+        DxlIsENUOyS85aGZhxXULsKG0UCrQ60uG3aId7iNZEbqDL2YjYIg16FLSlcJPBQRRJAmEeFWK1ro6I/D
+        3jXe+Ta3uSG67dvzBI91evDwgffw/b6/3/O8vNTZ3//X2XCYLgwP2xl1q84PDR3YfMGZgQH7i7m5p7V6
+        HdVaTapYqSxfHRsbZEMP0ulQSFBL1SpypZJUYX0d0ampR67e3kN8MLV1dwuqtrqKhWxWimd41hEMUntP
+        D9Hxri5BTReL+KxpUjzDs6JHR9xuQV1iK37JZKR4hmdFj5o6OgT1J1tvnq0pwzM8K3q01+kU1F/lMr7q
+        uhTP8KzoUaPdLqi5SgVpw5DiGZ4VPdppswnq77U1ZFZWpEamDSi+uxNNV26TxTtCZGppEXxF9o2X2SXJ
+        eCc1HLvzIX3i/ndPa+QTETU3C4HyxgYKbMX/3XjyA+7xhU0XJ1J4oAGsHDs6mvAQWSxEisKF9EIB2Xwe
+        Ols1x54NNrEzGkd0CfAnAe/Hf67NA0p4NkZkNvOy9Vwg8PhlPI6ZRAJvk0m8T6WQXFyE7+E7OG5Owzk6
+        g/Zbr3EqMouTb4B9/mex/cHnHjKZzVary3VPN4x8nf1IUgAO+ydLjZfGv+129vnYBewiU0ND6zZFiWzV
+        Dsf1V9ttl/tYmZ2d9vwBqfGISyDsxfQAAAAASUVORK5CYII=
+</value>
+  </data>
   <data name="magnifier" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
     <value>
         iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
@@ -1217,6 +1232,24 @@
         1EDgYYYIIjMDlMlygoEMJ00gGCnw4AKFBajZNDgQoQKCMEJsuDhgQY1ChWgOkFmjMCAAOw==
 </value>
   </data>
+  <data name="cross-circle-frame" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
+        YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAACvElEQVQ4T22SXUiTYRTHHxIZ
+        azfKzDEpRIUFXqikIky24JXZUNyHU7tRU7ILZXThbpwM+7gQL6OMWiLTNxA/lpqGSGTOVk5r7XVrvZqb
+        m6iMZeBFN16envM0YUYHfryHc/6/h+eBlxiNRmIymUhjYyOxWCykqanpUnNzs5aCdTsFlhZ3mMEsOuim
+        HyChS43NZuvb2NgIHR8fQyKRYGDv8/lCvb29fZjB7L8HSMxmc4PL5RpH4dvkJKzbbLDCcQzsQ3R2dHQI
+        o6Oj45hFhx1gMBiQ63TBx+NxWOvsBEGvh5/0+7unh5Hs6IBAbS3bRaMRcDqdPDrokvr6eoXVanXs78fh
+        XXsb/LBYACvW0nIOrO8GA8vs7OxAd3e3A12i1+u51dX34Y8jL+BzTQ0LntVXnY6RXl6NBrzO57C4uBBG
+        l+h0ula81lJXF4hGI8wUFbHg6ekpJJNJiMViEIlEYG9vD0ays2GppIRl/f4vgC7hOM4qCAK8qqyEUF0d
+        LNPAmFwOgUAAgsEgiKJI3x0FF5V5ymx+Pst6vV5Al2i12rt+vx+mysths7oaZnNywE2D6fLBwQGbIa+V
+        Spb1eDyALlGr1Z2CsAWz7bdgrbgYlv8jn/0LuHujULCsx/MB0CVVVVU3pqfd228fP4X5wsJz8jwVEJRP
+        Tk4YM3l5sPxoGFwufhtdUlFRoTSbLYOBQBimDCbgc3OZvETFrRTYo8zT52Fmc3MLTCbzILqkrKyMlJaW
+        6gcGHrqDwQi8rGuA4aws+ESlcArscYY7QdgFh+OBGx10iUKhIAUFBVKVStVqt9+fE8UjWHk2BvzNNhhS
+        5jGwx5koHoLdfm8Os+igi3WBclEikVyWy+VtarXmycTEQnR39xekgzPcYYZmr6CTckkGRU5RUa5lZmZy
+        Uqn0jkwm66cMpejHGe4wQ7n61yEZfwCPJRsF7cBiYgAAAABJRU5ErkJggg==
+</value>
+  </data>
   <data name="icon_restorecenter_disabled" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
     <value>
         R0lGODlhEAAQAIUtAKq7y5+svcbS2MPQ1tTc4MvW29DZ3sTR17nH0tDZ3crV2tLa38fT2dHa3snU2tPb
@@ -1273,6 +1306,25 @@
         A9WvWL82wW5UT/JvnmHsJ9lC3y9ayCOwAAAAAElFTkSuQmCC
 </value>
   </data>
+  <data name="icon_ctxarrow" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        R0lGODlhBAAIAIcAAAAAAIAAAACAAICAAAAAgIAAgACAgICAgMDAwP8AAAD/AP//AAAA//8A/wD/////
+        /wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAMwAAZgAAmQAAzAAA/wAzAAAzMwAzZgAzmQAzzAAz/wBmAABmMwBmZgBm
+        mQBmzABm/wCZAACZMwCZZgCZmQCZzACZ/wDMAADMMwDMZgDMmQDMzADM/wD/AAD/MwD/ZgD/mQD/zAD/
+        /zMAADMAMzMAZjMAmTMAzDMA/zMzADMzMzMzZjMzmTMzzDMz/zNmADNmMzNmZjNmmTNmzDNm/zOZADOZ
+        MzOZZjOZmTOZzDOZ/zPMADPMMzPMZjPMmTPMzDPM/zP/ADP/MzP/ZjP/mTP/zDP//2YAAGYAM2YAZmYA
+        mWYAzGYA/2YzAGYzM2YzZmYzmWYzzGYz/2ZmAGZmM2ZmZmZmmWZmzGZm/2aZAGaZM2aZZmaZmWaZzGaZ
+        /2bMAGbMM2bMZmbMmWbMzGbM/2b/AGb/M2b/Zmb/mWb/zGb//5kAAJkAM5kAZpkAmZkAzJkA/5kzAJkz
+        M5kzZpkzmZkzzJkz/5lmAJlmM5lmZplmmZlmzJlm/5mZAJmZM5mZZpmZmZmZzJmZ/5nMAJnMM5nMZpnM
+        mZnMzJnM/5n/AJn/M5n/Zpn/mZn/zJn//8wAAMwAM8wAZswAmcwAzMwA/8wzAMwzM8wzZswzmcwzzMwz
+        /8xmAMxmM8xmZsxmmcxmzMxm/8yZAMyZM8yZZsyZmcyZzMyZ/8zMAMzMM8zMZszMmczMzMzM/8z/AMz/
+        M8z/Zsz/mcz/zMz///8AAP8AM/8AZv8Amf8AzP8A//8zAP8zM/8zZv8zmf8zzP8z//9mAP9mM/9mZv9m
+        mf9mzP9m//+ZAP+ZM/+ZZv+Zmf+ZzP+Z///MAP/MM//MZv/Mmf/MzP/M////AP//M///Zv//mf//zP//
+        /yH/C05FVFNDQVBFMi4wAwEBAAAh+QQAAAAAACwAAAAABAAIAAAIFAABPBgIQOCDggIRKlR40KDBBwEB
+        ADs=
+</value>
+  </data>
   <data name="icon_selectpolygon_disabled" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
     <value>
         R0lGODlhEAAQAIMLAM3Jzs6lqZ+svcTM083Cx828wdbcyMvSxsTEy8LKxM3DxwAAAAAAAAAAAAAAAAAA
@@ -1297,21 +1349,6 @@
         YII=
 </value>
   </data>
-  <data name="icon_zoom_disabled" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
-    <value>
-        R0lGODlhEAAQAIZfAHaFlJ2Sh9HW3Ojt8uDPvuPp79Tg5fP19uzw9O3x9OLo7t3l7PP1956foLa2t52d
-        nZ2dnM/R0tPU1ZKSk6SmqPX2987P0NHT1vDz9eDl6b29veTn6dzg5KqsreTo7KKkpsbZ26enqNba3e/y
-        9b+/wJubm7zEy4eHh7rH09Lc5tbY2tfg6M/OzvHz9sXHysvMzsrKypKTk9vd4LGwsKymoP///4KCgra8
-        wvDy87q7vdTZ3cvO0MvT28XFxeDj5a2trczT2+zw8+jp6uPl5tTd5uTo683V3Le4ucjKzLa8wcLDw7q/
-        w/T2983X4evt76GgoOTq7/n6+u/x9K2vsNjh6dTa4LSzs8vR2fHz9ba3uO3v8c/S1PH09szLy/L09QAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEBAAAh+QQB
-        AABfACwAAAAAEAAQAAAIqwC/CGRh5cmMLgITAkj4pYcEGRxEvNDAcKFAJT60eDkgxYOOLF8AiBQJI8KB
-        GlEYjAgCZQkJgRZ/DKngBAsGBAMUXHkAUyAEHEyKZEiQcwGREwy/hBDCgAvRAgaoAJlgYiSAHBZa4IQK
-        IsWNDklVONgwoMCCJiiMfNiS9AsSBy6qrOCRhEKDtgIvHClhI8aUHQ0CEMDbVkAAwYSTGkacOOHiwY0F
-        GqYR2bHAgAA7
-</value>
-  </data>
   <data name="image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
     <value>
         iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
@@ -1342,17 +1379,6 @@
         gQ6z1Tqypb39kRFN7pbPJo85bjqz+ZNkAFjWAEPwe9vSE1Y8AAAAAElFTkSuQmCC
 </value>
   </data>
-  <data name="function" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
-    <value>
-        iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
-        YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAABC0lEQVQ4T6XSPUpDQRiF4bkh
-        IsEgwb+gawg2pomFhUUs0gcLtbQSGwsrN5BKF2Bnp1gJAS0EUUil2LmFrOLmPZPvhmGYW5gMPJlvDsPJ
-        zY/L83whLsuylD6ejObUndKCNp5xiJbNqXulBed4xHqQJZUV3OIuypLiggGGkd1gPoHuNYtz6gk6eLNd
-        5zPbj6Fc38sDukh+hEu8YjPIZB/vZpanCu5NnPfwCf1Cszwu0Lt+4CrIRP+DkTmyzIsLDvBtu9Niv7ZM
-        s/bTYJ4WBOsGv2j6k3MX+JuOfhVn6SkICzr4wos/la+68asoGJsf7GEDa2hgFSuoYRlLqKKCrCjYwTb0
-        6Fv4X4Fe5pe7CSINtCR/xwMpAAAAAElFTkSuQmCC
-</value>
-  </data>
   <data name="folder--minus" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
     <value>
         iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
@@ -1496,22 +1522,6 @@
         MFZB4vF/BgC5xGorvamwnQAAAABJRU5ErkJggg==
 </value>
   </data>
-  <data name="drive-download" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
-    <value>
-        iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
-        YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAACR0lEQVQ4T42OX2hScRTHD0FF
-        hEG3f9Aftv5ApVIPF0r2soU9BeIkDRnGKkhBYmOMoVu0BesWvSx6KrbwJXqwP2BYqY2l+ae0WcN2zZy5
-        tfWQvqztYeUkPP2O7MpdsepePnDu+X6+hwuNruJK8K4v2CSkKk00/5bVgEPX3tc4fH0cGm7NSNhvf/p5
-        pTO4INAs7cmRd6C+K1hjjzMMBy+PAj+QJR7cTC+mbd7ZNJvv044ycuSdZR8U7uuJwf5LcVD1v0v2v5nH
-        E0MfkWbaUfbXA7sdL28wwb9E0h6eRfWdSaRZ2pMj78DO9uc1drQFLHsvhtMdqTKeTy4i71/ATe55bBz5
-        jsbYD6xzhkRy5J1lB7Zf8AF37pFlW0dA1I1WcLOvgqseV1AdquCWdr9IGTnyDhxpFaocPXMVDlhdsPHs
-        Q1hvvmvZYPOIDTHE+hFEhdUj0o4ycsiVeqDX66sYDAYwmUxw3GyHXacGYHXzkGVtq3t8DYNm2lFGDrlS
-        748DEsdOWkHV3FVH0CzPVjqgMBqNLQzbP2ght3ZAp9NJnI5EIhOpVAoTiTiGQi/Q53uGXq+X8YQRYATR
-        7X46Qa7UA57nQavVEm3lchlLpRLOzX3DQuErTk9/xnw+z5hkzGAymcFstoDkUoe61UelUoFGo+ksFovo
-        8XhQEATs6+vF7m4nOhxEL0NAK3vj8QySSx3pWcfYqlQqe9jvTuVyOcxkPuDY2Fsmv8ZoNMqIMRI4PPwK
-        BwfvTZFLnaUucAy1QqEwcxwn/A/kUgcAuF+i7LTexweyfwAAAABJRU5ErkJggg==
-</value>
-  </data>
   <data name="cross-script" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
     <value>
         iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
@@ -1706,9 +1716,6 @@
         HE7cl2HkyZUtSx6QWfOXzpZnsAkIADs=
 </value>
   </data>
-  <data name="magnifier-left" type="System.Resources.ResXFileRef, System.Windows.Forms">
-    <value>..\Resources\magnifier-left.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
-  </data>
   <data name="icon_zoomout" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
     <value>
         R0lGODlhEAAQAIZ6AG1LJgE0ZkV2qN7s9bK8xuqvdtfk7LOcjH+AgLrK25i1019fX6OmqdDc41lZWV1d
@@ -1741,35 +1748,6 @@
         BI8SEnFZTeEGAAAAAElFTkSuQmCC
 </value>
   </data>
-  <data name="icon_tasks_disabled" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
-    <value>
-        R0lGODlhEAAQAIQAAAAAAP////39/vz8/fv7/Pr6+/n5+vj4+fb2936EjuDi5YyTnM7T2bG3vvf4+fb3
-        +PX29/T19vP09fb4+PT29v3+/vz9/fr7+/n6+vj5+ff4+P7+/v39/fz8/Pv7+////yH/C05FVFNDQVBF
-        Mi4wAwEBAAAh+QQBAAAfACwAAAAAEAAQAAAIogA/CBxIsKDABggTKlR4kEGDDBAzNGBAkWKCgwsaKNio
-        YIHHjxc/NAjQYMOGChw6dCDQ4IKBkCNLLrzQAEMGmBsaoByw8kKBhzcP5uSgsACGhxpgCmigkoCHCzYb
-        aJgAk2iHhRInPIBpoYHTAgYyHHDQ4AEEmFdpIjwwtQEECjBZGoU49UEDChFgelioMELeg2AhOpiA4K1f
-        CTATKF7MePGHgAA7
-</value>
-  </data>
-  <data name="map--plus" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
-    <value>
-        iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
-        YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAAC6UlEQVQ4T53RYUzUdRzH8e9s
-        5rKtXD4odWu59cThwLk2G+qSrdUDpa2UHrjl3E44PDxOILgLAU1UZHjKgsOuAcrtcBwM8QLJEwE1u4QO
-        m8p1WtiB3EHEpJQTZCLvfj+ftmbzv7322/77vB/8/z9J2bs3WUl7DslbiopENhcWGnmOR3eKyMf5+elz
-        6kX9lQJaeg9ypb+S4EA9gYHzuG/2c6Angu1ylCxfFHNrFNPpKHqvO0XkI6vVNDs3x4muPDoG7PREnPSG
-        nExMd/HL5G0aRmMU+aMUB6EgACZvFL3XnSKyMScnY+bJE5y+LNpCh+j6vRzfNTt/TJ5hfMrP1b+GKPsp
-        TOmvsO8G7GodRu91p4h8aLGYp2dnqWzN4Jvz2bgu5uPtK6H7ejk3brnoud1OQyjEfv8ged1DWL4bQu91
-        p4i8n5GRGXv8mGPN6TQE9uDtL8Z9aQ8/Dn9NeMLDvalOOoOdeEYfYL8zR3bHIHqvO0Vkg9G4+/7MDPZT
-        abj9VhqvFVLdkcuFO8foG6lh5H4LfaEm9SmD1AzPYOsOo/e6U0TWGQzZE48ecbTWSN2lXOp7bFSdtXD2
-        1mEuhr8i+KeLQH8Nw7EAvvEx9l3+Db3XnSLy7rZtOePT05RXmSg7mcqRhlQc7WaOt++m9oKNxu/34w9W
-        EbhZxybfp7x5JpHtvVnoThF5Z+vW3LGpKSrLzbi9Nuo6P+eIJxVPXwHe4AF1tUc5/cNBIn83k9C2hh0T
-        uepMQnfLCtaIrEpJsY48fIijzIKnsRBXWx6H3QbcV600/VykrraEpMZ1xDXHk9CympTxNOJb3mO+Y0lE
-        ql9zyork5PxILIajNJOKskzsFemU1hgorTdgbzJS8a2Zt6rfJmn0k38Rx6KAvJGY+OWY+qt3Jyf/02fn
-        dhFft/aplXfXk+BazwvFi0fE/opTXlq+fOfLcXEl/8e8L14dXRqOQ5+6kw8WiH4WKq8rS59p54u1kjb/
-        upjU+bQT+QeXzXtObOCHlAAAAABJRU5ErkJggg==
-</value>
-  </data>
   <data name="icon_popupscrollup" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
     <value>
         R0lGODlhEAAQAIcAAAAAAIAAAACAAICAAAAAgIAAgACAgICAgMDAwP8AAAD/AP//AAAA//8A/wD/////
@@ -1832,6 +1810,21 @@
         7AkAYHHjwA0pW8acubIAzp3ngM5MZk9AADs=
 </value>
   </data>
+  <data name="arrow-curve-180-left" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
+        YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAACEElEQVQ4T6XTXUiTYRQH8BMr
+        EUPnR9NmgRIjNuxr2hIaZNFFb3UXo5sS+7QgM7DANoI0IUhbn5DuIi2oFEQ0i6mBRSl1sWeDUltfkrCi
+        zUklRS1ZnP7PsLHRiEYP/HgOzznn/169xMz/JeFjMshQL2hV4xituTROZsc7KmsNKOBYd9VPkvGsN0rO
+        FTV4aOmJJ6SzDkfEB7T4FISIWbT6wuskAi6+URAiHO+Z5V1y7mXc8l8DVp4ZVdCMLDd5wyzrGC5wgh1z
+        pj8C9HUuBSGi2cdcc/8r2x5/41OeENe7Q1wnQnzS9Z1rh7/82HsnMLX2/OgIZq0ISIsGLKl9JC6//ckH
+        736Ks7snyJZ2H29ufcUbW8Z4w5VnvKXtRdjU5B7HjrXw2AMqqBkkWnzknrKoekA0Pp/hyt6PfKB/mrcP
+        fOb1vVNs7g5yadckGzsnuagjwLobfjbc/BAusA2N5B/uN2kPOYmwTJr9PcqCfd2iSszwssEwy/o3TeVt
+        d25139OF1ode7WnPRM41/3RO80QQPTsQZZSWk3prA2XsbFfSd9wSxUPM8s7a1UnZe7pIXd4xF7JAD5vQ
+        s6dX9blxO4GiR5VnoJSy40qqpU1Iqlz9bCf+pCzfJudssTNzYB6kQabKWGFRmY9eR60DA6yAYiiJhRn5
+        +UKIBKhAhqTCfFBDNmggD7SQn0Bmwh8kGQkf/x3TL/u/9NmKeOePAAAAAElFTkSuQmCC
+</value>
+  </data>
   <data name="gear--pencil" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
     <value>
         iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
@@ -1900,6 +1893,23 @@
         QMGBxpkDAgA7
 </value>
   </data>
+  <data name="application-search-result" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
+        YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAACiklEQVQ4T5XST0jacRQA8K/W
+        IBGGtItedqhDXnZxl042QrDIhoUNWjuarf2DOdgOO0UG1qUNtkOjnHRwtJRkha2kk2azyVhM/INuDTG1
+        8h8mapK8vfdjbq5dti988Ovzvef7/n5fptFofhkaGmpDw0j3DyivjQ0ODjYa8Xg8/kgkAoFAAPb29sDn
+        +wg7Ozvgdntge/sDeDyfwOv1w/q620/5TK1WNxp3Op2wsbEBDocD1tbWwG63g81mg6WlJbBYLLC4uAhm
+        sxkWFhagqalJR2M3GoP/WJTPBgYGGt0+OTmBo6MjyGQyUCwWoVqtwtnZ2V9qtRpQPuvr6+OoVCrW399/
+        JxqNQi6Xg3K5zCmVSpxKpfIHakz5TKlUcnp6etr1ev3U4eHhqcFg2JJKpS8I7dPp9GmhUOAmqqPmvb29
+        95hCoajT+Hy+L0ajcfP6TZ1xNxhf3g3Fl9W3xqYpRkfCRtx0hI6KNQ+YXC6vu4v/Xurq6pp57Qxa3rhj
+        q8TqilgpRs8lFovB8fExJ5/PA9Y8ZJ2dnXX3U6lUCc81aXV/fRuIFzbJ1uf4KsUODg4gFApBIpHg0ERY
+        84jJZLK6Ybwwgbm5uZUJ4/OJb8nc+++pvHPm2UsDxcLhMHexaApCE2HNYyaRSJhYLCby+fl59/7+ftlk
+        Mll1Ot0TQvtgMFh2uVxAbyiZTHLoGB0dHU9Zc3Mzwxsl02q1K9lsFmZnZ714GyM4cpnQvru7+5VIJJo6
+        r7W1VUsNrmGxnYpHR0ft+F2BxtHkT7S/0tLSwhMKhawRNmHUwEjF2OQdTnKVz+ez83g8HqsvzGECgeB3
+        AwyMYJNp/LyBv0tRO7qMJOgSuogE6ALiI25RE5FIxH4Ao8sWCkhO/FoAAAAASUVORK5CYII=
+</value>
+  </data>
   <data name="map--minus" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
     <value>
         iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
@@ -1963,6 +1973,18 @@
         AgYTKwZIyICycEMDLAkQlKDwxEdHHTyQVLjQEQsQCFMKBgQAOw==
 </value>
   </data>
+  <data name="icon_invokeurl_disabled" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        R0lGODlhEAAQAIU4ANrf46y7zJ6rvLXLss/Z4cXQ2rPD1M3Fo8fR2rjHwK/BtbTJsb3TtcLXt8TOzsDL
+        ycTDpbrQtL7UtrnNs7DCtMHWt6m9rqm9rcHL1LHDtrDDtLPIsb7MxMDVtrLEtbHHsLbMs6u8xK/CtK++
+        q6y/ssDWtrrPtLjPtLrRtLzRtLvStb/VtqS1s7nJw8jSz63AtbzQtMDWt7bMsrvRtcHXt7zStcDMz7zR
+        tQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEBAAAh+QQBAAA4ACwAAAAAEAAQ
+        AAAIuQBx4MAQoKDBgwUxCAxgoKHDhgAMRBSwEKHFABRxBCDAsaNHjhk3AhhJsmSBjCFaZLCQgQOEAzAP
+        ADiJ4wGJBQMq3FjgwYVJihomDAAwoEGDCR5eyjyZYEGDoUQr0FjAgeRJBTBKQCUaI8UImDMFXOiwYivR
+        DhasClBgQsJWBhIivChAl+kGBlBn1GCwgYWAv38daBgwNAIKFQNE2EDAmHFNCh9AnJDxgcIDgZgxO0ig
+        4IKCBA4yYw4IADs=
+</value>
+  </data>
   <data name="icon_panright_disabled" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
     <value>
         R0lGODlhEAAQAIZuAJumsOTY2MS5uK+2vcW5uJumstrOzsi9vOHV1eHU1ZunsuXZ2dve4d7S0aaxvuTX
@@ -1978,18 +2000,25 @@
         jBDhYAWXkG7IFCjQhEoOG5jdICnwoYMCBwEBADs=
 </value>
   </data>
-  <data name="table" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+  <data name="icon_panup" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
     <value>
-        iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
-        YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAABzElEQVQ4T52QS0sbYRiF323o
-        vkh3LoubLmyRYGm1QhcSQSQbF26UphrU0iCxQ2MUb/1RKqLENBrHK6KiUby0xJTYkEwuZpLjdwZmMJCN
-        +eDAeQeew8OINxz2qHxpMB7pC4V8aPCRlV5N+1pVR1cc+LRVRedmBR0xEx+iD3gfKaJ9PQ/3moG21Sze
-        rWTwdvk/WpfuQYas9ASDI2a1ag38SsMamE+ZmLsrWwPh2zxC1zlrQLvMYDJxbw2QISvdgYC/VKk4BkO6
-        gfn9FGZ3k5jR/2I6fouprRv8jF1Bi17ix8YFJiMJkCErn8fHRwum6Rgs7P/Dg7qZyNGR01f39py+tL0N
-        MmSly+8fy5XLjgEHYqeniB4fYzeRwPrhIdYODhBX31Z2drCs69aAxShWPvp83zKlUo2BoW6GBnangd05
-        QIastA8Ofk8Xi3UN9PNzx2Dz5KTGgAxZaRsYCKQKhRqDjLoZGtidBnbnABmy0trfP5HM5+saxM/OHIPf
-        6n5qQIasvPF6g38Mo8YgrW6GBnangd05QIasvPZ4tJtcrq4BB2wDDjw1IENWmtzumaT6o1fZ7LNChqy4
-        mpuHX7S0LDYSsqKeS+WlyqtnRjHiegTR9dCO4+5C7wAAAABJRU5ErkJggg==
+        R0lGODlhEAAQAIeDAJhpZZpqZiJNeNikptelprG+zCBPfSJNdyJOfVJvjMybl9Kgn7ShnSNOeCJPea2f
+        nq6entWjojVkl6CBgB9NfjVjlB5OftOnqDJejp1xbp9wbM6cnbWEgbaGhKh3eJBkYbeKh9CdnM2jpMeU
+        kcCNirqIi9qoqZ5ybdOfodSmptenpbuKhriHg6uWkyNQeq59fNakpciYljZklaB1dCtXhTFhkC1Zid2m
+        qdilpJlxbah2cyBPe////9ioqLCRjtCdmrKiotuop8OWkaZ0c3+hvdmhpMyZlipZhkFiirWgnd2prcGP
+        jvXm6TNfjcmdmtShoMKPjoKVs9KanbmTkrqIiaiOjVFwjNulpZJnZqNwcpd0dE9wkGF8mNimpdimp7GR
+        kvfk6MeVlKyfqcSSkd6rqDVjk9KeoqGEgbyWk5emu36SscSUkjFfj8WUkDdlltOaoDJeirqurqOPjiBM
+        eax/f9Ghn8aUkyBOf9yorNympKJybtKeoMOTkcuYlShYh6R/fpx6eL6KjL6LigAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        ACH/C05FVFNDQVBFMi4wAwEBAAAh+QQBAACDACwAAAAAEAAQAAAIxAAHCRxIcKCLgggHFhBQQKAdLwGm
+        VEGYQECCQSJ0CLkCgMyMOAUbCJzQI8CIAQCU/IFA8IDAM3QIAFiDAwAeJ18GuhSYg0OeAG0GdLiRwkfC
+        D2G6sPjxZo+JCwwSalABY0MIFEUIoCnoIUadLEukLDDzJEIQMQSTYDGi4EUJQWP68AGTxgpBIIBWQAFB
+        gkogJlHK+NlSsMWQDCf08FBzpEINGkgQPpCjhYiBO00kYLCQUCAXBAjm2HADp7NANhR2ODAgIyAAOw==
 </value>
   </data>
   <data name="icon_fitwindow_disabled" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
@@ -2019,6 +2048,19 @@
         aIiQYcWFFDModDABk4Dnz6A/DwkIADs=
 </value>
   </data>
+  <data name="control" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
+        YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAABhUlEQVQ4T6XOTSiEURQG4NuY
+        QZnFKMZPplAyhGQskFCUsqHZoG4ZKcqCBVEWxgolQqRRY2FmRZSf5LcpC4VLkQWlKCbMRpQsJh3nTK6+
+        W8rIrafvvrf3nD4GAP+ihHL3I6uYe3IhXjrrZ0XTt8w2dsXyhs6Z1XmkdCUl0BASX/ifF9AAEi4/AH2L
+        pm74nxZQGYnhiyDM3AHQ3TZ6ycNeQEUknMfv0L7xAuPXH0A5d/CMh7WASkj0HbxB89IT1HtuYEC8AL1l
+        9h9ybVdSQnrvPhGt636omjyFyomTkM7dB6B3bVdSQkrHFhF1y/dQ6LoKcewEgN4sndu//4G5dYWI4rVn
+        sHgDULP3CpQT2lY5Ldd2JSWYmhaISNsMQqEvCHSPdSxyWhxvH1G6khJiGjxEZPgA6Gts9HJjtZMZknIY
+        HW1XUoI+u5ZF2t2CGMp6eIQ5KzQoj7YrqYGxaF1J17yuoKUb7/nIilJRIorSdr9nlMCYHplRMqKhOGRC
+        RqTXdr9nfnoMH7BPTYFtG3kcKMcAAAAASUVORK5CYII=
+</value>
+  </data>
   <data name="globe--arrow" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
     <value>
         iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
@@ -2043,7 +2085,7 @@
   <data name="MgCooker" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
     <value>
         iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
-        YQUAAAAJcEhZcwAADr8AAA6/ATgFUyQAAAHrSURBVDhPjZHvS1phFMf9T3qxl4MaxDKSoiKKIqEaBAlC
+        YQUAAAAJcEhZcwAADr4AAA6+AepCscAAAAHrSURBVDhPjZHvS1phFMf9T3qxl4MaxDKSoiKKIqEaBAlC
         Rg2KfBWhL9peOCiK2F0abSs2xFWk3n4JdhVMS2tdhv246CazreiHa4OCeit4v/N5vA5He2oHvpyH+5zz
         Od/zXBUrZha/on/SS2Wbl6B8/r+omhiBIbCImuVx1PMVKJ9rQq/zFB/cyftBmld9aPZYUfS6Ba2CExqX
         EVWBQzwMyjCsXd0N6OR4OrHGWZudWok27zsYJRlaUUapx49Hbhv0wy42pGx0QLFcCWPQjunDNEyxDHRR
@@ -2075,34 +2117,16 @@
         iEmUMn62FGwxJMMJPTzUHKlQgwYShA/kaCFi4E4TCRgsRBzEBQGCOTbcwNk8iA2FHQ4MyAgIADs=
 </value>
   </data>
-  <data name="document" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+  <data name="icon_tasks_disabled" 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==
+        R0lGODlhEAAQAIQAAAAAAP////39/vz8/fv7/Pr6+/n5+vj4+fb2936EjuDi5YyTnM7T2bG3vvf4+fb3
+        +PX29/T19vP09fb4+PT29v3+/vz9/fr7+/n6+vj5+ff4+P7+/v39/fz8/Pv7+////yH/C05FVFNDQVBF
+        Mi4wAwEBAAAh+QQBAAAfACwAAAAAEAAQAAAIogA/CBxIsKDABggTKlR4kEGDDBAzNGBAkWKCgwsaKNio
+        YIHHjxc/NAjQYMOGChw6dCDQ4IKBkCNLLrzQAEMGmBsaoByw8kKBhzcP5uSgsACGhxpgCmigkoCHCzYb
+        aJgAk2iHhRInPIBpoYHTAgYyHHDQ4AEEmFdpIjwwtQEECjBZGoU49UEDChFgelioMELeg2AhOpiA4K1f
+        CTATKF7MePGHgAA7
 </value>
   </data>
-  <data name="databases-relation" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
-    <value>
-        iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
-        YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAACCElEQVQ4T42RvW8ScRjHb+B9
-        0oSBl6EBQsIAcWRDBkdIWFicTAwa3xKGDmIqZ3uCfwBipAbja6MeXkptG5KzoVDeLNuZS2si1lOPVCrG
-        yfXrHaXx7oTGX/KZ7nm++TzfI+Lx+P9wTuLWJCYN/0MkErkwGAzQ6/XA8zxqtW2srbWwuclh4oIWOaDf
-        76Pb7YJlWbx4uYwHxRJKzMYoYKKahKw9NWCxSINmWBBaJY77ClH8jWg0ejkWixHyc7vdoUQi8aZQKCCf
-        z4MkSaRSKVAUBUKr1Gjy+Cz8GgX4fD55/1T2TpZWdbD1DuX1Ktha52/AkdJWi8OeMBwFyMtUNkP/+DmE
-        6oRXDO4/eo6l5RUQWqVcLodkMlnxer1n5zO36f3hAdIkWVUF0AzuPX6CZ2Vm3IFCqcvtYk8cgMxQ9LeD
-        75gj01WPx3P++A4UShvtDj4IXyAM9nEjfbOq0+lOh0KhhKqDRhtMpYLV+ttxgEKJbTexI3zC9fTcaNnp
-        dBJ+v/+S6oTSa9x9WsTDlaXpHQSDwTNWq5UwmUyE3W6fVRu0UKqsolyvjDtQKDXeb2NX/IhwOHzR5XLJ
-        v3HGbDZfNRqN85LREZRer6cMBgN1eIJCab3DghN4BAKBKzabTQ44IWGXcExEq1TnmuDFHTgcjllp4KTE
-        8U+rJN28YLFYFiTta9Jn9+HUtEcQfwDKxQygANp/PwAAAABJRU5ErkJggg==
-</value>
-  </data>
   <data name="icon_fitwindow" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
     <value>
         R0lGODlhEAAQAIZlAEJyokd1qBU2aPLyl/PzoPj4yvT0rJi2zPn9/O729/L4+PT1rLnS2eny8+fx87zV
@@ -2132,6 +2156,9 @@
         /oQv4U14ER4EmyXCNR7AK4dyTYa1Y09BAAAAAElFTkSuQmCC
 </value>
   </data>
+  <data name="document_code" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\document-code.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
   <data name="arrow-curve" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
     <value>
         iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
@@ -2147,31 +2174,49 @@
         QUKJRCCcJJAkDStIPIkly4kYFHkxHEyCNH+QQGhe/j+E38IC84Ag6BEDAAAAAElFTkSuQmCC
 </value>
   </data>
-  <data name="icon_invokeurl_disabled" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+  <data name="icon_invokeurl" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
     <value>
-        R0lGODlhEAAQAIU4ANrf46y7zJ6rvLXLss/Z4cXQ2rPD1M3Fo8fR2rjHwK/BtbTJsb3TtcLXt8TOzsDL
-        ycTDpbrQtL7UtrnNs7DCtMHWt6m9rqm9rcHL1LHDtrDDtLPIsb7MxMDVtrLEtbHHsLbMs6u8xK/CtK++
-        q6y/ssDWtrrPtLjPtLrRtLzRtLvStb/VtqS1s7nJw8jSz63AtbzQtMDWt7bMsrvRtcHXt7zStcDMz7zR
-        tQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEBAAAh+QQBAAA4ACwAAAAAEAAQ
-        AAAIuQBx4MAQoKDBgwUxCAxgoKHDhgAMRBSwEKHFABRxBCDAsaNHjhk3AhhJsmSBjCFaZLCQgQOEAzAP
-        ADiJ4wGJBQMq3FjgwYVJihomDAAwoEGDCR5eyjyZYEGDoUQr0FjAgeRJBTBKQCUaI8UImDMFXOiwYivR
-        DhasClBgQsJWBhIivChAl+kGBlBn1GCwgYWAv38daBgwNAIKFQNE2EDAmHFNCh9AnJDxgcIDgZgxO0ig
-        4IKCBA4yYw4IADs=
+        R0lGODlhEAAQAIU/AP///0typRExZG+wPtbn963D3maPxcyZALfH3FWHSGupO3ugdqq+r5iymaDfUY/S
+        S1iORF6fN56xxmKWSj14K5jYTqqRCT95LHy6Ql6PT5Gzh4fKSIPCRY/RS2akOShXQp/eUZ7dUIrOSYLH
+        R1V8IHvBRFmPRInISH+og0mCPpfYTp3cUJPVTIDGRojHR1eNRIPDRYjGR0dzh5vbT6DeUHCzP7jOsU+E
+        SVuQRZvbUHGzQIbLSJPVTZq0sWWkOQAAACH/C05FVFNDQVBFMi4wAwEBAAAh+QQBAAA/ACwAAAAAEAAQ
+        AAAIugB//JAQoKDBgwUlCAxgoKHDhgAMRBSwEKHFABR/BCDAsaNHjhk3AhhJsmSBjDJQZLiQQYOFAzAP
+        ADj5o0EKBQNWnFAwwYZJAQxwYBgAYIADBxgmvJR5coECGkSLhgChQAPJkwlizIhaNIcLEjBnCqBQQQXX
+        ohUuXBWQgAMPrh1YwLhRoG5THw+ibhDxwMMHAYABMzAxgGiLETsGvOiBoHHjmhAi6ChRIwKEBgIzZ2aw
+        IAGFBAsYaM4cEAA7
 </value>
   </data>
-  <data name="control" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+  <data name="edit-indent" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
     <value>
         iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
-        YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAABhUlEQVQ4T6XOTSiEURQG4NuY
-        QZnFKMZPplAyhGQskFCUsqHZoG4ZKcqCBVEWxgolQqRRY2FmRZSf5LcpC4VLkQWlKCbMRpQsJh3nTK6+
-        W8rIrafvvrf3nD4GAP+ihHL3I6uYe3IhXjrrZ0XTt8w2dsXyhs6Z1XmkdCUl0BASX/ifF9AAEi4/AH2L
-        pm74nxZQGYnhiyDM3AHQ3TZ6ycNeQEUknMfv0L7xAuPXH0A5d/CMh7WASkj0HbxB89IT1HtuYEC8AL1l
-        9h9ybVdSQnrvPhGt636omjyFyomTkM7dB6B3bVdSQkrHFhF1y/dQ6LoKcewEgN4sndu//4G5dYWI4rVn
-        sHgDULP3CpQT2lY5Ldd2JSWYmhaISNsMQqEvCHSPdSxyWhxvH1G6khJiGjxEZPgA6Gts9HJjtZMZknIY
-        HW1XUoI+u5ZF2t2CGMp6eIQ5KzQoj7YrqYGxaF1J17yuoKUb7/nIilJRIorSdr9nlMCYHplRMqKhOGRC
-        RqTXdr9nfnoMH7BPTYFtG3kcKMcAAAAASUVORK5CYII=
+        YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAABdklEQVQ4T5XS3ytDYRgH8Gc3
+        bmdc2HYj2hQNs7RNoya2KTI/brCylpJbJbldUvwT7rjasF8k4viRH1Fyw5XIjaRcu3t9n7ft2I4dy1uf
+        Oud9nvf7vKcOCSHIYDCwOCQgmbcF27ADKUhDFnKwBvJsccC/aQMqTaXOwJLk6lskZ++C/g24odBcMLv6
+        qZpZ+aBo/O0noN4Zk+zuOVmILb8raBJ6uF4S0D19Inmnjig8/8DE6d2XLq5znxrgnjhkwjGc9nsmD6kr
+        cqzwux6u80A1wB5KsBcQ/Nwa3qPmwfQvLUNZco7tyoElAbZgionG/oTfHsogLKPwuxbv20M5ahvZp47x
+        g+Ib5KSmgRy1j16xst/O+/m6pAbU2iJStdlLjuAmrves9ERfhRbvOwIbZKzzEC81QPsfmKw+anAt/GKy
+        +OTBwtIGKHACZ3AOF3AJ13ADt3CPc4/wVC6gIu1SA7CMaFgHvalJsOZZoAaqSgLADIWmvxQFCPoGzyRS
+        PHSKlsAAAAAASUVORK5CYII=
 </value>
   </data>
+  <data name="icon_panup_disabled" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        R0lGODlhEAAQAIZuAJumsOTY2MS5uK+2vcW5uJumstrOzsi9vOHV1eHU1ZunsuXZ2dve4d7S0aaxvuTX
+        2ObZ2aaxvePY2NnNzODU0+HT1Ofb2sTJ0c7Jyfjz9J+rttvPztrPzpumsdbS0pqmsdfR0dbS0aSvupum
+        s9zPz9/T08/ExMzFxNbKydfOzdXJyqOuutjMy9zQz8fP1tvPz97R0dLLytfLysG2ttPQ08vEw6Ouucq9
+        vs/Dw6eyvuLW1eXX1+TY1+DW1sa8u+LV1vj09dTQ0NPHx8i/v9fKy+PX1pynsc3BwaSvu+fZ2tTIx+PX
+        18m9vJqlsNLMzMK4t8zAv9zQ0P///9TR0KGsuObY2Mu/v6CrtqSwu6mxu8m/vubZ2pqmst7T0tXKydXJ
+        yc/Jyca9vcbL0si8u7e9xK+3v5+rt8zDw9PHxtjPztrX1+fa28/S2NTMzAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEBAAAh+QQB
+        AABuACwAAAAAEAAQAAAIxADdCBxIcKCRgggHMgDAQOCLAARSgEE4AMAANz2gcIAgwIIWNQUBCKyxgACJ
+        BwLWnAlCUKSbEyYCCDDAQ8CWLm0GunTjA00VAhseCEkiIUbCGS0CKKFQIcECCSESjgmwpASFHzsCpCl4
+        JAqCGxMqIEigowgEGgRBPGnQAIcKGQZgGMjA5uJAD0NQTPDC4gsRIGIimClT0ImVAweYSLmgIQKWK1kQ
+        TsEQxoWCESIcrOCSUCCZAgWaUMlho7NAJAU+dFDgICAAOw==
+</value>
+  </data>
+  <data name="TextWatermark" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\TextWatermark.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;Windows-1252</value>
+  </data>
   <data name="icon_selectwithin" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
     <value>
         R0lGODlhEAAQAIUwAMnY6Ud1qBU2aAEBAYBoKfLyl+Tfi97Vh+nljZeirOLaicjd5Pf3vPX2s+Ldimp9
@@ -2198,19 +2243,23 @@
         ZOHTRoMQHTMDABEB5YWDGUmU6KHxQAwGBKj95EkRIw6LFVV6fEig5oJChVHMbOijMCAAOw==
 </value>
   </data>
-  <data name="script--arrow" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+  <data name="map--plus" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
     <value>
         iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
-        YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAACAElEQVQ4T43TT0iTYRwH8N/o
-        DxlIsENUOyS85aGZhxXULsKG0UCrQ60uG3aId7iNZEbqDL2YjYIg16FLSlcJPBQRRJAmEeFWK1ro6I/D
-        3jXe+Ta3uSG67dvzBI91evDwgffw/b6/3/O8vNTZ3//X2XCYLgwP2xl1q84PDR3YfMGZgQH7i7m5p7V6
-        HdVaTapYqSxfHRsbZEMP0ulQSFBL1SpypZJUYX0d0ampR67e3kN8MLV1dwuqtrqKhWxWimd41hEMUntP
-        D9Hxri5BTReL+KxpUjzDs6JHR9xuQV1iK37JZKR4hmdFj5o6OgT1J1tvnq0pwzM8K3q01+kU1F/lMr7q
-        uhTP8KzoUaPdLqi5SgVpw5DiGZ4VPdppswnq77U1ZFZWpEamDSi+uxNNV26TxTtCZGppEXxF9o2X2SXJ
-        eCc1HLvzIX3i/ndPa+QTETU3C4HyxgYKbMX/3XjyA+7xhU0XJ1J4oAGsHDs6mvAQWSxEisKF9EIB2Xwe
-        Ols1x54NNrEzGkd0CfAnAe/Hf67NA0p4NkZkNvOy9Vwg8PhlPI6ZRAJvk0m8T6WQXFyE7+E7OG5Owzk6
-        g/Zbr3EqMouTb4B9/mex/cHnHjKZzVary3VPN4x8nf1IUgAO+ydLjZfGv+129vnYBewiU0ND6zZFiWzV
-        Dsf1V9ttl/tYmZ2d9vwBqfGISyDsxfQAAAAASUVORK5CYII=
+        YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAAC6UlEQVQ4T53RYUzUdRzH8e9s
+        5rKtXD4odWu59cThwLk2G+qSrdUDpa2UHrjl3E44PDxOILgLAU1UZHjKgsOuAcrtcBwM8QLJEwE1u4QO
+        m8p1WtiB3EHEpJQTZCLvfj+ftmbzv7322/77vB/8/z9J2bs3WUl7DslbiopENhcWGnmOR3eKyMf5+elz
+        6kX9lQJaeg9ypb+S4EA9gYHzuG/2c6Angu1ylCxfFHNrFNPpKHqvO0XkI6vVNDs3x4muPDoG7PREnPSG
+        nExMd/HL5G0aRmMU+aMUB6EgACZvFL3XnSKyMScnY+bJE5y+LNpCh+j6vRzfNTt/TJ5hfMrP1b+GKPsp
+        TOmvsO8G7GodRu91p4h8aLGYp2dnqWzN4Jvz2bgu5uPtK6H7ejk3brnoud1OQyjEfv8ged1DWL4bQu91
+        p4i8n5GRGXv8mGPN6TQE9uDtL8Z9aQ8/Dn9NeMLDvalOOoOdeEYfYL8zR3bHIHqvO0Vkg9G4+/7MDPZT
+        abj9VhqvFVLdkcuFO8foG6lh5H4LfaEm9SmD1AzPYOsOo/e6U0TWGQzZE48ecbTWSN2lXOp7bFSdtXD2
+        1mEuhr8i+KeLQH8Nw7EAvvEx9l3+Db3XnSLy7rZtOePT05RXmSg7mcqRhlQc7WaOt++m9oKNxu/34w9W
+        EbhZxybfp7x5JpHtvVnoThF5Z+vW3LGpKSrLzbi9Nuo6P+eIJxVPXwHe4AF1tUc5/cNBIn83k9C2hh0T
+        uepMQnfLCtaIrEpJsY48fIijzIKnsRBXWx6H3QbcV600/VykrraEpMZ1xDXHk9CympTxNOJb3mO+Y0lE
+        ql9zyork5PxILIajNJOKskzsFemU1hgorTdgbzJS8a2Zt6rfJmn0k38Rx6KAvJGY+OWY+qt3Jyf/02fn
+        dhFft/aplXfXk+BazwvFi0fE/opTXlq+fOfLcXEl/8e8L14dXRqOQ5+6kw8WiH4WKq8rS59p54u1kjb/
+        upjU+bQT+QeXzXtObOCHlAAAAABJRU5ErkJggg==
 </value>
   </data>
   <data name="marker" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
@@ -2258,21 +2307,11 @@
         ZUUFHEMGKrzSMQIUKzZquKAIQIaBIBY2KHHyouDGDjQurBybFUAGFUhWZnVI1iPhwYgJNlycNSAAOw==
 </value>
   </data>
-  <data name="gear--arrow" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+  <data name="icon_null" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
     <value>
-        iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
-        YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAACeklEQVQ4T6WQX0hTcRzFr+kS
-        MUNfZv+UKEVCDdvAbfUwsMSai/z3EKHJoJCsnqSBURGCiCCUbWEQlFIZ1EuKEWQmqF1h98b+mprLlm0q
-        vkvky+l37tVSiF668Nn38P2ec7i7EoD/QvtxOByS0+mUqqurpZqaGm3W1dXZBE3r2Dbf6GWGbCmoqqo6
-        KgyXxNzLuba2htXVVWze0fPXgsrKymNut/vuysoKXC7XdWG6vLiYAKHmjjd66N1SUFFRQa7GYjEoig+J
-        RBxDQ0Nz8XgchDoajWo3euhdz+gFNptNstvt+2pra28FgwEEAn7Mz3/BwsI3DWrueKOHXmYsFoteYLVa
-        7WLRQvr6eqORSBj9/c+mi4qK7hNq7njb8DHzu8BkMrlVVcHo6HtMTsoIhUIoLj7ckZycLBFq7nijh15m
-        BHpBYWFh68TEBIaHh8EZDn9CSYmpLSkpSSLU3G32MCPQC/Lz88vz8vJuEI/H+9Xvj2Bw8J3fbC69Sai5
-        46302nPlSMPtl8wI9ILc3FwpJydnv8lk7pJlFSMj45idjWN5+YcGNXe8WTuVZUv357DFM18v/pheYDQa
-        SZssBzAw8BZjYyq83ocxny+C5scBHO9Sfjo9QZy88xGnvSH0JAARVovbA/VaQVZWFjlVVlb+VFFmUFBw
-        qDszM7NdlsM40TmJe9+B5imgIfiHlhngYOu4qhXwSUlJkdLS0hzp6ekdqampBzinp5dwsccHY2PfUnbT
-        q7A2L7yYs34AdjW/VndfeaO/AfOCbIH4rJKZGAyGRlHUSag39hlne6cyzj0J7qzvPy9K9G8gnm2CHQKj
-        YM+/2H7mwSODs9sltMhI0i+I3fKHiOg60AAAAABJRU5ErkJggg==
+        R0lGODlhEAAQAIECANji87HH6f///wAAACH/C05FVFNDQVBFMi4wAwEBAAAh+QQBAAACACwAAAAAEAAQ
+        AAAIRAAFCBxIsKDBgwYDKFzIUCHBAAAiSpwY4OHEiwAqDoSIUaJGgRw7ZrQocuTGkiZBovwoIGRHli4x
+        wlz5sKFNhDhzHgwIADs=
 </value>
   </data>
   <data name="icon_pan_disabled" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
@@ -2315,16 +2354,18 @@
         x7Ozsy/LiPxLtiWx/uhdIUWmxAqJlUtEdjL/+EX/HsRPrpaoV4RdUxcAAAAASUVORK5CYII=
 </value>
   </data>
-  <data name="icon_viewoptions_disabled" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+  <data name="sort-number" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
     <value>
-        R0lGODlhEAAQAIUAAAAAAP////39/vv7/Pr6+/n5+vj4+fb299DR1M/Q0+bn6eXm6OPk5n6Ejs3P0oyT
-        nM7T2bG3vs/R087Q0vf4+fb3+PX29/T19vP09ebn6OXm5+Tl5uPl5vb4+PT29v3+/vz9/fr7+/n6+vj5
-        +ff4+Pb3987Uz8/W0M7Vz4qgitHX0dDW0OLm4uTn5P7+/v39/fz8/Pv7+////wAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEBAAAh+QQBAAAyACwAAAAAEAAQ
-        AAAItgBlCBxIsKCMCAgTKlyIEILDhxAhNojwoKLFixcnBgjgwsWHFzBCwhgQIkQBjR0/hhzAsqSIERNT
-        tkgxsmQIAi9hRnCRYuaKAQgkCJWQYASJiQJUpPgZQ0GGpws0kOgwEeTPmwVGaB1BoUOFiSBGskiR1YDZ
-        rhUsTISRYiyKERPiTnBQwoKHiQNOpHg7YgOHvwzsXpgYg4AJrRQqKE7r4cLgCASycu1wwILlxhcwTGzA
-        ubPnzwEBADs=
+        iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
+        YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAABsUlEQVQ4T42TS0sCARSFJwMJ
+        QWoXCFJEtAhqE/4EN4E7V+rGELWmDJRwREH3bgV/hAu3bvwF4kaC1iIIvvCFIr5u99xyGIcChY/7OucM
+        w6CiaZqSSqX2yGQySjabvWbCqJjNGviISPkvAKYICwgVs1mjBySTySsefEzEyHa7pc1mQ6jmG+ODTwIS
+        iYS/3W5/rtdrMrJarXTMN+jhk4BYLPa8XC5psVgcDPTwSUA0Gn3BcjabUblcpmKxKL2RarUqe1TM0MMn
+        AcFgUJ3P5zSZTIR8Pq/35t2uQg+fBPj9/tfpdErD4VBIp9NSG42G3pdKJel3M/TwSYDX630bj8fU7/cF
+        VVX13kitVqN4PC499PBJgMfjiSG10+lQLpejQCAgFfOOQqFAoVCIKpWKzNDDJwFut/t9MBjg0xwM9PBJ
+        gMvleqrX61+9Xo+63a5Oq9XSMe6hgx4+CXA6nTcOhyPMfBgZjUbUbDYJ1XxjwvBJAA+KzWbbw2q13jIa
+        3hUVs1ljt9t//gu/Pwtzylwwd8yDxWJ5ZDRUzMw9c8mcMcfMXsARc8LgeM44/gB73KHDAzmAlG9yoVrY
+        r1VqEQAAAABJRU5ErkJggg==
 </value>
   </data>
   <data name="globe--pencil" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
@@ -2347,19 +2388,20 @@
         sqyQRNffJTG6Zn6yO3tne0KYzfLM44+QMobCHt3/A5ZjeeoR8gsfww31jk5/egAAAABJRU5ErkJggg==
 </value>
   </data>
-  <data name="arrow-curve-180-left" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+  <data name="drive-download" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
     <value>
         iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
-        YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAACEElEQVQ4T6XTXUiTYRQH8BMr
-        EUPnR9NmgRIjNuxr2hIaZNFFb3UXo5sS+7QgM7DANoI0IUhbn5DuIi2oFEQ0i6mBRSl1sWeDUltfkrCi
-        zUklRS1ZnP7PsLHRiEYP/HgOzznn/169xMz/JeFjMshQL2hV4xituTROZsc7KmsNKOBYd9VPkvGsN0rO
-        FTV4aOmJJ6SzDkfEB7T4FISIWbT6wuskAi6+URAiHO+Z5V1y7mXc8l8DVp4ZVdCMLDd5wyzrGC5wgh1z
-        pj8C9HUuBSGi2cdcc/8r2x5/41OeENe7Q1wnQnzS9Z1rh7/82HsnMLX2/OgIZq0ISIsGLKl9JC6//ckH
-        736Ks7snyJZ2H29ufcUbW8Z4w5VnvKXtRdjU5B7HjrXw2AMqqBkkWnzknrKoekA0Pp/hyt6PfKB/mrcP
-        fOb1vVNs7g5yadckGzsnuagjwLobfjbc/BAusA2N5B/uN2kPOYmwTJr9PcqCfd2iSszwssEwy/o3TeVt
-        d25139OF1ode7WnPRM41/3RO80QQPTsQZZSWk3prA2XsbFfSd9wSxUPM8s7a1UnZe7pIXd4xF7JAD5vQ
-        s6dX9blxO4GiR5VnoJSy40qqpU1Iqlz9bCf+pCzfJudssTNzYB6kQabKWGFRmY9eR60DA6yAYiiJhRn5
-        +UKIBKhAhqTCfFBDNmggD7SQn0Bmwh8kGQkf/x3TL/u/9NmKeOePAAAAAElFTkSuQmCC
+        YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAACR0lEQVQ4T42OX2hScRTHD0FF
+        hEG3f9Aftv5ApVIPF0r2soU9BeIkDRnGKkhBYmOMoVu0BesWvSx6KrbwJXqwP2BYqY2l+ae0WcN2zZy5
+        tfWQvqztYeUkPP2O7MpdsepePnDu+X6+hwuNruJK8K4v2CSkKk00/5bVgEPX3tc4fH0cGm7NSNhvf/p5
+        pTO4INAs7cmRd6C+K1hjjzMMBy+PAj+QJR7cTC+mbd7ZNJvv044ycuSdZR8U7uuJwf5LcVD1v0v2v5nH
+        E0MfkWbaUfbXA7sdL28wwb9E0h6eRfWdSaRZ2pMj78DO9uc1drQFLHsvhtMdqTKeTy4i71/ATe55bBz5
+        jsbYD6xzhkRy5J1lB7Zf8AF37pFlW0dA1I1WcLOvgqseV1AdquCWdr9IGTnyDhxpFaocPXMVDlhdsPHs
+        Q1hvvmvZYPOIDTHE+hFEhdUj0o4ycsiVeqDX66sYDAYwmUxw3GyHXacGYHXzkGVtq3t8DYNm2lFGDrlS
+        748DEsdOWkHV3FVH0CzPVjqgMBqNLQzbP2ght3ZAp9NJnI5EIhOpVAoTiTiGQi/Q53uGXq+X8YQRYATR
+        7X46Qa7UA57nQavVEm3lchlLpRLOzX3DQuErTk9/xnw+z5hkzGAymcFstoDkUoe61UelUoFGo+ksFovo
+        8XhQEATs6+vF7m4nOhxEL0NAK3vj8QySSx3pWcfYqlQqe9jvTuVyOcxkPuDY2Fsmv8ZoNMqIMRI4PPwK
+        BwfvTZFLnaUucAy1QqEwcxwn/A/kUgcAuF+i7LTexweyfwAAAABJRU5ErkJggg==
 </value>
   </data>
   <data name="color" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
@@ -2381,22 +2423,17 @@
         AAAAAElFTkSuQmCC
 </value>
   </data>
-  <data name="cross-circle-frame" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+  <data name="document" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
     <value>
         iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
-        YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAACvElEQVQ4T22SXUiTYRTHHxIZ
-        azfKzDEpRIUFXqikIky24JXZUNyHU7tRU7ILZXThbpwM+7gQL6OMWiLTNxA/lpqGSGTOVk5r7XVrvZqb
-        m6iMZeBFN16envM0YUYHfryHc/6/h+eBlxiNRmIymUhjYyOxWCykqanpUnNzs5aCdTsFlhZ3mMEsOuim
-        HyChS43NZuvb2NgIHR8fQyKRYGDv8/lCvb29fZjB7L8HSMxmc4PL5RpH4dvkJKzbbLDCcQzsQ3R2dHQI
-        o6Oj45hFhx1gMBiQ63TBx+NxWOvsBEGvh5/0+7unh5Hs6IBAbS3bRaMRcDqdPDrokvr6eoXVanXs78fh
-        XXsb/LBYACvW0nIOrO8GA8vs7OxAd3e3A12i1+u51dX34Y8jL+BzTQ0LntVXnY6RXl6NBrzO57C4uBBG
-        l+h0ula81lJXF4hGI8wUFbHg6ekpJJNJiMViEIlEYG9vD0ays2GppIRl/f4vgC7hOM4qCAK8qqyEUF0d
-        LNPAmFwOgUAAgsEgiKJI3x0FF5V5ymx+Pst6vV5Al2i12rt+vx+mysths7oaZnNywE2D6fLBwQGbIa+V
-        Spb1eDyALlGr1Z2CsAWz7bdgrbgYlv8jn/0LuHujULCsx/MB0CVVVVU3pqfd228fP4X5wsJz8jwVEJRP
-        Tk4YM3l5sPxoGFwufhtdUlFRoTSbLYOBQBimDCbgc3OZvETFrRTYo8zT52Fmc3MLTCbzILqkrKyMlJaW
-        6gcGHrqDwQi8rGuA4aws+ESlcArscYY7QdgFh+OBGx10iUKhIAUFBVKVStVqt9+fE8UjWHk2BvzNNhhS
-        5jGwx5koHoLdfm8Os+igi3WBclEikVyWy+VtarXmycTEQnR39xekgzPcYYZmr6CTckkGRU5RUa5lZmZy
-        Uqn0jkwm66cMpejHGe4wQ7n61yEZfwCPJRsF7cBiYgAAAABJRU5ErkJggg==
+        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="funnel" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
@@ -2444,23 +2481,19 @@
         RK5CYII=
 </value>
   </data>
-  <data name="icon_ctxarrow" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+  <data name="icon_zoom_disabled" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
     <value>
-        R0lGODlhBAAIAIcAAAAAAIAAAACAAICAAAAAgIAAgACAgICAgMDAwP8AAAD/AP//AAAA//8A/wD/////
-        /wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAMwAAZgAAmQAAzAAA/wAzAAAzMwAzZgAzmQAzzAAz/wBmAABmMwBmZgBm
-        mQBmzABm/wCZAACZMwCZZgCZmQCZzACZ/wDMAADMMwDMZgDMmQDMzADM/wD/AAD/MwD/ZgD/mQD/zAD/
-        /zMAADMAMzMAZjMAmTMAzDMA/zMzADMzMzMzZjMzmTMzzDMz/zNmADNmMzNmZjNmmTNmzDNm/zOZADOZ
-        MzOZZjOZmTOZzDOZ/zPMADPMMzPMZjPMmTPMzDPM/zP/ADP/MzP/ZjP/mTP/zDP//2YAAGYAM2YAZmYA
-        mWYAzGYA/2YzAGYzM2YzZmYzmWYzzGYz/2ZmAGZmM2ZmZmZmmWZmzGZm/2aZAGaZM2aZZmaZmWaZzGaZ
-        /2bMAGbMM2bMZmbMmWbMzGbM/2b/AGb/M2b/Zmb/mWb/zGb//5kAAJkAM5kAZpkAmZkAzJkA/5kzAJkz
-        M5kzZpkzmZkzzJkz/5lmAJlmM5lmZplmmZlmzJlm/5mZAJmZM5mZZpmZmZmZzJmZ/5nMAJnMM5nMZpnM
-        mZnMzJnM/5n/AJn/M5n/Zpn/mZn/zJn//8wAAMwAM8wAZswAmcwAzMwA/8wzAMwzM8wzZswzmcwzzMwz
-        /8xmAMxmM8xmZsxmmcxmzMxm/8yZAMyZM8yZZsyZmcyZzMyZ/8zMAMzMM8zMZszMmczMzMzM/8z/AMz/
-        M8z/Zsz/mcz/zMz///8AAP8AM/8AZv8Amf8AzP8A//8zAP8zM/8zZv8zmf8zzP8z//9mAP9mM/9mZv9m
-        mf9mzP9m//+ZAP+ZM/+ZZv+Zmf+ZzP+Z///MAP/MM//MZv/Mmf/MzP/M////AP//M///Zv//mf//zP//
-        /yH/C05FVFNDQVBFMi4wAwEBAAAh+QQAAAAAACwAAAAABAAIAAAIFAABPBgIQOCDggIRKlR40KDBBwEB
-        ADs=
+        R0lGODlhEAAQAIZfAHaFlJ2Sh9HW3Ojt8uDPvuPp79Tg5fP19uzw9O3x9OLo7t3l7PP1956foLa2t52d
+        nZ2dnM/R0tPU1ZKSk6SmqPX2987P0NHT1vDz9eDl6b29veTn6dzg5KqsreTo7KKkpsbZ26enqNba3e/y
+        9b+/wJubm7zEy4eHh7rH09Lc5tbY2tfg6M/OzvHz9sXHysvMzsrKypKTk9vd4LGwsKymoP///4KCgra8
+        wvDy87q7vdTZ3cvO0MvT28XFxeDj5a2trczT2+zw8+jp6uPl5tTd5uTo683V3Le4ucjKzLa8wcLDw7q/
+        w/T2983X4evt76GgoOTq7/n6+u/x9K2vsNjh6dTa4LSzs8vR2fHz9ba3uO3v8c/S1PH09szLy/L09QAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEBAAAh+QQB
+        AABfACwAAAAAEAAQAAAIqwC/CGRh5cmMLgITAkj4pYcEGRxEvNDAcKFAJT60eDkgxYOOLF8AiBQJI8KB
+        GlEYjAgCZQkJgRZ/DKngBAsGBAMUXHkAUyAEHEyKZEiQcwGREwy/hBDCgAvRAgaoAJlgYiSAHBZa4IQK
+        IsWNDklVONgwoMCCJiiMfNiS9AsSBy6qrOCRhEKDtgIvHClhI8aUHQ0CEMDbVkAAwYSTGkacOOHiwY0F
+        GqYR2bHAgAA7
 </value>
   </data>
   <data name="icon_selectwithin_disabled" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
@@ -2486,19 +2519,16 @@
         uPYq3iQFR8gl8oX8pEC7K+QY2REcICfIGXKRwjlyihwieBdyv/eQHRy2xoTtAAAAAElFTkSuQmCC
 </value>
   </data>
-  <data name="icon_panup_disabled" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+  <data name="icon_invokescript" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
     <value>
-        R0lGODlhEAAQAIZuAJumsOTY2MS5uK+2vcW5uJumstrOzsi9vOHV1eHU1ZunsuXZ2dve4d7S0aaxvuTX
-        2ObZ2aaxvePY2NnNzODU0+HT1Ofb2sTJ0c7Jyfjz9J+rttvPztrPzpumsdbS0pqmsdfR0dbS0aSvupum
-        s9zPz9/T08/ExMzFxNbKydfOzdXJyqOuutjMy9zQz8fP1tvPz97R0dLLytfLysG2ttPQ08vEw6Ouucq9
-        vs/Dw6eyvuLW1eXX1+TY1+DW1sa8u+LV1vj09dTQ0NPHx8i/v9fKy+PX1pynsc3BwaSvu+fZ2tTIx+PX
-        18m9vJqlsNLMzMK4t8zAv9zQ0P///9TR0KGsuObY2Mu/v6CrtqSwu6mxu8m/vubZ2pqmst7T0tXKydXJ
-        yc/Jyca9vcbL0si8u7e9xK+3v5+rt8zDw9PHxtjPztrX1+fa28/S2NTMzAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEBAAAh+QQB
-        AABuACwAAAAAEAAQAAAIxADdCBxIcKCRgggHMgDAQOCLAARSgEE4AMAANz2gcIAgwIIWNQUBCKyxgACJ
-        BwLWnAlCUKSbEyYCCDDAQ8CWLm0GunTjA00VAhseCEkiIUbCGS0CKKFQIcECCSESjgmwpASFHzsCpCl4
-        JAqCGxMqIEigowgEGgRBPGnQAIcKGQZgGMjA5uJAD0NQTPDC4gsRIGIimClT0ImVAweYSLmgIQKWK1kQ
-        TsEQxoWCESIcrOCSUCCZAgWaUMlho7NAJAU+dFDgICAAOw==
+        R0lGODlhEAAQAIU6AEtypf///9bn92+wPq3D3hExZKq+r3ugdmupO1WHSD14K7fH3Jiymb7M37HMxlmP
+        RFeLTVyTSVuQRY/SS6DfUZjYTl6fN1iORJ6xxny6Qn+og4jHR5vbTzJpMpvbUIjGR3Gad4/RS4nISHvB
+        RIrOSXCzP5/eUaDeUJ7dUJPVTYfKSIbLSIDGRnWPsoLHR2WkOT95LD11Pp3cUJPVTIPCRZ6+rIPDRWak
+        OZfYTnGzQAAAAAAAAAAAAAAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEBAAAh+QQBAAA6ACwAAAAAEAAQ
+        AAAIuAB1CNSBAYDBgwgxDNRhsEGAhxADNACwEMBEARgzYqQ4EEAAhCA5CvRIoKRJAgUWGjgQAwYEDQ4y
+        ohzIQAKCATJEIIhQA+NMHQYkZBgQYAAFChkixPx5AMEJokVRmECgQcDPBB84QC3qYQMEqyl1KKiAY2vR
+        CgoItAibgEaKrSFm2OhQoMACgQdeTICqgsSEGyAW3BVo4MEAoixcrBjwwMBCgQwuWMgxooSFCwweD1yZ
+        QEGCA441BwQAOw==
 </value>
   </data>
   <data name="clipboard-paste" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
@@ -2536,24 +2566,8 @@
         AAAAAElFTkSuQmCC
 </value>
   </data>
-  <data name="layers-stack-arrange-back" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
-    <value>
-        iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
-        YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAAC2klEQVQ4T4WQe0hTURzHzz/9
-        Jf0TFf3RA5KeSGFG0D8VZBGEJEh/ZEj5wgoxMR8Y9oAeGFSU5EBrganMudbcnM5NbZtzd65N5+Zybne7
-        2+5ed083txVCcDpnlgyR+sGHw73n++B3wKHi16CgZTxDxdMQqHwWLql6HqEQ8D9QWLtuxpxpJUBpG00J
-        VfFlVzgtc4ZSY5uB77AGa7MD9iKuFDboYKfUbmofWprejLcjNoXEwAioYEpadNcM1wNONMuK5ebQ0AjB
-        QGcoHbIHkr6NOJiUX70UoV+KluQ2f1J8tnw6E5BpRgEs3NzYPQ9ZUkesY5QMZtM94WBkxiBtQ0GPuGbV
-        d09iOL9kFK436+xRM27WWiIQtf1EDem/kIHkD/VSONU5Zg8gI93ab1QaXXHhwUt8CPKbpGV4H/GsX2Ny
-        J7ySb344Ry2n9Y7YSjZW30r6hcASQEa6sceg1DuWBfsLeRAcvye5gfcRaL0EMtIiwge1ZCylsUUT2SzQ
-        idQTntmPwlx1bL0C/ePnXhBCcKxhtBzvw1W7CS0ZpfkqL5xaDCfHTcFliSEQE88GosOz/qjKEkk84Jj8
-        hDXqvNWlVUxZwvwjlychyKsXV+J9PimoaeVi2MmWuKFQ54t/nvFGsvlqDsVbeud9SENVvNMo0fklv0QP
-        wdE6UTXep2PUqkRGG2vYtdor9/ziaTzxQQyxxsRCMNnSawihZm89W2fo4DKR09dJChyuHapBaQOPuaZJ
-        /oyX/DDudnYI3atvBDTMhiNnYGm7AXaJQvBk9Rw8V+Fz5Z1nl4EDt/l3xuaZvocDRtnHSQfFJTwkR03b
-        NoLehMbN7AlSvPtmXxUAYBciB+TW8GplRob7SmTpud83J2/u0RNNWeBvTLfMurCnvF+8/SqrfuupGwVb
-        tu1DfjQ47b3MKpIamcGRuQBnM/Ad1vxpzkXkZMx4cBpO3XGN3fYvsCYnr+gisuxcc+IB4DeW/K1D9pQD
-        QwAAAABJRU5ErkJggg==
-</value>
+  <data name="magnifier-left" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\magnifier-left.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
   <data name="icon_copy_disabled" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
     <value>
@@ -2623,21 +2637,16 @@
         Sm78OPJkho4hX76YOSAAOw==
 </value>
   </data>
-  <data name="application-search-result" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+  <data name="icon_viewoptions_disabled" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
     <value>
-        iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
-        YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAACiklEQVQ4T5XST0jacRQA8K/W
-        IBGGtItedqhDXnZxl042QrDIhoUNWjuarf2DOdgOO0UG1qUNtkOjnHRwtJRkha2kk2azyVhM/INuDTG1
-        8h8mapK8vfdjbq5dti988Ovzvef7/n5fptFofhkaGmpDw0j3DyivjQ0ODjYa8Xg8/kgkAoFAAPb29sDn
-        +wg7Ozvgdntge/sDeDyfwOv1w/q620/5TK1WNxp3Op2wsbEBDocD1tbWwG63g81mg6WlJbBYLLC4uAhm
-        sxkWFhagqalJR2M3GoP/WJTPBgYGGt0+OTmBo6MjyGQyUCwWoVqtwtnZ2V9qtRpQPuvr6+OoVCrW399/
-        JxqNQi6Xg3K5zCmVSpxKpfIHakz5TKlUcnp6etr1ev3U4eHhqcFg2JJKpS8I7dPp9GmhUOAmqqPmvb29
-        95hCoajT+Hy+L0ajcfP6TZ1xNxhf3g3Fl9W3xqYpRkfCRtx0hI6KNQ+YXC6vu4v/Xurq6pp57Qxa3rhj
-        q8TqilgpRs8lFovB8fExJ5/PA9Y8ZJ2dnXX3U6lUCc81aXV/fRuIFzbJ1uf4KsUODg4gFApBIpHg0ERY
-        84jJZLK6Ybwwgbm5uZUJ4/OJb8nc+++pvHPm2UsDxcLhMHexaApCE2HNYyaRSJhYLCby+fl59/7+ftlk
-        Mll1Ot0TQvtgMFh2uVxAbyiZTHLoGB0dHU9Zc3Mzwxsl02q1K9lsFmZnZ714GyM4cpnQvru7+5VIJJo6
-        r7W1VUsNrmGxnYpHR0ft+F2BxtHkT7S/0tLSwhMKhawRNmHUwEjF2OQdTnKVz+ez83g8HqsvzGECgeB3
-        AwyMYJNp/LyBv0tRO7qMJOgSuogE6ALiI25RE5FIxH4Ao8sWCkhO/FoAAAAASUVORK5CYII=
+        R0lGODlhEAAQAIUAAAAAAP////39/vv7/Pr6+/n5+vj4+fb299DR1M/Q0+bn6eXm6OPk5n6Ejs3P0oyT
+        nM7T2bG3vs/R087Q0vf4+fb3+PX29/T19vP09ebn6OXm5+Tl5uPl5vb4+PT29v3+/vz9/fr7+/n6+vj5
+        +ff4+Pb3987Uz8/W0M7Vz4qgitHX0dDW0OLm4uTn5P7+/v39/fz8/Pv7+////wAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEBAAAh+QQBAAAyACwAAAAAEAAQ
+        AAAItgBlCBxIsKCMCAgTKlyIEILDhxAhNojwoKLFixcnBgjgwsWHFzBCwhgQIkQBjR0/hhzAsqSIERNT
+        tkgxsmQIAi9hRnCRYuaKAQgkCJWQYASJiQJUpPgZQ0GGpws0kOgwEeTPmwVGaB1BoUOFiSBGskiR1YDZ
+        rhUsTISRYiyKERPiTnBQwoKHiQNOpHg7YgOHvwzsXpgYg4AJrRQqKE7r4cLgCASycu1wwILlxhcwTGzA
+        ubPnzwEBADs=
 </value>
   </data>
   <data name="layers-stack" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
@@ -4421,13 +4430,10 @@
         WRHmNwI5+469uwsj25aTaAHwF5D4p3XcStYrAAAAAElFTkSuQmCC
 </value>
   </data>
-  <data name="document-search-result" type="System.Resources.ResXFileRef, System.Windows.Forms">
-    <value>..\Resources\document-search-result.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  <data name="document-tree" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\document-tree.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
-  <data name="document_code" type="System.Resources.ResXFileRef, System.Windows.Forms">
-    <value>..\Resources\document-code.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  <data name="theme" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\theme.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
-  <data name="TextWatermark" type="System.Resources.ResXFileRef, System.Windows.Forms">
-    <value>..\Resources\TextWatermark.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;Windows-1252</value>
-  </data>
 </root>
\ No newline at end of file

Added: trunk/Tools/Maestro/Maestro.Editors/Resources/document-tree.png
===================================================================
(Binary files differ)


Property changes on: trunk/Tools/Maestro/Maestro.Editors/Resources/document-tree.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Added: trunk/Tools/Maestro/Maestro.Editors/Resources/theme.png
===================================================================
(Binary files differ)


Property changes on: trunk/Tools/Maestro/Maestro.Editors/Resources/theme.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Modified: trunk/Tools/Maestro/Maestro.Editors/Strings.Designer.cs
===================================================================
--- trunk/Tools/Maestro/Maestro.Editors/Strings.Designer.cs	2014-03-28 08:54:10 UTC (rev 7996)
+++ trunk/Tools/Maestro/Maestro.Editors/Strings.Designer.cs	2014-03-29 14:00:46 UTC (rev 7997)
@@ -520,7 +520,7 @@
         }
         
         /// <summary>
-        ///   Looks up a localized string similar to None.
+        ///   Looks up a localized string similar to (none).
         /// </summary>
         internal static string EmptyText {
             get {
@@ -2767,6 +2767,15 @@
         }
         
         /// <summary>
+        ///   Looks up a localized string similar to Updating Style Previews.
+        /// </summary>
+        internal static string UpdatingStylePreviews {
+            get {
+                return ResourceManager.GetString("UpdatingStylePreviews", resourceCulture);
+            }
+        }
+        
+        /// <summary>
         ///   Looks up a localized string similar to An error occured while validating the output file path: {0}.
         /// </summary>
         internal static string ValidateOutputfileError {

Modified: trunk/Tools/Maestro/Maestro.Editors/Strings.resx
===================================================================
--- trunk/Tools/Maestro/Maestro.Editors/Strings.resx	2014-03-28 08:54:10 UTC (rev 7996)
+++ trunk/Tools/Maestro/Maestro.Editors/Strings.resx	2014-03-29 14:00:46 UTC (rev 7997)
@@ -623,7 +623,7 @@
     <value>Edit Watermark Instance</value>
   </data>
   <data name="EmptyText" xml:space="preserve">
-    <value>None</value>
+    <value>(none)</value>
   </data>
   <data name="ErrNotAFolder" xml:space="preserve">
     <value>Not a folder</value>
@@ -1560,4 +1560,7 @@
   <data name="DebugWatermarkMessageLayer" xml:space="preserve">
     <value>MapGuide Debugging Information\n==============================\n\nMap Extents Min: ({0}, {1})\nMap Extents Max: ({2}, {3})\nMap Coordinate System: \n{4}\nLayer Spatial Context: {5}</value>
   </data>
+  <data name="UpdatingStylePreviews" xml:space="preserve">
+    <value>Updating Style Previews</value>
+  </data>
 </root>
\ No newline at end of file



More information about the mapguide-commits mailing list