[mapguide-commits] r5961 - in trunk/Tools/Maestro: ExtendedModels/WatermarkDefinition-2.3.0 Generated Maestro Maestro.AddIn.ExtendedObjectModels Maestro.AddIn.ExtendedObjectModels/Editor Maestro.Base Maestro.Base/Editor Maestro.Base/Properties Maestro.Base/Resources Maestro.Base/UI Maestro.Editors Maestro.Editors/Common Maestro.Editors/SymbolDefinition Maestro.Editors/WatermarkDefinition Maestro.Shared.UI OSGeo.MapGuide.MaestroAPI OSGeo.MapGuide.MaestroAPI/ObjectModels

svn_mapguide at osgeo.org svn_mapguide at osgeo.org
Thu Jun 30 11:57:53 EDT 2011


Author: jng
Date: 2011-06-30 08:57:53 -0700 (Thu, 30 Jun 2011)
New Revision: 5961

Added:
   trunk/Tools/Maestro/Maestro.Base/Editor/WatermarkDefinitionEditor.Designer.cs
   trunk/Tools/Maestro/Maestro.Base/Editor/WatermarkDefinitionEditor.cs
   trunk/Tools/Maestro/Maestro.Base/Editor/WatermarkDefinitionEditor.resx
   trunk/Tools/Maestro/Maestro.Base/Resources/edit.png
   trunk/Tools/Maestro/Maestro.Editors/WatermarkDefinition/WatermarkSettingsCtrl.Designer.cs
   trunk/Tools/Maestro/Maestro.Editors/WatermarkDefinition/WatermarkSettingsCtrl.cs
   trunk/Tools/Maestro/Maestro.Editors/WatermarkDefinition/WatermarkSettingsCtrl.resx
Modified:
   trunk/Tools/Maestro/ExtendedModels/WatermarkDefinition-2.3.0/WatermarkImpl.cs
   trunk/Tools/Maestro/Generated/SymbolDefinition-1.1.0.designer.cs
   trunk/Tools/Maestro/Maestro.AddIn.ExtendedObjectModels/Editor/EditorFactories.cs
   trunk/Tools/Maestro/Maestro.AddIn.ExtendedObjectModels/Manifest.addin
   trunk/Tools/Maestro/Maestro.Base/Maestro.Base.csproj
   trunk/Tools/Maestro/Maestro.Base/Properties/Resources.Designer.cs
   trunk/Tools/Maestro/Maestro.Base/Properties/Resources.resx
   trunk/Tools/Maestro/Maestro.Base/UI/RepositoryTreeModel.cs
   trunk/Tools/Maestro/Maestro.Editors/Common/ResourcePicker.cs
   trunk/Tools/Maestro/Maestro.Editors/Maestro.Editors.csproj
   trunk/Tools/Maestro/Maestro.Editors/SymbolDefinition/SymbolEditorService.cs
   trunk/Tools/Maestro/Maestro.Editors/WatermarkDefinition/WatermarkEditorCtrl.Designer.cs
   trunk/Tools/Maestro/Maestro.Editors/WatermarkDefinition/WatermarkEditorCtrl.cs
   trunk/Tools/Maestro/Maestro.Editors/WatermarkDefinition/WatermarkEditorCtrl.resx
   trunk/Tools/Maestro/Maestro.Shared.UI/CollapsiblePanel.cs
   trunk/Tools/Maestro/Maestro/Maestro.csproj
   trunk/Tools/Maestro/Maestro/Maestro_All.sln
   trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/SymbolInterfaces.cs
   trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/WatermarkInterfaces.cs
   trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/XmlValidator.cs
Log:
#1707:
 * More work on Watermark editor.
 * Add Site Explorer icon for Watermarks.
 * Update the generic XML validator to consider the updated xsd dependency chains introduced by the Watermark Definition schema.


Modified: trunk/Tools/Maestro/ExtendedModels/WatermarkDefinition-2.3.0/WatermarkImpl.cs
===================================================================
--- trunk/Tools/Maestro/ExtendedModels/WatermarkDefinition-2.3.0/WatermarkImpl.cs	2011-06-30 14:26:06 UTC (rev 5960)
+++ trunk/Tools/Maestro/ExtendedModels/WatermarkDefinition-2.3.0/WatermarkImpl.cs	2011-06-30 15:57:53 UTC (rev 5961)
@@ -192,6 +192,25 @@
                 Usage = UsageType.All
             };
         }
+
+
+        public IXYPosition CreateXYPosition()
+        {
+            return new XYPositionType()
+            {
+                XPosition = new HorizontalPositionType(),
+                YPosition = new VerticalPositionType()
+            };
+        }
+
+        public ITilePosition CreateTilePosition()
+        {
+            return new TilePositionType()
+            {
+                HorizontalPosition = new HorizontalPositionType(),
+                VerticalPosition = new VerticalPositionType()
+            };
+        }
     }
 
     partial class WatermarkType : IWatermark

Modified: trunk/Tools/Maestro/Generated/SymbolDefinition-1.1.0.designer.cs
===================================================================
--- trunk/Tools/Maestro/Generated/SymbolDefinition-1.1.0.designer.cs	2011-06-30 14:26:06 UTC (rev 5960)
+++ trunk/Tools/Maestro/Generated/SymbolDefinition-1.1.0.designer.cs	2011-06-30 15:57:53 UTC (rev 5961)
@@ -231,14 +231,14 @@
             }
         }
         
-        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
+        //public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
         
-        public virtual void OnPropertyChanged(string info) {
-            System.ComponentModel.PropertyChangedEventHandler handler = this.PropertyChanged;
-            if ((handler != null)) {
-                handler(this, new System.ComponentModel.PropertyChangedEventArgs(info));
-            }
-        }
+        //public virtual void OnPropertyChanged(string info) {
+        //    System.ComponentModel.PropertyChangedEventHandler handler = this.PropertyChanged;
+        //    if ((handler != null)) {
+        //        handler(this, new System.ComponentModel.PropertyChangedEventArgs(info));
+        //    }
+        //}
         
         #region Serialize/Deserialize
         /// <summary>
@@ -5246,14 +5246,14 @@
             }
         }
         
-        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
+        //public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
         
-        public virtual void OnPropertyChanged(string info) {
-            System.ComponentModel.PropertyChangedEventHandler handler = this.PropertyChanged;
-            if ((handler != null)) {
-                handler(this, new System.ComponentModel.PropertyChangedEventArgs(info));
-            }
-        }
+        //public virtual void OnPropertyChanged(string info) {
+        //    System.ComponentModel.PropertyChangedEventHandler handler = this.PropertyChanged;
+        //    if ((handler != null)) {
+        //        handler(this, new System.ComponentModel.PropertyChangedEventArgs(info));
+        //    }
+        //}
         
         #region Serialize/Deserialize
         /// <summary>

