[mapguide-commits] r5263 - in sandbox/maestro-3.0: ExtendedModels/SymbolDefinition-1.1.0 Generated OSGeo.MapGuide.MaestroAPI OSGeo.MapGuide.MaestroAPI/ObjectModels

svn_mapguide at osgeo.org svn_mapguide at osgeo.org
Sun Oct 10 20:28:00 EDT 2010


Author: jng
Date: 2010-10-10 17:28:00 -0700 (Sun, 10 Oct 2010)
New Revision: 5263

Added:
   sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/SymbolInterfaces.cs
Modified:
   sandbox/maestro-3.0/ExtendedModels/SymbolDefinition-1.1.0/OSGeo.MapGuide.ObjectModels.SymbolDefinition-1.1.0.csproj
   sandbox/maestro-3.0/Generated/LayerDefinition-1.1.0.designer.cs
   sandbox/maestro-3.0/Generated/LayerDefinition-1.2.0.designer.cs
   sandbox/maestro-3.0/Generated/LayerDefinition-1.3.0.designer.cs
   sandbox/maestro-3.0/Generated/SymbolDefinition-1.0.0.designer.cs
   sandbox/maestro-3.0/Generated/SymbolDefinition-1.1.0.designer.cs
   sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/OSGeo.MapGuide.MaestroAPI.csproj
   sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/LayerInterfaces.cs
Log:
Introduce new interfaces to the 3.0 sandbox
 - Introduce interfaces for Layer Definition schemas 1.1.0, 1.2.0 and 1.3.0
 - Introduce interfaces for Symbol Definition schema 1.0.0

Nothing implements these interfaces thus far. Existing classes will be augmented to implement these interfaces in a future submission


Modified: sandbox/maestro-3.0/ExtendedModels/SymbolDefinition-1.1.0/OSGeo.MapGuide.ObjectModels.SymbolDefinition-1.1.0.csproj
===================================================================
--- sandbox/maestro-3.0/ExtendedModels/SymbolDefinition-1.1.0/OSGeo.MapGuide.ObjectModels.SymbolDefinition-1.1.0.csproj	2010-10-09 03:01:44 UTC (rev 5262)
+++ sandbox/maestro-3.0/ExtendedModels/SymbolDefinition-1.1.0/OSGeo.MapGuide.ObjectModels.SymbolDefinition-1.1.0.csproj	2010-10-11 00:28:00 UTC (rev 5263)
@@ -41,6 +41,12 @@
     </Compile>
     <Compile Include="Properties\AssemblyInfo.cs" />
   </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="..\..\OSGeo.MapGuide.MaestroAPI\OSGeo.MapGuide.MaestroAPI.csproj">
+      <Project>{80FA3158-8B5F-48D1-A393-0378AFE48A7E}</Project>
+      <Name>OSGeo.MapGuide.MaestroAPI</Name>
+    </ProjectReference>
+  </ItemGroup>
   <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
   <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
        Other similar extension points exist, see Microsoft.Common.targets.

Modified: sandbox/maestro-3.0/Generated/LayerDefinition-1.1.0.designer.cs
===================================================================
--- sandbox/maestro-3.0/Generated/LayerDefinition-1.1.0.designer.cs	2010-10-09 03:01:44 UTC (rev 5262)
+++ sandbox/maestro-3.0/Generated/LayerDefinition-1.1.0.designer.cs	2010-10-11 00:28:00 UTC (rev 5263)
@@ -17855,17 +17855,6 @@
     
     [System.CodeDom.Compiler.GeneratedCodeAttribute("Xsd2Code", "3.3.0.33572")]
     [System.SerializableAttribute()]
-    public enum ElevationTypeType {
-        
-        /// <remarks/>
-        RelativeToGround,
-        
-        /// <remarks/>
-        Absolute,
-    }
-    
-    [System.CodeDom.Compiler.GeneratedCodeAttribute("Xsd2Code", "3.3.0.33572")]
-    [System.SerializableAttribute()]
     [System.Diagnostics.DebuggerStepThroughAttribute()]
     [System.ComponentModel.DesignerCategoryAttribute("code")]
     [System.Xml.Serialization.XmlRootAttribute(Namespace="", IsNullable=true)]

Modified: sandbox/maestro-3.0/Generated/LayerDefinition-1.2.0.designer.cs
===================================================================
--- sandbox/maestro-3.0/Generated/LayerDefinition-1.2.0.designer.cs	2010-10-09 03:01:44 UTC (rev 5262)
+++ sandbox/maestro-3.0/Generated/LayerDefinition-1.2.0.designer.cs	2010-10-11 00:28:00 UTC (rev 5263)
@@ -13329,17 +13329,6 @@
     
     [System.CodeDom.Compiler.GeneratedCodeAttribute("Xsd2Code", "3.3.0.33572")]
     [System.SerializableAttribute()]
