[mapguide-commits] r7870 - in trunk/Tools/Maestro: Maestro Maestro.Editors Maestro.Editors/LayerDefinition/Vector/Scales Maestro.Editors/SymbolDefinition OSGeo.MapGuide.MaestroAPI/ObjectModels

svn_mapguide at osgeo.org svn_mapguide at osgeo.org
Tue Sep 24 06:24:19 PDT 2013


Author: jng
Date: 2013-09-24 06:24:19 -0700 (Tue, 24 Sep 2013)
New Revision: 7870

Added:
   trunk/Tools/Maestro/Maestro.Editors/LayerDefinition/Vector/Scales/SymbolInstancePropertiesDialog.Designer.cs
   trunk/Tools/Maestro/Maestro.Editors/LayerDefinition/Vector/Scales/SymbolInstancePropertiesDialog.cs
   trunk/Tools/Maestro/Maestro.Editors/LayerDefinition/Vector/Scales/SymbolInstancePropertiesDialog.resx
Modified:
   trunk/Tools/Maestro/Maestro.Editors/LayerDefinition/Vector/Scales/SymbolInstancesDialog.Designer.cs
   trunk/Tools/Maestro/Maestro.Editors/LayerDefinition/Vector/Scales/SymbolInstancesDialog.cs
   trunk/Tools/Maestro/Maestro.Editors/LayerDefinition/Vector/Scales/SymbolInstancesDialog.resx
   trunk/Tools/Maestro/Maestro.Editors/Maestro.Editors.csproj
   trunk/Tools/Maestro/Maestro.Editors/SymbolDefinition/SymbolField.cs
   trunk/Tools/Maestro/Maestro/changelog.txt
   trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/VectorLayerDefinitionImpl.cs
Log:
#2353: Add missing support for editing SymbolInstance properties. Editing such proeprties is available through a new "Edit Symbol Instance" button in the Symbol Instances dialog.

Modified: trunk/Tools/Maestro/Maestro/changelog.txt
===================================================================
--- trunk/Tools/Maestro/Maestro/changelog.txt	2013-09-23 12:26:38 UTC (rev 7869)
+++ trunk/Tools/Maestro/Maestro/changelog.txt	2013-09-24 13:24:19 UTC (rev 7870)
@@ -1,6 +1,8 @@
- - Initial support for XML element auto-completion
+ - Added missing support for editing symbol instance properties
+ - Initial support for XML element auto-completion
  - Initial API support for CREATERUNTIMEMAP and DESCRIBERUNTIMEMAP operations in MapGuide 2.6
  - Resource ID "address bar" now has two buttons: One to open the resource using the designated editor and one to open using the Generic XML editor
+ - Fix: Double identity properties not supported in MaestroAPI selection
  - Fix: Missing context menu for granting/denying user/group access to a given resource in the Site Explorer
  - Fix: Strange cursor behaviour in Generic XML editor
  - Fix: New Map Definitions always being created as v2.4.0