Modified: trunk/Tools/Maestro/Maestro/Maestro.csproj
===================================================================
--- trunk/Tools/Maestro/Maestro/Maestro.csproj	2011-06-30 14:26:06 UTC (rev 5960)
+++ trunk/Tools/Maestro/Maestro/Maestro.csproj	2011-06-30 15:57:53 UTC (rev 5961)
@@ -194,6 +194,10 @@
       <Link>Schemas\LayerDefinition-1.3.0.xsd</Link>
       <CopyToOutputDirectory>Always</CopyToOutputDirectory>
     </None>
+    <None Include="..\OSGeo.MapGuide.MaestroAPI\Schemas\LayerDefinition-2.3.0.xsd">
+      <Link>Schemas\LayerDefinition-2.3.0.xsd</Link>
+      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
+    </None>
     <None Include="..\OSGeo.MapGuide.MaestroAPI\Schemas\LoadProcedure-1.0.0.xsd">
       <Link>Schemas\LoadProcedure-1.0.0.xsd</Link>
       <CopyToOutputDirectory>Always</CopyToOutputDirectory>
@@ -210,6 +214,10 @@
       <Link>Schemas\MapDefinition-1.0.0.xsd</Link>
       <CopyToOutputDirectory>Always</CopyToOutputDirectory>
     </None>
+    <None Include="..\OSGeo.MapGuide.MaestroAPI\Schemas\MapDefinition-2.3.0.xsd">
+      <Link>Schemas\MapDefinition-2.3.0.xsd</Link>
+      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
+    </None>
     <None Include="..\OSGeo.MapGuide.MaestroAPI\Schemas\PlatformCommon-1.0.0.xsd">
       <Link>Schemas\PlatformCommon-1.0.0.xsd</Link>
       <CopyToOutputDirectory>Always</CopyToOutputDirectory>
@@ -326,6 +334,10 @@
       <Link>Schemas\UserList-1.0.0.xsd</Link>
       <CopyToOutputDirectory>Always</CopyToOutputDirectory>
     </None>
+    <None Include="..\OSGeo.MapGuide.MaestroAPI\Schemas\WatermarkDefinition-2.3.0.xsd">
+      <Link>Schemas\WatermarkDefinition-2.3.0.xsd</Link>
+      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
+    </None>
     <None Include="..\OSGeo.MapGuide.MaestroAPI\Schemas\WebLayout-1.0.0.xsd">
       <Link>Schemas\WebLayout-1.0.0.xsd</Link>
       <CopyToOutputDirectory>Always</CopyToOutputDirectory>

Modified: trunk/Tools/Maestro/Maestro/Maestro_All.sln
===================================================================
--- trunk/Tools/Maestro/Maestro/Maestro_All.sln	2011-06-30 14:26:06 UTC (rev 5960)
+++ trunk/Tools/Maestro/Maestro/Maestro_All.sln	2011-06-30 15:57:53 UTC (rev 5961)
@@ -8,6 +8,9 @@
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.Core.WinForms", "..\Thirdparty\SharpDevelop\ICSharpCode.Core.WinForms\ICSharpCode.Core.WinForms.csproj", "{857CA1A3-FC88-4BE0-AB6A-D1EE772AB288}"
 EndProject
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Maestro.Base", "..\Maestro.Base\Maestro.Base.csproj", "{F1E2F468-5030-4DBA-968C-9620284AFAA1}"
+	ProjectSection(ProjectDependencies) = postProject
+		{CFD19053-2172-41D3-8460-0FD2123A1E88} = {CFD19053-2172-41D3-8460-0FD2123A1E88}
+	EndProjectSection
 EndProject
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MaestroFsPreview", "..\MaestroFsPreview\MaestroFsPreview.csproj", "{59BE5E18-17B6-431D-836E-C0AABA6D69E8}"
 	ProjectSection(ProjectDependencies) = postProject

Modified: trunk/Tools/Maestro/Maestro.AddIn.ExtendedObjectModels/Editor/EditorFactories.cs
===================================================================
--- trunk/Tools/Maestro/Maestro.AddIn.ExtendedObjectModels/Editor/EditorFactories.cs	2011-06-30 14:26:06 UTC (rev 5960)
+++ trunk/Tools/Maestro/Maestro.AddIn.ExtendedObjectModels/Editor/EditorFactories.cs	2011-06-30 15:57:53 UTC (rev 5961)
@@ -88,6 +88,54 @@
         }
     }
 
+    internal class LayerDefinition230EditorFactory : IEditorFactory
+    {
+        public ResourceTypeDescriptor ResourceTypeAndVersion { get; private set; }
+
+        public LayerDefinition230EditorFactory()
+        {
+            this.ResourceTypeAndVersion = new ResourceTypeDescriptor(OSGeo.MapGuide.MaestroAPI.ResourceTypes.LayerDefinition, "2.3.0");
+        }
+
+        public IEditorViewContent Create()
+        {
+            //Use the same 1.0.0 editor for now
+            return new LayerDefinitionEditor();
+        }
+    }
+
+    internal class MapDefinition230EditorFactory : IEditorFactory
+    {
+        public ResourceTypeDescriptor ResourceTypeAndVersion { get; private set; }
+
+        public MapDefinition230EditorFactory()
+        {
+            this.ResourceTypeAndVersion = new ResourceTypeDescriptor(OSGeo.MapGuide.MaestroAPI.ResourceTypes.MapDefinition, "2.3.0");
+        }
+
+        public IEditorViewContent Create()
+        {
+            //Use the same 1.0.0 editor for now
+            return new MapDefinitionEditor();
+        }
+    }
+
+    internal class WatermarkDefinition230EditorFactory : IEditorFactory
+    {
+        public ResourceTypeDescriptor ResourceTypeAndVersion { get; private set; }
+
+        public WatermarkDefinition230EditorFactory()
+        {
+            this.ResourceTypeAndVersion = new ResourceTypeDescriptor(OSGeo.MapGuide.MaestroAPI.ResourceTypes.WatermarkDefinition, "2.3.0");
+        }
+
+        public IEditorViewContent Create()
+        {
+            //Use the same 1.0.0 editor for now
+            return new WatermarkDefinitionEditor();
+        }
+    }
+
     internal class LoadProcedure110EditorFactory : IEditorFactory
     {
         public ResourceTypeDescriptor ResourceTypeAndVersion { get; private set; }

Modified: trunk/Tools/Maestro/Maestro.AddIn.ExtendedObjectModels/Manifest.addin
===================================================================
--- trunk/Tools/Maestro/Maestro.AddIn.ExtendedObjectModels/Manifest.addin	2011-06-30 14:26:06 UTC (rev 5960)
+++ trunk/Tools/Maestro/Maestro.AddIn.ExtendedObjectModels/Manifest.addin	2011-06-30 15:57:53 UTC (rev 5961)
@@ -21,6 +21,9 @@
         <Class id="LayerDefinitionEditor120" class="Maestro.AddIn.ExtendedObjectModels.Editor.LayerDefinition120EditorFactory" />
         <Class id="LayerDefinitionEditor130" class="Maestro.AddIn.ExtendedObjectModels.Editor.LayerDefinition130EditorFactory" />
         <Class id="WebLayoutEditor110" class="Maestro.AddIn.ExtendedObjectModels.Editor.WebLayout110EditorFactory" />
+        <Class id="LayerDefinitionEditor230" class="Maestro.AddIn.ExtendedObjectModels.Editor.LayerDefinition230EditorFactory" />
+        <Class id="MapDefinition230" class="Maestro.AddIn.ExtendedObjectModels.Editor.MapDefinition230EditorFactory" />
+        <Class id="WatermarkDefinition230" class="Maestro.AddIn.ExtendedObjectModels.Editor.WatermarkDefinition230EditorFactory" />
     </Path>
 
     <!-- Registered System Templates -->

Added: trunk/Tools/Maestro/Maestro.Base/Editor/WatermarkDefinitionEditor.Designer.cs
===================================================================
--- trunk/Tools/Maestro/Maestro.Base/Editor/WatermarkDefinitionEditor.Designer.cs	                        (rev 0)
+++ trunk/Tools/Maestro/Maestro.Base/Editor/WatermarkDefinitionEditor.Designer.cs	2011-06-30 15:57:53 UTC (rev 5961)
@@ -0,0 +1,45 @@
+namespace Maestro.Base.Editor
+{
+    partial class WatermarkDefinitionEditor
+    {
+        /// <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(WatermarkDefinitionEditor));
+            this.SuspendLayout();
+            // 
+            // WatermarkDefinitionEditor
+            // 
+            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
+            this.Name = "WatermarkDefinitionEditor";
+            resources.ApplyResources(this, "$this");
+            this.ResumeLayout(false);
+
+        }
+
+        #endregion
+    }
+}