-    public enum FeatureNameType {
-        
-        /// <remarks/>
-        FeatureClass,
-        
-        /// <remarks/>
-        NamedExtension,
-    }
-    
-    [System.CodeDom.Compiler.GeneratedCodeAttribute("Xsd2Code", "3.3.0.33572")]
-    [System.SerializableAttribute()]
     [System.Diagnostics.DebuggerStepThroughAttribute()]
     [System.ComponentModel.DesignerCategoryAttribute("code")]
     [System.Xml.Serialization.XmlRootAttribute(Namespace="", IsNullable=true)]
@@ -16793,40 +16782,6 @@
     
     [System.CodeDom.Compiler.GeneratedCodeAttribute("Xsd2Code", "3.3.0.33572")]
     [System.SerializableAttribute()]
-    public enum UsageContextType {
-        
-        /// <remarks/>
-        Unspecified,
-        
-        /// <remarks/>
-        Point,
-        
-        /// <remarks/>
-        Line,
-        
-        /// <remarks/>
-        Area,
-    }
-    
-    [System.CodeDom.Compiler.GeneratedCodeAttribute("Xsd2Code", "3.3.0.33572")]
-    [System.SerializableAttribute()]
-    public enum GeometryContextType {
-        
-        /// <remarks/>
-        Unspecified,
-        
-        /// <remarks/>
-        Point,
-        
-        /// <remarks/>
-        LineString,
-        
-        /// <remarks/>
-        Polygon,
-    }
-    
-    [System.CodeDom.Compiler.GeneratedCodeAttribute("Xsd2Code", "3.3.0.33572")]
-    [System.SerializableAttribute()]
     [System.Diagnostics.DebuggerStepThroughAttribute()]
     [System.ComponentModel.DesignerCategoryAttribute("code")]
     [System.Xml.Serialization.XmlRootAttribute(Namespace="", IsNullable=true)]
@@ -18388,17 +18343,6 @@
     
     [System.CodeDom.Compiler.GeneratedCodeAttribute("Xsd2Code", "3.3.0.33572")]
     [System.SerializableAttribute()]
-    public enum ElevationTypeType {
-        
-        /// <remarks/>
-        RelativeToGround,
-        
-        /// <remarks/>
-        Absolute,
-    }
-    
-    [System.CodeDom.Compiler.GeneratedCodeAttribute("Xsd2Code", "3.3.0.33572")]
-    [System.SerializableAttribute()]
     [System.Diagnostics.DebuggerStepThroughAttribute()]
     [System.ComponentModel.DesignerCategoryAttribute("code")]
     [System.Xml.Serialization.XmlRootAttribute(Namespace="", IsNullable=true)]

Modified: sandbox/maestro-3.0/Generated/LayerDefinition-1.3.0.designer.cs
===================================================================
--- sandbox/maestro-3.0/Generated/LayerDefinition-1.3.0.designer.cs	2010-10-09 03:01:44 UTC (rev 5262)
+++ sandbox/maestro-3.0/Generated/LayerDefinition-1.3.0.designer.cs	2010-10-11 00:28:00 UTC (rev 5263)
@@ -13328,17 +13328,6 @@
     
     [System.CodeDom.Compiler.GeneratedCodeAttribute("Xsd2Code", "3.3.0.33572")]
     [System.SerializableAttribute()]
-    public enum FeatureNameType {
-        
-        /// <remarks/>
-        FeatureClass,
-        
-        /// <remarks/>
-        NamedExtension,
-    }
-    
-    [System.CodeDom.Compiler.GeneratedCodeAttribute("Xsd2Code", "3.3.0.33572")]
-    [System.SerializableAttribute()]
     [System.Diagnostics.DebuggerStepThroughAttribute()]
     [System.ComponentModel.DesignerCategoryAttribute("code")]
     [System.Xml.Serialization.XmlRootAttribute(Namespace="", IsNullable=true)]
@@ -16832,40 +16821,6 @@
     
     [System.CodeDom.Compiler.GeneratedCodeAttribute("Xsd2Code", "3.3.0.33572")]
     [System.SerializableAttribute()]