Added: trunk/Tools/Maestro/Maestro.Editors/LayerDefinition/Vector/Scales/SymbolInstancePropertiesDialog.Designer.cs
===================================================================
--- trunk/Tools/Maestro/Maestro.Editors/LayerDefinition/Vector/Scales/SymbolInstancePropertiesDialog.Designer.cs	                        (rev 0)
+++ trunk/Tools/Maestro/Maestro.Editors/LayerDefinition/Vector/Scales/SymbolInstancePropertiesDialog.Designer.cs	2013-09-24 13:24:19 UTC (rev 7870)
@@ -0,0 +1,322 @@
+namespace Maestro.Editors.LayerDefinition.Vector.Scales
+{
+    partial class SymbolInstancePropertiesDialog
+    {
+        /// <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 Windows Form 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(SymbolInstancePropertiesDialog));
+            this.groupBox1 = new System.Windows.Forms.GroupBox();
+            this.lblInsertOffsetY = new System.Windows.Forms.Label();
+            this.symInsertOffsetY = new Maestro.Editors.SymbolDefinition.SymbolField();
+            this.lblInsertOffsetX = new System.Windows.Forms.Label();
+            this.symInsertOffsetX = new Maestro.Editors.SymbolDefinition.SymbolField();
+            this.lblScaleY = new System.Windows.Forms.Label();
+            this.symScaleY = new Maestro.Editors.SymbolDefinition.SymbolField();
+            this.lblScaleX = new System.Windows.Forms.Label();
+            this.symScaleX = new Maestro.Editors.SymbolDefinition.SymbolField();
+            this.groupBox2 = new System.Windows.Forms.GroupBox();
+            this.lblPositioningAlgorithm = new System.Windows.Forms.Label();
+            this.symPositioningAlgorithm = new Maestro.Editors.SymbolDefinition.SymbolField();
+            this.lblAddToExclusionRegion = new System.Windows.Forms.Label();
+            this.symAddToExclusionRegion = new Maestro.Editors.SymbolDefinition.SymbolField();
+            this.lblCheckExclusionRegion = new System.Windows.Forms.Label();
+            this.symCheckExclusionRegion = new Maestro.Editors.SymbolDefinition.SymbolField();
+            this.groupBox3 = new System.Windows.Forms.GroupBox();
+            this.symGeometryContext = new Maestro.Editors.SymbolDefinition.SymbolField();
+            this.lblGeometryContext = new System.Windows.Forms.Label();
+            this.symUsageContext = new Maestro.Editors.SymbolDefinition.SymbolField();
+            this.lblUsageContext = new System.Windows.Forms.Label();
+            this.symRenderingPass = new Maestro.Editors.SymbolDefinition.SymbolField();
+            this.lblDrawLast = new System.Windows.Forms.Label();
+            this.symDrawLast = new Maestro.Editors.SymbolDefinition.SymbolField();
+            this.lblSizeContext = new System.Windows.Forms.Label();
+            this.symSizeContext = new Maestro.Editors.SymbolDefinition.SymbolField();
+            this.lblRenderingPass = new System.Windows.Forms.Label();
+            this.btnClose = new System.Windows.Forms.Button();
+            this.groupBox1.SuspendLayout();
+            this.groupBox2.SuspendLayout();
+            this.groupBox3.SuspendLayout();
+            this.SuspendLayout();
+            // 
+            // groupBox1
+            // 
+            resources.ApplyResources(this.groupBox1, "groupBox1");
+            this.groupBox1.Controls.Add(this.lblInsertOffsetY);
+            this.groupBox1.Controls.Add(this.symInsertOffsetY);
+            this.groupBox1.Controls.Add(this.lblInsertOffsetX);
+            this.groupBox1.Controls.Add(this.symInsertOffsetX);
+            this.groupBox1.Controls.Add(this.lblScaleY);
+            this.groupBox1.Controls.Add(this.symScaleY);
+            this.groupBox1.Controls.Add(this.lblScaleX);
+            this.groupBox1.Controls.Add(this.symScaleX);
+            this.groupBox1.Name = "groupBox1";
+            this.groupBox1.TabStop = false;
+            // 
+            // lblInsertOffsetY
+            // 
+            resources.ApplyResources(this.lblInsertOffsetY, "lblInsertOffsetY");
+            this.lblInsertOffsetY.Name = "lblInsertOffsetY";
+            // 
+            // symInsertOffsetY
+            // 
+            resources.ApplyResources(this.symInsertOffsetY, "symInsertOffsetY");
+            this.symInsertOffsetY.Name = "symInsertOffsetY";
+            this.symInsertOffsetY.SupportedEnhancedDataTypes = null;
+            this.symInsertOffsetY.RequestBrowse += new Maestro.Editors.SymbolDefinition.SymbolField.BrowseEventHandler(this.OnRequestBrowse);
+            this.symInsertOffsetY.ContentChanged += new System.EventHandler(this.OnContentChanged);
+            // 
+            // lblInsertOffsetX
+            // 
+            resources.ApplyResources(this.lblInsertOffsetX, "lblInsertOffsetX");
+            this.lblInsertOffsetX.Name = "lblInsertOffsetX";
+            // 
+            // symInsertOffsetX
+            // 
+            resources.ApplyResources(this.symInsertOffsetX, "symInsertOffsetX");
+            this.symInsertOffsetX.Name = "symInsertOffsetX";
+            this.symInsertOffsetX.SupportedEnhancedDataTypes = null;
+            this.symInsertOffsetX.RequestBrowse += new Maestro.Editors.SymbolDefinition.SymbolField.BrowseEventHandler(this.OnRequestBrowse);
+            this.symInsertOffsetX.ContentChanged += new System.EventHandler(this.OnContentChanged);
+            // 
+            // lblScaleY
+            // 
+            resources.ApplyResources(this.lblScaleY, "lblScaleY");
+            this.lblScaleY.Name = "lblScaleY";
+            // 
+            // symScaleY
+            // 
+            resources.ApplyResources(this.symScaleY, "symScaleY");
+            this.symScaleY.Name = "symScaleY";
+            this.symScaleY.SupportedEnhancedDataTypes = null;
+            this.symScaleY.RequestBrowse += new Maestro.Editors.SymbolDefinition.SymbolField.BrowseEventHandler(this.OnRequestBrowse);
+            this.symScaleY.ContentChanged += new System.EventHandler(this.OnContentChanged);
+            // 
+            // lblScaleX
+            // 
+            resources.ApplyResources(this.lblScaleX, "lblScaleX");
+            this.lblScaleX.Name = "lblScaleX";
+            // 
+            // symScaleX
+            // 
+            resources.ApplyResources(this.symScaleX, "symScaleX");
+            this.symScaleX.Name = "symScaleX";
+            this.symScaleX.SupportedEnhancedDataTypes = null;
+            this.symScaleX.RequestBrowse += new Maestro.Editors.SymbolDefinition.SymbolField.BrowseEventHandler(this.OnRequestBrowse);
+            this.symScaleX.ContentChanged += new System.EventHandler(this.OnContentChanged);
+            // 
+            // groupBox2
+            // 
+            resources.ApplyResources(this.groupBox2, "groupBox2");
+            this.groupBox2.Controls.Add(this.lblPositioningAlgorithm);
+            this.groupBox2.Controls.Add(this.symPositioningAlgorithm);
+            this.groupBox2.Controls.Add(this.lblAddToExclusionRegion);
+            this.groupBox2.Controls.Add(this.symAddToExclusionRegion);
+            this.groupBox2.Controls.Add(this.lblCheckExclusionRegion);
+            this.groupBox2.Controls.Add(this.symCheckExclusionRegion);
+            this.groupBox2.Name = "groupBox2";
+            this.groupBox2.TabStop = false;
+            // 
+            // lblPositioningAlgorithm
+            // 
+            resources.ApplyResources(this.lblPositioningAlgorithm, "lblPositioningAlgorithm");
+            this.lblPositioningAlgorithm.Name = "lblPositioningAlgorithm";
+            // 
+            // symPositioningAlgorithm
+            // 
+            resources.ApplyResources(this.symPositioningAlgorithm, "symPositioningAlgorithm");
+            this.symPositioningAlgorithm.Name = "symPositioningAlgorithm";
+            this.symPositioningAlgorithm.SupportedEnhancedDataTypes = null;
+            this.symPositioningAlgorithm.RequestBrowse += new Maestro.Editors.SymbolDefinition.SymbolField.BrowseEventHandler(this.OnRequestBrowse);
+            this.symPositioningAlgorithm.ContentChanged += new System.EventHandler(this.OnContentChanged);
+            // 
+            // lblAddToExclusionRegion
+            // 
+            resources.ApplyResources(this.lblAddToExclusionRegion, "lblAddToExclusionRegion");
+            this.lblAddToExclusionRegion.Name = "lblAddToExclusionRegion";
+            // 
+            // symAddToExclusionRegion
+            // 
+            resources.ApplyResources(this.symAddToExclusionRegion, "symAddToExclusionRegion");
+            this.symAddToExclusionRegion.Name = "symAddToExclusionRegion";
+            this.symAddToExclusionRegion.SupportedEnhancedDataTypes = null;
+            this.symAddToExclusionRegion.RequestBrowse += new Maestro.Editors.SymbolDefinition.SymbolField.BrowseEventHandler(this.OnRequestBrowse);
+            this.symAddToExclusionRegion.ContentChanged += new System.EventHandler(this.OnContentChanged);
+            // 
+            // lblCheckExclusionRegion
+            // 
+            resources.ApplyResources(this.lblCheckExclusionRegion, "lblCheckExclusionRegion");
+            this.lblCheckExclusionRegion.Name = "lblCheckExclusionRegion";
+            // 
+            // symCheckExclusionRegion
+            // 
+            resources.ApplyResources(this.symCheckExclusionRegion, "symCheckExclusionRegion");
+            this.symCheckExclusionRegion.Name = "symCheckExclusionRegion";
+            this.symCheckExclusionRegion.SupportedEnhancedDataTypes = null;
+            this.symCheckExclusionRegion.RequestBrowse += new Maestro.Editors.SymbolDefinition.SymbolField.BrowseEventHandler(this.OnRequestBrowse);
+            this.symCheckExclusionRegion.ContentChanged += new System.EventHandler(this.OnContentChanged);
+            // 
+            // groupBox3
+            // 
+            resources.ApplyResources(this.groupBox3, "groupBox3");
+            this.groupBox3.Controls.Add(this.symGeometryContext);
+            this.groupBox3.Controls.Add(this.lblGeometryContext);
+            this.groupBox3.Controls.Add(this.symUsageContext);
+            this.groupBox3.Controls.Add(this.lblUsageContext);
+            this.groupBox3.Controls.Add(this.symRenderingPass);
+            this.groupBox3.Controls.Add(this.lblDrawLast);
+            this.groupBox3.Controls.Add(this.symDrawLast);
+            this.groupBox3.Controls.Add(this.lblSizeContext);
+            this.groupBox3.Controls.Add(this.symSizeContext);
+            this.groupBox3.Controls.Add(this.lblRenderingPass);
+            this.groupBox3.Name = "groupBox3";
+            this.groupBox3.TabStop = false;
+            // 
+            // symGeometryContext
+            // 
+            resources.ApplyResources(this.symGeometryContext, "symGeometryContext");
+            this.symGeometryContext.Name = "symGeometryContext";
+            this.symGeometryContext.SupportedEnhancedDataTypes = null;
+            this.symGeometryContext.RequestBrowse += new Maestro.Editors.SymbolDefinition.SymbolField.BrowseEventHandler(this.OnRequestBrowse);
+            this.symGeometryContext.ContentChanged += new System.EventHandler(this.OnContentChanged);
+            // 
+            // lblGeometryContext
+            // 
+            resources.ApplyResources(this.lblGeometryContext, "lblGeometryContext");
+            this.lblGeometryContext.Name = "lblGeometryContext";
+            // 
+            // symUsageContext
+            // 
+            resources.ApplyResources(this.symUsageContext, "symUsageContext");
+            this.symUsageContext.Name = "symUsageContext";
+            this.symUsageContext.SupportedEnhancedDataTypes = null;
+            this.symUsageContext.RequestBrowse += new Maestro.Editors.SymbolDefinition.SymbolField.BrowseEventHandler(this.OnRequestBrowse);
+            this.symUsageContext.ContentChanged += new System.EventHandler(this.OnContentChanged);
+            // 
+            // lblUsageContext
+            // 
+            resources.ApplyResources(this.lblUsageContext, "lblUsageContext");
+            this.lblUsageContext.Name = "lblUsageContext";
+            // 
+            // symRenderingPass
+            // 
+            resources.ApplyResources(this.symRenderingPass, "symRenderingPass");
+            this.symRenderingPass.Name = "symRenderingPass";
+            this.symRenderingPass.SupportedEnhancedDataTypes = null;
+            this.symRenderingPass.RequestBrowse += new Maestro.Editors.SymbolDefinition.SymbolField.BrowseEventHandler(this.OnRequestBrowse);
+            this.symRenderingPass.ContentChanged += new System.EventHandler(this.OnContentChanged);
+            // 
+            // lblDrawLast
+            // 
+            resources.ApplyResources(this.lblDrawLast, "lblDrawLast");
+            this.lblDrawLast.Name = "lblDrawLast";
+            // 
+            // symDrawLast
+            // 
+            resources.ApplyResources(this.symDrawLast, "symDrawLast");
+            this.symDrawLast.Name = "symDrawLast";
+            this.symDrawLast.SupportedEnhancedDataTypes = null;
+            this.symDrawLast.RequestBrowse += new Maestro.Editors.SymbolDefinition.SymbolField.BrowseEventHandler(this.OnRequestBrowse);
+            this.symDrawLast.ContentChanged += new System.EventHandler(this.OnContentChanged);
+            // 
+            // lblSizeContext
+            // 
+            resources.ApplyResources(this.lblSizeContext, "lblSizeContext");
+            this.lblSizeContext.Name = "lblSizeContext";
+            // 
+            // symSizeContext
+            // 
+            resources.ApplyResources(this.symSizeContext, "symSizeContext");
+            this.symSizeContext.Name = "symSizeContext";
+            this.symSizeContext.SupportedEnhancedDataTypes = null;
+            this.symSizeContext.RequestBrowse += new Maestro.Editors.SymbolDefinition.SymbolField.BrowseEventHandler(this.OnRequestBrowse);
+            this.symSizeContext.ContentChanged += new System.EventHandler(this.OnContentChanged);
+            // 
+            // lblRenderingPass
+            // 
+            resources.ApplyResources(this.lblRenderingPass, "lblRenderingPass");
+            this.lblRenderingPass.Name = "lblRenderingPass";
+            // 
+            // btnClose
+            // 
+            resources.ApplyResources(this.btnClose, "btnClose");
+            this.btnClose.Name = "btnClose";
+            this.btnClose.UseVisualStyleBackColor = true;
+            this.btnClose.Click += new System.EventHandler(this.btnClose_Click);
+            // 
+            // SymbolInstancePropertiesDialog
+            // 
+            resources.ApplyResources(this, "$this");
+            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+            this.ControlBox = false;
+            this.Controls.Add(this.btnClose);
+            this.Controls.Add(this.groupBox3);
+            this.Controls.Add(this.groupBox2);
+            this.Controls.Add(this.groupBox1);
+            this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
+            this.Name = "SymbolInstancePropertiesDialog";
+            this.groupBox1.ResumeLayout(false);
+            this.groupBox1.PerformLayout();
+            this.groupBox2.ResumeLayout(false);
+            this.groupBox2.PerformLayout();
+            this.groupBox3.ResumeLayout(false);
+            this.groupBox3.PerformLayout();
+            this.ResumeLayout(false);
+
+        }
+
+        #endregion
+
+        private SymbolDefinition.SymbolField symScaleX;
+        private System.Windows.Forms.GroupBox groupBox1;
+        private System.Windows.Forms.Label lblInsertOffsetY;
+        private SymbolDefinition.SymbolField symInsertOffsetY;
+        private System.Windows.Forms.Label lblInsertOffsetX;
+        private SymbolDefinition.SymbolField symInsertOffsetX;
+        private System.Windows.Forms.Label lblScaleY;
+        private SymbolDefinition.SymbolField symScaleY;
+        private System.Windows.Forms.Label lblScaleX;
+        private System.Windows.Forms.GroupBox groupBox2;
+        private System.Windows.Forms.Label lblPositioningAlgorithm;
+        private SymbolDefinition.SymbolField symPositioningAlgorithm;
+        private System.Windows.Forms.Label lblAddToExclusionRegion;
+        private SymbolDefinition.SymbolField symAddToExclusionRegion;
+        private System.Windows.Forms.Label lblCheckExclusionRegion;
+        private SymbolDefinition.SymbolField symCheckExclusionRegion;
+        private System.Windows.Forms.GroupBox groupBox3;
+        private SymbolDefinition.SymbolField symGeometryContext;
+        private System.Windows.Forms.Label lblGeometryContext;
+        private SymbolDefinition.SymbolField symUsageContext;
+        private System.Windows.Forms.Label lblUsageContext;
+        private SymbolDefinition.SymbolField symRenderingPass;
+        private System.Windows.Forms.Label lblDrawLast;
+        private SymbolDefinition.SymbolField symDrawLast;
+        private System.Windows.Forms.Label lblSizeContext;
+        private SymbolDefinition.SymbolField symSizeContext;
+        private System.Windows.Forms.Label lblRenderingPass;
+        private System.Windows.Forms.Button btnClose;
+    }
+}
\ No newline at end of file