Added: trunk/Tools/Maestro/Maestro.Base/Editor/WatermarkDefinitionEditor.cs
===================================================================
--- trunk/Tools/Maestro/Maestro.Base/Editor/WatermarkDefinitionEditor.cs	                        (rev 0)
+++ trunk/Tools/Maestro/Maestro.Base/Editor/WatermarkDefinitionEditor.cs	2011-06-30 15:57:53 UTC (rev 5961)
@@ -0,0 +1,62 @@
+#region Disclaimer / License
+// Copyright (C) 2011, 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.Text;
+using System.Windows.Forms;
+using OSGeo.MapGuide.MaestroAPI.Resource;
+using Maestro.Editors;
+using Maestro.Editors.WatermarkDefinition;
+
+namespace Maestro.Base.Editor
+{
+    public partial class WatermarkDefinitionEditor : EditorContentBase
+    {
+        public WatermarkDefinitionEditor()
+        {
+            InitializeComponent();
+        }
+
+        private IResource _res;
+        private IEditorService _edsvc;
+        private bool _init = false;
+
+        protected override void Bind(Maestro.Editors.IEditorService service)
+        {
+            if (!_init)
+            {
+                _edsvc = service;
+                _res = _edsvc.GetEditedResource();
+                _init = true;
+            }
+            panelBody.Controls.Clear();
+
+            panelBody.Controls.Clear();
+            var wmEditorCtrl = new WatermarkEditorCtrl();
+            wmEditorCtrl.Dock = DockStyle.Fill;
+            panelBody.Controls.Add(wmEditorCtrl);
+
+            wmEditorCtrl.Bind(service);
+        }
+    }
+}

Added: trunk/Tools/Maestro/Maestro.Base/Editor/WatermarkDefinitionEditor.resx
===================================================================
--- trunk/Tools/Maestro/Maestro.Base/Editor/WatermarkDefinitionEditor.resx	                        (rev 0)
+++ trunk/Tools/Maestro/Maestro.Base/Editor/WatermarkDefinitionEditor.resx	2011-06-30 15:57:53 UTC (rev 5961)
@@ -0,0 +1,133 @@
+<?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=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+    <value>True</value>
+  </metadata>
+  <assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
+  <data name="$this.Size" type="System.Drawing.Size, System.Drawing">
+    <value>544, 420</value>
+  </data>
+  <data name="&gt;&gt;$this.Name" xml:space="preserve">
+    <value>WatermarkDefinitionEditor</value>
+  </data>
+  <data name="&gt;&gt;$this.Type" xml:space="preserve">
+    <value>System.Windows.Forms.UserControl, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </data>
+</root>
\ No newline at end of file

Modified: trunk/Tools/Maestro/Maestro.Base/Maestro.Base.csproj
===================================================================
--- trunk/Tools/Maestro/Maestro.Base/Maestro.Base.csproj	2011-06-30 14:26:06 UTC (rev 5960)
+++ trunk/Tools/Maestro/Maestro.Base/Maestro.Base.csproj	2011-06-30 15:57:53 UTC (rev 5961)
@@ -201,6 +201,12 @@
     <Compile Include="Editor\UnsupportedEditorControl.Designer.cs">
       <DependentUpon>UnsupportedEditorControl.cs</DependentUpon>
     </Compile>
+    <Compile Include="Editor\WatermarkDefinitionEditor.cs">
+      <SubType>UserControl</SubType>
+    </Compile>
+    <Compile Include="Editor\WatermarkDefinitionEditor.Designer.cs">
+      <DependentUpon>WatermarkDefinitionEditor.cs</DependentUpon>
+    </Compile>
     <Compile Include="Editor\WebLayoutEditor.cs">
       <SubType>UserControl</SubType>
     </Compile>
@@ -393,6 +399,7 @@
   </ItemGroup>
   <ItemGroup>
     <Content Include="Maestro.Base.addin" />
+    <None Include="Resources\edit.png" />
     <None Include="Resources\marker.png" />
     <None Include="Resources\arrow-circle-double.png" />
     <None Include="Resources\system-monitor.png" />
@@ -478,6 +485,9 @@
     <EmbeddedResource Include="Editor\UnsupportedEditorControl.resx">
       <DependentUpon>UnsupportedEditorControl.cs</DependentUpon>
     </EmbeddedResource>
+    <EmbeddedResource Include="Editor\WatermarkDefinitionEditor.resx">
+      <DependentUpon>WatermarkDefinitionEditor.cs</DependentUpon>
+    </EmbeddedResource>
     <EmbeddedResource Include="Editor\WebLayoutEditor.resx">
       <DependentUpon>WebLayoutEditor.cs</DependentUpon>
     </EmbeddedResource>