-    public enum UsageContextType {
-        
-        /// <remarks/>
-        Unspecified,
-        
-        /// <remarks/>
-        Point,
-        
-        /// <remarks/>
-        Line,
-        
-        /// <remarks/>
-        Area,
-    }
-    
-    [System.CodeDom.Compiler.GeneratedCodeAttribute("Xsd2Code", "3.3.0.33572")]
-    [System.SerializableAttribute()]
-    public enum GeometryContextType {
-        
-        /// <remarks/>
-        Unspecified,
-        
-        /// <remarks/>
-        Point,
-        
-        /// <remarks/>
-        LineString,
-        
-        /// <remarks/>
-        Polygon,
-    }
-    
-    [System.CodeDom.Compiler.GeneratedCodeAttribute("Xsd2Code", "3.3.0.33572")]
-    [System.SerializableAttribute()]
     [System.Diagnostics.DebuggerStepThroughAttribute()]
     [System.ComponentModel.DesignerCategoryAttribute("code")]
     [System.Xml.Serialization.XmlRootAttribute(Namespace="", IsNullable=true)]
@@ -18467,17 +18422,6 @@
     
     [System.CodeDom.Compiler.GeneratedCodeAttribute("Xsd2Code", "3.3.0.33572")]
     [System.SerializableAttribute()]
-    public enum ElevationTypeType {
-        
-        /// <remarks/>
-        RelativeToGround,
-        
-        /// <remarks/>
-        Absolute,
-    }
-    
-    [System.CodeDom.Compiler.GeneratedCodeAttribute("Xsd2Code", "3.3.0.33572")]
-    [System.SerializableAttribute()]
     [System.Diagnostics.DebuggerStepThroughAttribute()]
     [System.ComponentModel.DesignerCategoryAttribute("code")]
     [System.Xml.Serialization.XmlRootAttribute(Namespace="", IsNullable=true)]

Modified: sandbox/maestro-3.0/Generated/SymbolDefinition-1.0.0.designer.cs
===================================================================
--- sandbox/maestro-3.0/Generated/SymbolDefinition-1.0.0.designer.cs	2010-10-09 03:01:44 UTC (rev 5262)
+++ sandbox/maestro-3.0/Generated/SymbolDefinition-1.0.0.designer.cs	2010-10-11 00:28:00 UTC (rev 5263)
@@ -1939,26 +1939,6 @@
         #endregion
     }
     
-    [System.CodeDom.Compiler.GeneratedCodeAttribute("Xsd2Code", "3.3.0.33572")]
-    [System.SerializableAttribute()]
-    public enum DataType {
-        
-        /// <remarks/>
-        String,
-        
-        /// <remarks/>
-        Boolean,
-        
-        /// <remarks/>
-        Integer,
-        
-        /// <remarks/>
-        Real,
-        
-        /// <remarks/>
-        Color,
-    }
-    
     /// <summary>
     /// The list of parameters used in this symbol.  If a parameter is not listed here this is considered a bug in the symbol definition.
     /// </summary>

Modified: sandbox/maestro-3.0/Generated/SymbolDefinition-1.1.0.designer.cs
===================================================================
--- sandbox/maestro-3.0/Generated/SymbolDefinition-1.1.0.designer.cs	2010-10-09 03:01:44 UTC (rev 5262)
+++ sandbox/maestro-3.0/Generated/SymbolDefinition-1.1.0.designer.cs	2010-10-11 00:28:00 UTC (rev 5263)
@@ -4,7 +4,7 @@
 //    <NameSpace>OSGeo.MapGuide.ObjectModels.SymbolDefinition</NameSpace><Collection>BindingList</Collection><codeType>CSharp</codeType><EnableDataBinding>True</EnableDataBinding><EnableLasyLoading>False</EnableLasyLoading><HidePrivateFieldInIDE>True</HidePrivateFieldInIDE><EnableSummaryComment>True</EnableSummaryComment><IncludeSerializeMethod>True</IncludeSerializeMethod><UseBaseClass>False</UseBaseClass><GenerateCloneMethod>True</GenerateCloneMethod><GenerateDataContracts>False</GenerateDataContracts><CodeBaseTag>Net20</CodeBaseTag><SerializeMethodName>Serialize</SerializeMethodName><DeserializeMethodName>Deserialize</DeserializeMethodName><SaveToFileMethodName>SaveToFile</SaveToFileMethodName><LoadFromFileMethodName>LoadFromFile</LoadFromFileMethodName><GenerateXMLAttributes>True</GenerateXMLAttributes><AutomaticProperties>False</AutomaticProperties><DisableDebug>False</DisableDebug><CustomUsings></CustomUsings><ExcludeIncludedTypes>False</ExcludeIncludedTypes><EnableIni
 tializeFields>False</EnableInitializeFields>
 //  </auto-generated>
 // ------------------------------------------------------------------------------