Added: trunk/Tools/Maestro/Maestro.Editors/LayerDefinition/Vector/Scales/SymbolInstancePropertiesDialog.cs
===================================================================
--- trunk/Tools/Maestro/Maestro.Editors/LayerDefinition/Vector/Scales/SymbolInstancePropertiesDialog.cs	                        (rev 0)
+++ trunk/Tools/Maestro/Maestro.Editors/LayerDefinition/Vector/Scales/SymbolInstancePropertiesDialog.cs	2013-09-24 13:24:19 UTC (rev 7870)
@@ -0,0 +1,121 @@
+#region Disclaimer / License
+// Copyright (C) 2013, 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 Maestro.Editors.SymbolDefinition;
+using OSGeo.MapGuide.MaestroAPI.Schema;
+using OSGeo.MapGuide.ObjectModels.LayerDefinition;
+using OSGeo.MapGuide.ObjectModels.SymbolDefinition;
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Windows.Forms;
+
+namespace Maestro.Editors.LayerDefinition.Vector.Scales
+{
+    public partial class SymbolInstancePropertiesDialog : Form
+    {
+        private SymbolInstancePropertiesDialog()
+        {
+            InitializeComponent();
+        }
+
+        private IEditorService _edSvc;
+        private ClassDefinition _cls;
+        private string _featureSourceId;
+        private string _providerName;
+
+        public SymbolInstancePropertiesDialog(ISymbolInstance inst, IEditorService edSvc, ClassDefinition cls, string featureSourceId, string providerName)
+            : this()
+        {
+            _edSvc = edSvc;
+            _cls = cls;
+            _featureSourceId = featureSourceId;
+            _providerName = providerName;
+
+            symAddToExclusionRegion.SetBooleanMode();
+            symAddToExclusionRegion.Bind(inst, "AddToExclusionRegion");
+
+            symCheckExclusionRegion.SetBooleanMode();
+            symCheckExclusionRegion.Bind(inst, "CheckExclusionRegion");
+
+            symDrawLast.SetBooleanMode();
+            symDrawLast.Bind(inst, "DrawLast");
+
+            symSizeContext.SetEnumMode<SizeContextType>();
+            symSizeContext.Bind(inst, "SizeContext");
+
+            symInsertOffsetX.Bind(inst, "InsertionOffsetX");
+            symInsertOffsetY.Bind(inst, "InsertionOffsetY");
+
+            symPositioningAlgorithm.Items = new string[]
+            {
+                "'Default'",
+                "'EightSurrounding'",
+                "'PathLabels'"
+            };
+            symPositioningAlgorithm.Bind(inst, "PositioningAlgorithm");
+
+            symScaleX.Bind(inst, "ScaleX");
+            symScaleY.Bind(inst, "ScaleY");
+
+            var inst2 = inst as ISymbolInstance2;
+            if (inst2 != null)
+            {
+                symGeometryContext.SetEnumMode<GeometryContextType>();
+                symUsageContext.SetEnumMode<UsageContextType>();
+
+                symRenderingPass.Bind(inst2, "RenderingPass");
+                symGeometryContext.Bind(inst2, "GeometryContext");
+                symUsageContext.Bind(inst2, "UsageContext");
+            }
+            else
+            {
+                symRenderingPass.Visible =
+                symGeometryContext.Visible =
+                symUsageContext.Visible =
+                lblRenderingPass.Visible =
+                lblGeometryContext.Visible =
+                lblUsageContext.Visible = false;
+            }
+        }
+
+        private void btnClose_Click(object sender, EventArgs e)
+        {
+            this.DialogResult = System.Windows.Forms.DialogResult.OK;
+        }
+
+        private void OnRequestBrowse(SymbolDefinition.SymbolField sender)
+        {
+            string expr = _edSvc.EditExpression(sender.Content, _cls, _providerName, _featureSourceId, true);
+            if (expr != null)
+                sender.Content = expr;
+        }
+
+        private void OnContentChanged(object sender, EventArgs e)
+        {
+            this.HasChanged = true;
+        }
+
+        public bool HasChanged { get; private set; }
+    }
+}