Modified: trunk/Tools/Maestro/Maestro.Base/Properties/Resources.Designer.cs
===================================================================
--- trunk/Tools/Maestro/Maestro.Base/Properties/Resources.Designer.cs	2011-06-30 14:26:06 UTC (rev 5960)
+++ trunk/Tools/Maestro/Maestro.Base/Properties/Resources.Designer.cs	2011-06-30 15:57:53 UTC (rev 5961)
@@ -610,6 +610,13 @@
             }
         }
         
+        internal static System.Drawing.Bitmap edit {
+            get {
+                object obj = ResourceManager.GetObject("edit", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
         /// <summary>
         ///   Looks up a localized string similar to Registered Editor: {0}.
         /// </summary>

Modified: trunk/Tools/Maestro/Maestro.Base/Properties/Resources.resx
===================================================================
--- trunk/Tools/Maestro/Maestro.Base/Properties/Resources.resx	2011-06-30 14:26:06 UTC (rev 5960)
+++ trunk/Tools/Maestro/Maestro.Base/Properties/Resources.resx	2011-06-30 15:57:53 UTC (rev 5961)
@@ -1028,4 +1028,7 @@
   <data name="marker" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\Resources\marker.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
+  <data name="edit" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\edit.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
 </root>
\ No newline at end of file

Added: trunk/Tools/Maestro/Maestro.Base/Resources/edit.png
===================================================================
(Binary files differ)


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

Modified: trunk/Tools/Maestro/Maestro.Base/UI/RepositoryTreeModel.cs
===================================================================
--- trunk/Tools/Maestro/Maestro.Base/UI/RepositoryTreeModel.cs	2011-06-30 14:26:06 UTC (rev 5960)
+++ trunk/Tools/Maestro/Maestro.Base/UI/RepositoryTreeModel.cs	2011-06-30 15:57:53 UTC (rev 5961)
@@ -91,6 +91,9 @@
                     case ResourceTypes.SymbolDefinition:
                         this.Icon = Properties.Resources.marker;
                         break;
+                    case ResourceTypes.WatermarkDefinition:
+                        this.Icon = Properties.Resources.edit;
+                        break;
                     default:
                         this.Icon = Properties.Resources.document;
                         break;

Modified: trunk/Tools/Maestro/Maestro.Editors/Common/ResourcePicker.cs
===================================================================
--- trunk/Tools/Maestro/Maestro.Editors/Common/ResourcePicker.cs	2011-06-30 14:26:06 UTC (rev 5960)
+++ trunk/Tools/Maestro/Maestro.Editors/Common/ResourcePicker.cs	2011-06-30 15:57:53 UTC (rev 5961)
@@ -66,7 +66,8 @@
                 ResourceTypes.PrintLayout,
                 ResourceTypes.SymbolDefinition,
                 ResourceTypes.SymbolLibrary,
-                ResourceTypes.WebLayout
+                ResourceTypes.WebLayout,
+                ResourceTypes.WatermarkDefinition
             };
             cmbResourceFilter.DataSource = _resTypes;
         }

Modified: trunk/Tools/Maestro/Maestro.Editors/Maestro.Editors.csproj
===================================================================
--- trunk/Tools/Maestro/Maestro.Editors/Maestro.Editors.csproj	2011-06-30 14:26:06 UTC (rev 5960)
+++ trunk/Tools/Maestro/Maestro.Editors/Maestro.Editors.csproj	2011-06-30 15:57:53 UTC (rev 5961)
@@ -1037,6 +1037,12 @@
     <Compile Include="WatermarkDefinition\WatermarkInstanceEditorDialog.Designer.cs">
       <DependentUpon>WatermarkInstanceEditorDialog.cs</DependentUpon>
     </Compile>
+    <Compile Include="WatermarkDefinition\WatermarkSettingsCtrl.cs">
+      <SubType>UserControl</SubType>
+    </Compile>
+    <Compile Include="WatermarkDefinition\WatermarkSettingsCtrl.Designer.cs">
+      <DependentUpon>WatermarkSettingsCtrl.cs</DependentUpon>
+    </Compile>
     <Compile Include="WatermarkDefinition\XYPositionEditor.cs">
       <SubType>UserControl</SubType>
     </Compile>
@@ -2376,6 +2382,9 @@
     <EmbeddedResource Include="Resources\points\star.png" />
     <EmbeddedResource Include="Resources\points\triangle.png" />
     <EmbeddedResource Include="Resources\points\x.png" />
+    <EmbeddedResource Include="WatermarkDefinition\WatermarkSettingsCtrl.resx">
+      <DependentUpon>WatermarkSettingsCtrl.cs</DependentUpon>
+    </EmbeddedResource>
     <None Include="Resources\image.png" />
     <None Include="Resources\layer-shape-curve.png" />
     <None Include="Resources\edit.png" />

Modified: trunk/Tools/Maestro/Maestro.Editors/SymbolDefinition/SymbolEditorService.cs
===================================================================
--- trunk/Tools/Maestro/Maestro.Editors/SymbolDefinition/SymbolEditorService.cs	2011-06-30 14:26:06 UTC (rev 5960)
+++ trunk/Tools/Maestro/Maestro.Editors/SymbolDefinition/SymbolEditorService.cs	2011-06-30 15:57:53 UTC (rev 5961)
@@ -30,9 +30,9 @@
     internal class SymbolEditorService : IEditorService
     {
         private IEditorService _inner;
-        private ISimpleSymbolDefinition _symDef;
+        private ISymbolDefinitionBase _symDef;
 
-        public SymbolEditorService(IEditorService edSvc, ISimpleSymbolDefinition symDef)
+        public SymbolEditorService(IEditorService edSvc, ISymbolDefinitionBase symDef)
         {
             _inner = edSvc;
             _symDef = symDef;

Modified: trunk/Tools/Maestro/Maestro.Editors/WatermarkDefinition/WatermarkEditorCtrl.Designer.cs
===================================================================
--- trunk/Tools/Maestro/Maestro.Editors/WatermarkDefinition/WatermarkEditorCtrl.Designer.cs	2011-06-30 14:26:06 UTC (rev 5960)
+++ trunk/Tools/Maestro/Maestro.Editors/WatermarkDefinition/WatermarkEditorCtrl.Designer.cs	2011-06-30 15:57:53 UTC (rev 5961)
@@ -34,12 +34,13 @@
             // WatermarkEditorCtrl
             // 
             this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
+            resources.ApplyResources(this, "$this");
             this.Name = "WatermarkEditorCtrl";
-            resources.ApplyResources(this, "$this");
             this.ResumeLayout(false);
 
         }
 
         #endregion
+
     }
 }