-namespace OSGeo.MapGuide.ObjectModels.SymbolDefinition {
+namespace OSGeo.MapGuide.ObjectModels.SymbolDefinition_1_1_0 {
     using System;
     using System.Diagnostics;
     using System.Xml.Serialization;
@@ -12,8 +12,8 @@
     using System.Xml.Schema;
     using System.ComponentModel;
     using System.IO;
+    using OSGeo.MapGuide.ObjectModels.SymbolDefinition;
     
-    
     [System.CodeDom.Compiler.GeneratedCodeAttribute("Xsd2Code", "3.3.0.33572")]
     [System.SerializableAttribute()]
     [System.Diagnostics.DebuggerStepThroughAttribute()]
@@ -1938,104 +1938,6 @@
         #endregion
     }
     
-    [System.CodeDom.Compiler.GeneratedCodeAttribute("Xsd2Code", "3.3.0.33572")]
-    [System.SerializableAttribute()]
-    public enum DataType {
-        
-        /// <remarks/>
-        String,
-        
-        /// <remarks/>
-        Boolean,
-        
-        /// <remarks/>
-        Integer,
-        
-        /// <remarks/>
-        Real,
-        
-        /// <remarks/>
-        Color,
-        
-        /// <remarks/>
-        Angle,
-        
-        /// <remarks/>
-        FillColor,
-        
-        /// <remarks/>
-        LineColor,
-        
-        /// <remarks/>
-        LineWeight,
-        
-        /// <remarks/>
-        Content,
-        
-        /// <remarks/>
-        Markup,
-        
-        /// <remarks/>
-        FontName,
-        
-        /// <remarks/>
-        Bold,
-        
-        /// <remarks/>
-        Italic,
-        
-        /// <remarks/>
-        Underlined,
-        
-        /// <remarks/>
-        Overlined,
-        
-        /// <remarks/>
-        ObliqueAngle,
-        
-        /// <remarks/>
-        TrackSpacing,
-        
-        /// <remarks/>
-        FontHeight,
-        
-        /// <remarks/>
-        HorizontalAlignment,
-        
-        /// <remarks/>
-        VerticalAlignment,
-        
-        /// <remarks/>
-        Justification,
-        
-        /// <remarks/>
-        LineSpacing,
-        
-        /// <remarks/>
-        TextColor,
-        
-        /// <remarks/>
-        GhostColor,
-        
-        /// <remarks/>
-        FrameLineColor,
-        
-        /// <remarks/>
-        FrameFillColor,
-        
-        /// <remarks/>
-        StartOffset,
-        
-        /// <remarks/>
-        EndOffset,
-        
-        /// <remarks/>
-        RepeatX,
-        
-        /// <remarks/>
-        RepeatY,
-    }
-    
     /// <summary>
     /// The list of parameters used in this symbol.  If a parameter is not listed here this is considered a bug in the symbol definition.
     /// </summary>

Modified: sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/OSGeo.MapGuide.MaestroAPI.csproj
===================================================================
--- sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/OSGeo.MapGuide.MaestroAPI.csproj	2010-10-09 03:01:44 UTC (rev 5262)
+++ sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/OSGeo.MapGuide.MaestroAPI.csproj	2010-10-11 00:28:00 UTC (rev 5263)
@@ -194,6 +194,7 @@
     <Compile Include="ObjectModels\Envelope.cs" />
     <Compile Include="ObjectModels\FeatureSource.cs" />
     <Compile Include="ObjectModels\LayerFactory.cs" />
+    <Compile Include="ObjectModels\SymbolInterfaces.cs" />
     <Compile Include="ObjectModels\VectorLayerDefinitionImpl.cs" />
     <Compile Include="ObjectModels\LayerInterfaceExtensions.cs" />
     <Compile Include="ObjectModels\LayerInterfaces.cs" />

Modified: sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/LayerInterfaces.cs
===================================================================
--- sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/LayerInterfaces.cs	2010-10-09 03:01:44 UTC (rev 5262)
+++ sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/LayerInterfaces.cs	2010-10-11 00:28:00 UTC (rev 5263)
@@ -29,6 +29,7 @@
 using OSGeo.MapGuide.MaestroAPI;
 using OSGeo.MapGuide.MaestroAPI.ObjectModels;
 using System.ComponentModel;
+using OSGeo.MapGuide.ObjectModels.SymbolDefinition;
 
 namespace OSGeo.MapGuide.ObjectModels.LayerDefinition
 {
@@ -1247,4 +1248,193 @@
     }
 
     #endregion
+
+    #region Layer Definition 1.1.0 interfaces
+
+    [System.SerializableAttribute()]
+    public enum ElevationTypeType
+    {
+
+        /// <remarks/>
+        RelativeToGround,
+
+        /// <remarks/>
+        Absolute,
+    }
+
+    /// <summary>
+    /// Represents a composite style definition
+    /// </summary>
+    public interface ICompositeTypeStyle
+    {
+        IEnumerable<ICompositeRule> CompositeRule { get; }
+
+        void AddCompositeRule(ICompositeRule compRule);
+
+        void RemoveCompositeRule(ICompositeRule compRule);
+    }
+
+    public interface ICompositeRule
+    {
+        string LegendLabel { get; set; }
+
+        string Filter { get; set; }
+
+        ICompositeSymbolization CompositeSymbolization { get; set; }
+    }
+
+    public interface ICompositeSymbolization
+    {
+        IEnumerable<ISymbolInstance> SymbolInstance { get; }
+
+        void AddSymbolInstance(ISymbolInstance inst);
+
+        void RemoveSymbolInstance(ISymbolInstance inst);
+    }
+
+    /// <summary>
+    /// Represents a parameter override
+    /// </summary>
+    public interface IParameterOverride
+    {
+        /// <summary>
+        /// Gets or sets the name of the symbol definition containing that parameter being overridden
+        /// </summary>
+        string SymbolName { get; set; }
+
+        /// <summary>
+        /// Gets or sets the identifier of the parameter being overridden
+        /// </summary>
+        string ParameterIdentifier { get; set; }
+
+        /// <summary>
+        /// Gets or sets the override value for the parameter
+        /// </summary>
+        string ParameterValue { get; set; }
+    }
+
+    /// <summary>
+    /// A collection of parameter overrides
+    /// </summary>
+    public interface IParameterOverrideCollection
+    {
+        IEnumerable<IParameterOverride> Override { get; }
+
+        void AddOverride(IParameterOverride ov);
+
+        void RemoveOverride(IParameterOverride ov);
+    }
+
+    
+
+    public interface IElevationSettings
+    {
+        string ZOffset { get; set; }
+        string ZExtrusion { get; set; }
+        ElevationTypeType ZOffsetType { get; set; }
+        LengthUnitType Unit { get; set; }
+    }
+
+    #endregion
+
+    #region Layer Definition 1.2.0 interfaces
+
+    [System.SerializableAttribute()]
+    public enum UsageContextType
+    {
+
+        /// <remarks/>
+        Unspecified,
+
+        /// <remarks/>
+        Point,
+
+        /// <remarks/>
+        Line,
+
+        /// <remarks/>
+        Area,
+    }
+
+    [System.SerializableAttribute()]
+    public enum GeometryContextType
+    {
+
+        /// <remarks/>
+        Unspecified,
+
+        /// <remarks/>
+        Point,
+
+        /// <remarks/>
+        LineString,
+
+        /// <remarks/>
+        Polygon,
+    }
+
+    /// <summary>
+    /// Provides legend labeling information for a theme
+    /// </summary>
+    public interface IThemeLabel
+    {
+        /// <summary>
+        /// Gets or sets the legend description for the theme
+        /// </summary>
+        string Description { get; set; }
+
+        /// <summary>
+        /// Gets or sets the default legend format to use for each category
+        /// </summary>
+        string CategoryFormat { get; set; }
+    }
+
+    /// <summary>
+    /// Version 2 of parameter overrides that supports theme labels. Applies to v1.2.0 of the Layer Definition schema
+    /// </summary>
+    public interface IParameterOverride2 : IParameterOverride
+    {
+        IThemeLabel ThemeLabel { get; set; }
+    }
+
+    /// <summary>
+    /// Version 2 of symbol instance that supports rendering passes and specific contexts. Applies to v1.2.0 of the Layer Definition schema
+    /// </summary>
+    public interface ISymbolInstance2 : ISymbolInstance
+    {
+        string RenderingPass { get; set; }
+
+        UsageContextType UsageContext { get; set; }
+
+        GeometryContextType GeometryContext { get; set; }
+    }
+
+    #endregion
+
+    #region Layer Definition 1.3.0 interfaces
+
+    public interface IPointVectorStyle2 : IPointVectorStyle
+    {
+        bool ShowInLegend { get; set; }
+    }
+
+    public interface ILineVectorStyle2 : ILineVectorStyle
+    {
+        bool ShowInLegend { get; set; }
+    }
+
+    public interface IAreaVectorStyle2 : IAreaVectorStyle
+    {
+        bool ShowInLegend { get; set; }
+    }
+
+    public interface ICompositeTypeStyle2 : ICompositeTypeStyle
+    {
+        bool ShowInLegend { get; set; }
+    }
+
+    #endregion
+
+    #region Layer Definition 2.3.0 interfaces
+    #endregion
 }