Added: trunk/Tools/Maestro/Maestro.Editors/LayerDefinition/Vector/Scales/SymbolInstancePropertiesDialog.resx
===================================================================
--- trunk/Tools/Maestro/Maestro.Editors/LayerDefinition/Vector/Scales/SymbolInstancePropertiesDialog.resx	                        (rev 0)
+++ trunk/Tools/Maestro/Maestro.Editors/LayerDefinition/Vector/Scales/SymbolInstancePropertiesDialog.resx	2013-09-24 13:24:19 UTC (rev 7870)
@@ -0,0 +1,864 @@
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
+  <data name="groupBox1.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
+    <value>Top, Left, Right</value>
+  </data>
+  <assembly alias="mscorlib" name="mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
+  <data name="lblInsertOffsetY.AutoSize" type="System.Boolean, mscorlib">
+    <value>True</value>
+  </data>
+  <data name="lblInsertOffsetY.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
+    <value>NoControl</value>
+  </data>
+  <assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
+  <data name="lblInsertOffsetY.Location" type="System.Drawing.Point, System.Drawing">
+    <value>229, 59</value>
+  </data>
+  <data name="lblInsertOffsetY.Size" type="System.Drawing.Size, System.Drawing">
+    <value>88, 13</value>
+  </data>
+  <data name="lblInsertOffsetY.TabIndex" type="System.Int32, mscorlib">
+    <value>7</value>
+  </data>
+  <data name="lblInsertOffsetY.Text" xml:space="preserve">
+    <value>Insertion Offset Y</value>
+  </data>
+  <data name=">>lblInsertOffsetY.Name" xml:space="preserve">
+    <value>lblInsertOffsetY</value>
+  </data>
+  <data name=">>lblInsertOffsetY.Type" xml:space="preserve">
+    <value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </data>
+  <data name=">>lblInsertOffsetY.Parent" xml:space="preserve">
+    <value>groupBox1</value>
+  </data>
+  <data name=">>lblInsertOffsetY.ZOrder" xml:space="preserve">
+    <value>0</value>
+  </data>
+  <data name="symInsertOffsetY.Location" type="System.Drawing.Point, System.Drawing">
+    <value>326, 56</value>
+  </data>
+  <data name="symInsertOffsetY.Size" type="System.Drawing.Size, System.Drawing">
+    <value>115, 21</value>
+  </data>
+  <data name="symInsertOffsetY.TabIndex" type="System.Int32, mscorlib">
+    <value>6</value>
+  </data>
+  <data name=">>symInsertOffsetY.Name" xml:space="preserve">
+    <value>symInsertOffsetY</value>
+  </data>
+  <data name=">>symInsertOffsetY.Type" xml:space="preserve">
+    <value>Maestro.Editors.SymbolDefinition.SymbolField, Maestro.Editors, Version=5.0.0.6640, Culture=neutral, PublicKeyToken=f526c48929fda856</value>
+  </data>
+  <data name=">>symInsertOffsetY.Parent" xml:space="preserve">
+    <value>groupBox1</value>
+  </data>
+  <data name=">>symInsertOffsetY.ZOrder" xml:space="preserve">
+    <value>1</value>
+  </data>
+  <data name="lblInsertOffsetX.AutoSize" type="System.Boolean, mscorlib">
+    <value>True</value>
+  </data>
+  <data name="lblInsertOffsetX.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
+    <value>NoControl</value>
+  </data>
+  <data name="lblInsertOffsetX.Location" type="System.Drawing.Point, System.Drawing">
+    <value>229, 32</value>
+  </data>
+  <data name="lblInsertOffsetX.Size" type="System.Drawing.Size, System.Drawing">
+    <value>88, 13</value>
+  </data>
+  <data name="lblInsertOffsetX.TabIndex" type="System.Int32, mscorlib">
+    <value>5</value>
+  </data>
+  <data name="lblInsertOffsetX.Text" xml:space="preserve">
+    <value>Insertion Offset X</value>
+  </data>
+  <data name=">>lblInsertOffsetX.Name" xml:space="preserve">
+    <value>lblInsertOffsetX</value>
+  </data>
+  <data name=">>lblInsertOffsetX.Type" xml:space="preserve">
+    <value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </data>
+  <data name=">>lblInsertOffsetX.Parent" xml:space="preserve">
+    <value>groupBox1</value>
+  </data>
+  <data name=">>lblInsertOffsetX.ZOrder" xml:space="preserve">
+    <value>2</value>
+  </data>
+  <data name="symInsertOffsetX.Location" type="System.Drawing.Point, System.Drawing">
+    <value>326, 29</value>
+  </data>
+  <data name="symInsertOffsetX.Size" type="System.Drawing.Size, System.Drawing">
+    <value>115, 21</value>
+  </data>
+  <data name="symInsertOffsetX.TabIndex" type="System.Int32, mscorlib">
+    <value>4</value>
+  </data>
+  <data name=">>symInsertOffsetX.Name" xml:space="preserve">
+    <value>symInsertOffsetX</value>
+  </data>
+  <data name=">>symInsertOffsetX.Type" xml:space="preserve">
+    <value>Maestro.Editors.SymbolDefinition.SymbolField, Maestro.Editors, Version=5.0.0.6640, Culture=neutral, PublicKeyToken=f526c48929fda856</value>
+  </data>
+  <data name=">>symInsertOffsetX.Parent" xml:space="preserve">
+    <value>groupBox1</value>
+  </data>
+  <data name=">>symInsertOffsetX.ZOrder" xml:space="preserve">
+    <value>3</value>
+  </data>
+  <data name="lblScaleY.AutoSize" type="System.Boolean, mscorlib">
+    <value>True</value>
+  </data>
+  <data name="lblScaleY.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
+    <value>NoControl</value>
+  </data>
+  <data name="lblScaleY.Location" type="System.Drawing.Point, System.Drawing">
+    <value>15, 59</value>
+  </data>
+  <data name="lblScaleY.Size" type="System.Drawing.Size, System.Drawing">
+    <value>44, 13</value>
+  </data>
+  <data name="lblScaleY.TabIndex" type="System.Int32, mscorlib">
+    <value>3</value>
+  </data>
+  <data name="lblScaleY.Text" xml:space="preserve">
+    <value>Scale Y</value>
+  </data>
+  <data name=">>lblScaleY.Name" xml:space="preserve">
+    <value>lblScaleY</value>
+  </data>
+  <data name=">>lblScaleY.Type" xml:space="preserve">
+    <value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </data>
+  <data name=">>lblScaleY.Parent" xml:space="preserve">
+    <value>groupBox1</value>
+  </data>
+  <data name=">>lblScaleY.ZOrder" xml:space="preserve">
+    <value>4</value>
+  </data>
+  <data name="symScaleY.Location" type="System.Drawing.Point, System.Drawing">
+    <value>103, 56</value>
+  </data>
+  <data name="symScaleY.Size" type="System.Drawing.Size, System.Drawing">
+    <value>115, 21</value>
+  </data>
+  <data name="symScaleY.TabIndex" type="System.Int32, mscorlib">
+    <value>2</value>
+  </data>
+  <data name=">>symScaleY.Name" xml:space="preserve">
+    <value>symScaleY</value>
+  </data>
+  <data name=">>symScaleY.Type" xml:space="preserve">
+    <value>Maestro.Editors.SymbolDefinition.SymbolField, Maestro.Editors, Version=5.0.0.6640, Culture=neutral, PublicKeyToken=f526c48929fda856</value>
+  </data>
+  <data name=">>symScaleY.Parent" xml:space="preserve">
+    <value>groupBox1</value>
+  </data>
+  <data name=">>symScaleY.ZOrder" xml:space="preserve">
+    <value>5</value>
+  </data>
+  <data name="lblScaleX.AutoSize" type="System.Boolean, mscorlib">
+    <value>True</value>
+  </data>
+  <data name="lblScaleX.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
+    <value>NoControl</value>
+  </data>
+  <data name="lblScaleX.Location" type="System.Drawing.Point, System.Drawing">
+    <value>15, 32</value>
+  </data>
+  <data name="lblScaleX.Size" type="System.Drawing.Size, System.Drawing">
+    <value>44, 13</value>
+  </data>
+  <data name="lblScaleX.TabIndex" type="System.Int32, mscorlib">
+    <value>1</value>
+  </data>
+  <data name="lblScaleX.Text" xml:space="preserve">
+    <value>Scale X</value>
+  </data>
+  <data name=">>lblScaleX.Name" xml:space="preserve">
+    <value>lblScaleX</value>
+  </data>
+  <data name=">>lblScaleX.Type" xml:space="preserve">
+    <value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </data>
+  <data name=">>lblScaleX.Parent" xml:space="preserve">
+    <value>groupBox1</value>
+  </data>
+  <data name=">>lblScaleX.ZOrder" xml:space="preserve">
+    <value>6</value>
+  </data>
+  <data name="symScaleX.Location" type="System.Drawing.Point, System.Drawing">
+    <value>103, 29</value>
+  </data>
+  <data name="symScaleX.Size" type="System.Drawing.Size, System.Drawing">
+    <value>115, 21</value>
+  </data>
+  <data name="symScaleX.TabIndex" type="System.Int32, mscorlib">
+    <value>0</value>
+  </data>
+  <data name=">>symScaleX.Name" xml:space="preserve">
+    <value>symScaleX</value>
+  </data>
+  <data name=">>symScaleX.Type" xml:space="preserve">
+    <value>Maestro.Editors.SymbolDefinition.SymbolField, Maestro.Editors, Version=5.0.0.6640, Culture=neutral, PublicKeyToken=f526c48929fda856</value>
+  </data>
+  <data name=">>symScaleX.Parent" xml:space="preserve">
+    <value>groupBox1</value>
+  </data>
+  <data name=">>symScaleX.ZOrder" xml:space="preserve">
+    <value>7</value>
+  </data>
+  <data name="groupBox1.Location" type="System.Drawing.Point, System.Drawing">
+    <value>13, 13</value>
+  </data>
+  <data name="groupBox1.Size" type="System.Drawing.Size, System.Drawing">
+    <value>468, 96</value>
+  </data>
+  <data name="groupBox1.TabIndex" type="System.Int32, mscorlib">
+    <value>1</value>
+  </data>
+  <data name="groupBox1.Text" xml:space="preserve">
+    <value>Scaling/Insertion</value>
+  </data>
+  <data name=">>groupBox1.Name" xml:space="preserve">
+    <value>groupBox1</value>
+  </data>
+  <data name=">>groupBox1.Type" xml:space="preserve">
+    <value>System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </data>
+  <data name=">>groupBox1.Parent" xml:space="preserve">
+    <value>$this</value>
+  </data>
+  <data name=">>groupBox1.ZOrder" xml:space="preserve">
+    <value>3</value>
+  </data>
+  <data name="groupBox2.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
+    <value>Top, Left, Right</value>
+  </data>
+  <data name="lblPositioningAlgorithm.AutoSize" type="System.Boolean, mscorlib">
+    <value>True</value>
+  </data>
+  <data name="lblPositioningAlgorithm.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
+    <value>NoControl</value>
+  </data>
+  <data name="lblPositioningAlgorithm.Location" type="System.Drawing.Point, System.Drawing">
+    <value>15, 79</value>
+  </data>
+  <data name="lblPositioningAlgorithm.Size" type="System.Drawing.Size, System.Drawing">
+    <value>104, 13</value>
+  </data>
+  <data name="lblPositioningAlgorithm.TabIndex" type="System.Int32, mscorlib">
+    <value>7</value>
+  </data>
+  <data name="lblPositioningAlgorithm.Text" xml:space="preserve">
+    <value>Positioning Algorithm</value>
+  </data>
+  <data name=">>lblPositioningAlgorithm.Name" xml:space="preserve">
+    <value>lblPositioningAlgorithm</value>
+  </data>
+  <data name=">>lblPositioningAlgorithm.Type" xml:space="preserve">
+    <value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </data>
+  <data name=">>lblPositioningAlgorithm.Parent" xml:space="preserve">
+    <value>groupBox2</value>
+  </data>
+  <data name=">>lblPositioningAlgorithm.ZOrder" xml:space="preserve">
+    <value>0</value>
+  </data>
+  <data name="symPositioningAlgorithm.Location" type="System.Drawing.Point, System.Drawing">
+    <value>155, 76</value>
+  </data>
+  <data name="symPositioningAlgorithm.Size" type="System.Drawing.Size, System.Drawing">
+    <value>115, 21</value>
+  </data>
+  <data name="symPositioningAlgorithm.TabIndex" type="System.Int32, mscorlib">
+    <value>6</value>
+  </data>
+  <data name=">>symPositioningAlgorithm.Name" xml:space="preserve">
+    <value>symPositioningAlgorithm</value>
+  </data>
+  <data name=">>symPositioningAlgorithm.Type" xml:space="preserve">
+    <value>Maestro.Editors.SymbolDefinition.SymbolField, Maestro.Editors, Version=5.0.0.6640, Culture=neutral, PublicKeyToken=f526c48929fda856</value>
+  </data>
+  <data name=">>symPositioningAlgorithm.Parent" xml:space="preserve">
+    <value>groupBox2</value>
+  </data>
+  <data name=">>symPositioningAlgorithm.ZOrder" xml:space="preserve">
+    <value>1</value>
+  </data>
+  <data name="lblAddToExclusionRegion.AutoSize" type="System.Boolean, mscorlib">
+    <value>True</value>
+  </data>
+  <data name="lblAddToExclusionRegion.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
+    <value>NoControl</value>
+  </data>
+  <data name="lblAddToExclusionRegion.Location" type="System.Drawing.Point, System.Drawing">
+    <value>15, 52</value>
+  </data>
+  <data name="lblAddToExclusionRegion.Size" type="System.Drawing.Size, System.Drawing">
+    <value>123, 13</value>
+  </data>
+  <data name="lblAddToExclusionRegion.TabIndex" type="System.Int32, mscorlib">
+    <value>5</value>
+  </data>
+  <data name="lblAddToExclusionRegion.Text" xml:space="preserve">
+    <value>Add to Exclusion Region</value>
+  </data>
+  <data name=">>lblAddToExclusionRegion.Name" xml:space="preserve">
+    <value>lblAddToExclusionRegion</value>
+  </data>
+  <data name=">>lblAddToExclusionRegion.Type" xml:space="preserve">
+    <value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </data>
+  <data name=">>lblAddToExclusionRegion.Parent" xml:space="preserve">
+    <value>groupBox2</value>
+  </data>
+  <data name=">>lblAddToExclusionRegion.ZOrder" xml:space="preserve">
+    <value>2</value>
+  </data>
+  <data name="symAddToExclusionRegion.Location" type="System.Drawing.Point, System.Drawing">
+    <value>155, 49</value>
+  </data>
+  <data name="symAddToExclusionRegion.Size" type="System.Drawing.Size, System.Drawing">
+    <value>115, 21</value>
+  </data>
+  <data name="symAddToExclusionRegion.TabIndex" type="System.Int32, mscorlib">
+    <value>4</value>
+  </data>
+  <data name=">>symAddToExclusionRegion.Name" xml:space="preserve">
+    <value>symAddToExclusionRegion</value>
+  </data>
+  <data name=">>symAddToExclusionRegion.Type" xml:space="preserve">
+    <value>Maestro.Editors.SymbolDefinition.SymbolField, Maestro.Editors, Version=5.0.0.6640, Culture=neutral, PublicKeyToken=f526c48929fda856</value>
+  </data>
+  <data name=">>symAddToExclusionRegion.Parent" xml:space="preserve">
+    <value>groupBox2</value>
+  </data>
+  <data name=">>symAddToExclusionRegion.ZOrder" xml:space="preserve">
+    <value>3</value>
+  </data>
+  <data name="lblCheckExclusionRegion.AutoSize" type="System.Boolean, mscorlib">
+    <value>True</value>
+  </data>
+  <data name="lblCheckExclusionRegion.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
+    <value>NoControl</value>
+  </data>
+  <data name="lblCheckExclusionRegion.Location" type="System.Drawing.Point, System.Drawing">
+    <value>15, 25</value>
+  </data>
+  <data name="lblCheckExclusionRegion.Size" type="System.Drawing.Size, System.Drawing">
+    <value>123, 13</value>
+  </data>
+  <data name="lblCheckExclusionRegion.TabIndex" type="System.Int32, mscorlib">
+    <value>3</value>
+  </data>
+  <data name="lblCheckExclusionRegion.Text" xml:space="preserve">
+    <value>Check Exclusion Region</value>
+  </data>
+  <data name=">>lblCheckExclusionRegion.Name" xml:space="preserve">
+    <value>lblCheckExclusionRegion</value>
+  </data>
+  <data name=">>lblCheckExclusionRegion.Type" xml:space="preserve">
+    <value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </data>
+  <data name=">>lblCheckExclusionRegion.Parent" xml:space="preserve">
+    <value>groupBox2</value>
+  </data>
+  <data name=">>lblCheckExclusionRegion.ZOrder" xml:space="preserve">
+    <value>4</value>
+  </data>
+  <data name="symCheckExclusionRegion.Location" type="System.Drawing.Point, System.Drawing">
+    <value>155, 22</value>
+  </data>
+  <data name="symCheckExclusionRegion.Size" type="System.Drawing.Size, System.Drawing">
+    <value>115, 21</value>
+  </data>
+  <data name="symCheckExclusionRegion.TabIndex" type="System.Int32, mscorlib">
+    <value>2</value>
+  </data>
+  <data name=">>symCheckExclusionRegion.Name" xml:space="preserve">
+    <value>symCheckExclusionRegion</value>
+  </data>
+  <data name=">>symCheckExclusionRegion.Type" xml:space="preserve">
+    <value>Maestro.Editors.SymbolDefinition.SymbolField, Maestro.Editors, Version=5.0.0.6640, Culture=neutral, PublicKeyToken=f526c48929fda856</value>
+  </data>
+  <data name=">>symCheckExclusionRegion.Parent" xml:space="preserve">
+    <value>groupBox2</value>
+  </data>
+  <data name=">>symCheckExclusionRegion.ZOrder" xml:space="preserve">
+    <value>5</value>
+  </data>
+  <data name="groupBox2.Location" type="System.Drawing.Point, System.Drawing">
+    <value>13, 116</value>
+  </data>
+  <data name="groupBox2.Size" type="System.Drawing.Size, System.Drawing">
+    <value>468, 112</value>
+  </data>
+  <data name="groupBox2.TabIndex" type="System.Int32, mscorlib">
+    <value>2</value>
+  </data>
+  <data name="groupBox2.Text" xml:space="preserve">
+    <value>Label Placement</value>
+  </data>
+  <data name=">>groupBox2.Name" xml:space="preserve">
+    <value>groupBox2</value>
+  </data>
+  <data name=">>groupBox2.Type" xml:space="preserve">
+    <value>System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </data>
+  <data name=">>groupBox2.Parent" xml:space="preserve">
+    <value>$this</value>
+  </data>
+  <data name=">>groupBox2.ZOrder" xml:space="preserve">
+    <value>2</value>
+  </data>
+  <data name="groupBox3.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
+    <value>Top, Left, Right</value>
+  </data>
+  <data name="symGeometryContext.Location" type="System.Drawing.Point, System.Drawing">
+    <value>326, 73</value>
+  </data>
+  <data name="symGeometryContext.Size" type="System.Drawing.Size, System.Drawing">
+    <value>115, 21</value>
+  </data>
+  <data name="symGeometryContext.TabIndex" type="System.Int32, mscorlib">
+    <value>18</value>
+  </data>
+  <data name=">>symGeometryContext.Name" xml:space="preserve">
+    <value>symGeometryContext</value>
+  </data>
+  <data name=">>symGeometryContext.Type" xml:space="preserve">
+    <value>Maestro.Editors.SymbolDefinition.SymbolField, Maestro.Editors, Version=5.0.0.6640, Culture=neutral, PublicKeyToken=f526c48929fda856</value>
+  </data>
+  <data name=">>symGeometryContext.Parent" xml:space="preserve">
+    <value>groupBox3</value>
+  </data>
+  <data name=">>symGeometryContext.ZOrder" xml:space="preserve">
+    <value>0</value>
+  </data>
+  <data name="lblGeometryContext.AutoSize" type="System.Boolean, mscorlib">
+    <value>True</value>
+  </data>
+  <data name="lblGeometryContext.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
+    <value>NoControl</value>
+  </data>
+  <data name="lblGeometryContext.Location" type="System.Drawing.Point, System.Drawing">
+    <value>229, 76</value>
+  </data>
+  <data name="lblGeometryContext.Size" type="System.Drawing.Size, System.Drawing">
+    <value>91, 13</value>
+  </data>
+  <data name="lblGeometryContext.TabIndex" type="System.Int32, mscorlib">
+    <value>17</value>
+  </data>
+  <data name="lblGeometryContext.Text" xml:space="preserve">
+    <value>Geometry Context</value>
+  </data>
+  <data name=">>lblGeometryContext.Name" xml:space="preserve">
+    <value>lblGeometryContext</value>
+  </data>
+  <data name=">>lblGeometryContext.Type" xml:space="preserve">
+    <value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </data>
+  <data name=">>lblGeometryContext.Parent" xml:space="preserve">
+    <value>groupBox3</value>
+  </data>
+  <data name=">>lblGeometryContext.ZOrder" xml:space="preserve">
+    <value>1</value>
+  </data>
+  <data name="symUsageContext.Location" type="System.Drawing.Point, System.Drawing">
+    <value>103, 73</value>
+  </data>
+  <data name="symUsageContext.Size" type="System.Drawing.Size, System.Drawing">
+    <value>115, 21</value>
+  </data>
+  <data name="symUsageContext.TabIndex" type="System.Int32, mscorlib">
+    <value>16</value>
+  </data>
+  <data name=">>symUsageContext.Name" xml:space="preserve">
+    <value>symUsageContext</value>
+  </data>
+  <data name=">>symUsageContext.Type" xml:space="preserve">
+    <value>Maestro.Editors.SymbolDefinition.SymbolField, Maestro.Editors, Version=5.0.0.6640, Culture=neutral, PublicKeyToken=f526c48929fda856</value>
+  </data>
+  <data name=">>symUsageContext.Parent" xml:space="preserve">
+    <value>groupBox3</value>
+  </data>
+  <data name=">>symUsageContext.ZOrder" xml:space="preserve">
+    <value>2</value>
+  </data>
+  <data name="lblUsageContext.AutoSize" type="System.Boolean, mscorlib">
+    <value>True</value>
+  </data>
+  <data name="lblUsageContext.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
+    <value>NoControl</value>
+  </data>
+  <data name="lblUsageContext.Location" type="System.Drawing.Point, System.Drawing">
+    <value>15, 76</value>
+  </data>
+  <data name="lblUsageContext.Size" type="System.Drawing.Size, System.Drawing">
+    <value>77, 13</value>
+  </data>
+  <data name="lblUsageContext.TabIndex" type="System.Int32, mscorlib">
+    <value>15</value>
+  </data>
+  <data name="lblUsageContext.Text" xml:space="preserve">
+    <value>Usage Context</value>
+  </data>
+  <data name=">>lblUsageContext.Name" xml:space="preserve">
+    <value>lblUsageContext</value>
+  </data>
+  <data name=">>lblUsageContext.Type" xml:space="preserve">
+    <value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </data>
+  <data name=">>lblUsageContext.Parent" xml:space="preserve">
+    <value>groupBox3</value>
+  </data>
+  <data name=">>lblUsageContext.ZOrder" xml:space="preserve">
+    <value>3</value>
+  </data>
+  <data name="symRenderingPass.Location" type="System.Drawing.Point, System.Drawing">
+    <value>103, 46</value>
+  </data>
+  <data name="symRenderingPass.Size" type="System.Drawing.Size, System.Drawing">
+    <value>115, 21</value>
+  </data>
+  <data name="symRenderingPass.TabIndex" type="System.Int32, mscorlib">
+    <value>14</value>
+  </data>
+  <data name=">>symRenderingPass.Name" xml:space="preserve">
+    <value>symRenderingPass</value>
+  </data>
+  <data name=">>symRenderingPass.Type" xml:space="preserve">
+    <value>Maestro.Editors.SymbolDefinition.SymbolField, Maestro.Editors, Version=5.0.0.6640, Culture=neutral, PublicKeyToken=f526c48929fda856</value>
+  </data>
+  <data name=">>symRenderingPass.Parent" xml:space="preserve">
+    <value>groupBox3</value>
+  </data>
+  <data name=">>symRenderingPass.ZOrder" xml:space="preserve">
+    <value>4</value>
+  </data>
+  <data name="lblDrawLast.AutoSize" type="System.Boolean, mscorlib">
+    <value>True</value>
+  </data>
+  <data name="lblDrawLast.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
+    <value>NoControl</value>
+  </data>
+  <data name="lblDrawLast.Location" type="System.Drawing.Point, System.Drawing">
+    <value>229, 22</value>
+  </data>
+  <data name="lblDrawLast.Size" type="System.Drawing.Size, System.Drawing">
+    <value>55, 13</value>
+  </data>
+  <data name="lblDrawLast.TabIndex" type="System.Int32, mscorlib">
+    <value>13</value>
+  </data>
+  <data name="lblDrawLast.Text" xml:space="preserve">
+    <value>Draw Last</value>
+  </data>
+  <data name=">>lblDrawLast.Name" xml:space="preserve">
+    <value>lblDrawLast</value>
+  </data>
+  <data name=">>lblDrawLast.Type" xml:space="preserve">
+    <value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </data>
+  <data name=">>lblDrawLast.Parent" xml:space="preserve">
+    <value>groupBox3</value>
+  </data>
+  <data name=">>lblDrawLast.ZOrder" xml:space="preserve">
+    <value>5</value>
+  </data>
+  <data name="symDrawLast.Location" type="System.Drawing.Point, System.Drawing">
+    <value>326, 19</value>
+  </data>
+  <data name="symDrawLast.Size" type="System.Drawing.Size, System.Drawing">
+    <value>115, 21</value>
+  </data>
+  <data name="symDrawLast.TabIndex" type="System.Int32, mscorlib">
+    <value>12</value>
+  </data>
+  <data name=">>symDrawLast.Name" xml:space="preserve">
+    <value>symDrawLast</value>
+  </data>
+  <data name=">>symDrawLast.Type" xml:space="preserve">
+    <value>Maestro.Editors.SymbolDefinition.SymbolField, Maestro.Editors, Version=5.0.0.6640, Culture=neutral, PublicKeyToken=f526c48929fda856</value>
+  </data>
+  <data name=">>symDrawLast.Parent" xml:space="preserve">
+    <value>groupBox3</value>
+  </data>
+  <data name=">>symDrawLast.ZOrder" xml:space="preserve">
+    <value>6</value>
+  </data>
+  <data name="lblSizeContext.AutoSize" type="System.Boolean, mscorlib">
+    <value>True</value>
+  </data>
+  <data name="lblSizeContext.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
+    <value>NoControl</value>
+  </data>
+  <data name="lblSizeContext.Location" type="System.Drawing.Point, System.Drawing">
+    <value>15, 22</value>
+  </data>
+  <data name="lblSizeContext.Size" type="System.Drawing.Size, System.Drawing">
+    <value>66, 13</value>
+  </data>
+  <data name="lblSizeContext.TabIndex" type="System.Int32, mscorlib">
+    <value>11</value>
+  </data>
+  <data name="lblSizeContext.Text" xml:space="preserve">
+    <value>Size Context</value>
+  </data>
+  <data name=">>lblSizeContext.Name" xml:space="preserve">
+    <value>lblSizeContext</value>
+  </data>
+  <data name=">>lblSizeContext.Type" xml:space="preserve">
+    <value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </data>
+  <data name=">>lblSizeContext.Parent" xml:space="preserve">
+    <value>groupBox3</value>
+  </data>
+  <data name=">>lblSizeContext.ZOrder" xml:space="preserve">
+    <value>7</value>
+  </data>
+  <data name="symSizeContext.Location" type="System.Drawing.Point, System.Drawing">
+    <value>103, 19</value>
+  </data>
+  <data name="symSizeContext.Size" type="System.Drawing.Size, System.Drawing">
+    <value>115, 21</value>
+  </data>
+  <data name="symSizeContext.TabIndex" type="System.Int32, mscorlib">
+    <value>10</value>
+  </data>
+  <data name=">>symSizeContext.Name" xml:space="preserve">
+    <value>symSizeContext</value>
+  </data>
+  <data name=">>symSizeContext.Type" xml:space="preserve">
+    <value>Maestro.Editors.SymbolDefinition.SymbolField, Maestro.Editors, Version=5.0.0.6640, Culture=neutral, PublicKeyToken=f526c48929fda856</value>
+  </data>
+  <data name=">>symSizeContext.Parent" xml:space="preserve">
+    <value>groupBox3</value>
+  </data>
+  <data name=">>symSizeContext.ZOrder" xml:space="preserve">
+    <value>8</value>
+  </data>
+  <data name="lblRenderingPass.AutoSize" type="System.Boolean, mscorlib">
+    <value>True</value>
+  </data>
+  <data name="lblRenderingPass.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
+    <value>NoControl</value>
+  </data>
+  <data name="lblRenderingPass.Location" type="System.Drawing.Point, System.Drawing">
+    <value>15, 49</value>
+  </data>
+  <data name="lblRenderingPass.Size" type="System.Drawing.Size, System.Drawing">
+    <value>82, 13</value>
+  </data>
+  <data name="lblRenderingPass.TabIndex" type="System.Int32, mscorlib">
+    <value>9</value>
+  </data>
+  <data name="lblRenderingPass.Text" xml:space="preserve">
+    <value>Rendering Pass</value>
+  </data>
+  <data name=">>lblRenderingPass.Name" xml:space="preserve">
+    <value>lblRenderingPass</value>
+  </data>
+  <data name=">>lblRenderingPass.Type" xml:space="preserve">
+    <value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </data>
+  <data name=">>lblRenderingPass.Parent" xml:space="preserve">
+    <value>groupBox3</value>
+  </data>
+  <data name=">>lblRenderingPass.ZOrder" xml:space="preserve">
+    <value>9</value>
+  </data>
+  <data name="groupBox3.Location" type="System.Drawing.Point, System.Drawing">
+    <value>13, 235</value>
+  </data>
+  <data name="groupBox3.Size" type="System.Drawing.Size, System.Drawing">
+    <value>468, 100</value>
+  </data>
+  <data name="groupBox3.TabIndex" type="System.Int32, mscorlib">
+    <value>3</value>
+  </data>
+  <data name="groupBox3.Text" xml:space="preserve">
+    <value>Miscellaneous</value>
+  </data>
+  <data name=">>groupBox3.Name" xml:space="preserve">
+    <value>groupBox3</value>
+  </data>
+  <data name=">>groupBox3.Type" xml:space="preserve">
+    <value>System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </data>
+  <data name=">>groupBox3.Parent" xml:space="preserve">
+    <value>$this</value>
+  </data>
+  <data name=">>groupBox3.ZOrder" xml:space="preserve">
+    <value>1</value>
+  </data>
+  <data name="btnClose.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
+    <value>NoControl</value>
+  </data>
+  <data name="btnClose.Location" type="System.Drawing.Point, System.Drawing">
+    <value>406, 346</value>
+  </data>
+  <data name="btnClose.Size" type="System.Drawing.Size, System.Drawing">
+    <value>75, 23</value>
+  </data>
+  <data name="btnClose.TabIndex" type="System.Int32, mscorlib">
+    <value>5</value>
+  </data>
+  <data name="btnClose.Text" xml:space="preserve">
+    <value>Close</value>
+  </data>
+  <data name=">>btnClose.Name" xml:space="preserve">
+    <value>btnClose</value>
+  </data>
+  <data name=">>btnClose.Type" xml:space="preserve">
+    <value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </data>
+  <data name=">>btnClose.Parent" xml:space="preserve">
+    <value>$this</value>
+  </data>
+  <data name=">>btnClose.ZOrder" xml:space="preserve">
+    <value>0</value>
+  </data>
+  <metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+    <value>True</value>
+  </metadata>
+  <data name="$this.AutoScaleDimensions" type="System.Drawing.SizeF, System.Drawing">
+    <value>6, 13</value>
+  </data>
+  <data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing">
+    <value>493, 381</value>
+  </data>
+  <data name="$this.StartPosition" type="System.Windows.Forms.FormStartPosition, System.Windows.Forms">
+    <value>CenterParent</value>
+  </data>
+  <data name="$this.Text" xml:space="preserve">
+    <value>Symbol Instance Properties</value>
+  </data>
+  <data name=">>$this.Name" xml:space="preserve">
+    <value>SymbolInstancePropertiesDialog</value>
+  </data>
+  <data name=">>$this.Type" xml:space="preserve">
+    <value>System.Windows.Forms.Form, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </data>
+</root>
\ No newline at end of file