Modified: trunk/Tools/Maestro/Maestro.Editors/WatermarkDefinition/WatermarkEditorCtrl.cs
===================================================================
--- trunk/Tools/Maestro/Maestro.Editors/WatermarkDefinition/WatermarkEditorCtrl.cs	2011-06-30 14:26:06 UTC (rev 5960)
+++ trunk/Tools/Maestro/Maestro.Editors/WatermarkDefinition/WatermarkEditorCtrl.cs	2011-06-30 15:57:53 UTC (rev 5961)
@@ -24,14 +24,52 @@
 using System.Data;
 using System.Text;
 using System.Windows.Forms;
+using OSGeo.MapGuide.ObjectModels.WatermarkDefinition;
+using Maestro.Editors.SymbolDefinition;
+using OSGeo.MapGuide.ObjectModels.SymbolDefinition;
 
 namespace Maestro.Editors.WatermarkDefinition
 {
-    public partial class WatermarkEditorCtrl : UserControl
+    public partial class WatermarkEditorCtrl : EditorBase
     {
         public WatermarkEditorCtrl()
         {
             InitializeComponent();
         }
+
+        private IWatermarkDefinition _wm;
+
+        public override void Bind(IEditorService service)
+        {
+            this.Controls.Clear();
+            _wm = (IWatermarkDefinition)service.GetEditedResource();
+            _wm.Content.RemoveSchemaAttributes(); //Sanity
+
+            var wmSettings = new WatermarkSettingsCtrl();
+            wmSettings.Bind(service);
+
+            Control symControl = null;
+            if (_wm.Content.Type == SymbolDefinitionType.Simple)
+            {
+                var ctrl = new SimpleSymbolDefinitionEditorCtrl();
+                ctrl.Bind(new SymbolEditorService(service, _wm.Content));
+                symControl = ctrl;
+            }
+            else if (_wm.Content.Type == SymbolDefinitionType.Compound)
+            {
+                var ctrl = new CompoundSymbolDefinitionEditorCtrl();
+                ctrl.Bind(new SymbolEditorService(service, _wm.Content));
+                symControl = ctrl;
+            }
+
+            if (symControl != null)
+            {
+                symControl.Dock = DockStyle.Top;
+                this.Controls.Add(symControl);
+            }
+
+            wmSettings.Dock = DockStyle.Top;
+            this.Controls.Add(wmSettings);
+        }
     }
 }

Modified: trunk/Tools/Maestro/Maestro.Editors/WatermarkDefinition/WatermarkEditorCtrl.resx
===================================================================
--- trunk/Tools/Maestro/Maestro.Editors/WatermarkDefinition/WatermarkEditorCtrl.resx	2011-06-30 14:26:06 UTC (rev 5960)
+++ trunk/Tools/Maestro/Maestro.Editors/WatermarkDefinition/WatermarkEditorCtrl.resx	2011-06-30 15:57:53 UTC (rev 5961)
@@ -120,6 +120,10 @@
   <metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
     <value>True</value>
   </metadata>
+  <assembly alias="mscorlib" name="mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
+  <data name="$this.AutoScroll" type="System.Boolean, mscorlib">
+    <value>True</value>
+  </data>
   <assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
   <data name="$this.Size" type="System.Drawing.Size, System.Drawing">
     <value>641, 550</value>
@@ -128,6 +132,6 @@
     <value>WatermarkEditorCtrl</value>
   </data>
   <data name="&gt;&gt;$this.Type" xml:space="preserve">
-    <value>System.Windows.Forms.UserControl, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+    <value>Maestro.Editors.EditorBase, Maestro.Editors, Version=3.1.0.5859, Culture=neutral, PublicKeyToken=null</value>
   </data>
 </root>
\ No newline at end of file

Added: trunk/Tools/Maestro/Maestro.Editors/WatermarkDefinition/WatermarkSettingsCtrl.Designer.cs
===================================================================
--- trunk/Tools/Maestro/Maestro.Editors/WatermarkDefinition/WatermarkSettingsCtrl.Designer.cs	                        (rev 0)
+++ trunk/Tools/Maestro/Maestro.Editors/WatermarkDefinition/WatermarkSettingsCtrl.Designer.cs	2011-06-30 15:57:53 UTC (rev 5961)
@@ -0,0 +1,146 @@
+namespace Maestro.Editors.WatermarkDefinition
+{
+    partial class WatermarkSettingsCtrl
+    {
+        /// <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(WatermarkSettingsCtrl));
+            this.groupBox1 = new System.Windows.Forms.GroupBox();
+            this.grpPositionSettings = new System.Windows.Forms.GroupBox();
+            this.label1 = new System.Windows.Forms.Label();
+            this.label2 = new System.Windows.Forms.Label();
+            this.numRotation = new System.Windows.Forms.NumericUpDown();
+            this.numTransparency = new System.Windows.Forms.NumericUpDown();
+            this.label3 = new System.Windows.Forms.Label();
+            this.rdTile = new System.Windows.Forms.RadioButton();
+            this.rdXY = new System.Windows.Forms.RadioButton();
+            this.contentPanel.SuspendLayout();
+            this.groupBox1.SuspendLayout();
+            ((System.ComponentModel.ISupportInitialize)(this.numRotation)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.numTransparency)).BeginInit();
+            this.SuspendLayout();
+            // 
+            // contentPanel
+            // 
+            this.contentPanel.Controls.Add(this.grpPositionSettings);
+            this.contentPanel.Controls.Add(this.groupBox1);
+            resources.ApplyResources(this.contentPanel, "contentPanel");
+            // 
+            // groupBox1
+            // 
+            resources.ApplyResources(this.groupBox1, "groupBox1");
+            this.groupBox1.Controls.Add(this.rdXY);
+            this.groupBox1.Controls.Add(this.rdTile);
+            this.groupBox1.Controls.Add(this.label3);
+            this.groupBox1.Controls.Add(this.numTransparency);
+            this.groupBox1.Controls.Add(this.numRotation);
+            this.groupBox1.Controls.Add(this.label2);
+            this.groupBox1.Controls.Add(this.label1);
+            this.groupBox1.Name = "groupBox1";
+            this.groupBox1.TabStop = false;
+            // 
+            // grpPositionSettings
+            // 
+            resources.ApplyResources(this.grpPositionSettings, "grpPositionSettings");
+            this.grpPositionSettings.Name = "grpPositionSettings";
+            this.grpPositionSettings.TabStop = false;
+            // 
+            // label1
+            // 
+            resources.ApplyResources(this.label1, "label1");
+            this.label1.Name = "label1";
+            // 
+            // label2
+            // 
+            resources.ApplyResources(this.label2, "label2");
+            this.label2.Name = "label2";
+            // 
+            // numRotation
+            // 
+            this.numRotation.DecimalPlaces = 5;
+            resources.ApplyResources(this.numRotation, "numRotation");
+            this.numRotation.Maximum = new decimal(new int[] {
+            360,
+            0,
+            0,
+            0});
+            this.numRotation.Name = "numRotation";
+            // 
+            // numTransparency
+            // 
+            this.numTransparency.DecimalPlaces = 5;
+            resources.ApplyResources(this.numTransparency, "numTransparency");
+            this.numTransparency.Name = "numTransparency";
+            // 
+            // label3
+            // 
+            resources.ApplyResources(this.label3, "label3");
+            this.label3.Name = "label3";
+            // 
+            // rdTile
+            // 
+            resources.ApplyResources(this.rdTile, "rdTile");
+            this.rdTile.Name = "rdTile";
+            this.rdTile.TabStop = true;
+            this.rdTile.UseVisualStyleBackColor = true;
+            this.rdTile.CheckedChanged += new System.EventHandler(this.OnPositionCheckChanged);
+            // 
+            // rdXY
+            // 
+            resources.ApplyResources(this.rdXY, "rdXY");
+            this.rdXY.Name = "rdXY";
+            this.rdXY.TabStop = true;
+            this.rdXY.UseVisualStyleBackColor = true;
+            this.rdXY.CheckedChanged += new System.EventHandler(this.OnPositionCheckChanged);
+            // 
+            // WatermarkSettingsCtrl
+            // 
+            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
+            resources.ApplyResources(this, "$this");
+            this.Name = "WatermarkSettingsCtrl";
+            this.contentPanel.ResumeLayout(false);
+            this.groupBox1.ResumeLayout(false);
+            this.groupBox1.PerformLayout();
+            ((System.ComponentModel.ISupportInitialize)(this.numRotation)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.numTransparency)).EndInit();
+            this.ResumeLayout(false);
+
+        }
+
+        #endregion
+
+        private System.Windows.Forms.GroupBox grpPositionSettings;
+        private System.Windows.Forms.GroupBox groupBox1;
+        private System.Windows.Forms.RadioButton rdXY;
+        private System.Windows.Forms.RadioButton rdTile;
+        private System.Windows.Forms.Label label3;
+        private System.Windows.Forms.NumericUpDown numTransparency;
+        private System.Windows.Forms.NumericUpDown numRotation;
+        private System.Windows.Forms.Label label2;
+        private System.Windows.Forms.Label label1;
+    }
+}

