[mapguide-commits] r8485 - in trunk/Tools/Maestro: . Generated OSGeo.MapGuide.ObjectModel.Tests OSGeo.MapGuide.ObjectModel.Tests/Properties OSGeo.MapGuide.ObjectModel.Tests/Resources OSGeo.MapGuide.ObjectModels OSGeo.MapGuide.ObjectModels/Properties OSGeo.MapGuide.ObjectModels/TileSetDefinition OSGeo.MapGuide.ObjectModels/TileSetDefinition/v3_0_0
svn_mapguide at osgeo.org
svn_mapguide at osgeo.org
Mon Dec 29 08:18:37 PST 2014
Author: jng
Date: 2014-12-29 08:18:37 -0800 (Mon, 29 Dec 2014)
New Revision: 8485
Added:
trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModel.Tests/Resources/UT_BaseMap.tsd
trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModel.Tests/TileSetDefinitionTests.cs
trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/TileSetDefinition/
trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/TileSetDefinition/TileSetInterfaces.cs
trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/TileSetDefinition/v3_0_0/
trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/TileSetDefinition/v3_0_0/TileSetImpl.cs
Modified:
trunk/Tools/Maestro/Generated/TileSetDefinition-3.0.0.designer.cs
trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModel.Tests/OSGeo.MapGuide.ObjectModel.Tests.csproj
trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModel.Tests/ObjectFactoryTests.cs
trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModel.Tests/Properties/Resources.Designer.cs
trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModel.Tests/Properties/Resources.resx
trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/OSGeo.MapGuide.ObjectModels.csproj
trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/ObjectFactory.cs
trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/Properties/AssemblyInfo.cs
trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/ResourceTypeRegistry.cs
trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/ResourceTypes.cs
trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/Strings.Designer.cs
trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/Strings.resx
trunk/Tools/Maestro/UnitTests.playlist
Log:
#2515: Add support for the TileSetDefinition 3.0.0 schema in MGOS 3.0. Add a new ITileSetDefinition interface to model the new resource. Add tests for creating and deserializing Tile Set Definitions
Modified: trunk/Tools/Maestro/Generated/TileSetDefinition-3.0.0.designer.cs
===================================================================
--- trunk/Tools/Maestro/Generated/TileSetDefinition-3.0.0.designer.cs 2014-12-29 14:27:24 UTC (rev 8484)
+++ trunk/Tools/Maestro/Generated/TileSetDefinition-3.0.0.designer.cs 2014-12-29 16:18:37 UTC (rev 8485)
@@ -4,7 +4,7 @@
// <NameSpace>OSGeo.MapGuide.ObjectModels.TileSetDefinition</NameSpace><Collection>BindingList</Collection><codeType>CSharp</codeType><EnableDataBinding>True</EnableDataBinding><EnableLazyLoading>False</EnableLazyLoading><TrackingChangesEnable>False</TrackingChangesEnable><GenTrackingClasses>False</GenTrackingClasses><HidePrivateFieldInIDE>True</HidePrivateFieldInIDE><EnableSummaryComment>True</EnableSummaryComment><VirtualProp>False</VirtualProp><IncludeSerializeMethod>True</IncludeSerializeMethod><UseBaseClass>False</UseBaseClass><GenBaseClass>False</GenBaseClass><GenerateCloneMethod>True</GenerateCloneMethod><GenerateDataContracts>False</GenerateDataContracts><CodeBaseTag>Net20</CodeBaseTag><SerializeMethodName>Serialize</SerializeMethodName><DeserializeMethodName>Deserialize</DeserializeMethodName><SaveToFileMethodName>SaveToFile</SaveToFileMethodName><LoadFromFileMethodName>LoadFromFile</LoadFromFileMethodName><GenerateXMLAttributes>True</GenerateXMLAttributes><Order
XMLAttrib>False</OrderXMLAttrib><EnableEncoding>False</EnableEncoding><AutomaticProperties>False</AutomaticProperties><GenerateShouldSerialize>False</GenerateShouldSerialize><DisableDebug>False</DisableDebug><PropNameSpecified>Default</PropNameSpecified><Encoder>UTF8</Encoder><CustomUsings></CustomUsings><ExcludeIncludedTypes>False</ExcludeIncludedTypes><EnableInitializeFields>False</EnableInitializeFields>
// </auto-generated>
// ------------------------------------------------------------------------------
-namespace OSGeo.MapGuide.ObjectModels.TileSetDefinition {
+namespace OSGeo.MapGuide.ObjectModels.TileSetDefinition.v3_0_0 {
using System;
using System.Diagnostics;
using System.Xml.Serialization;
Modified: trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModel.Tests/OSGeo.MapGuide.ObjectModel.Tests.csproj
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModel.Tests/OSGeo.MapGuide.ObjectModel.Tests.csproj 2014-12-29 14:27:24 UTC (rev 8484)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModel.Tests/OSGeo.MapGuide.ObjectModel.Tests.csproj 2014-12-29 16:18:37 UTC (rev 8485)
@@ -75,9 +75,11 @@
<DependentUpon>Resources.resx</DependentUpon>
</Compile>
<Compile Include="ResourceTests.cs" />
+ <Compile Include="TileSetDefinitionTests.cs" />
</ItemGroup>
<ItemGroup>
<None Include="packages.config" />
+ <None Include="Resources\UT_BaseMap.tsd" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="Properties\Resources.resx">
Modified: trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModel.Tests/ObjectFactoryTests.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModel.Tests/ObjectFactoryTests.cs 2014-12-29 14:27:24 UTC (rev 8484)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModel.Tests/ObjectFactoryTests.cs 2014-12-29 16:18:37 UTC (rev 8485)
@@ -24,10 +24,17 @@
using NUnit.Framework;
using OSGeo.MapGuide.ObjectModels;
using OSGeo.MapGuide.ObjectModels.FeatureSource;
+using OSGeo.MapGuide.ObjectModels.LayerDefinition;
using OSGeo.MapGuide.ObjectModels.LoadProcedure;
+using OSGeo.MapGuide.ObjectModels.MapDefinition;
+using OSGeo.MapGuide.ObjectModels.SymbolDefinition;
+using OSGeo.MapGuide.ObjectModels.TileSetDefinition;
+using OSGeo.MapGuide.ObjectModels.WatermarkDefinition;
+using OSGeo.MapGuide.ObjectModels.WebLayout;
using System;
using System.Collections.Generic;
using System.Collections.Specialized;
+using System.IO;
using System.Linq;
using System.Text;
@@ -63,8 +70,8 @@
[Test()]
public void RegisterResourceSerializerTest()
{
- ResourceSerializationCallback serFunc = (res) => null;
- ResourceDeserializationCallback deserFunc = (stream) => null;
+ Func<IResource, Stream> serFunc = (res) => null;
+ Func<string, IResource> deserFunc = (stream) => null;
Assert.Throws<ArgumentNullException>(() => ObjectFactory.RegisterResourceSerializer(new ResourceTypeDescriptor("FeatureSource", "1.0.0"), null, null));
Assert.Throws<ArgumentNullException>(() => ObjectFactory.RegisterResourceSerializer(new ResourceTypeDescriptor("FeatureSource", "1.0.0"), serFunc, null));
@@ -79,7 +86,7 @@
[Test()]
public void RegisterCompoundSymbolFactoryMethodTest()
{
- CompoundSymbolDefCreatorFunc func = () => null;
+ Func<ICompoundSymbolDefinition> func = () => null;
Assert.Throws<ArgumentNullException>(() => ObjectFactory.RegisterCompoundSymbolFactoryMethod(null, null));
Assert.Throws<ArgumentNullException>(() => ObjectFactory.RegisterCompoundSymbolFactoryMethod(new Version(1, 0, 0), null));
Assert.Throws<ArgumentNullException>(() => ObjectFactory.RegisterCompoundSymbolFactoryMethod(null, func));
@@ -91,7 +98,7 @@
[Test()]
public void RegisterSimpleSymbolFactoryMethodTest()
{
- SimpleSymbolDefCreatorFunc func = () => null;
+ Func<ISimpleSymbolDefinition> func = () => null;
Assert.Throws<ArgumentNullException>(() => ObjectFactory.RegisterSimpleSymbolFactoryMethod(null, null));
Assert.Throws<ArgumentNullException>(() => ObjectFactory.RegisterSimpleSymbolFactoryMethod(new Version(1, 0, 0), null));
Assert.Throws<ArgumentNullException>(() => ObjectFactory.RegisterSimpleSymbolFactoryMethod(null, func));
@@ -103,7 +110,7 @@
[Test()]
public void RegisterLayerFactoryMethodTest()
{
- LayerCreatorFunc func = (lt) => null;
+ Func<LayerType, ILayerDefinition> func = (lt) => null;
Assert.Throws<ArgumentNullException>(() => ObjectFactory.RegisterLayerFactoryMethod(null, null));
Assert.Throws<ArgumentNullException>(() => ObjectFactory.RegisterLayerFactoryMethod(new Version(1, 0, 0), null));
Assert.Throws<ArgumentNullException>(() => ObjectFactory.RegisterLayerFactoryMethod(null, func));
@@ -115,7 +122,7 @@
[Test()]
public void RegisterLoadProcedureFactoryMethodTest()
{
- LoadProcCreatorFunc func = () => null;
+ Func<ILoadProcedure> func = () => null;
foreach (LoadType lt in Enum.GetValues(typeof(LoadType)))
{
Assert.Throws<ArgumentNullException>(() => ObjectFactory.RegisterLoadProcedureFactoryMethod(LoadType.Dwf, null));
@@ -125,7 +132,7 @@
[Test()]
public void RegisterWebLayoutFactoryMethodTest()
{
- WebLayoutCreatorFunc func = (mdfId) => null;
+ Func<string, IWebLayout> func = (mdfId) => null;
Assert.Throws<ArgumentNullException>(() => ObjectFactory.RegisterWebLayoutFactoryMethod(null, null));
Assert.Throws<ArgumentNullException>(() => ObjectFactory.RegisterWebLayoutFactoryMethod(null, func));
Assert.Throws<ArgumentNullException>(() => ObjectFactory.RegisterWebLayoutFactoryMethod(new Version(1, 0, 0), null));
@@ -137,7 +144,7 @@
[Test()]
public void RegisterMapDefinitionFactoryMethodTest()
{
- MapDefinitionCreatorFunc func = () => null;
+ Func<IMapDefinition> func = () => null;
Assert.Throws<ArgumentNullException>(() => ObjectFactory.RegisterMapDefinitionFactoryMethod(null, null));
Assert.Throws<ArgumentNullException>(() => ObjectFactory.RegisterMapDefinitionFactoryMethod(null, func));
Assert.Throws<ArgumentNullException>(() => ObjectFactory.RegisterMapDefinitionFactoryMethod(new Version(1, 0, 0), null));
@@ -149,7 +156,7 @@
[Test()]
public void RegisterWatermarkDefinitionFactoryMethodTest()
{
- WatermarkCreatorFunc func = (st) => null;
+ Func<SymbolDefinitionType, IWatermarkDefinition> func = (st) => null;
Assert.Throws<ArgumentNullException>(() => ObjectFactory.RegisterWatermarkDefinitionFactoryMethod(null, null));
Assert.Throws<ArgumentNullException>(() => ObjectFactory.RegisterWatermarkDefinitionFactoryMethod(null, func));
Assert.Throws<ArgumentNullException>(() => ObjectFactory.RegisterWatermarkDefinitionFactoryMethod(new Version(1, 0, 0), null));
@@ -159,6 +166,18 @@
}
[Test()]
+ public void RegisterTileSetDefinitionFactoryMethodTest()
+ {
+ Func<ITileSetDefinition> func = () => null;
+ Assert.Throws<ArgumentNullException>(() => ObjectFactory.RegisterTileSetDefinitionFactoryMethod(null, null));
+ Assert.Throws<ArgumentNullException>(() => ObjectFactory.RegisterTileSetDefinitionFactoryMethod(null, func));
+ Assert.Throws<ArgumentNullException>(() => ObjectFactory.RegisterTileSetDefinitionFactoryMethod(new Version(1, 0, 0), null));
+ //Already exists
+ Assert.Throws<ArgumentException>(() => ObjectFactory.RegisterTileSetDefinitionFactoryMethod(new Version(3, 0, 0), func));
+ Assert.DoesNotThrow(() => ObjectFactory.RegisterTileSetDefinitionFactoryMethod(new Version(4, 0, 0), func));
+ }
+
+ [Test()]
public void CreateMetadataTest()
{
var meta = ObjectFactory.CreateMetadata();
Modified: trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModel.Tests/Properties/Resources.Designer.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModel.Tests/Properties/Resources.Designer.cs 2014-12-29 14:27:24 UTC (rev 8484)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModel.Tests/Properties/Resources.Designer.cs 2014-12-29 16:18:37 UTC (rev 8485)
@@ -130,6 +130,29 @@
/// <summary>
/// Looks up a localized string similar to <?xml version="1.0" encoding="UTF-8"?>
+ ///<TileSetDefinition xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="TileSetDefinition-3.0.0.xsd">
+ /// <TileStoreParameters>
+ /// <TileProvider>Default</TileProvider>
+ /// <Parameter>
+ /// <Name>TilePath</Name>
+ /// <Value>%MG_TILE_CACHE_PATH%</Value>
+ /// </Parameter>
+ /// <Parameter>
+ /// <Name>TileWidth</Name>
+ /// <Value>256</Value>
+ /// </Parameter>
+ /// <Parameter>
+ /// <Name>TileHeight</Name>
+ /// <Value>256</Value> [rest of string was truncated]";.
+ /// </summary>
+ internal static string UT_BaseMap {
+ get {
+ return ResourceManager.GetString("UT_BaseMap", resourceCulture);
+ }
+ }
+
+ /// <summary>
+ /// Looks up a localized string similar to <?xml version="1.0" encoding="UTF-8"?>
///<MapDefinition xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="MapDefinition-3.0.0.xsd" version="3.0.0">
/// <Name>Base Map linked to Tile Set</Name>
/// <CoordinateSystem>PROJCS["WGS84.PseudoMercator",GEOGCS["LL84",DATUM["WGS84",SPHEROID["WGS84",6378137.000,298.25722293]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Popular Visualisation Pseudo Mercator"],PARAMETER["false_easting",0.000],PARAMETER["false_no [rest of string was truncated]";.
Modified: trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModel.Tests/Properties/Resources.resx
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModel.Tests/Properties/Resources.resx 2014-12-29 14:27:24 UTC (rev 8484)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModel.Tests/Properties/Resources.resx 2014-12-29 16:18:37 UTC (rev 8485)
@@ -127,6 +127,9 @@
<data name="FeatureSource_1_0_0" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\FeatureSource-1.0.0.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;Windows-1252</value>
</data>
+ <data name="UT_BaseMap" type="System.Resources.ResXFileRef, System.Windows.Forms">
+ <value>..\Resources\UT_BaseMap.tsd;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;Windows-1252</value>
+ </data>
<data name="UT_LinkedTileSet" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\UT_LinkedTileSet.mdf;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;Windows-1252</value>
</data>
Added: trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModel.Tests/Resources/UT_BaseMap.tsd
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModel.Tests/Resources/UT_BaseMap.tsd (rev 0)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModel.Tests/Resources/UT_BaseMap.tsd 2014-12-29 16:18:37 UTC (rev 8485)
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<TileSetDefinition xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="TileSetDefinition-3.0.0.xsd">
+ <TileStoreParameters>
+ <TileProvider>Default</TileProvider>
+ <Parameter>
+ <Name>TilePath</Name>
+ <Value>%MG_TILE_CACHE_PATH%</Value>
+ </Parameter>
+ <Parameter>
+ <Name>TileWidth</Name>
+ <Value>256</Value>
+ </Parameter>
+ <Parameter>
+ <Name>TileHeight</Name>
+ <Value>256</Value>
+ </Parameter>
+ <Parameter>
+ <Name>TileFormat</Name>
+ <Value>PNG</Value>
+ </Parameter>
+ <Parameter>
+ <Name>FiniteScaleList</Name>
+ <Value>200000,100000,50000,25000,12500,6250,3125,1562.5,781.25,390.625</Value>
+ </Parameter>
+ <Parameter>
+ <Name>CoordinateSystem</Name>
+ <Value>GEOGCS["LL84",DATUM["WGS 84",SPHEROID["WGS 84",6378137,298.25722293287],TOWGS84[0,0,0,0,0,0,0]],PRIMEM["Greenwich",0],UNIT["Degrees",0.01745329252]]</Value>
+ </Parameter>
+ </TileStoreParameters>
+ <Extents>
+ <MinX>-87.79786601383196</MinX>
+ <MaxX>-87.66452777186925</MaxX>
+ <MinY>43.6868578621819</MinY>
+ <MaxY>43.8037962206133</MaxY>
+ </Extents>
+ <BaseMapLayerGroup>
+ <Name>BaseLayers</Name>
+ <Visible>true</Visible>
+ <ShowInLegend>true</ShowInLegend>
+ <ExpandInLegend>true</ExpandInLegend>
+ <LegendLabel>Base Layers</LegendLabel>
+ <BaseMapLayer>
+ <Name>Parcels</Name>
+ <ResourceId>Library://UnitTests/Layers/Parcels.LayerDefinition</ResourceId>
+ <Selectable>true</Selectable>
+ <ShowInLegend>true</ShowInLegend>
+ <LegendLabel>Parcels</LegendLabel>
+ <ExpandInLegend>false</ExpandInLegend>
+ </BaseMapLayer>
+ <BaseMapLayer>
+ <Name>VotingDistricts</Name>
+ <ResourceId>Library://UnitTests/Layers/VotingDistricts.LayerDefinition</ResourceId>
+ <Selectable>true</Selectable>
+ <ShowInLegend>true</ShowInLegend>
+ <LegendLabel>Voting Districts</LegendLabel>
+ <ExpandInLegend>false</ExpandInLegend>
+ </BaseMapLayer>
+ </BaseMapLayerGroup>
+</TileSetDefinition>
Added: trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModel.Tests/TileSetDefinitionTests.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModel.Tests/TileSetDefinitionTests.cs (rev 0)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModel.Tests/TileSetDefinitionTests.cs 2014-12-29 16:18:37 UTC (rev 8485)
@@ -0,0 +1,126 @@
+#region Disclaimer / License
+
+// Copyright (C) 2014, Jackie Ng
+// http://trac.osgeo.org/mapguide/wiki/maestro, jumpinjackie at gmail.com
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+//
+
+#endregion Disclaimer / License
+
+using NUnit.Framework;
+using OSGeo.MapGuide.ObjectModels;
+using OSGeo.MapGuide.ObjectModels.TileSetDefinition;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+
+namespace OSGeo.MapGuide.ObjectModel.Tests
+{
+ [TestFixture]
+ public class TileSetDefinitionTests
+ {
+ [Test]
+ public void CreateTest()
+ {
+ var res = ObjectFactory.CreateTileSetDefinition(new Version(3, 0, 0));
+ Assert.IsInstanceOf<ITileSetDefinition>(res);
+ ITileSetDefinition tsd = (ITileSetDefinition)res;
+ Assert.AreEqual("Default", tsd.TileStoreParameters.TileProvider);
+ tsd.SetXYZProviderParameters();
+ Assert.AreEqual("XYZ", tsd.TileStoreParameters.TileProvider);
+ var p = tsd.GetParameter("TileFormat");
+ Assert.NotNull(p);
+ Assert.AreEqual("PNG", p.Value);
+ Assert.AreEqual("PNG", tsd.GetTileFormat());
+ p = tsd.GetParameter("TilePath");
+ Assert.NotNull(p);
+ Assert.AreEqual("%MG_TILE_CACHE_PATH%", p.Value);
+ Assert.AreEqual("%MG_TILE_CACHE_PATH%", tsd.GetTilePath());
+
+ tsd.SetDefaultProviderParameters(256, 256, "coordsys", new double[] { 100.5, 200.5, 300.5 });
+ p = tsd.GetParameter("TileWidth");
+ Assert.NotNull(p);
+ Assert.AreEqual("256", p.Value);
+ Assert.AreEqual(256, tsd.GetDefaultTileWidth());
+ p = tsd.GetParameter("TileHeight");
+ Assert.NotNull(p);
+ Assert.AreEqual("256", p.Value);
+ Assert.AreEqual(256, tsd.GetDefaultTileHeight());
+ p = tsd.GetParameter("CoordinateSystem");
+ Assert.NotNull(p);
+ Assert.AreEqual("coordsys", p.Value);
+ Assert.AreEqual("coordsys", tsd.GetDefaultCoordinateSystem());
+ p = tsd.GetParameter("FiniteScaleList");
+ Assert.NotNull(p);
+ Assert.AreEqual("300.5,200.5,100.5", p.Value);
+ var value = tsd.GetDefaultFiniteScaleList();
+ Assert.AreEqual(3, value.Length);
+ Assert.Contains(100.5, value);
+ Assert.Contains(200.5, value);
+ Assert.Contains(300.5, value);
+ p = tsd.GetParameter("TileFormat");
+ Assert.NotNull(p);
+ Assert.AreEqual("PNG", p.Value);
+ Assert.AreEqual("PNG", tsd.GetTileFormat());
+ p = tsd.GetParameter("TilePath");
+ Assert.NotNull(p);
+ Assert.AreEqual("%MG_TILE_CACHE_PATH%", p.Value);
+ Assert.AreEqual("%MG_TILE_CACHE_PATH%", tsd.GetTilePath());
+ }
+
+ [Test]
+ public void DeserializationTest()
+ {
+ var res = ObjectFactory.DeserializeXml(Properties.Resources.UT_BaseMap);
+ Assert.IsInstanceOf<ITileSetDefinition>(res);
+ ITileSetDefinition tsd = (ITileSetDefinition)res;
+ Assert.AreEqual("%MG_TILE_CACHE_PATH%", tsd.GetTilePath());
+ Assert.AreEqual(256, tsd.GetDefaultTileWidth());
+ Assert.AreEqual(256, tsd.GetDefaultTileHeight());
+ Assert.AreEqual("PNG", tsd.GetTileFormat());
+
+ var values = tsd.GetDefaultFiniteScaleList();
+ Assert.AreEqual(10, values.Length);
+ Assert.Contains(200000, values);
+ Assert.Contains(100000, values);
+ Assert.Contains(50000, values);
+ Assert.Contains(25000, values);
+ Assert.Contains(12500, values);
+ Assert.Contains(6250, values);
+ Assert.Contains(3125, values);
+ Assert.Contains(1562.5, values);
+ Assert.Contains(781.25, values);
+ Assert.Contains(390.625, values);
+ Assert.IsNotNullOrEmpty(tsd.GetDefaultCoordinateSystem());
+
+ var ext = tsd.Extents;
+ Assert.AreEqual(-87.79786601383196, ext.MinX);
+ Assert.AreEqual(-87.66452777186925, ext.MaxX);
+ Assert.AreEqual(43.6868578621819, ext.MinY);
+ Assert.AreEqual(43.8037962206133, ext.MaxY);
+
+ Assert.AreEqual(1, tsd.BaseGroups.Count());
+ var grp = tsd.BaseGroups.First();
+ Assert.AreEqual("BaseLayers", grp.Name);
+ Assert.True(grp.Visible);
+ Assert.True(grp.ShowInLegend);
+ Assert.True(grp.ExpandInLegend);
+ Assert.AreEqual("Base Layers", grp.LegendLabel);
+ Assert.AreEqual(2, grp.BaseMapLayer.Count());
+ }
+ }
+}
Modified: trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/OSGeo.MapGuide.ObjectModels.csproj
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/OSGeo.MapGuide.ObjectModels.csproj 2014-12-29 14:27:24 UTC (rev 8484)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/OSGeo.MapGuide.ObjectModels.csproj 2014-12-29 16:18:37 UTC (rev 8485)
@@ -167,6 +167,9 @@
<Compile Include="..\Generated\SymbolLibrary-1.0.0.designer.cs">
<Link>SymbolLibrary\v1.0.0\SymbolLibrary-1.0.0.designer.cs</Link>
</Compile>
+ <Compile Include="..\Generated\TileSetDefinition-3.0.0.designer.cs">
+ <Link>TileSetDefinition\v3_0_0\TileSetDefinition-3.0.0.designer.cs</Link>
+ </Compile>
<Compile Include="..\Generated\UnmanagedDataList-1.0.0.designer.cs">
<Link>Common\UnmanagedDataList-1.0.0.designer.cs</Link>
</Compile>
@@ -278,6 +281,8 @@
<Compile Include="SymbolDefinition\v2_4_0\SymbolDefinitionImpl.cs" />
<Compile Include="SymbolLibrary\v1.0.0\SymbolLibraryImpl.cs" />
<Compile Include="SymbolLibrary\SymbolLibraryInterfaces.cs" />
+ <Compile Include="TileSetDefinition\TileSetInterfaces.cs" />
+ <Compile Include="TileSetDefinition\v3_0_0\TileSetImpl.cs" />
<Compile Include="UntypedResource.cs" />
<Compile Include="Utility.cs" />
<Compile Include="WatermarkDefinition\v2_3_0\WatermarkDefinitionImpl.cs" />
@@ -300,6 +305,7 @@
<ItemGroup>
<None Include="CoreTypes.cd" />
</ItemGroup>
+ <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: trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/ObjectFactory.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/ObjectFactory.cs 2014-12-29 14:27:24 UTC (rev 8484)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/ObjectFactory.cs 2014-12-29 16:18:37 UTC (rev 8485)
@@ -31,6 +31,7 @@
using OSGeo.MapGuide.ObjectModels.PrintLayout;
using OSGeo.MapGuide.ObjectModels.SymbolDefinition;
using OSGeo.MapGuide.ObjectModels.SymbolLibrary;
+using OSGeo.MapGuide.ObjectModels.TileSetDefinition;
using OSGeo.MapGuide.ObjectModels.WatermarkDefinition;
using OSGeo.MapGuide.ObjectModels.WebLayout;
using System;
@@ -56,47 +57,11 @@
using WL110 = OSGeo.MapGuide.ObjectModels.WebLayout.v1_1_0;
using WL240 = OSGeo.MapGuide.ObjectModels.WebLayout.v2_4_0;
using WL260 = OSGeo.MapGuide.ObjectModels.WebLayout.v2_6_0;
+using Tsd300 = OSGeo.MapGuide.ObjectModels.TileSetDefinition.v3_0_0;
namespace OSGeo.MapGuide.ObjectModels
{
/// <summary>
- /// Factory method signature for creating layer definitions
- /// </summary>
- public delegate ILayerDefinition LayerCreatorFunc(LayerType type);
-
- /// <summary>
- /// Factory method signature for creating load procedures
- /// </summary>
- public delegate ILoadProcedure LoadProcCreatorFunc();
-
- /// <summary>
- /// Factory method signature for creating web layouts
- /// </summary>
- public delegate IWebLayout WebLayoutCreatorFunc(string mapDefinitionId);
-
- /// <summary>
- /// Factory method signature for creating compound symbol definitions
- /// </summary>
- public delegate ICompoundSymbolDefinition CompoundSymbolDefCreatorFunc();
-
- /// <summary>
- /// Factory method signature for creating simple symbol definitions
- /// </summary>
- public delegate ISimpleSymbolDefinition SimpleSymbolDefCreatorFunc();
-
- /// <summary>
- /// Factory method signature for creating watermarks
- /// </summary>
- /// <returns></returns>
- public delegate IWatermarkDefinition WatermarkCreatorFunc(SymbolDefinitionType type);
-
- /// <summary>
- /// Factory method signature for creating map definitions
- /// </summary>
- /// <returns></returns>
- public delegate IMapDefinition MapDefinitionCreatorFunc();
-
- /// <summary>
/// Factory class to create MapGuide resource objects with either pre-defined or
/// sensible default values. This is recommended over creating the objects directly
/// as this ensures that there are no null child properties where the XML schema forbids
@@ -112,23 +77,25 @@
/// </summary>
public class ObjectFactory
{
- private static Dictionary<Version, LayerCreatorFunc> _layerFactories;
- private static Dictionary<LoadType, LoadProcCreatorFunc> _loadProcFactories;
- private static Dictionary<Version, WebLayoutCreatorFunc> _wlFactories;
- private static Dictionary<Version, SimpleSymbolDefCreatorFunc> _simpleSymbolFactories;
- private static Dictionary<Version, CompoundSymbolDefCreatorFunc> _compoundSymbolFactories;
- private static Dictionary<Version, MapDefinitionCreatorFunc> _mapDefinitionFactories;
- private static Dictionary<Version, WatermarkCreatorFunc> _watermarkFactories;
+ private static Dictionary<Version, Func<LayerType, ILayerDefinition>> _layerFactories;
+ private static Dictionary<LoadType, Func<ILoadProcedure>> _loadProcFactories;
+ private static Dictionary<Version, Func<string, IWebLayout>> _wlFactories;
+ private static Dictionary<Version, Func<ISimpleSymbolDefinition>> _simpleSymbolFactories;
+ private static Dictionary<Version, Func<ICompoundSymbolDefinition>> _compoundSymbolFactories;
+ private static Dictionary<Version, Func<IMapDefinition>> _mapDefinitionFactories;
+ private static Dictionary<Version, Func<SymbolDefinitionType, IWatermarkDefinition>> _watermarkFactories;
+ private static Dictionary<Version, Func<ITileSetDefinition>> _tileSetDefinitionFactories;
static ObjectFactory()
{
- _layerFactories = new Dictionary<Version, LayerCreatorFunc>();
- _wlFactories = new Dictionary<Version, WebLayoutCreatorFunc>();
- _loadProcFactories = new Dictionary<LoadType, LoadProcCreatorFunc>();
- _simpleSymbolFactories = new Dictionary<Version, SimpleSymbolDefCreatorFunc>();
- _compoundSymbolFactories = new Dictionary<Version, CompoundSymbolDefCreatorFunc>();
- _mapDefinitionFactories = new Dictionary<Version, MapDefinitionCreatorFunc>();
- _watermarkFactories = new Dictionary<Version, WatermarkCreatorFunc>();
+ _layerFactories = new Dictionary<Version,Func<LayerType,ILayerDefinition>>();
+ _wlFactories = new Dictionary<Version,Func<string,IWebLayout>>();
+ _loadProcFactories = new Dictionary<LoadType,Func<ILoadProcedure>>();
+ _simpleSymbolFactories = new Dictionary<Version,Func<ISimpleSymbolDefinition>>();
+ _compoundSymbolFactories = new Dictionary<Version,Func<ICompoundSymbolDefinition>>();
+ _mapDefinitionFactories = new Dictionary<Version,Func<IMapDefinition>>();
+ _watermarkFactories = new Dictionary<Version,Func<SymbolDefinitionType,IWatermarkDefinition>>();
+ _tileSetDefinitionFactories = new Dictionary<Version, Func<ITileSetDefinition>>();
Init();
}
@@ -142,6 +109,7 @@
_compoundSymbolFactories.Clear();
_mapDefinitionFactories.Clear();
_watermarkFactories.Clear();
+ _tileSetDefinitionFactories.Clear();
ResourceTypeRegistry.Reset();
Init();
}
@@ -150,74 +118,74 @@
{
_layerFactories.Add(
new Version(1, 0, 0),
- new LayerCreatorFunc(OSGeo.MapGuide.ObjectModels.LayerDefinition.v1_0_0.LdfEntryPoint.CreateDefault));
+ OSGeo.MapGuide.ObjectModels.LayerDefinition.v1_0_0.LdfEntryPoint.CreateDefault);
_loadProcFactories.Add(
LoadType.Sdf,
- new LoadProcCreatorFunc(OSGeo.MapGuide.ObjectModels.LoadProcedure.v1_0_0.LoadProcEntryPoint.CreateDefaultSdf));
+ OSGeo.MapGuide.ObjectModels.LoadProcedure.v1_0_0.LoadProcEntryPoint.CreateDefaultSdf);
_loadProcFactories.Add(
LoadType.Shp,
- new LoadProcCreatorFunc(OSGeo.MapGuide.ObjectModels.LoadProcedure.v1_0_0.LoadProcEntryPoint.CreateDefaultShp));
+ OSGeo.MapGuide.ObjectModels.LoadProcedure.v1_0_0.LoadProcEntryPoint.CreateDefaultShp);
_loadProcFactories.Add(
LoadType.Dwf,
- new LoadProcCreatorFunc(OSGeo.MapGuide.ObjectModels.LoadProcedure.v1_0_0.LoadProcEntryPoint.CreateDefaultDwf));
+ OSGeo.MapGuide.ObjectModels.LoadProcedure.v1_0_0.LoadProcEntryPoint.CreateDefaultDwf);
_wlFactories.Add(
new Version(1, 0, 0),
- new WebLayoutCreatorFunc(OSGeo.MapGuide.ObjectModels.WebLayout.v1_0_0.WebLayoutEntryPoint.CreateDefault));
+ OSGeo.MapGuide.ObjectModels.WebLayout.v1_0_0.WebLayoutEntryPoint.CreateDefault);
_compoundSymbolFactories.Add(
new Version(1, 0, 0),
- new CompoundSymbolDefCreatorFunc(OSGeo.MapGuide.ObjectModels.SymbolDefinition.v1_0_0.CompoundSymbolDefinition.CreateDefault));
+ OSGeo.MapGuide.ObjectModels.SymbolDefinition.v1_0_0.CompoundSymbolDefinition.CreateDefault);
_simpleSymbolFactories.Add(
new Version(1, 0, 0),
- new SimpleSymbolDefCreatorFunc(OSGeo.MapGuide.ObjectModels.SymbolDefinition.v1_0_0.SimpleSymbolDefinition.CreateDefault));
+ OSGeo.MapGuide.ObjectModels.SymbolDefinition.v1_0_0.SimpleSymbolDefinition.CreateDefault);
_mapDefinitionFactories.Add(
new Version(1, 0, 0),
- new MapDefinitionCreatorFunc(OSGeo.MapGuide.ObjectModels.MapDefinition.v1_0_0.MdfEntryPoint.CreateDefault));
+ OSGeo.MapGuide.ObjectModels.MapDefinition.v1_0_0.MdfEntryPoint.CreateDefault);
//Layer Definition 1.1.0
ResourceTypeRegistry.RegisterResource(
new ResourceTypeDescriptor(ResourceTypes.LayerDefinition.ToString(), "1.1.0"),
- new ResourceSerializationCallback(Ldf110.LdfEntryPoint.Serialize),
- new ResourceDeserializationCallback(Ldf110.LdfEntryPoint.Deserialize));
- ObjectFactory.RegisterLayerFactoryMethod(new Version(1, 1, 0), new LayerCreatorFunc(Ldf110.LdfEntryPoint.CreateDefault));
+ Ldf110.LdfEntryPoint.Serialize,
+ Ldf110.LdfEntryPoint.Deserialize);
+ ObjectFactory.RegisterLayerFactoryMethod(new Version(1, 1, 0), Ldf110.LdfEntryPoint.CreateDefault);
//Layer Definition 1.2.0
ResourceTypeRegistry.RegisterResource(
new ResourceTypeDescriptor(ResourceTypes.LayerDefinition.ToString(), "1.2.0"),
- new ResourceSerializationCallback(Ldf120.LdfEntryPoint.Serialize),
- new ResourceDeserializationCallback(Ldf120.LdfEntryPoint.Deserialize));
- ObjectFactory.RegisterLayerFactoryMethod(new Version(1, 2, 0), new LayerCreatorFunc(Ldf120.LdfEntryPoint.CreateDefault));
+ Ldf120.LdfEntryPoint.Serialize,
+ Ldf120.LdfEntryPoint.Deserialize);
+ ObjectFactory.RegisterLayerFactoryMethod(new Version(1, 2, 0), Ldf120.LdfEntryPoint.CreateDefault);
//Layer Definition 1.3.0
ResourceTypeRegistry.RegisterResource(
new ResourceTypeDescriptor(ResourceTypes.LayerDefinition.ToString(), "1.3.0"),
- new ResourceSerializationCallback(Ldf130.LdfEntryPoint.Serialize),
- new ResourceDeserializationCallback(Ldf130.LdfEntryPoint.Deserialize));
- ObjectFactory.RegisterLayerFactoryMethod(new Version(1, 3, 0), new LayerCreatorFunc(Ldf130.LdfEntryPoint.CreateDefault));
+ Ldf130.LdfEntryPoint.Serialize,
+ Ldf130.LdfEntryPoint.Deserialize);
+ ObjectFactory.RegisterLayerFactoryMethod(new Version(1, 3, 0), Ldf130.LdfEntryPoint.CreateDefault);
//Layer Definition 2.3.0
ResourceTypeRegistry.RegisterResource(
new ResourceTypeDescriptor(ResourceTypes.LayerDefinition.ToString(), "2.3.0"),
- new ResourceSerializationCallback(Ldf230.LdfEntryPoint.Serialize),
- new ResourceDeserializationCallback(Ldf230.LdfEntryPoint.Deserialize));
- ObjectFactory.RegisterLayerFactoryMethod(new Version(2, 3, 0), new LayerCreatorFunc(Ldf230.LdfEntryPoint.CreateDefault));
+ Ldf230.LdfEntryPoint.Serialize,
+ Ldf230.LdfEntryPoint.Deserialize);
+ ObjectFactory.RegisterLayerFactoryMethod(new Version(2, 3, 0), Ldf230.LdfEntryPoint.CreateDefault);
//Layer Definition 2.4.0
ResourceTypeRegistry.RegisterResource(
new ResourceTypeDescriptor(ResourceTypes.LayerDefinition.ToString(), "2.4.0"),
- new ResourceSerializationCallback(Ldf240.LdfEntryPoint.Serialize),
- new ResourceDeserializationCallback(Ldf240.LdfEntryPoint.Deserialize));
- ObjectFactory.RegisterLayerFactoryMethod(new Version(2, 4, 0), new LayerCreatorFunc(Ldf240.LdfEntryPoint.CreateDefault));
+ Ldf240.LdfEntryPoint.Serialize,
+ Ldf240.LdfEntryPoint.Deserialize);
+ ObjectFactory.RegisterLayerFactoryMethod(new Version(2, 4, 0), Ldf240.LdfEntryPoint.CreateDefault);
//Load Procedure 1.1.0
ResourceTypeRegistry.RegisterResource(
new ResourceTypeDescriptor(ResourceTypes.LoadProcedure.ToString(), "1.1.0"),
- new ResourceSerializationCallback(Lp110.LoadProcEntryPoint.Serialize),
- new ResourceDeserializationCallback(Lp110.LoadProcEntryPoint.Deserialize));
+ Lp110.LoadProcEntryPoint.Serialize,
+ Lp110.LoadProcEntryPoint.Deserialize);
//Load Procedure 1.1.0 schema offers nothing new for the ones we want to support, so nothing to register
//with the ObjectFactory
@@ -225,81 +193,88 @@
//Load Procedure 2.2.0
ResourceTypeRegistry.RegisterResource(
new ResourceTypeDescriptor(ResourceTypes.LoadProcedure.ToString(), "2.2.0"),
- new ResourceSerializationCallback(Lp220.LoadProcEntryPoint.Serialize),
- new ResourceDeserializationCallback(Lp220.LoadProcEntryPoint.Deserialize));
- ObjectFactory.RegisterLoadProcedureFactoryMethod(LoadType.Sqlite, new LoadProcCreatorFunc(Lp220.LoadProcEntryPoint.CreateDefaultSqlite));
+ Lp220.LoadProcEntryPoint.Serialize,
+ Lp220.LoadProcEntryPoint.Deserialize);
+ ObjectFactory.RegisterLoadProcedureFactoryMethod(LoadType.Sqlite, Lp220.LoadProcEntryPoint.CreateDefaultSqlite);
//Web Layout 1.1.0
ResourceTypeRegistry.RegisterResource(
new ResourceTypeDescriptor(ResourceTypes.WebLayout.ToString(), "1.1.0"),
- new ResourceSerializationCallback(WL110.WebLayoutEntryPoint.Serialize),
- new ResourceDeserializationCallback(WL110.WebLayoutEntryPoint.Deserialize));
- ObjectFactory.RegisterWebLayoutFactoryMethod(new Version(1, 1, 0), new WebLayoutCreatorFunc(WL110.WebLayoutEntryPoint.CreateDefault));
+ WL110.WebLayoutEntryPoint.Serialize,
+ WL110.WebLayoutEntryPoint.Deserialize);
+ ObjectFactory.RegisterWebLayoutFactoryMethod(new Version(1, 1, 0), WL110.WebLayoutEntryPoint.CreateDefault);
//Web Layout 2.4.0
ResourceTypeRegistry.RegisterResource(
new ResourceTypeDescriptor(ResourceTypes.WebLayout.ToString(), "2.4.0"),
- new ResourceSerializationCallback(WL240.WebLayoutEntryPoint.Serialize),
- new ResourceDeserializationCallback(WL240.WebLayoutEntryPoint.Deserialize));
- ObjectFactory.RegisterWebLayoutFactoryMethod(new Version(2, 4, 0), new WebLayoutCreatorFunc(WL240.WebLayoutEntryPoint.CreateDefault));
+ WL240.WebLayoutEntryPoint.Serialize,
+ WL240.WebLayoutEntryPoint.Deserialize);
+ ObjectFactory.RegisterWebLayoutFactoryMethod(new Version(2, 4, 0), WL240.WebLayoutEntryPoint.CreateDefault);
//Web Layout 2.6.0
ResourceTypeRegistry.RegisterResource(
new ResourceTypeDescriptor(ResourceTypes.WebLayout.ToString(), "2.6.0"),
- new ResourceSerializationCallback(WL260.WebLayoutEntryPoint.Serialize),
- new ResourceDeserializationCallback(WL260.WebLayoutEntryPoint.Deserialize));
- ObjectFactory.RegisterWebLayoutFactoryMethod(new Version(2, 6, 0), new WebLayoutCreatorFunc(WL260.WebLayoutEntryPoint.CreateDefault));
+ WL260.WebLayoutEntryPoint.Serialize,
+ WL260.WebLayoutEntryPoint.Deserialize);
+ ObjectFactory.RegisterWebLayoutFactoryMethod(new Version(2, 6, 0), WL260.WebLayoutEntryPoint.CreateDefault);
//Symbol Definition 1.1.0
ResourceTypeRegistry.RegisterResource(
new ResourceTypeDescriptor(ResourceTypes.SymbolDefinition.ToString(), "1.1.0"),
- new ResourceSerializationCallback(Sym110.SymbolDefEntryPoint.Serialize),
- new ResourceDeserializationCallback(Sym110.SymbolDefEntryPoint.Deserialize));
- ObjectFactory.RegisterCompoundSymbolFactoryMethod(new Version(1, 1, 0), new CompoundSymbolDefCreatorFunc(Sym110.SymbolDefEntryPoint.CreateDefaultCompound));
- ObjectFactory.RegisterSimpleSymbolFactoryMethod(new Version(1, 1, 0), new SimpleSymbolDefCreatorFunc(Sym110.SymbolDefEntryPoint.CreateDefaultSimple));
+ Sym110.SymbolDefEntryPoint.Serialize,
+ Sym110.SymbolDefEntryPoint.Deserialize);
+ ObjectFactory.RegisterCompoundSymbolFactoryMethod(new Version(1, 1, 0), Sym110.SymbolDefEntryPoint.CreateDefaultCompound);
+ ObjectFactory.RegisterSimpleSymbolFactoryMethod(new Version(1, 1, 0), Sym110.SymbolDefEntryPoint.CreateDefaultSimple);
//Symbol Definition 2.4.0
ResourceTypeRegistry.RegisterResource(
new ResourceTypeDescriptor(ResourceTypes.SymbolDefinition.ToString(), "2.4.0"),
- new ResourceSerializationCallback(Sym240.SymbolDefEntryPoint.Serialize),
- new ResourceDeserializationCallback(Sym240.SymbolDefEntryPoint.Deserialize));
- ObjectFactory.RegisterCompoundSymbolFactoryMethod(new Version(2, 4, 0), new CompoundSymbolDefCreatorFunc(Sym240.SymbolDefEntryPoint.CreateDefaultCompound));
- ObjectFactory.RegisterSimpleSymbolFactoryMethod(new Version(2, 4, 0), new SimpleSymbolDefCreatorFunc(Sym240.SymbolDefEntryPoint.CreateDefaultSimple));
+ Sym240.SymbolDefEntryPoint.Serialize,
+ Sym240.SymbolDefEntryPoint.Deserialize);
+ ObjectFactory.RegisterCompoundSymbolFactoryMethod(new Version(2, 4, 0), Sym240.SymbolDefEntryPoint.CreateDefaultCompound);
+ ObjectFactory.RegisterSimpleSymbolFactoryMethod(new Version(2, 4, 0), Sym240.SymbolDefEntryPoint.CreateDefaultSimple);
//Map Definition 2.3.0
ResourceTypeRegistry.RegisterResource(
new ResourceTypeDescriptor(ResourceTypes.MapDefinition.ToString(), "2.3.0"),
- new ResourceSerializationCallback(Mdf230.MdfEntryPoint.Serialize),
- new ResourceDeserializationCallback(Mdf230.MdfEntryPoint.Deserialize));
- ObjectFactory.RegisterMapDefinitionFactoryMethod(new Version(2, 3, 0), new MapDefinitionCreatorFunc(Mdf230.MdfEntryPoint.CreateDefault));
+ Mdf230.MdfEntryPoint.Serialize,
+ Mdf230.MdfEntryPoint.Deserialize);
+ ObjectFactory.RegisterMapDefinitionFactoryMethod(new Version(2, 3, 0), Mdf230.MdfEntryPoint.CreateDefault);
//Map Definition 2.4.0
ResourceTypeRegistry.RegisterResource(
new ResourceTypeDescriptor(ResourceTypes.MapDefinition.ToString(), "2.4.0"),
- new ResourceSerializationCallback(Mdf240.MdfEntryPoint.Serialize),
- new ResourceDeserializationCallback(Mdf240.MdfEntryPoint.Deserialize));
- ObjectFactory.RegisterMapDefinitionFactoryMethod(new Version(2, 4, 0), new MapDefinitionCreatorFunc(Mdf240.MdfEntryPoint.CreateDefault));
+ Mdf240.MdfEntryPoint.Serialize,
+ Mdf240.MdfEntryPoint.Deserialize);
+ ObjectFactory.RegisterMapDefinitionFactoryMethod(new Version(2, 4, 0), Mdf240.MdfEntryPoint.CreateDefault);
//Map Definition 3.0.0
ResourceTypeRegistry.RegisterResource(
new ResourceTypeDescriptor(ResourceTypes.MapDefinition.ToString(), "3.0.0"),
- new ResourceSerializationCallback(Mdf300.MdfEntryPoint.Serialize),
- new ResourceDeserializationCallback(Mdf300.MdfEntryPoint.Deserialize));
- ObjectFactory.RegisterMapDefinitionFactoryMethod(new Version(3, 0, 0), new MapDefinitionCreatorFunc(Mdf300.MdfEntryPoint.CreateDefault));
+ Mdf300.MdfEntryPoint.Serialize,
+ Mdf300.MdfEntryPoint.Deserialize);
+ ObjectFactory.RegisterMapDefinitionFactoryMethod(new Version(3, 0, 0), Mdf300.MdfEntryPoint.CreateDefault);
//Watermark Definition 2.3.0
ResourceTypeRegistry.RegisterResource(
new ResourceTypeDescriptor(ResourceTypes.WatermarkDefinition.ToString(), "2.3.0"),
- new ResourceSerializationCallback(Wdf230.WdfEntryPoint.Serialize),
- new ResourceDeserializationCallback(Wdf230.WdfEntryPoint.Deserialize));
- ObjectFactory.RegisterWatermarkDefinitionFactoryMethod(new Version(2, 3, 0), new WatermarkCreatorFunc(Wdf230.WdfEntryPoint.CreateDefault));
+ Wdf230.WdfEntryPoint.Serialize,
+ Wdf230.WdfEntryPoint.Deserialize);
+ ObjectFactory.RegisterWatermarkDefinitionFactoryMethod(new Version(2, 3, 0), Wdf230.WdfEntryPoint.CreateDefault);
//Watermark Definition 2.4.0
ResourceTypeRegistry.RegisterResource(
new ResourceTypeDescriptor(ResourceTypes.WatermarkDefinition.ToString(), "2.4.0"),
- new ResourceSerializationCallback(Wdf240.WdfEntryPoint.Serialize),
- new ResourceDeserializationCallback(Wdf240.WdfEntryPoint.Deserialize));
- ObjectFactory.RegisterWatermarkDefinitionFactoryMethod(new Version(2, 4, 0), new WatermarkCreatorFunc(Wdf240.WdfEntryPoint.CreateDefault));
+ Wdf240.WdfEntryPoint.Serialize,
+ Wdf240.WdfEntryPoint.Deserialize);
+ ObjectFactory.RegisterWatermarkDefinitionFactoryMethod(new Version(2, 4, 0), Wdf240.WdfEntryPoint.CreateDefault);
+
+ //Tile Set Definition 3.0.0
+ ResourceTypeRegistry.RegisterResource(
+ new ResourceTypeDescriptor(ResourceTypes.TileSetDefinition.ToString(), "3.0.0"),
+ Tsd300.TileSetDefinition.Serialize,
+ Tsd300.TileSetDefinition.Deserialize);
+ ObjectFactory.RegisterTileSetDefinitionFactoryMethod(new Version(3, 0, 0), Tsd300.TileSetDefinition.CreateDefault);
}
#region Factory registration
@@ -322,7 +297,7 @@
/// <param name="resourceType">The resource type descriptor.</param>
/// <param name="serializeMethod">The serialize method.</param>
/// <param name="deserializeMethod">The deserialize method.</param>
- public static void RegisterResourceSerializer(ResourceTypeDescriptor resourceType, ResourceSerializationCallback serializer, ResourceDeserializationCallback deserializer)
+ public static void RegisterResourceSerializer(ResourceTypeDescriptor resourceType, Func<IResource, Stream> serializer, Func<string, IResource> deserializer)
{
Check.ArgumentNotNull(resourceType, "resourceType");
Check.ArgumentNotNull(serializer, "serializer");
@@ -335,7 +310,7 @@
/// </summary>
/// <param name="version"></param>
/// <param name="func"></param>
- public static void RegisterCompoundSymbolFactoryMethod(Version version, CompoundSymbolDefCreatorFunc func)
+ public static void RegisterCompoundSymbolFactoryMethod(Version version, Func<ICompoundSymbolDefinition> func)
{
Check.ArgumentNotNull(version, "version");
Check.ArgumentNotNull(func, "func");
@@ -350,7 +325,7 @@
/// </summary>
/// <param name="version"></param>
/// <param name="func"></param>
- public static void RegisterSimpleSymbolFactoryMethod(Version version, SimpleSymbolDefCreatorFunc func)
+ public static void RegisterSimpleSymbolFactoryMethod(Version version, Func<ISimpleSymbolDefinition> func)
{
Check.ArgumentNotNull(version, "version");
Check.ArgumentNotNull(func, "func");
@@ -365,7 +340,7 @@
/// </summary>
/// <param name="version">The ver.</param>
/// <param name="method">The method.</param>
- public static void RegisterLayerFactoryMethod(Version version, LayerCreatorFunc method)
+ public static void RegisterLayerFactoryMethod(Version version, Func<LayerType, ILayerDefinition> method)
{
Check.ArgumentNotNull(version, "version");
Check.ArgumentNotNull(method, "method");
@@ -380,7 +355,7 @@
/// </summary>
/// <param name="type">The type.</param>
/// <param name="method">The method.</param>
- public static void RegisterLoadProcedureFactoryMethod(LoadType type, LoadProcCreatorFunc method)
+ public static void RegisterLoadProcedureFactoryMethod(LoadType type, Func<ILoadProcedure> method)
{
Check.ArgumentNotNull(method, "method");
if (_loadProcFactories.ContainsKey(type))
@@ -394,7 +369,7 @@
/// </summary>
/// <param name="version">The version.</param>
/// <param name="method">The method.</param>
- public static void RegisterWebLayoutFactoryMethod(Version version, WebLayoutCreatorFunc method)
+ public static void RegisterWebLayoutFactoryMethod(Version version, Func<string, IWebLayout> method)
{
Check.ArgumentNotNull(version, "version");
Check.ArgumentNotNull(method, "method");
@@ -409,7 +384,7 @@
/// </summary>
/// <param name="version"></param>
/// <param name="method"></param>
- public static void RegisterMapDefinitionFactoryMethod(Version version, MapDefinitionCreatorFunc method)
+ public static void RegisterMapDefinitionFactoryMethod(Version version, Func<IMapDefinition> method)
{
Check.ArgumentNotNull(version, "version");
Check.ArgumentNotNull(method, "method");
@@ -424,7 +399,7 @@
/// </summary>
/// <param name="version"></param>
/// <param name="method"></param>
- public static void RegisterWatermarkDefinitionFactoryMethod(Version version, WatermarkCreatorFunc method)
+ public static void RegisterWatermarkDefinitionFactoryMethod(Version version, Func<SymbolDefinitionType, IWatermarkDefinition> method)
{
Check.ArgumentNotNull(version, "version");
Check.ArgumentNotNull(method, "method");
@@ -433,7 +408,22 @@
_watermarkFactories[version] = method;
}
+
+ /// <summary>
+ /// Registers the Tile Set Definition factory method
+ /// </summary>
+ /// <param name="version"></param>
+ /// <param name="func"></param>
+ public static void RegisterTileSetDefinitionFactoryMethod(Version version, Func<ITileSetDefinition> func)
+ {
+ Check.ArgumentNotNull(version, "version");
+ Check.ArgumentNotNull(func, "func");
+ if (_tileSetDefinitionFactories.ContainsKey(version))
+ throw new ArgumentException(Strings.FactoryMethodAlreadyRegistered + version);
+ _tileSetDefinitionFactories[version] = func;
+ }
+
#endregion Factory registration
/// <summary>
@@ -738,6 +728,36 @@
}
/// <summary>
+ /// Creates the tile set definition
+ /// </summary>
+ /// <param name="version"></param>
+ /// <returns></returns>
+ public static ITileSetDefinition CreateTileSetDefinition(Version version)
+ {
+ Check.ArgumentNotNull(version, "version"); //NOXLATE
+ if (!_mapDefinitionFactories.ContainsKey(version))
+ throw new ArgumentException(Strings.UnknownTileDefinitionVersion + version.ToString());
+
+ var tsd = _tileSetDefinitionFactories[version]();
+ return tsd;
+ }
+
+ /// <summary>
+ /// Creates the tile set definition using the default provider
+ /// </summary>
+ /// <param name="version"></param>
+ /// <param name="name"></param>
+ /// <param name="coordinateSystemWkt"></param>
+ /// <param name="extents"></param>
+ /// <returns></returns>
+ public static ITileSetDefinition CreateTileSetDefinition(Version version, IEnvelope extents)
+ {
+ var tsd = CreateTileSetDefinition(version);
+ tsd.Extents = extents;
+ return tsd;
+ }
+
+ /// <summary>
/// Creates the web layout.
/// </summary>
/// <param name="version">The version.</param>
Modified: trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/Properties/AssemblyInfo.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/Properties/AssemblyInfo.cs 2014-12-29 14:27:24 UTC (rev 8484)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/Properties/AssemblyInfo.cs 2014-12-29 16:18:37 UTC (rev 8485)
@@ -32,5 +32,5 @@
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
-[assembly: AssemblyVersion("2.6.0.0")]
-[assembly: AssemblyFileVersion("2.6.0.0")]
\ No newline at end of file
+[assembly: AssemblyVersion("3.0.0.0")]
+[assembly: AssemblyFileVersion("3.0.0.0")]
\ No newline at end of file
Modified: trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/ResourceTypeRegistry.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/ResourceTypeRegistry.cs 2014-12-29 14:27:24 UTC (rev 8484)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/ResourceTypeRegistry.cs 2014-12-29 16:18:37 UTC (rev 8485)
@@ -32,16 +32,6 @@
namespace OSGeo.MapGuide.ObjectModels
{
/// <summary>
- ///
- /// </summary>
- public delegate IResource ResourceDeserializationCallback(string xml);
-
- /// <summary>
- ///
- /// </summary>
- public delegate Stream ResourceSerializationCallback(IResource res);
-
- /// <summary>
/// A resource serializer
/// </summary>
public class ResourceSerializer
@@ -50,13 +40,13 @@
/// Gets or sets the serialize method.
/// </summary>
/// <value>The serialize method.</value>
- public ResourceSerializationCallback Serialize { get; set; }
+ public Func<IResource, Stream> Serialize { get; set; }
/// <summary>
/// Gets or sets the deserialize method.
/// </summary>
/// <value>The deserialize method.</value>
- public ResourceDeserializationCallback Deserialize { get; set; }
+ public Func<string, IResource> Deserialize { get; set; }
}
//TODO: Expand on documentation as this is an important class
@@ -209,7 +199,7 @@
/// <param name="desc">The desc.</param>
/// <param name="serializeMethod">The serialize method.</param>
/// <param name="deserializeMethod">The deserialize method.</param>
- public static void RegisterResource(ResourceTypeDescriptor desc, ResourceSerializationCallback serializeMethod, ResourceDeserializationCallback deserializeMethod)
+ public static void RegisterResource(ResourceTypeDescriptor desc, Func<IResource, Stream> serializeMethod, Func<string, IResource> deserializeMethod)
{
RegisterResource(desc, new ResourceSerializer() { Deserialize = deserializeMethod, Serialize = serializeMethod });
}
Modified: trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/ResourceTypes.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/ResourceTypes.cs 2014-12-29 14:27:24 UTC (rev 8484)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/ResourceTypes.cs 2014-12-29 16:18:37 UTC (rev 8485)
@@ -100,6 +100,11 @@
/// <summary>
/// A selection for a runtime map
/// </summary>
- Selection
+ Selection,
+
+ /// <summary>
+ /// A tile set definition
+ /// </summary>
+ TileSetDefinition
}
}
\ No newline at end of file
Modified: trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/Strings.Designer.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/Strings.Designer.cs 2014-12-29 14:27:24 UTC (rev 8484)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/Strings.Designer.cs 2014-12-29 16:18:37 UTC (rev 8485)
@@ -468,6 +468,15 @@
}
/// <summary>
+ /// Looks up a localized string similar to Parameter {0} is not applicable for tile provider {1}.
+ /// </summary>
+ internal static string ParameterNotApplicableForTileProvider {
+ get {
+ return ResourceManager.GetString("ParameterNotApplicableForTileProvider", resourceCulture);
+ }
+ }
+
+ /// <summary>
/// Looks up a localized string similar to Precondition failure: .
/// </summary>
internal static string PrecondFailure {
@@ -522,6 +531,15 @@
}
/// <summary>
+ /// Looks up a localized string similar to Unknown Tile Set Definition version:.
+ /// </summary>
+ internal static string UnknownTileDefinitionVersion {
+ get {
+ return ResourceManager.GetString("UnknownTileDefinitionVersion", resourceCulture);
+ }
+ }
+
+ /// <summary>
/// Looks up a localized string similar to Unknown Watermark Definition version: .
/// </summary>
internal static string UnknownWatermarkDefinitionVersion {
Modified: trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/Strings.resx
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/Strings.resx 2014-12-29 14:27:24 UTC (rev 8484)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/Strings.resx 2014-12-29 16:18:37 UTC (rev 8485)
@@ -2718,4 +2718,10 @@
<Extension />
</ApplicationDefinition></value>
</data>
+ <data name="UnknownTileDefinitionVersion" xml:space="preserve">
+ <value>Unknown Tile Set Definition version:</value>
+ </data>
+ <data name="ParameterNotApplicableForTileProvider" xml:space="preserve">
+ <value>Parameter {0} is not applicable for tile provider {1}</value>
+ </data>
</root>
\ No newline at end of file
Added: trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/TileSetDefinition/TileSetInterfaces.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/TileSetDefinition/TileSetInterfaces.cs (rev 0)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/TileSetDefinition/TileSetInterfaces.cs 2014-12-29 16:18:37 UTC (rev 8485)
@@ -0,0 +1,294 @@
+#region Disclaimer / License
+
+// Copyright (C) 2014, Jackie Ng
+// http://trac.osgeo.org/mapguide/wiki/maestro, jumpinjackie at gmail.com
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+//
+
+#endregion Disclaimer / License
+
+using OSGeo.MapGuide.ObjectModels.Common;
+using OSGeo.MapGuide.ObjectModels.LayerDefinition;
+using OSGeo.MapGuide.ObjectModels.MapDefinition;
+using System;
+using System.Collections.Generic;
+using System.Globalization;
+using System.Linq;
+using System.Text;
+
+namespace OSGeo.MapGuide.ObjectModels.TileSetDefinition
+{
+ public interface ITileSetDefinition : IResource
+ {
+ ITileStoreParameters TileStoreParameters { get; }
+
+ IEnvelope Extents { get; set; }
+
+ IEnumerable<IBaseMapGroup> BaseGroups { get; }
+ }
+
+ public interface ITileStoreParameters
+ {
+ string TileProvider { get; set; }
+
+ void AddParameter(string name, string value);
+
+ void SetParameter(string name, string value);
+
+ IEnumerable<INameStringPair> Parameters { get; }
+
+ void ClearParameters();
+
+ event EventHandler ParametersChanged;
+ }
+
+ public static class ExtensionMethods
+ {
+ /// <summary>
+ /// Gets the tile set parameter of the specified name
+ /// </summary>
+ /// <param name="tileSet"></param>
+ /// <param name="name"></param>
+ /// <returns></returns>
+ public static INameStringPair GetParameter(this ITileSetDefinition tileSet, string name)
+ {
+ Check.ArgumentNotNull(tileSet, "tileSet"); //NOXLATE
+
+ return tileSet.TileStoreParameters.Parameters.FirstOrDefault(p => p.Name == name);
+ }
+
+ /// <summary>
+ /// Gets the coordinate system of this tile set. Must be using the default tile provider
+ /// </summary>
+ /// <param name="tileSet"></param>
+ /// <returns></returns>
+ public static string GetDefaultCoordinateSystem(this ITileSetDefinition tileSet)
+ {
+ Check.ArgumentNotNull(tileSet, "tileSet"); //NOXLATE
+
+ var p = tileSet.GetParameter("CoordinateSystem"); //NOXLATE
+ if (p != null)
+ return p.Value;
+ return null;
+ }
+
+ /// <summary>
+ /// Sets the coordinate system of this tile set. Must be using the default tile provider.
+ /// </summary>
+ /// <param name="tileSet"></param>
+ /// <param name="coordinateSystem"></param>
+ public static void SetDefaultCoordinateSystem(this ITileSetDefinition tileSet, string coordinateSystem)
+ {
+ Check.ArgumentNotNull(tileSet, "tileSet"); //NOXLATE
+ Check.ArgumentNotEmpty(coordinateSystem, "coordinateSystem"); //NOXLATE
+
+ if (tileSet.TileStoreParameters.TileProvider == "Default") //NOXLATE
+ throw new InvalidOperationException(string.Format(Strings.ParameterNotApplicableForTileProvider, "CoordinateSystem", tileSet.TileStoreParameters.TileProvider));
+
+ tileSet.TileStoreParameters.SetParameter("CoordinateSystem", coordinateSystem); //NOXLATE
+ }
+
+ /// <summary>
+ /// Gets the finite scale list of this tile set. Must be using the default tile provider.
+ /// </summary>
+ /// <param name="tileSet"></param>
+ /// <returns></returns>
+ public static double[] GetDefaultFiniteScaleList(this ITileSetDefinition tileSet)
+ {
+ Check.ArgumentNotNull(tileSet, "tileSet"); //NOXLATE
+ var p = tileSet.GetParameter("FiniteScaleList"); //NOXLATE
+ if (p != null)
+ return p.Value.Split(',').Select(x => x.Trim()).Select(x => Convert.ToDouble(x)).ToArray();
+ return new double[0];
+ }
+
+ /// <summary>
+ /// Sets the finite scale list of this tile set. Must be using the default tile provider.
+ /// </summary>
+ /// <param name="tileSet"></param>
+ /// <param name="scales"></param>
+ public static void SetDefaultFiniteScaleList(this ITileSetDefinition tileSet, IEnumerable<double> scales)
+ {
+ Check.ArgumentNotNull(tileSet, "tileSet"); //NOXLATE
+ Check.ArgumentNotNull(scales, "scales"); //NOXLATE
+
+ if (tileSet.TileStoreParameters.TileProvider == "Default") //NOXLATE
+ throw new InvalidOperationException(string.Format(Strings.ParameterNotApplicableForTileProvider, "FiniteScaleList", tileSet.TileStoreParameters.TileProvider)); //NOXLATE
+
+ string str = string.Join(",", scales.OrderByDescending(x => x).Select(x => x.ToString(CultureInfo.InvariantCulture)).ToArray());
+ tileSet.TileStoreParameters.SetParameter("FiniteScaleList", str); //NOXLATE
+ }
+
+ /// <summary>
+ /// Gets the tile path of this tile set
+ /// </summary>
+ /// <param name="tileSet"></param>
+ /// <returns></returns>
+ public static string GetTilePath(this ITileSetDefinition tileSet)
+ {
+ Check.ArgumentNotNull(tileSet, "tileSet"); //NOXLATE
+ var p = tileSet.GetParameter("TilePath"); //NOXLATE
+ if (p != null)
+ return p.Value;
+ return null;
+ }
+
+ /// <summary>
+ /// Sets the path of this tile set
+ /// </summary>
+ /// <param name="tileSet"></param>
+ /// <param name="path"></param>
+ public static void SetTilePath(this ITileSetDefinition tileSet, string path)
+ {
+ Check.ArgumentNotNull(tileSet, "tileSet"); //NOXLATE
+ Check.ArgumentNotEmpty(path, "path"); //NOXLATE
+ tileSet.TileStoreParameters.SetParameter("TilePath", path); //NOXLATE
+ }
+
+ /// <summary>
+ /// Gets the width of this tile set. Must be using the default tile provider.
+ /// </summary>
+ /// <param name="tileSet"></param>
+ /// <returns></returns>
+ public static int? GetDefaultTileWidth(this ITileSetDefinition tileSet)
+ {
+ Check.ArgumentNotNull(tileSet, "tileSet"); //NOXLATE
+ var p = tileSet.GetParameter("TileWidth"); //NOXLATE
+ if (p != null)
+ return Convert.ToInt32(p.Value);
+ return null;
+ }
+
+ /// <summary>
+ /// Sets the width of this tile set. Must be using the default tile provider.
+ /// </summary>
+ /// <param name="tileSet"></param>
+ /// <param name="value"></param>
+ public static void SetDefaultTileWidth(this ITileSetDefinition tileSet, int value)
+ {
+ Check.ArgumentNotNull(tileSet, "tileSet"); //NOXLATE
+ if (tileSet.TileStoreParameters.TileProvider == "XYZ") //NOXLATE
+ throw new InvalidOperationException(string.Format(Strings.ParameterNotApplicableForTileProvider, "TileWidth", "XYZ")); //NOXLATE
+ tileSet.TileStoreParameters.SetParameter("TileWidth", value.ToString(CultureInfo.InvariantCulture)); //NOXLATE
+ }
+
+ /// <summary>
+ /// Gets the width of this tile set. Must be using the default tile provider.
+ /// </summary>
+ /// <param name="tileSet"></param>
+ /// <returns></returns>
+ public static int? GetDefaultTileHeight(this ITileSetDefinition tileSet)
+ {
+ Check.ArgumentNotNull(tileSet, "tileSet"); //NOXLATE
+ var p = tileSet.GetParameter("TileHeight"); //NOXLATE
+ if (p != null)
+ return Convert.ToInt32(p.Value);
+ return null;
+ }
+
+ /// <summary>
+ /// Sets the height of this tile set. Must be using the default tile provider.
+ /// </summary>
+ /// <param name="tileSet"></param>
+ /// <param name="value"></param>
+ public static void SetDefaultTileHeight(this ITileSetDefinition tileSet, int value)
+ {
+ Check.ArgumentNotNull(tileSet, "tileSet"); //NOXLATE
+ if (tileSet.TileStoreParameters.TileProvider == "XYZ")
+ throw new InvalidOperationException(string.Format(Strings.ParameterNotApplicableForTileProvider, "TileHeight", "XYZ")); //NOXLATE
+ tileSet.TileStoreParameters.SetParameter("TileHeight", value.ToString(CultureInfo.InvariantCulture)); //NOXLATE
+ }
+
+ /// <summary>
+ /// Gets the image format of this tile set
+ /// </summary>
+ /// <param name="tileSet"></param>
+ /// <returns></returns>
+ public static string GetTileFormat(this ITileSetDefinition tileSet)
+ {
+ Check.ArgumentNotNull(tileSet, "tileSet"); //NOXLATE
+ var p = tileSet.GetParameter("TileFormat"); //NOXLATE
+ if (p != null)
+ return p.Value;
+ return null;
+ }
+
+ /// <summary>
+ /// Sets the image format of this tile set
+ /// </summary>
+ /// <param name="tileSet"></param>
+ /// <param name="format"></param>
+ public static void SetTileFormat(this ITileSetDefinition tileSet, string format)
+ {
+ Check.ArgumentNotNull(tileSet, "tileSet"); //NOXLATE
+ Check.ArgumentNotEmpty(format, "format"); //NOXLATE
+ tileSet.TileStoreParameters.SetParameter("TileFormat", format); //NOXLATE
+ }
+
+ /// <summary>
+ /// Sets XYZ provider parameters. Any existing parameters are cleared
+ /// </summary>
+ /// <param name="tileSet"></param>
+ /// <param name="tileFormat"></param>
+ /// <param name="tilePath"></param>
+ public static void SetXYZProviderParameters(this ITileSetDefinition tileSet,
+ string tileFormat = "PNG",
+ string tilePath = "%MG_TILE_CACHE_PATH%")
+ {
+ Check.ArgumentNotNull(tileSet, "tileSet"); //NOXLATE
+
+ var param = tileSet.TileStoreParameters;
+ param.TileProvider = "XYZ"; //NOXLATE
+ param.ClearParameters();
+
+ param.AddParameter("TileFormat", tileFormat); //NOXLATE
+ param.AddParameter("TilePath", tilePath); //NOXLATE
+ }
+
+ /// <summary>
+ /// Sets default provider parameters. Any existing parameters are cleared
+ /// </summary>
+ /// <param name="tileSet"></param>
+ /// <param name="tileWidth"></param>
+ /// <param name="tileHeight"></param>
+ /// <param name="coordinateSystem"></param>
+ /// <param name="finiteScaleList"></param>
+ /// <param name="tileFormat"></param>
+ /// <param name="tilePath"></param>
+ public static void SetDefaultProviderParameters(this ITileSetDefinition tileSet,
+ int tileWidth,
+ int tileHeight,
+ string coordinateSystem,
+ double [] finiteScaleList,
+ string tileFormat = "PNG", //NOXLATE
+ string tilePath = "%MG_TILE_CACHE_PATH%") //NOXLATE
+ {
+ Check.ArgumentNotNull(tileSet, "tileSet"); //NOXLATE
+
+ var param = tileSet.TileStoreParameters;
+ param.TileProvider = "Default"; //NOXLATE
+ param.ClearParameters();
+
+ param.AddParameter("TileWidth", tileWidth.ToString(CultureInfo.InvariantCulture)); //NOXLATE
+ param.AddParameter("TileHeight", tileHeight.ToString(CultureInfo.InvariantCulture)); //NOXLATE
+ param.AddParameter("TileFormat", tileFormat); //NOXLATE
+ param.AddParameter("CoordinateSystem", coordinateSystem); //NOXLATE
+ string str = string.Join(",", finiteScaleList.OrderByDescending(x => x).Select(x => x.ToString(CultureInfo.InvariantCulture)).ToArray()); //NOXLATE
+ param.AddParameter("FiniteScaleList", str); //NOXLATE
+ param.AddParameter("TilePath", tilePath); //NOXLATE
+ }
+ }
+}
Added: trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/TileSetDefinition/v3_0_0/TileSetImpl.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/TileSetDefinition/v3_0_0/TileSetImpl.cs (rev 0)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/TileSetDefinition/v3_0_0/TileSetImpl.cs 2014-12-29 16:18:37 UTC (rev 8485)
@@ -0,0 +1,367 @@
+#region Disclaimer / License
+
+// Copyright (C) 2014, Jackie Ng
+// http://trac.osgeo.org/mapguide/wiki/maestro, jumpinjackie at gmail.com
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+//
+
+#endregion Disclaimer / License
+
+using OSGeo.MapGuide.ObjectModels.Common;
+using OSGeo.MapGuide.ObjectModels.LayerDefinition;
+using OSGeo.MapGuide.ObjectModels.MapDefinition;
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Linq;
+using System.Text;
+using System.Xml.Serialization;
+
+namespace OSGeo.MapGuide.ObjectModels.TileSetDefinition.v3_0_0
+{
+ partial class TileSetDefinition : ITileSetDefinition
+ {
+ public static ITileSetDefinition CreateDefault()
+ {
+ return new TileSetDefinition()
+ {
+ TileStoreParameters = new TileStoreParametersType()
+ {
+ Parameter = new System.ComponentModel.BindingList<NameValuePairType>(),
+ TileProvider = "Default" //NOXLATE
+ },
+ Extents = new Box2DType() { MaxX = 0.0, MaxY = 0.0, MinX = 0.0, MinY = 0.0 },
+ BaseMapLayerGroup = new System.ComponentModel.BindingList<BaseMapLayerGroupCommonType>()
+ };
+ }
+
+ [XmlIgnore]
+ public string ValidatingSchema
+ {
+ get { return "TileSetDefinition-3.0.0.xsd"; } //NOXLATE
+ }
+
+ private string _resId;
+
+ [XmlIgnore]
+ public string ResourceID
+ {
+ get
+ {
+ return _resId;
+ }
+ set
+ {
+ if (!ResourceIdentifier.Validate(value))
+ throw new InvalidOperationException(Strings.ErrorInvalidResourceIdentifier);
+
+ var res = new ResourceIdentifier(value);
+ if (res.Extension != ResourceTypes.TileSetDefinition.ToString())
+ throw new InvalidOperationException(string.Format(Strings.ErrorUnexpectedResourceType, res.ToString(), ResourceTypes.SymbolDefinition));
+
+ _resId = value;
+ this.OnPropertyChanged("ResourceID"); //NOXLATE
+ }
+ }
+
+ [XmlIgnore]
+ public string ResourceType
+ {
+ get { return ResourceTypes.TileSetDefinition.ToString(); }
+ }
+
+ [XmlIgnore]
+ public bool IsStronglyTyped
+ {
+ get { return true; }
+ }
+
+ protected static readonly Version RES_VERSION = new Version(3, 0, 0);
+
+ [XmlIgnore]
+ public Version ResourceVersion
+ {
+ get { return RES_VERSION; }
+ }
+
+ object ICloneable.Clone()
+ {
+ return this.Clone();
+ }
+
+ public static Stream Serialize(IResource res)
+ {
+ return res.SerializeToStream();
+ }
+
+ ITileStoreParameters ITileSetDefinition.TileStoreParameters
+ {
+ get { return this.TileStoreParameters; }
+ }
+
+ Common.IEnvelope ITileSetDefinition.Extents
+ {
+ get
+ {
+ return this.Extents;
+ }
+ set
+ {
+ if (this.Extents == null)
+ {
+ var ext = new Box2DType()
+ {
+ MaxX = value.MaxX,
+ MaxY = value.MaxY,
+ MinX = value.MinX,
+ MinY = value.MinY
+ };
+ this.Extents = ext;
+ }
+ else
+ {
+ this.Extents.MaxX = value.MaxX;
+ this.Extents.MaxY = value.MaxY;
+ this.Extents.MinX = value.MinX;
+ this.Extents.MinY = value.MinY;
+ OnPropertyChanged("Extents"); //NOXLATE
+ }
+ }
+ }
+
+ public IEnumerable<IBaseMapGroup> BaseGroups
+ {
+ get
+ {
+ if (this.BaseMapLayerGroup != null )
+ {
+ foreach (var grp in this.BaseMapLayerGroup)
+ {
+ yield return grp;
+ }
+ }
+ }
+ }
+ }
+
+ partial class Box2DType : IEnvelope
+ {
+
+ }
+
+ partial class TileStoreParametersType : ITileStoreParameters
+ {
+ public void AddParameter(string name, string value)
+ {
+ this.Parameter.Add(new NameValuePairType() { Name = name, Value = value });
+ OnParametersChanged();
+ }
+
+ public void SetParameter(string name, string value)
+ {
+ if (this.Parameter != null)
+ {
+ var param = this.Parameter.Where(x => x.Name == name);
+ if (param.Count() == 0)
+ {
+ this.AddParameter(name, value);
+ }
+ else if (param.Count() > 1)
+ {
+ //Remove and replace
+ foreach(var p in param)
+ {
+ this.Parameter.Remove(p);
+ }
+ this.AddParameter(name, value);
+ }
+ else //1
+ {
+ var p = param.First();
+ if (p.Value != value)
+ {
+ p.Value = value;
+ OnParametersChanged();
+ }
+ }
+ }
+ }
+
+ public IEnumerable<INameStringPair> Parameters
+ {
+ get
+ {
+ if (this.Parameter != null)
+ {
+ foreach (var nvp in this.Parameter)
+ {
+ yield return nvp;
+ }
+ }
+ }
+ }
+
+ public void ClearParameters()
+ {
+ if (this.Parameter != null)
+ {
+ this.Parameter.Clear();
+ }
+ }
+
+ private void OnParametersChanged()
+ {
+ var h = this.ParametersChanged;
+ if (h != null)
+ h(this, EventArgs.Empty);
+ }
+
+ public event EventHandler ParametersChanged;
+ }
+
+ partial class NameValuePairType : INameStringPair
+ {
+
+ }
+
+ partial class BaseMapLayerType : IBaseMapLayer
+ {
+ [XmlIgnore]
+ public ITileSetDefinition Parent
+ {
+ get;
+ set;
+ }
+ }
+
+ partial class BaseMapLayerGroupCommonType : IBaseMapGroup
+ {
+ [XmlIgnore]
+ public ITileSetDefinition Parent
+ {
+ get;
+ set;
+ }
+
+ [XmlIgnore]
+ IEnumerable<IBaseMapLayer> IBaseMapGroup.BaseMapLayer
+ {
+ get
+ {
+ foreach (var lyr in this.BaseMapLayer)
+ {
+ yield return lyr;
+ }
+ }
+ }
+
+ public int GetIndex(IBaseMapLayer layer)
+ {
+ var bl = layer as BaseMapLayerType;
+ if (bl != null)
+ {
+ return this.BaseMapLayer.IndexOf(bl);
+ }
+ return -1;
+ }
+
+ public void InsertLayer(int index, IBaseMapLayer layer)
+ {
+ var bl = layer as BaseMapLayerType;
+ if (bl != null)
+ {
+ this.BaseMapLayer.Insert(index, bl);
+ }
+ }
+
+ public IBaseMapLayer AddLayer(string layerName, string resourceId)
+ {
+ BaseMapLayerType layer = new BaseMapLayerType()
+ {
+ Parent = this.Parent,
+ ExpandInLegend = true,
+ LegendLabel = layerName,
+ Name = layerName,
+ ResourceId = resourceId,
+ ShowInLegend = true,
+ Selectable = true
+ };
+ this.BaseMapLayer.Add(layer);
+ OnPropertyChanged("BaseMapLayer"); //NOXLATE
+ return layer;
+ }
+
+ public void RemoveBaseMapLayer(IBaseMapLayer layer)
+ {
+ var lyr = layer as BaseMapLayerType;
+ if (lyr != null)
+ {
+ this.BaseMapLayer.Remove(lyr);
+ OnPropertyChanged("BaseMapLayer"); //NOXLATE
+ }
+ }
+
+ int IBaseMapGroup.MoveUp(IBaseMapLayer layer)
+ {
+ var lyr = layer as BaseMapLayerType;
+ if (lyr != null)
+ {
+ int isrc = this.BaseMapLayer.IndexOf(lyr);
+ if (isrc > 0)
+ {
+ int idst = isrc - 1;
+ var src = this.BaseMapLayer[isrc];
+ var dst = this.BaseMapLayer[idst];
+
+ //swap
+ this.BaseMapLayer[isrc] = dst;
+ this.BaseMapLayer[idst] = src;
+
+ OnPropertyChanged("BaseMapLayer"); //NOXLATE
+
+ return idst;
+ }
+ }
+
+ return -1;
+ }
+
+ int IBaseMapGroup.MoveDown(IBaseMapLayer layer)
+ {
+ var lyr = layer as BaseMapLayerType;
+ if (lyr != null)
+ {
+ int isrc = this.BaseMapLayer.IndexOf(lyr);
+ if (isrc < this.BaseMapLayer.Count - 1)
+ {
+ int idst = isrc + 1;
+ var src = this.BaseMapLayer[isrc];
+ var dst = this.BaseMapLayer[idst];
+
+ //swap
+ this.BaseMapLayer[isrc] = dst;
+ this.BaseMapLayer[idst] = src;
+
+ OnPropertyChanged("BaseMapLayer"); //NOXLATE
+
+ return idst;
+ }
+ }
+
+ return -1;
+ }
+ }
+}
Modified: trunk/Tools/Maestro/UnitTests.playlist
===================================================================
--- trunk/Tools/Maestro/UnitTests.playlist 2014-12-29 14:27:24 UTC (rev 8484)
+++ trunk/Tools/Maestro/UnitTests.playlist 2014-12-29 16:18:37 UTC (rev 8485)
@@ -1 +1 @@
-<Playlist Version="1.0"><Add Test="OSGeo.MapGuide.MaestroAPI.Schema.Tests.GeometricPropertyDefinitionTests.GeometricPropertyDefinitionTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.Schema.Tests.FeatureSchemaTests.IndexOfTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.ResourceTests.TestWebLayoutConversions" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.ValidationTests.TestUniqueIssues" /><Add Test="OSGeo.MapGuide.MaestroAPI.Schema.Tests.SchemaTests.FindPropertyTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.CapabilityTests.TestHttpCapabilities240" /><Add Test="OSGeo.MapGuide.MaestroAPI.Schema.Tests.FeatureSchemaTests.WriteXmlTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.MiscTests.TestParse3dWkt" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.CapabilityTests.TestHttpCapabilities220" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.ValidationTests.TestLayerScaleRangeOverlap" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.ResourceTests.TestMapDefinitionConversions" /><Add Test="
OSGeo.MapGuide.MaestroAPI.Tests.ValidationTests.TestLoadProcedureValidation" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.ConfigurationDocumentTests.TestOdbcLoad" /><Add Test="OSGeo.MapGuide.MaestroAPI.Schema.Tests.GeometricPropertyDefinitionTests.GeometryTypesToStringTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.Schema.Tests.FeatureSchemaTests.AddClassTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.ResourceTests.TestWebLayout" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.ConfigurationDocumentTests.TestOdbcSaveLoad" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.FeatureReaderTests.TestXmlFeatureJoinValues" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.CapabilityTests.TestHttpCapabilities120" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.FeatureReaderTests.TestXmlAggregateNullValues" /><Add Test="OSGeo.MapGuide.MaestroAPI.Schema.Tests.SchemaTests.GetOrdinalTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.MiscTests.TestArgParser" /><Add Test="OSGeo.MapGuide.MaestroAPI.Schema.T
ests.FeatureSchemaTests.CloneTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.ResourceTests.TestMapDefinitionNestedGroupDelete" /><Add Test="OSGeo.MapGuide.MaestroAPI.Schema.Tests.SchemaTests.RemovePropertyTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.ResourceTests.TestMapDefinitionLayerRemove" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.SchemaTests.TestCreate" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.ResourceTests.TestMapDefinitionGroupReordering" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.ConfigurationDocumentTests.TestWmsSaveLoad" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.ConfigurationDocumentTests.TestOdbcLoad2" /><Add Test="OSGeo.MapGuide.MaestroAPI.Schema.Tests.SchemaTests.RemovePropertyAtTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.Schema.Tests.FeatureSchemaTests.GetClassTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.Schema.Tests.SchemaTests.ClassDefinitionTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.CapabilityTests.TestHttpCapabilities250" /><Add
Test="OSGeo.MapGuide.MaestroAPI.Tests.CapabilityTests.TestHttpCapabilities200" /><Add Test="OSGeo.MapGuide.MaestroAPI.Schema.Tests.FeatureSchemaTests.RemoveClassTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.Schema.Tests.DataPropertyDefinitionTests.IsNumericTypeTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.SchemaTests.TestClassNameEncoding" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.CapabilityTests.TestHttpCapabilities110" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.ResourceTests.TestSymbolDefinitionConversions" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.CapabilityTests.TestHttpCapabilities210" /><Add Test="OSGeo.MapGuide.MaestroAPI.Schema.Tests.GeometricPropertyDefinitionTests.GetIndividualGeometricTypesTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.ValidationTests.TestValidationResultSet" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.ConfigurationDocumentTests.TestWmsLoad" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.ConfigurationDocumentTests.TestWmsLoad3" /><
Add Test="OSGeo.MapGuide.MaestroAPI.Schema.Tests.DataPropertyDefinitionTests.DataPropertyDefinitionTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.ResourceTests.TestMapDefinitionGroupRemove" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.CapabilityTests.TestHttpCapabilities260" /><Add Test="OSGeo.MapGuide.MaestroAPI.Schema.Tests.GeometricPropertyDefinitionTests.SpecificGeometryTypesTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.ConfigurationDocumentTests.TestMySqlSchema" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.SchemaTests.TestFeatureSchemaRoundtrip" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.CapabilityTests.TestHttpCapabilities100" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.ResourceTests.TestMapDefinitionGroupAdd" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.CapabilityTests.TestHttpCapabilities230" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.ConfigurationDocumentTests.TestWmsLoad2" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.ResourceTests.TestLoadProcedureCon
versions" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.ResourceTests.TestLayerDefinitionConversions" /><Add Test="OSGeo.MapGuide.MaestroAPI.Schema.Tests.FeatureSchemaTests.GetItemTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.ValidationTests.TestCase1896" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.ResourceTests.TestMapDefinitionLayerAdd" /><Add Test="OSGeo.MapGuide.MaestroAPI.Schema.Tests.SchemaTests.ClearIdentityPropertiesTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.FeatureReaderTests.TestXmlFeatureNullValues" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.ResourceTests.TestMapDefinitionLayerReordering" /><Add Test="OSGeo.MapGuide.MaestroAPI.Schema.Tests.SchemaTests.IndexOfPropertyTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.Schema.Tests.SchemaTests.CloneTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.MiscTests.TestParseXyzmWkt" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.MiscTests.TestConnectionString" /><Add Test="OSGeo.MapGuide.MaestroAPI.Schema.Tests.Featu
reSchemaTests.FeatureSchemaTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.ResourceTests.TestMapDefinitionLayerInsert" /><Add Test="OSGeo.MapGuide.ObjectModels.Tests.ObjectFactoryTests.RegisterLayerFactoryMethodTest" /><Add Test="OSGeo.MapGuide.ObjectModels.Tests.ObjectFactoryTests.CreateMapDefinitionTestWithNameAndCoordSys" /><Add Test="OSGeo.MapGuide.ObjectModels.Tests.ObjectFactoryTests.CreateWatermarkTest" /><Add Test="OSGeo.MapGuide.ObjectModel.Tests.FeatureSourceTests.TestFeatureSourceFileParameters" /><Add Test="OSGeo.MapGuide.ObjectModels.Tests.ObjectFactoryTests.CreateSimplePointTest" /><Add Test="OSGeo.MapGuide.ObjectModels.Tests.ObjectFactoryTests.CreateCalculatedPropertyTest" /><Add Test="OSGeo.MapGuide.ObjectModels.Tests.ObjectFactoryTests.CreatePoint3DTest" /><Add Test="OSGeo.MapGuide.ObjectModels.Tests.ObjectFactoryTests.RegisterCompoundSymbolFactoryMethodTest" /><Add Test="OSGeo.MapGuide.ObjectModels.Tests.ObjectFactoryTests.CreateSymbolLibraryTest" /><Add
Test="OSGeo.MapGuide.ObjectModel.Tests.ResourceTests.TestResourceTypeDescriptor" /><Add Test="OSGeo.MapGuide.ObjectModel.Tests.ResourceTests.TestValidResourceIdentifiers" /><Add Test="OSGeo.MapGuide.ObjectModels.Tests.ObjectFactoryTests.CreateMetadataTest" /><Add Test="OSGeo.MapGuide.ObjectModels.Tests.ObjectFactoryTests.RegisterSimpleSymbolFactoryMethodTest" /><Add Test="OSGeo.MapGuide.ObjectModels.Tests.ObjectFactoryTests.RegisterWatermarkDefinitionFactoryMethodTest" /><Add Test="OSGeo.MapGuide.ObjectModels.Tests.ObjectFactoryTests.CreateSecurityUserTest" /><Add Test="OSGeo.MapGuide.ObjectModels.Tests.ObjectFactoryTests.CreateSimpleSymbolTest" /><Add Test="OSGeo.MapGuide.ObjectModels.Tests.ObjectFactoryTests.CreateAttributeRelationTest" /><Add Test="OSGeo.MapGuide.ObjectModel.Tests.DrawingSourceTests.DrawingSourceDeserializationWithFullContentModel" /><Add Test="OSGeo.MapGuide.ObjectModels.Tests.ObjectFactoryTests.CreateFeatureSourceExtensionTest" /><Add Test="OSGeo.MapGu
ide.ObjectModels.Tests.ObjectFactoryTests.CreateLoadProcedureTest" /><Add Test="OSGeo.MapGuide.ObjectModel.Tests.ResourceTests.TestCloning" /><Add Test="OSGeo.MapGuide.ObjectModels.Tests.ObjectFactoryTests.RegisterWebLayoutFactoryMethodTest" /><Add Test="OSGeo.MapGuide.ObjectModels.Tests.ObjectFactoryTests.CreateFeatureSourceTest" /><Add Test="OSGeo.MapGuide.ObjectModel.Tests.ApplicationDefinitionTests.ApplicationDefinitionDeserializationWithFullContentModel" /><Add Test="OSGeo.MapGuide.ObjectModels.Tests.ObjectFactoryTests.CreatePrintLayoutTest" /><Add Test="OSGeo.MapGuide.ObjectModels.Tests.ObjectFactoryTests.CreateMapDefinitionTestWithNameAndCoordSysAndExtent" /><Add Test="OSGeo.MapGuide.ObjectModels.Tests.ObjectFactoryTests.CreatePoint2DTest" /><Add Test="OSGeo.MapGuide.ObjectModels.Tests.ObjectFactoryTests.RegisterResourceTest" /><Add Test="OSGeo.MapGuide.ObjectModels.Tests.ObjectFactoryTests.CreateSecurityGroupTest" /><Add Test="OSGeo.MapGuide.ObjectModels.Tests.Object
FactoryTests.CreateSimpleLabelTest" /><Add Test="OSGeo.MapGuide.ObjectModels.Tests.ObjectFactoryTests.CreateFeatureSourceTestWithParameters" /><Add Test="OSGeo.MapGuide.ObjectModels.Tests.ObjectFactoryTests.CreateSimpleSolidLineTest" /><Add Test="OSGeo.MapGuide.ObjectModels.Tests.ObjectFactoryTests.CreateLoadProcedureTestWithFileNames" /><Add Test="OSGeo.MapGuide.ObjectModels.Tests.ObjectFactoryTests.CreateEnvelopeTest" /><Add Test="OSGeo.MapGuide.ObjectModels.Tests.ObjectFactoryTests.CreateDefaultLayerTest" /><Add Test="OSGeo.MapGuide.ObjectModels.Tests.ObjectFactoryTests.CreateCompoundSymbolTest" /><Add Test="OSGeo.MapGuide.ObjectModels.Tests.ObjectFactoryTests.CreateSimpleSolidFillTest" /><Add Test="OSGeo.MapGuide.ObjectModels.Tests.ObjectFactoryTests.RegisterResourceSerializerTest" /><Add Test="OSGeo.MapGuide.ObjectModel.Tests.FeatureSourceTests.FeatureSourceDeserializationWithFullContentModel" /><Add Test="OSGeo.MapGuide.ObjectModels.Tests.ObjectFactoryTests.RegisterMap
DefinitionFactoryMethodTest" /><Add Test="OSGeo.MapGuide.ObjectModels.Tests.ObjectFactoryTests.RegisterLoadProcedureFactoryMethodTest" /><Add Test="OSGeo.MapGuide.ObjectModels.Tests.ObjectFactoryTests.CreateDrawingSourceTest" /><Add Test="OSGeo.MapGuide.ObjectModels.Tests.ObjectFactoryTests.CreateMapDefinitionTestWithName" /><Add Test="OSGeo.MapGuide.MaestroAPI.CrossConnection.Tests.ResourceMigratorTests.ResourceMigratorTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.CrossConnection.Tests.ResourceMigratorTests.MoveResourcesWithOverwriteTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.CrossConnection.Tests.ResourceMigratorTests.CopyResourcesWithOverwriteTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.CrossConnection.Tests.ResourceMigratorTests.CopyResourcesWithoutOverwriteTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.CrossConnection.Tests.ResourceMigratorTests.MoveResourcesWithoutOverwriteTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.CrossConnection.Tests.ResourceRebaserTests.RebaseTest"
/><Add Test="OSGeo.MapGuide.MaestroAPI.CrossConnection.Tests.ResourceRebaserTests.ResourceRebaserTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.Mapping.Tests.RuntimeMapTests.UnsupportedConnectionTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.Mapping.Tests.RuntimeMapTests.GetLayerByNameTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.Mapping.Tests.RuntimeMapTests.RemoveLayerAtTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.Mapping.Tests.RuntimeMapTests.UpdateMapDefinitionTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.Mapping.Tests.RuntimeMapTests.IndexOfLayerTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.Mapping.Tests.RuntimeMapTests.RemoveGroupTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.Mapping.Tests.RuntimeMapTests.SetViewCenterTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.Mapping.Tests.RuntimeMapTests.GetGroupByNameTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.Mapping.Tests.RuntimeMapTests.GetGroupsOfGroupTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.Mapping.Tests.RuntimeMapTests.GetLayer
sOfGroupTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.Mapping.Tests.RuntimeMapTests.RemoveLayerTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.Mapping.Tests.RuntimeMapTests.GetLayerByObjectIdTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.Mapping.Tests.RuntimeMapTests.InsertLayerTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.Mapping.Tests.RuntimeMapTests.ToMapDefinitionTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.Mapping.Tests.RuntimeMapTests.GetFiniteDisplayScaleAtTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.Mapping.Tests.RuntimeMapTests.SetLayerIndexTest" /><Add Test="OSGeo.MapGuide.ObjectModel.Tests.CheckTests.NotNullTest" /><Add Test="OSGeo.MapGuide.ObjectModel.Tests.CheckTests.RangeTest" /><Add Test="OSGeo.MapGuide.ObjectModel.Tests.CheckTests.IsFolderTest" /><Add Test="OSGeo.MapGuide.ObjectModel.Tests.CheckTests.NotEmptyTest" /><Add Test="OSGeo.MapGuide.ObjectModel.Tests.CheckTests.PreconditionTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.Resource.Tests.ResourceSchemaChainTests.
GetValidatingSchemasTest" /><Add Test="OSGeo.MapGuide.ObjectModel.Tests.MapDefinitionTests.DeserializationTest_V30" /><Add Test="OSGeo.MapGuide.ObjectModel.Tests.MapDefinitionTests.CreateTest_V30" /></Playlist>
\ No newline at end of file
+<Playlist Version="1.0"><Add Test="OSGeo.MapGuide.MaestroAPI.Schema.Tests.GeometricPropertyDefinitionTests.GeometricPropertyDefinitionTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.Schema.Tests.FeatureSchemaTests.IndexOfTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.ResourceTests.TestWebLayoutConversions" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.ValidationTests.TestUniqueIssues" /><Add Test="OSGeo.MapGuide.MaestroAPI.Schema.Tests.SchemaTests.FindPropertyTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.CapabilityTests.TestHttpCapabilities240" /><Add Test="OSGeo.MapGuide.MaestroAPI.Schema.Tests.FeatureSchemaTests.WriteXmlTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.MiscTests.TestParse3dWkt" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.CapabilityTests.TestHttpCapabilities220" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.ValidationTests.TestLayerScaleRangeOverlap" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.ResourceTests.TestMapDefinitionConversions" /><Add Test="
OSGeo.MapGuide.MaestroAPI.Tests.ValidationTests.TestLoadProcedureValidation" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.ConfigurationDocumentTests.TestOdbcLoad" /><Add Test="OSGeo.MapGuide.MaestroAPI.Schema.Tests.GeometricPropertyDefinitionTests.GeometryTypesToStringTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.Schema.Tests.FeatureSchemaTests.AddClassTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.ResourceTests.TestWebLayout" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.ConfigurationDocumentTests.TestOdbcSaveLoad" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.FeatureReaderTests.TestXmlFeatureJoinValues" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.CapabilityTests.TestHttpCapabilities120" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.FeatureReaderTests.TestXmlAggregateNullValues" /><Add Test="OSGeo.MapGuide.MaestroAPI.Schema.Tests.SchemaTests.GetOrdinalTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.MiscTests.TestArgParser" /><Add Test="OSGeo.MapGuide.MaestroAPI.Schema.T
ests.FeatureSchemaTests.CloneTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.ResourceTests.TestMapDefinitionNestedGroupDelete" /><Add Test="OSGeo.MapGuide.MaestroAPI.Schema.Tests.SchemaTests.RemovePropertyTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.ResourceTests.TestMapDefinitionLayerRemove" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.SchemaTests.TestCreate" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.ResourceTests.TestMapDefinitionGroupReordering" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.ConfigurationDocumentTests.TestWmsSaveLoad" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.ConfigurationDocumentTests.TestOdbcLoad2" /><Add Test="OSGeo.MapGuide.MaestroAPI.Schema.Tests.SchemaTests.RemovePropertyAtTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.Schema.Tests.FeatureSchemaTests.GetClassTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.Schema.Tests.SchemaTests.ClassDefinitionTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.CapabilityTests.TestHttpCapabilities250" /><Add
Test="OSGeo.MapGuide.MaestroAPI.Tests.CapabilityTests.TestHttpCapabilities200" /><Add Test="OSGeo.MapGuide.MaestroAPI.Schema.Tests.FeatureSchemaTests.RemoveClassTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.Schema.Tests.DataPropertyDefinitionTests.IsNumericTypeTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.SchemaTests.TestClassNameEncoding" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.CapabilityTests.TestHttpCapabilities110" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.ResourceTests.TestSymbolDefinitionConversions" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.CapabilityTests.TestHttpCapabilities210" /><Add Test="OSGeo.MapGuide.MaestroAPI.Schema.Tests.GeometricPropertyDefinitionTests.GetIndividualGeometricTypesTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.ValidationTests.TestValidationResultSet" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.ConfigurationDocumentTests.TestWmsLoad" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.ConfigurationDocumentTests.TestWmsLoad3" /><
Add Test="OSGeo.MapGuide.MaestroAPI.Schema.Tests.DataPropertyDefinitionTests.DataPropertyDefinitionTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.ResourceTests.TestMapDefinitionGroupRemove" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.CapabilityTests.TestHttpCapabilities260" /><Add Test="OSGeo.MapGuide.MaestroAPI.Schema.Tests.GeometricPropertyDefinitionTests.SpecificGeometryTypesTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.ConfigurationDocumentTests.TestMySqlSchema" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.SchemaTests.TestFeatureSchemaRoundtrip" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.CapabilityTests.TestHttpCapabilities100" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.ResourceTests.TestMapDefinitionGroupAdd" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.CapabilityTests.TestHttpCapabilities230" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.ConfigurationDocumentTests.TestWmsLoad2" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.ResourceTests.TestLoadProcedureCon
versions" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.ResourceTests.TestLayerDefinitionConversions" /><Add Test="OSGeo.MapGuide.MaestroAPI.Schema.Tests.FeatureSchemaTests.GetItemTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.ValidationTests.TestCase1896" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.ResourceTests.TestMapDefinitionLayerAdd" /><Add Test="OSGeo.MapGuide.MaestroAPI.Schema.Tests.SchemaTests.ClearIdentityPropertiesTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.FeatureReaderTests.TestXmlFeatureNullValues" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.ResourceTests.TestMapDefinitionLayerReordering" /><Add Test="OSGeo.MapGuide.MaestroAPI.Schema.Tests.SchemaTests.IndexOfPropertyTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.Schema.Tests.SchemaTests.CloneTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.MiscTests.TestParseXyzmWkt" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.MiscTests.TestConnectionString" /><Add Test="OSGeo.MapGuide.MaestroAPI.Schema.Tests.Featu
reSchemaTests.FeatureSchemaTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.ResourceTests.TestMapDefinitionLayerInsert" /><Add Test="OSGeo.MapGuide.ObjectModels.Tests.ObjectFactoryTests.RegisterLayerFactoryMethodTest" /><Add Test="OSGeo.MapGuide.ObjectModels.Tests.ObjectFactoryTests.CreateMapDefinitionTestWithNameAndCoordSys" /><Add Test="OSGeo.MapGuide.ObjectModels.Tests.ObjectFactoryTests.CreateWatermarkTest" /><Add Test="OSGeo.MapGuide.ObjectModel.Tests.FeatureSourceTests.TestFeatureSourceFileParameters" /><Add Test="OSGeo.MapGuide.ObjectModels.Tests.ObjectFactoryTests.CreateSimplePointTest" /><Add Test="OSGeo.MapGuide.ObjectModels.Tests.ObjectFactoryTests.CreateCalculatedPropertyTest" /><Add Test="OSGeo.MapGuide.ObjectModels.Tests.ObjectFactoryTests.CreatePoint3DTest" /><Add Test="OSGeo.MapGuide.ObjectModels.Tests.ObjectFactoryTests.RegisterCompoundSymbolFactoryMethodTest" /><Add Test="OSGeo.MapGuide.ObjectModels.Tests.ObjectFactoryTests.CreateSymbolLibraryTest" /><Add
Test="OSGeo.MapGuide.ObjectModel.Tests.ResourceTests.TestResourceTypeDescriptor" /><Add Test="OSGeo.MapGuide.ObjectModel.Tests.ResourceTests.TestValidResourceIdentifiers" /><Add Test="OSGeo.MapGuide.ObjectModels.Tests.ObjectFactoryTests.CreateMetadataTest" /><Add Test="OSGeo.MapGuide.ObjectModels.Tests.ObjectFactoryTests.RegisterSimpleSymbolFactoryMethodTest" /><Add Test="OSGeo.MapGuide.ObjectModels.Tests.ObjectFactoryTests.RegisterWatermarkDefinitionFactoryMethodTest" /><Add Test="OSGeo.MapGuide.ObjectModels.Tests.ObjectFactoryTests.CreateSecurityUserTest" /><Add Test="OSGeo.MapGuide.ObjectModels.Tests.ObjectFactoryTests.CreateSimpleSymbolTest" /><Add Test="OSGeo.MapGuide.ObjectModels.Tests.ObjectFactoryTests.CreateAttributeRelationTest" /><Add Test="OSGeo.MapGuide.ObjectModel.Tests.DrawingSourceTests.DrawingSourceDeserializationWithFullContentModel" /><Add Test="OSGeo.MapGuide.ObjectModels.Tests.ObjectFactoryTests.CreateFeatureSourceExtensionTest" /><Add Test="OSGeo.MapGu
ide.ObjectModels.Tests.ObjectFactoryTests.CreateLoadProcedureTest" /><Add Test="OSGeo.MapGuide.ObjectModel.Tests.ResourceTests.TestCloning" /><Add Test="OSGeo.MapGuide.ObjectModels.Tests.ObjectFactoryTests.RegisterWebLayoutFactoryMethodTest" /><Add Test="OSGeo.MapGuide.ObjectModels.Tests.ObjectFactoryTests.CreateFeatureSourceTest" /><Add Test="OSGeo.MapGuide.ObjectModel.Tests.ApplicationDefinitionTests.ApplicationDefinitionDeserializationWithFullContentModel" /><Add Test="OSGeo.MapGuide.ObjectModels.Tests.ObjectFactoryTests.CreatePrintLayoutTest" /><Add Test="OSGeo.MapGuide.ObjectModels.Tests.ObjectFactoryTests.CreateMapDefinitionTestWithNameAndCoordSysAndExtent" /><Add Test="OSGeo.MapGuide.ObjectModels.Tests.ObjectFactoryTests.CreatePoint2DTest" /><Add Test="OSGeo.MapGuide.ObjectModels.Tests.ObjectFactoryTests.RegisterResourceTest" /><Add Test="OSGeo.MapGuide.ObjectModels.Tests.ObjectFactoryTests.CreateSecurityGroupTest" /><Add Test="OSGeo.MapGuide.ObjectModels.Tests.Object
FactoryTests.CreateSimpleLabelTest" /><Add Test="OSGeo.MapGuide.ObjectModels.Tests.ObjectFactoryTests.CreateFeatureSourceTestWithParameters" /><Add Test="OSGeo.MapGuide.ObjectModels.Tests.ObjectFactoryTests.CreateSimpleSolidLineTest" /><Add Test="OSGeo.MapGuide.ObjectModels.Tests.ObjectFactoryTests.CreateLoadProcedureTestWithFileNames" /><Add Test="OSGeo.MapGuide.ObjectModels.Tests.ObjectFactoryTests.CreateEnvelopeTest" /><Add Test="OSGeo.MapGuide.ObjectModels.Tests.ObjectFactoryTests.CreateDefaultLayerTest" /><Add Test="OSGeo.MapGuide.ObjectModels.Tests.ObjectFactoryTests.CreateCompoundSymbolTest" /><Add Test="OSGeo.MapGuide.ObjectModels.Tests.ObjectFactoryTests.CreateSimpleSolidFillTest" /><Add Test="OSGeo.MapGuide.ObjectModels.Tests.ObjectFactoryTests.RegisterResourceSerializerTest" /><Add Test="OSGeo.MapGuide.ObjectModel.Tests.FeatureSourceTests.FeatureSourceDeserializationWithFullContentModel" /><Add Test="OSGeo.MapGuide.ObjectModels.Tests.ObjectFactoryTests.RegisterMap
DefinitionFactoryMethodTest" /><Add Test="OSGeo.MapGuide.ObjectModels.Tests.ObjectFactoryTests.RegisterLoadProcedureFactoryMethodTest" /><Add Test="OSGeo.MapGuide.ObjectModels.Tests.ObjectFactoryTests.CreateDrawingSourceTest" /><Add Test="OSGeo.MapGuide.ObjectModels.Tests.ObjectFactoryTests.CreateMapDefinitionTestWithName" /><Add Test="OSGeo.MapGuide.MaestroAPI.CrossConnection.Tests.ResourceMigratorTests.ResourceMigratorTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.CrossConnection.Tests.ResourceMigratorTests.MoveResourcesWithOverwriteTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.CrossConnection.Tests.ResourceMigratorTests.CopyResourcesWithOverwriteTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.CrossConnection.Tests.ResourceMigratorTests.CopyResourcesWithoutOverwriteTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.CrossConnection.Tests.ResourceMigratorTests.MoveResourcesWithoutOverwriteTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.CrossConnection.Tests.ResourceRebaserTests.RebaseTest"
/><Add Test="OSGeo.MapGuide.MaestroAPI.CrossConnection.Tests.ResourceRebaserTests.ResourceRebaserTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.Mapping.Tests.RuntimeMapTests.UnsupportedConnectionTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.Mapping.Tests.RuntimeMapTests.GetLayerByNameTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.Mapping.Tests.RuntimeMapTests.RemoveLayerAtTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.Mapping.Tests.RuntimeMapTests.UpdateMapDefinitionTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.Mapping.Tests.RuntimeMapTests.IndexOfLayerTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.Mapping.Tests.RuntimeMapTests.RemoveGroupTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.Mapping.Tests.RuntimeMapTests.SetViewCenterTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.Mapping.Tests.RuntimeMapTests.GetGroupByNameTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.Mapping.Tests.RuntimeMapTests.GetGroupsOfGroupTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.Mapping.Tests.RuntimeMapTests.GetLayer
sOfGroupTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.Mapping.Tests.RuntimeMapTests.RemoveLayerTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.Mapping.Tests.RuntimeMapTests.GetLayerByObjectIdTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.Mapping.Tests.RuntimeMapTests.InsertLayerTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.Mapping.Tests.RuntimeMapTests.ToMapDefinitionTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.Mapping.Tests.RuntimeMapTests.GetFiniteDisplayScaleAtTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.Mapping.Tests.RuntimeMapTests.SetLayerIndexTest" /><Add Test="OSGeo.MapGuide.ObjectModel.Tests.CheckTests.NotNullTest" /><Add Test="OSGeo.MapGuide.ObjectModel.Tests.CheckTests.RangeTest" /><Add Test="OSGeo.MapGuide.ObjectModel.Tests.CheckTests.IsFolderTest" /><Add Test="OSGeo.MapGuide.ObjectModel.Tests.CheckTests.NotEmptyTest" /><Add Test="OSGeo.MapGuide.ObjectModel.Tests.CheckTests.PreconditionTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.Resource.Tests.ResourceSchemaChainTests.
GetValidatingSchemasTest" /><Add Test="OSGeo.MapGuide.ObjectModel.Tests.MapDefinitionTests.DeserializationTest_V30" /><Add Test="OSGeo.MapGuide.ObjectModel.Tests.MapDefinitionTests.CreateTest_V30" /><Add Test="OSGeo.MapGuide.ObjectModel.Tests.TileSetDefinitionTests.CreateTest" /><Add Test="OSGeo.MapGuide.ObjectModel.Tests.TileSetDefinitionTests.DeserializationTest" /><Add Test="OSGeo.MapGuide.ObjectModels.Tests.ObjectFactoryTests.RegisterTileSetDefinitionFactoryMethodTest" /></Playlist>
\ No newline at end of file
More information about the mapguide-commits
mailing list