Modified: trunk/Tools/Maestro/Maestro.Editors/LayerDefinition/Vector/Scales/SymbolInstancesDialog.Designer.cs
===================================================================
--- trunk/Tools/Maestro/Maestro.Editors/LayerDefinition/Vector/Scales/SymbolInstancesDialog.Designer.cs	2013-09-23 12:26:38 UTC (rev 7869)
+++ trunk/Tools/Maestro/Maestro.Editors/LayerDefinition/Vector/Scales/SymbolInstancesDialog.Designer.cs	2013-09-24 13:24:19 UTC (rev 7870)
@@ -44,6 +44,8 @@
             this.groupBox2 = new System.Windows.Forms.GroupBox();
             this.symPreview = new System.Windows.Forms.PictureBox();
             this.btnRefresh = new System.Windows.Forms.Button();
+            this.btnEditInstanceProperties = new System.Windows.Forms.Button();
+            ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit();
             this.splitContainer1.Panel1.SuspendLayout();
             this.splitContainer1.SuspendLayout();
             this.groupBox1.SuspendLayout();
@@ -162,16 +164,25 @@
             this.btnRefresh.UseVisualStyleBackColor = true;
             this.btnRefresh.Click += new System.EventHandler(this.btnRefresh_Click);
             // 
+            // btnEditInstanceProperties
+            // 
+            resources.ApplyResources(this.btnEditInstanceProperties, "btnEditInstanceProperties");
+            this.btnEditInstanceProperties.Name = "btnEditInstanceProperties";
+            this.btnEditInstanceProperties.UseVisualStyleBackColor = true;
+            this.btnEditInstanceProperties.Click += new System.EventHandler(this.btnEditInstanceProperties_Click);
+            // 
             // SymbolInstancesDialog
             // 
             this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
             resources.ApplyResources(this, "$this");
             this.ControlBox = false;