Added: trunk/Tools/Maestro/Maestro.Editors/WatermarkDefinition/WatermarkSettingsCtrl.cs
===================================================================
--- trunk/Tools/Maestro/Maestro.Editors/WatermarkDefinition/WatermarkSettingsCtrl.cs	                        (rev 0)
+++ trunk/Tools/Maestro/Maestro.Editors/WatermarkDefinition/WatermarkSettingsCtrl.cs	2011-06-30 15:57:53 UTC (rev 5961)
@@ -0,0 +1,86 @@
+#region Disclaimer / License
+// Copyright (C) 2011, 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.Text;
+using System.Windows.Forms;
+using Maestro.Editors.Common;
+using OSGeo.MapGuide.ObjectModels.WatermarkDefinition;
+using Maestro.Shared.UI;
+
+namespace Maestro.Editors.WatermarkDefinition
+{
+    [ToolboxItem(false)]
+    public partial class WatermarkSettingsCtrl : EditorBindableCollapsiblePanel
+    {
+        public WatermarkSettingsCtrl()
+        {
+            InitializeComponent();
+        }
+
+        private IWatermarkDefinition _wm;
+        private ITilePosition _tile;
+        private IXYPosition _xy;
+
+        public override void Bind(IEditorService service)
+        {
+            service.RegisterCustomNotifier(this);
+            _wm = (IWatermarkDefinition)service.GetEditedResource();
+
+            NumericBinder.BindValueChanged(numRotation, _wm.Appearance, "Rotation");
+            NumericBinder.BindValueChanged(numTransparency, _wm.Appearance, "Transparency");
+
+            if (_wm.Position.Type == PositionType.Tile)
+                _tile = (ITilePosition)_wm.Position;
+            else if (_wm.Position.Type == PositionType.XY)
+                _xy = (IXYPosition)_wm.Position;
+
+            if (_tile == null)
+            {
+                _tile = _wm.CreateTilePosition();
+                rdXY.Checked = true;
+            }
+            else if (_xy == null)
+            {
+                _xy = _wm.CreateXYPosition();
+                rdTile.Checked = true;
+            }
+        }
+
+        private void OnPositionCheckChanged(object sender, EventArgs e)
+        {
+            grpPositionSettings.Controls.Clear();
+            Control c = null;
+            if (rdTile.Checked)
+                c = new TilePositionEditor(_tile);
+            else if (rdXY.Checked)
+                c = new XYPositionEditor(_xy);
+
+            if (c != null)
+            {
+                c.Dock = DockStyle.Fill;
+                grpPositionSettings.Controls.Add(c);
+            }
+        }
+    }
+}