Added: sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/SymbolInterfaces.cs
===================================================================
--- sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/SymbolInterfaces.cs	                        (rev 0)
+++ sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/SymbolInterfaces.cs	2010-10-11 00:28:00 UTC (rev 5263)
@@ -0,0 +1,619 @@
+#region Disclaimer / License
+// Copyright (C) 2010, Jackie Ng
+// http://trac.osgeo.org/mapguide/wiki/maestro, jumpinjackie at gmail.com
+// 
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+// 
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+// 
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+// 
+#endregion
+using System;
+using System.Collections.Generic;
+using System.Text;
+using OSGeo.MapGuide.ObjectModels.LayerDefinition;
+
+namespace OSGeo.MapGuide.ObjectModels.SymbolDefinition
+{
+    public enum SymbolInstanceType
+    {
+        /// <summary>
+        /// A library reference to an existing symbol definition
+        /// </summary>
+        Reference,
+        /// <summary>
+        /// An inline simple symbol definition
+        /// </summary>
+        Simple,
+        /// <summary>
+        /// An inline compound symbol definition
+        /// </summary>
+        Compound
+    }
+
+    /// <summary>
+    /// Represents a symbol instance used for advanced cartographic stylization
+    /// </summary>
+    public interface ISymbolInstance
+    {
+        ISymbolInstanceReference Reference { get; set; }
+
+        IParameterOverrideCollection ParameterOverrides { get; }
+
+        double? ScaleX { get; set; }
+
+        double? ScaleY { get; set; }
+
+        double? InsertionOffsetX { get; set; }
+
+        double? InsertionOffsetY { get; set; }
+
+        SizeContextType SizeContext { get; set; }
+
+        bool? DrawLast { get; set; }
+
+        bool? CheckExclusionRegion { get; set; }
+
+        bool? AddToExclusionRegion { get; set; }
+
+        string PositionAlgorithm { get; set; }
+    }
+
+    public interface ISymbolInstanceReference
+    {
+        SymbolInstanceType Type { get; }
+    }
+
+    public interface ISymbolLibraryReference : ISymbolInstanceReference
+    {
+        string ResourceId { get; set; }
+    }
+
+    public interface IInlineSimpleSymbolReference : ISymbolInstanceReference
+    {
+        ISimpleSymbolDefinition SimpleSymbolDefinition { get; set; } 
+    }
+
+    public interface IInlineCompoundSymbolReference : ISymbolInstanceReference
+    {
+        ICompoundSymbolDefinition CompoundSymbolDefinition { get; set; }
+    }
+
+    #region Symbol Definition 1.0.0 interfaces
+
+    /// <summary>
+    /// Base interface of all symbol definitions
+    /// </summary>
+    public interface ISymbolDefinitionBase
+    {
+        string Name { get; set; }
+
+        string Description { get; set; }
+    }
+
+    public interface ISimpleSymbolDefinition : ISymbolDefinitionBase
+    {
+        IEnumerable<IGraphics> Graphics { get; }
+
+        void AddGraphics(IGraphics graphics);
+
+        void RemoveGraphics(IGraphics graphics);
+
+        IResizeBox ResizeBox { get; set; }
+
+        IPointUsage PointUsage { get; set; }
+
+        ILineUsage LineUsage { get; set; }
+
+        IAreaUsage AreaUsage { get; set; }
+
+        IParameterDefinition ParameterDefinition { get; }
+    }
+
+    public interface ICompoundSymbolDefinition : ISymbolDefinitionBase
+    {
+        IEnumerable<ISimpleSymbolReferenceBase> SimpleSymbol { get; }
+
+        void AddSimpleSymbol(ISimpleSymbolReferenceBase sym);
+
+        void RemoveSimpleSymbol(ISimpleSymbolReferenceBase sym);
+    }
+
+    /// <summary>
+    /// A collection of graphic elements
+    /// </summary>
+    public interface IGraphics
+    {
+        IEnumerable<IGraphicBase> Elements { get; }
+
+        void AddGraphicElement(IGraphicBase graphics);
+
+        void RemoveGraphicElement(IGraphicBase graphics);
+    }
+
+    /// <summary>
+    /// Defines a resize box used with SimpleSymbolDefinitions
+    /// </summary>
+    public interface IResizeBox
+    {
+        /// <summary>
+        /// Gets or sets initial width of the resize box, in mm.  This must be greater than or equal to zero
+        /// </summary>
+        double? SizeX { get; set; }
+
+        /// <summary>
+        /// Gets or sets initial height of the resize box, in mm.  This must be greater than or equal to zero
+        /// </summary>
+        double? SizeY { get; set; }
+
+        /// <summary>
+        /// Gets or sets initial x-coordinate of the resize box center, in mm
+        /// </summary>
+        double? PositionX { get; set; }
+
+        /// <summary>
+        /// Gets or sets initial y-coordinate of the resize box center, in mm
+        /// </summary>
+        double? PositionY { get; set; }
+
+        /// <summary>
+        /// Gets or sets how the resize box grows in size.  This must evaluate to one of: GrowInX, GrowInY, GrowInXY, or GrowInXYMaintainAspect (default).
+        /// </summary>
+        string GrowControl { get; set; }
+    }
+
+    public interface IUsageBase
+    {
+        /// <summary>
+        /// Specifies how the symbol angle is defined.  This must evaluate to one of: FromAngle (default) or FromGeometry
+        /// </summary>
+        string AngleControl { get; set; }
+
+        /// <summary>
+        /// Specifies the symbol angle, in degrees.  Only applies if AngleControl evaluates to FromAngle.  Defaults to 0
+        /// </summary>
+        double? Angle { get; set; }
+    }
+
+    /// <summary>
+    /// Specifies how a symbol is used in the context of point features
+    /// </summary>
+    public interface IPointUsage : IUsageBase
+    {
+        /// <summary>
+        /// Specifies the horizontal offset to apply to the symbol origin, in mm.  This offset is applied before the symbol is scaled and rotated.  Defaults to 0
+        /// </summary>
+        double OriginOffsetX { get; set; }
+
+        /// <summary>
+        /// Specifies the vertical offset to apply to the symbol origin, in mm.  This offset is applied before the symbol is scaled and rotated.  Defaults to 0
+        /// </summary>
+        double OriginOffsetY { get; set; }
+    }
+
+    public interface ILineUsage : IUsageBase
+    {
+        string UnitsControl { get; set; }
+
+        string VertexControl { get; set; }
+
+        double? StartOffset { get; set; }
+
+        double? EndOffset { get; set; }
+
+        double? Repeat { get; set; }
+
+        double? VertexAngleLimit { get; set; }
+
+        string VertexJoin { get; set; }
+
+        string VertexMiterLimit { get; set; }
+
+        IPath DefaultPath { get; set; }
+    }
+
+    public interface IAreaUsage : IUsageBase
+    {
+        string OriginControl { get; set; }
+
+        string ClippingControl { get; set; }
+
+        double? OriginX { get; set; }
+
+        double? OriginY { get; set; }
+
+        double? RepeatX { get; set; }
+
+        double? RepeatY { get; set; }
+
+        double? BufferWidth { get; set; }
+    }
+
+    [System.CodeDom.Compiler.GeneratedCodeAttribute("Xsd2Code", "3.3.0.33572")]
+    [System.SerializableAttribute()]
+    public enum DataType
+    {
+
+        /// <remarks/>
+        String,
+
+        /// <remarks/>
+        Boolean,
+
+        /// <remarks/>
+        Integer,
+
+        /// <remarks/>
+        Real,
+
+        /// <remarks/>
+        Color,
+    }
+
+    [System.SerializableAttribute()]
+    public enum DataType2
+    {
+
+        /// <remarks/>
+        String,
+
+        /// <remarks/>
+        Boolean,
+
+        /// <remarks/>
+        Integer,
+
+        /// <remarks/>
+        Real,
+
+        /// <remarks/>
+        Color,
+
+        /// <remarks/>
+        Angle,
+
+        /// <remarks/>
+        FillColor,
+
+        /// <remarks/>
+        LineColor,
+
+        /// <remarks/>
+        LineWeight,
+
+        /// <remarks/>
+        Content,
+
+        /// <remarks/>
+        Markup,
+
+        /// <remarks/>
+        FontName,
+
+        /// <remarks/>
+        Bold,
+
+        /// <remarks/>
+        Italic,
+
+        /// <remarks/>
+        Underlined,
+
+        /// <remarks/>
+        Overlined,
+
+        /// <remarks/>
+        ObliqueAngle,
+
+        /// <remarks/>
+        TrackSpacing,
+
+        /// <remarks/>
+        FontHeight,
+
+        /// <remarks/>
+        HorizontalAlignment,
+
+        /// <remarks/>
+        VerticalAlignment,
+
+        /// <remarks/>
+        Justification,
+
+        /// <remarks/>
+        LineSpacing,
+
+        /// <remarks/>
+        TextColor,
+
+        /// <remarks/>
+        GhostColor,
+
+        /// <remarks/>
+        FrameLineColor,
+
+        /// <remarks/>
+        FrameFillColor,
+
+        /// <remarks/>
+        StartOffset,
+
+        /// <remarks/>
+        EndOffset,
+
+        /// <remarks/>
+        RepeatX,
+
+        /// <remarks/>
+        RepeatY,
+    }
+
+    public interface IParameter
+    {
+        string Identifier { get; set; }
+
+        string DefaultValue { get; set; }
+
+        string DisplayName { get; set; }
+
+        string Description { get; set; }
+
+        DataType DataType { get; set; }
+    }
+
+    public interface IParameterDefinition
+    {
+        IEnumerable<IParameter> Parameter { get; }
+
+        void AddParameter(IParameter param);
+
+        void RemoveParameter(IParameter param);
+    }
+
+    public interface ISimpleSymbolReferenceBase
+    {
+        SimpleSymbolReferenceType Type { get; }
+
+        string RenderingPass { get; set; }
+    }
+
+    public interface ISimpleSymbolLibraryReference : ISimpleSymbolReferenceBase
+    {
+        string ResourceId { get; set; }
+    }
+
+    public interface ISimpleSymbolInlineReference : ISimpleSymbolReferenceBase
+    {
+        ISimpleSymbolDefinition SimpleSymbolDefinition { get; set; }
+    }
+
+    public enum SimpleSymbolReferenceType
+    {
+        Library,
+        Inline
+    }
+
+    public interface IGraphicBase
+    {
+        string ResizeControl { get; set; }
+    }
+
+    public interface IPath : IGraphicBase
+    {
+        string Geometry { get; set; }
+
+        string FillColor { get; set; }
+
+        string LineColor { get; set; }
+
+        double? LineWeight { get; set; }
+
+        bool? LineWeightScalable { get; set; }
+
+        string LineCap { get; set; }
+
+        string LineJoin { get; set; }
+
+        double? LineMiterLimit { get; set; }
+    }
+
+    public interface IImageReference
+    {
+        string ResourceId { get; set; }
+
+        string LibraryItemName { get; set; }
+    }
+
+    public enum ImageType
+    {
+        Reference,
+        Inline
+    }
+
+    public interface IImageBase : IGraphicBase
+    {
+        ImageType Type { get; }
+
+        double? SizeX { get; set; }
+
+        double? SizeY { get; set; }
+
+        bool? SizeScalable { get; set; }
+
+        double? Angle { get; set; }
+
+        double? PositionX { get; set; }
+
+        double? PositionY { get; set; }
+    }
+
+    public interface IInlineImage : IImageBase
+    {
+        byte[] Content { get; set; }
+    }
+
+    public interface IImageReferenceImage : IImageBase
+    {
+        IImageReference Reference { get; set; }
+    }
+
+    public interface ITextFrame
+    {
+        string LineColor { get; set; }
+
+        string FillColor { get; set; }
+
+        double? OffsetX { get; set; }
+
+        double? OffsetY { get; set; }
+    }
+
+    public interface IText : IGraphicBase
+    {
+        string Content { get; set; }
+
+        string FontName { get; set; }
+
+        bool? Bold { get; set; }
+
+        bool? Italic { get; set; }
+
+        bool? Underlined { get; set; }
+
+        double? Height { get; set; }
+
+        bool? HeightScalable { get; set; }
+
+        double? Angle { get; set; }
+
+        double? PositionX { get; set; }
+
+        double? PositionY { get; set; }
+
+        string HorizontalAlignment { get; set; }
+
+        string VerticalAlignment { get; set; }
+
+        string Justification { get; set; }
+
+        double? LineSpacing { get; set; }
+
+        string TextColor { get; set; }
+
+        string GhostColor { get; set; }
+
+        ITextFrame Frame { get; set; }
+    }
+
+    public enum GrowControl
+    {
+        GrowInX,
+        GrowInY,
+        GrowInXY,
+        GrowInXYMaintainAspect,
+    }
+
+    public enum AngleControl
+    {
+        FromAngle,
+        FromGeometry,
+    }
+
+    public enum UnitsControl
+    {
+        Absolute,
+        Parametric,
+    }
+
+    public enum VertexControl
+    {
+        OverlapNone,
+        OverlapDirect,
+        OverlapNoWrap,
+        OverlapWrap,
+    }
+
+    public enum VertexJoin
+    {
+        None,
+        Bevel,
+        Round,
+        Miter,
+    }
+
+    public enum OriginControl
+    {
+        Global,
+        Local,
+        Centroid,
+    }
+
+    public enum ClippingControl
+    {
+        Clip,
+        Inside,
+        Overlap
+    }
+
+    public enum ResizeControl
+    {
+        ResizeNone,
+        AddToResizeBox,
+        AdjustToResizeBox,
+    }
+
+    public enum LineCap
+    {
+        None,
+        Round,
+        Triangle,
+        Square,
+    }
+
+    public enum LineJoin
+    {
+        None,
+        Bevel,
+        Round,
+        Miter,
+    }
+
+    public enum HorizontalAlignment
+    {
+        Left,
+        Center,
+        Right,
+    }
+
+    public enum VerticalAlignment
+    {
+        Bottom,
+        Baseline,
+        Halfline,
+        Capline,
+        Top,
+    }
+
+    public enum Justification
+    {
+        Left,
+        Center,
+        Right,
+        Justified,
+        FromAlignment,
+    }
+
+    #endregion
+
+    #region Symbol Definition 1.1.0 interfaces
+    #endregion
+}



More information about the mapguide-commits mailing list