+            this.Controls.Add(this.btnEditInstanceProperties);
             this.Controls.Add(this.btnRefresh);
             this.Controls.Add(this.splitContainer1);
             this.Controls.Add(this.btnClose);
             this.Name = "SymbolInstancesDialog";
             this.splitContainer1.Panel1.ResumeLayout(false);
+            ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).EndInit();
             this.splitContainer1.ResumeLayout(false);
             this.groupBox1.ResumeLayout(false);
             this.groupBox1.PerformLayout();
@@ -199,5 +210,6 @@
         private System.Windows.Forms.GroupBox groupBox2;
         private System.Windows.Forms.PictureBox symPreview;
         private System.Windows.Forms.Button btnRefresh;
+        private System.Windows.Forms.Button btnEditInstanceProperties;
     }
 }
\ No newline at end of file

Modified: trunk/Tools/Maestro/Maestro.Editors/LayerDefinition/Vector/Scales/SymbolInstancesDialog.cs
===================================================================
--- trunk/Tools/Maestro/Maestro.Editors/LayerDefinition/Vector/Scales/SymbolInstancesDialog.cs	2013-09-23 12:26:38 UTC (rev 7869)
+++ trunk/Tools/Maestro/Maestro.Editors/LayerDefinition/Vector/Scales/SymbolInstancesDialog.cs	2013-09-24 13:24:19 UTC (rev 7870)
@@ -195,12 +195,31 @@
                 c.Dock = DockStyle.Fill;
                 splitContainer1.Panel2.Controls.Clear();
                 splitContainer1.Panel2.Controls.Add(c);