Added: trunk/Tools/Maestro/Maestro.Editors/WatermarkDefinition/WatermarkSettingsCtrl.resx
===================================================================
--- trunk/Tools/Maestro/Maestro.Editors/WatermarkDefinition/WatermarkSettingsCtrl.resx	                        (rev 0)
+++ trunk/Tools/Maestro/Maestro.Editors/WatermarkDefinition/WatermarkSettingsCtrl.resx	2011-06-30 15:57:53 UTC (rev 5961)
@@ -0,0 +1,387 @@
+<?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=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
+  <data name="grpPositionSettings.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
+    <value>Top, Bottom, Left, Right</value>
+  </data>
+  <assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
+  <data name="grpPositionSettings.Location" type="System.Drawing.Point, System.Drawing">
+    <value>221, 6</value>
+  </data>
+  <data name="grpPositionSettings.Size" type="System.Drawing.Size, System.Drawing">
+    <value>308, 312</value>
+  </data>
+  <assembly alias="mscorlib" name="mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
+  <data name="grpPositionSettings.TabIndex" type="System.Int32, mscorlib">
+    <value>2</value>
+  </data>
+  <data name="grpPositionSettings.Text" xml:space="preserve">
+    <value>Position Settings</value>
+  </data>
+  <data name="&gt;&gt;grpPositionSettings.Name" xml:space="preserve">
+    <value>grpPositionSettings</value>
+  </data>
+  <data name="&gt;&gt;grpPositionSettings.Type" xml:space="preserve">
+    <value>System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </data>
+  <data name="&gt;&gt;grpPositionSettings.Parent" xml:space="preserve">
+    <value>contentPanel</value>
+  </data>
+  <data name="&gt;&gt;grpPositionSettings.ZOrder" xml:space="preserve">
+    <value>0</value>
+  </data>
+  <data name="groupBox1.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
+    <value>Top, Bottom, Left</value>
+  </data>
+  <data name="rdXY.AutoSize" type="System.Boolean, mscorlib">
+    <value>True</value>
+  </data>
+  <data name="rdXY.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
+    <value>NoControl</value>
+  </data>
+  <data name="rdXY.Location" type="System.Drawing.Point, System.Drawing">
+    <value>47, 224</value>
+  </data>
+  <data name="rdXY.Size" type="System.Drawing.Size, System.Drawing">
+    <value>44, 17</value>
+  </data>
+  <data name="rdXY.TabIndex" type="System.Int32, mscorlib">
+    <value>6</value>
+  </data>
+  <data name="rdXY.Text" xml:space="preserve">
+    <value>X/Y</value>
+  </data>
+  <data name="&gt;&gt;rdXY.Name" xml:space="preserve">
+    <value>rdXY</value>
+  </data>
+  <data name="&gt;&gt;rdXY.Type" xml:space="preserve">
+    <value>System.Windows.Forms.RadioButton, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </data>
+  <data name="&gt;&gt;rdXY.Parent" xml:space="preserve">
+    <value>groupBox1</value>
+  </data>
+  <data name="&gt;&gt;rdXY.ZOrder" xml:space="preserve">
+    <value>0</value>
+  </data>
+  <data name="rdTile.AutoSize" type="System.Boolean, mscorlib">
+    <value>True</value>
+  </data>
+  <data name="rdTile.Location" type="System.Drawing.Point, System.Drawing">
+    <value>47, 191</value>
+  </data>
+  <data name="rdTile.Size" type="System.Drawing.Size, System.Drawing">
+    <value>42, 17</value>
+  </data>
+  <data name="rdTile.TabIndex" type="System.Int32, mscorlib">
+    <value>5</value>
+  </data>
+  <data name="rdTile.Text" xml:space="preserve">
+    <value>Tile</value>
+  </data>
+  <data name="&gt;&gt;rdTile.Name" xml:space="preserve">
+    <value>rdTile</value>
+  </data>
+  <data name="&gt;&gt;rdTile.Type" xml:space="preserve">
+    <value>System.Windows.Forms.RadioButton, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </data>
+  <data name="&gt;&gt;rdTile.Parent" xml:space="preserve">
+    <value>groupBox1</value>
+  </data>
+  <data name="&gt;&gt;rdTile.ZOrder" xml:space="preserve">
+    <value>1</value>
+  </data>
+  <data name="label3.AutoSize" type="System.Boolean, mscorlib">
+    <value>True</value>
+  </data>
+  <data name="label3.Location" type="System.Drawing.Point, System.Drawing">
+    <value>23, 160</value>
+  </data>
+  <data name="label3.Size" type="System.Drawing.Size, System.Drawing">
+    <value>58, 13</value>
+  </data>
+  <data name="label3.TabIndex" type="System.Int32, mscorlib">
+    <value>4</value>
+  </data>
+  <data name="label3.Text" xml:space="preserve">
+    <value>Positioning</value>
+  </data>
+  <data name="&gt;&gt;label3.Name" xml:space="preserve">
+    <value>label3</value>
+  </data>
+  <data name="&gt;&gt;label3.Type" xml:space="preserve">
+    <value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </data>
+  <data name="&gt;&gt;label3.Parent" xml:space="preserve">
+    <value>groupBox1</value>
+  </data>
+  <data name="&gt;&gt;label3.ZOrder" xml:space="preserve">
+    <value>2</value>
+  </data>
+  <data name="numTransparency.Location" type="System.Drawing.Point, System.Drawing">
+    <value>26, 112</value>
+  </data>
+  <data name="numTransparency.Size" type="System.Drawing.Size, System.Drawing">
+    <value>120, 20</value>
+  </data>
+  <data name="numTransparency.TabIndex" type="System.Int32, mscorlib">
+    <value>3</value>
+  </data>
+  <data name="&gt;&gt;numTransparency.Name" xml:space="preserve">
+    <value>numTransparency</value>
+  </data>
+  <data name="&gt;&gt;numTransparency.Type" xml:space="preserve">
+    <value>System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </data>
+  <data name="&gt;&gt;numTransparency.Parent" xml:space="preserve">
+    <value>groupBox1</value>
+  </data>
+  <data name="&gt;&gt;numTransparency.ZOrder" xml:space="preserve">
+    <value>3</value>
+  </data>
+  <data name="numRotation.Location" type="System.Drawing.Point, System.Drawing">
+    <value>26, 51</value>
+  </data>
+  <data name="numRotation.Size" type="System.Drawing.Size, System.Drawing">
+    <value>120, 20</value>
+  </data>
+  <data name="numRotation.TabIndex" type="System.Int32, mscorlib">
+    <value>2</value>
+  </data>
+  <data name="&gt;&gt;numRotation.Name" xml:space="preserve">
+    <value>numRotation</value>
+  </data>
+  <data name="&gt;&gt;numRotation.Type" xml:space="preserve">
+    <value>System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </data>
+  <data name="&gt;&gt;numRotation.Parent" xml:space="preserve">
+    <value>groupBox1</value>
+  </data>
+  <data name="&gt;&gt;numRotation.ZOrder" xml:space="preserve">
+    <value>4</value>
+  </data>
+  <data name="label2.AutoSize" type="System.Boolean, mscorlib">
+    <value>True</value>
+  </data>
+  <data name="label2.Location" type="System.Drawing.Point, System.Drawing">
+    <value>23, 96</value>
+  </data>
+  <data name="label2.Size" type="System.Drawing.Size, System.Drawing">
+    <value>72, 13</value>
+  </data>
+  <data name="label2.TabIndex" type="System.Int32, mscorlib">
+    <value>1</value>
+  </data>
+  <data name="label2.Text" xml:space="preserve">
+    <value>Transparency</value>
+  </data>
+  <data name="&gt;&gt;label2.Name" xml:space="preserve">
+    <value>label2</value>
+  </data>
+  <data name="&gt;&gt;label2.Type" xml:space="preserve">
+    <value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </data>
+  <data name="&gt;&gt;label2.Parent" xml:space="preserve">
+    <value>groupBox1</value>
+  </data>
+  <data name="&gt;&gt;label2.ZOrder" xml:space="preserve">
+    <value>5</value>
+  </data>
+  <data name="label1.AutoSize" type="System.Boolean, mscorlib">
+    <value>True</value>
+  </data>
+  <data name="label1.Location" type="System.Drawing.Point, System.Drawing">
+    <value>23, 35</value>
+  </data>
+  <data name="label1.Size" type="System.Drawing.Size, System.Drawing">
+    <value>47, 13</value>
+  </data>
+  <data name="label1.TabIndex" type="System.Int32, mscorlib">
+    <value>0</value>
+  </data>
+  <data name="label1.Text" xml:space="preserve">
+    <value>Rotation</value>
+  </data>
+  <data name="&gt;&gt;label1.Name" xml:space="preserve">
+    <value>label1</value>
+  </data>
+  <data name="&gt;&gt;label1.Type" xml:space="preserve">
+    <value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </data>
+  <data name="&gt;&gt;label1.Parent" xml:space="preserve">
+    <value>groupBox1</value>
+  </data>
+  <data name="&gt;&gt;label1.ZOrder" xml:space="preserve">
+    <value>6</value>
+  </data>
+  <data name="groupBox1.Location" type="System.Drawing.Point, System.Drawing">
+    <value>15, 7</value>
+  </data>
+  <data name="groupBox1.Size" type="System.Drawing.Size, System.Drawing">
+    <value>200, 311</value>
+  </data>
+  <data name="groupBox1.TabIndex" type="System.Int32, mscorlib">
+    <value>0</value>
+  </data>
+  <data name="groupBox1.Text" xml:space="preserve">
+    <value>Appearance</value>
+  </data>
+  <data name="&gt;&gt;groupBox1.Name" xml:space="preserve">
+    <value>groupBox1</value>
+  </data>
+  <data name="&gt;&gt;groupBox1.Type" xml:space="preserve">
+    <value>System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </data>
+  <data name="&gt;&gt;groupBox1.Parent" xml:space="preserve">
+    <value>contentPanel</value>
+  </data>
+  <data name="&gt;&gt;groupBox1.ZOrder" xml:space="preserve">
+    <value>1</value>
+  </data>
+  <data name="contentPanel.Size" type="System.Drawing.Size, System.Drawing">
+    <value>543, 332</value>
+  </data>
+  <data name="&gt;&gt;contentPanel.Name" xml:space="preserve">
+    <value>contentPanel</value>
+  </data>
+  <data name="&gt;&gt;contentPanel.Type" xml:space="preserve">
+    <value>System.Windows.Forms.Panel, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </data>
+  <data name="&gt;&gt;contentPanel.Parent" xml:space="preserve">
+    <value>$this</value>
+  </data>
+  <data name="&gt;&gt;contentPanel.ZOrder" xml:space="preserve">
+    <value>0</value>
+  </data>
+  <metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+    <value>True</value>
+  </metadata>
+  <data name="$this.HeaderText" xml:space="preserve">
+    <value>Watermark Settings</value>
+  </data>
+  <data name="$this.Size" type="System.Drawing.Size, System.Drawing">
+    <value>543, 359</value>
+  </data>
+  <data name="&gt;&gt;$this.Name" xml:space="preserve">
+    <value>WatermarkSettingsCtrl</value>
+  </data>
+  <data name="&gt;&gt;$this.Type" xml:space="preserve">
+    <value>Maestro.Editors.Common.EditorBindableCollapsiblePanel, Maestro.Editors, Version=3.1.0.5859, Culture=neutral, PublicKeyToken=null</value>
+  </data>
+</root>
\ No newline at end of file