+                btnEditInstanceProperties.Enabled = true;
             }
+            else
+            {
+                btnEditInstanceProperties.Enabled = false;
+            }
         }
 
         private void btnRefresh_Click(object sender, EventArgs e)
         {
             UpdatePreviewImage();
         }
+
+        private void btnEditInstanceProperties_Click(object sender, EventArgs e)
+        {
+            if (lstInstances.SelectedItems.Count == 1)
+            {
+                var it = lstInstances.SelectedItems[0];
+                ISymbolInstance symRef = (ISymbolInstance)it.Tag;
+
+                using (var diag = new SymbolInstancePropertiesDialog(symRef, _edSvc, _cls, _featureSourceId, _provider))
+                {
+                    diag.ShowDialog();
+                }
+            }
+        }
     }
 }

Modified: trunk/Tools/Maestro/Maestro.Editors/LayerDefinition/Vector/Scales/SymbolInstancesDialog.resx
===================================================================
--- trunk/Tools/Maestro/Maestro.Editors/LayerDefinition/Vector/Scales/SymbolInstancesDialog.resx	2013-09-23 12:26:38 UTC (rev 7869)
+++ trunk/Tools/Maestro/Maestro.Editors/LayerDefinition/Vector/Scales/SymbolInstancesDialog.resx	2013-09-24 13:24:19 UTC (rev 7870)
@@ -145,7 +145,7 @@
     <value>$this</value>
   </data>
   <data name=">>btnClose.ZOrder" xml:space="preserve">
-    <value>2</value>
+    <value>3</value>
   </data>
   <data name="splitContainer1.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
     <value>Top, Bottom, Left, Right</value>
@@ -164,7 +164,7 @@
         AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
         LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
         ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAD2
-        CAAAAk1TRnQBSQFMAgEBAgEAATgBAAE4AQABEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
+        CAAAAk1TRnQBSQFMAgEBAgEAAVABAAFQAQABEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
         AwABQAMAARADAAEBAQABCAYAAQQYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA
         AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5
         AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA
@@ -407,7 +407,7 @@
     <value>$this</value>
   </data>
   <data name=">>splitContainer1.ZOrder" xml:space="preserve">
-    <value>1</value>
+    <value>2</value>
   </data>
   <data name="btnRefresh.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
     <value>Bottom, Left</value>
@@ -434,6 +434,33 @@
     <value>$this</value>
   </data>
   <data name=">>btnRefresh.ZOrder" xml:space="preserve">
+    <value>1</value>
+  </data>
+  <data name="btnEditInstanceProperties.Enabled" type="System.Boolean, mscorlib">
+    <value>False</value>
+  </data>
+  <data name="btnEditInstanceProperties.Location" type="System.Drawing.Point, System.Drawing">
+    <value>120, 527</value>
+  </data>
+  <data name="btnEditInstanceProperties.Size" type="System.Drawing.Size, System.Drawing">
+    <value>148, 23</value>
+  </data>
+  <data name="btnEditInstanceProperties.TabIndex" type="System.Int32, mscorlib">
+    <value>3</value>
+  </data>
+  <data name="btnEditInstanceProperties.Text" xml:space="preserve">
+    <value>Edit Instance Properties</value>
+  </data>
+  <data name=">>btnEditInstanceProperties.Name" xml:space="preserve">
+    <value>btnEditInstanceProperties</value>
+  </data>
+  <data name=">>btnEditInstanceProperties.Type" xml:space="preserve">
+    <value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </data>
+  <data name=">>btnEditInstanceProperties.Parent" xml:space="preserve">
+    <value>$this</value>
+  </data>
+  <data name=">>btnEditInstanceProperties.ZOrder" xml:space="preserve">
     <value>0</value>
   </data>
   <metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">

Modified: trunk/Tools/Maestro/Maestro.Editors/Maestro.Editors.csproj
===================================================================
--- trunk/Tools/Maestro/Maestro.Editors/Maestro.Editors.csproj	2013-09-23 12:26:38 UTC (rev 7869)
+++ trunk/Tools/Maestro/Maestro.Editors/Maestro.Editors.csproj	2013-09-24 13:24:19 UTC (rev 7870)
@@ -695,6 +695,12 @@
     <Compile Include="LayerDefinition\Vector\Scales\SymbolInstanceEditors\ReferenceCtrl.Designer.cs">
       <DependentUpon>ReferenceCtrl.cs</DependentUpon>
     </Compile>
+    <Compile Include="LayerDefinition\Vector\Scales\SymbolInstancePropertiesDialog.cs">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Include="LayerDefinition\Vector\Scales\SymbolInstancePropertiesDialog.Designer.cs">
+      <DependentUpon>SymbolInstancePropertiesDialog.cs</DependentUpon>
+    </Compile>
     <Compile Include="LayerDefinition\Vector\Scales\SymbolInstancesDialog.cs">
       <SubType>Form</SubType>
     </Compile>
@@ -1542,6 +1548,9 @@
     <EmbeddedResource Include="LayerDefinition\Vector\Scales\SymbolInstanceEditors\ReferenceCtrl.resx">
       <DependentUpon>ReferenceCtrl.cs</DependentUpon>
     </EmbeddedResource>
+    <EmbeddedResource Include="LayerDefinition\Vector\Scales\SymbolInstancePropertiesDialog.resx">
+      <DependentUpon>SymbolInstancePropertiesDialog.cs</DependentUpon>
+    </EmbeddedResource>
     <EmbeddedResource Include="LayerDefinition\Vector\Scales\SymbolInstancesDialog.resx">
       <DependentUpon>SymbolInstancesDialog.cs</DependentUpon>
     </EmbeddedResource>

Modified: trunk/Tools/Maestro/Maestro.Editors/SymbolDefinition/SymbolField.cs
===================================================================
--- trunk/Tools/Maestro/Maestro.Editors/SymbolDefinition/SymbolField.cs	2013-09-23 12:26:38 UTC (rev 7869)
+++ trunk/Tools/Maestro/Maestro.Editors/SymbolDefinition/SymbolField.cs	2013-09-24 13:24:19 UTC (rev 7870)
@@ -141,6 +141,40 @@
             }
         }
 
+        /// <summary>
+        /// Gets or sets the enum type. Only set this if the underlying symbol property is an enum type
+        /// </summary>
+        [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
+        public Type EnumType
+        {
+            get;
+            private set;
+        }
+
+        /// <summary>
+        /// Sets this field to explicitly take enum values for input
+        /// </summary>
+        /// <typeparam name="TEnum"></typeparam>
+        public void SetEnumMode<TEnum>()
+        {
+            this.EnumType = typeof(TEnum);
+            this.Items = GetItems<TEnum>(false);
+            combo.DropDownStyle = ComboBoxStyle.DropDownList;
+        }
+
+        /// <summary>
+        /// Sets this field for boolean input
+        /// </summary>
+        public void SetBooleanMode()
+        {
+            this.EnumType = null;
+            this.Items = new string[]
+            {
+                true.ToString().ToLower(),
+                false.ToString().ToLower()
+            };
+        }
+
         private void OnContentChanged()
         {
             if (_isBinding)
@@ -156,9 +190,20 @@
                 {
                     _suppressUI = true;
                     if (string.IsNullOrEmpty(this.Content))
+                    {
                         _boundProperty.SetValue(_boundObject, null, null);
+                    }
                     else
-                        _boundProperty.SetValue(_boundObject, this.Content, null);
+                    {
+                        if (this.EnumType != null)
+                        {
+                            _boundProperty.SetValue(_boundObject, Enum.Parse(this.EnumType, this.Content), null);
+                        }
+                        else
+                        {
+                            _boundProperty.SetValue(_boundObject, this.Content, null);
+                        }
+                    }
                 }
                 finally
                 {
@@ -219,20 +264,41 @@
         public DataType2[] SupportedEnhancedDataTypes { get; set; }
 
         /// <summary>
-        /// Gets the items.
+        /// Gets the items
         /// </summary>
         /// <typeparam name="T"></typeparam>
         /// <returns></returns>
         public static string[] GetItems<T>()
         {
+            return GetItems<T>(true);
+        }
+
+        /// <summary>
+        /// Gets the items.
+        /// </summary>
+        /// <typeparam name="T"></typeparam>
+        /// <returns></returns>
+        public static string[] GetItems<T>(bool quote)
+        {
             var values = Enum.GetValues(typeof(T));
             var items = new string[values.Length];
             int i = 0;
-            foreach(var val in values)
+            if (quote)
             {
-                items[i] = "'" + val + "'";
-                i++;
+                foreach (var val in values)
+                {
+                    items[i] = "'" + val + "'";
+                    i++;
+                }
             }
+            else
+            {
+                foreach (var val in values)
+                {
+                    items[i] = val + "";
+                    i++;
+                }
+            }
             return items;
         }
 

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/VectorLayerDefinitionImpl.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/VectorLayerDefinitionImpl.cs	2013-09-23 12:26:38 UTC (rev 7869)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/VectorLayerDefinitionImpl.cs	2013-09-24 13:24:19 UTC (rev 7870)
@@ -1989,7 +1989,7 @@
             {
 #if LDF_110
                 return new Version(1, 0, 0);
-#elif LDF_120 || LDF_230
+#elif LDF_120 || LDF_130 || LDF_230
                 return new Version(1, 1, 0);
 #elif LDF_240
                 return new Version(2, 4, 0);
@@ -2112,6 +2112,10 @@
     }
 
     partial class SymbolInstance : ISymbolInstance
+#if LDF_100 || LDF_110
+#else
+                                 , ISymbolInstance2
+#endif
     {
         [XmlIgnore]
         IParameterOverrideCollection ISymbolInstance.ParameterOverrides



More information about the mapguide-commits mailing list