Modified: trunk/Tools/Maestro/Maestro.Shared.UI/CollapsiblePanel.cs
===================================================================
--- trunk/Tools/Maestro/Maestro.Shared.UI/CollapsiblePanel.cs	2011-06-30 14:26:06 UTC (rev 5960)
+++ trunk/Tools/Maestro/Maestro.Shared.UI/CollapsiblePanel.cs	2011-06-30 15:57:53 UTC (rev 5961)
@@ -78,6 +78,7 @@
         /// </summary>
         /// <value>The header text.</value>
         [Category("Collapsible Panel Header")]
+        [Localizable(true)]
         public string HeaderText
         {
             get { return lblHeaderText.Text; }

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/SymbolInterfaces.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/SymbolInterfaces.cs	2011-06-30 14:26:06 UTC (rev 5960)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/SymbolInterfaces.cs	2011-06-30 15:57:53 UTC (rev 5961)
@@ -217,6 +217,11 @@
         /// Gets the type of symbol definition
         /// </summary>
         SymbolDefinitionType Type { get; }
+
+        /// <summary>
+        /// Purges the schema and version attributes when serializing back to XML
+        /// </summary>
+        void RemoveSchemaAttributes();
     }
 
     /// <summary>

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/WatermarkInterfaces.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/WatermarkInterfaces.cs	2011-06-30 14:26:06 UTC (rev 5960)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/WatermarkInterfaces.cs	2011-06-30 15:57:53 UTC (rev 5961)
@@ -125,6 +125,10 @@
         /// </summary>
         /// <returns></returns>
         IWatermark CreateInstance();
+
+        IXYPosition CreateXYPosition();
+
+        ITilePosition CreateTilePosition();
     }
 
     /// <summary>

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/XmlValidator.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/XmlValidator.cs	2011-06-30 14:26:06 UTC (rev 5960)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/XmlValidator.cs	2011-06-30 15:57:53 UTC (rev 5961)
@@ -173,8 +173,36 @@
                         if (sym != null)
                             xsds.Add("SymbolDefinition-1.1.0.xsd", sym);
                     }
+                    else if (version.StartsWith("2.3.0"))
+                    {
+                        var wmd = GetXsd(xsdPath, "WatermarkDefinition-2.3.0.xsd");
+                        if (wmd != null)
+                            xsds.Add("WatermarkDefinition-2.3.0.xsd", wmd);
+                    }
                 }
 
+                if (res.ResourceType == ResourceTypes.WatermarkDefinition)
+                {
+                    string version = res.ResourceVersion.ToString();
+                    if (version.StartsWith("2.3.0"))
+                    {
+                        var sym = GetXsd(xsdPath, "SymbolDefinition-1.1.0.xsd");
+                        if (sym != null)
+                            xsds.Add("SymbolDefinition-1.1.0.xsd", sym);
+                    }
+                }
+
+                if (res.ResourceType == ResourceTypes.MapDefinition)
+                {
+                    string version = res.ResourceVersion.ToString();
+                    if (version.StartsWith("2.3.0"))
+                    {
+                        var wmd = GetXsd(xsdPath, "WatermarkDefinition-2.3.0.xsd");
+                        if (wmd != null)
+                            xsds.Add("WatermarkDefinition-2.3.0.xsd", wmd);
+                    }
+                }
+
                 var validator = new XmlValidator();
                 using (var ms = new MemoryStream(Encoding.UTF8.GetBytes(xml)))
                 {



More information about the mapguide-commits mailing list