[mapguide-commits] r5259 - in sandbox/maestro-3.0:
Maestro.Base/Templates Maestro.Editors/LayerDefinition
Maestro.Editors/LayerDefinition/Vector
OSGeo.MapGuide.MaestroAPI OSGeo.MapGuide.MaestroAPI/Commands
OSGeo.MapGuide.MaestroAPI/ObjectModels
OSGeo.MapGuide.MaestroAPI/Resource
OSGeo.MapGuide.MaestroAPI/Services OSGeo.MapGuide.MaestroAPI.Http
svn_mapguide at osgeo.org
svn_mapguide at osgeo.org
Fri Oct 8 01:56:23 EDT 2010
Author: jng
Date: 2010-10-08 05:56:23 +0000 (Fri, 08 Oct 2010)
New Revision: 5259
Modified:
sandbox/maestro-3.0/Maestro.Base/Templates/VectorLayerDefinitionItemTemplate.cs
sandbox/maestro-3.0/Maestro.Editors/LayerDefinition/LayerPropertiesSectionCtrl.cs
sandbox/maestro-3.0/Maestro.Editors/LayerDefinition/Vector/VectorLayerStyleSectionCtrl.cs
sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI.Http/HttpServerConnection.cs
sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI.Http/RequestBuilder.cs
sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Commands/ExecuteLoadProcedure.cs
sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/GridLayerDefinitionImpl.cs
sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/LayerInterfaceExtensions.cs
sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/LayerInterfaces.cs
sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/VectorLayerDefinitionImpl.cs
sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Resource/BaseLayerDefinitionValidator.cs
sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ServerConnectionBase.cs
sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Services/IFeatureService.cs
Log:
3.0 sandbox changes:
- More abstract layer API changes. Basically any API that returns an IList<T> needs to be broken down into the following:
- IEnumerable<T> AllItems { get; }
- void AddItem(T item)
- void RemoveItem(T item)
other interfaces may have additional APIs for more collection-like behaviour. But the addition of these APIs will insulate the underlying implementation from the consumer
Modified: sandbox/maestro-3.0/Maestro.Base/Templates/VectorLayerDefinitionItemTemplate.cs
===================================================================
--- sandbox/maestro-3.0/Maestro.Base/Templates/VectorLayerDefinitionItemTemplate.cs 2010-10-07 23:58:46 UTC (rev 5258)
+++ sandbox/maestro-3.0/Maestro.Base/Templates/VectorLayerDefinitionItemTemplate.cs 2010-10-08 05:56:23 UTC (rev 5259)
@@ -25,6 +25,8 @@
using Res = Maestro.Base.Properties.Resources;
using OSGeo.MapGuide.MaestroAPI.Resource;
using OSGeo.MapGuide.MaestroAPI.ObjectModels;
+using Maestro.Editors.Generic;
+using OSGeo.MapGuide.ObjectModels.LayerDefinition;
namespace Maestro.Base.Templates
{
@@ -41,7 +43,24 @@
public override IResource CreateItem(IServerConnection conn)
{
- return ObjectFactory.CreateDefaultLayer(conn, OSGeo.MapGuide.ObjectModels.LayerDefinition.LayerType.Vector, new Version(1, 0, 0));
+ using (var picker = new ResourcePicker(conn.ResourceService, ResourceTypes.FeatureSource, ResourcePickerMode.OpenResource))
+ {
+ if (picker.ShowDialog() == System.Windows.Forms.DialogResult.OK)
+ {
+ var lyr = ObjectFactory.CreateDefaultLayer(conn, OSGeo.MapGuide.ObjectModels.LayerDefinition.LayerType.Vector, new Version(1, 0, 0));
+ var vl = (IVectorLayerDefinition)lyr.SubLayer;
+ vl.ResourceId = picker.ResourceID;
+ //Stub these for now, validation will ensure this never makes it
+ //into the session repository until all validation errors pass
+ vl.FeatureName = string.Empty;
+ vl.Geometry = string.Empty;
+ return lyr;
+ }
+ else
+ {
+ return null;
+ }
+ }
}
}
}
Modified: sandbox/maestro-3.0/Maestro.Editors/LayerDefinition/LayerPropertiesSectionCtrl.cs
===================================================================
--- sandbox/maestro-3.0/Maestro.Editors/LayerDefinition/LayerPropertiesSectionCtrl.cs 2010-10-07 23:58:46 UTC (rev 5258)
+++ sandbox/maestro-3.0/Maestro.Editors/LayerDefinition/LayerPropertiesSectionCtrl.cs 2010-10-08 05:56:23 UTC (rev 5259)
@@ -37,7 +37,7 @@
_vl = _parent.SubLayer as IVectorLayerDefinition;
Debug.Assert(_vl != null);
- _props = _vl.PropertyMapping;
+ _props = new List<INameStringPair>(_vl.PropertyMapping);
//Modifying the visibility constitutes a change in the resource
//_props.ListChanged += OnPropertyListChanged;
PopulatePropertyList();
@@ -64,7 +64,7 @@
{
if (e.PropertyName == "ResourceId") //Feature Source changed
{
- _vl.PropertyMapping.Clear();
+ _vl.RemoveAllScaleRanges();
PopulatePropertyList();
}
}
Modified: sandbox/maestro-3.0/Maestro.Editors/LayerDefinition/Vector/VectorLayerStyleSectionCtrl.cs
===================================================================
--- sandbox/maestro-3.0/Maestro.Editors/LayerDefinition/Vector/VectorLayerStyleSectionCtrl.cs 2010-10-07 23:58:46 UTC (rev 5258)
+++ sandbox/maestro-3.0/Maestro.Editors/LayerDefinition/Vector/VectorLayerStyleSectionCtrl.cs 2010-10-08 05:56:23 UTC (rev 5259)
@@ -74,7 +74,7 @@
return;
IVectorScaleRange vsc = scaleRangeList.SelectedItem;
scaleRangeList.RemoveScaleRange(scaleRangeList.SelectedItem);
- _vl.VectorScaleRange.Remove(scaleRangeList.SelectedItem);
+ _vl.RemoveVectorScaleRange(scaleRangeList.SelectedItem);
_edsvc.HasChanged();
}
@@ -92,7 +92,7 @@
if (_vl == null)
return;
- if (_vl.VectorScaleRange == null || _vl.VectorScaleRange.Count == 0)
+ if (!_vl.HasVectorScaleRanges())
return;
List<IVectorScaleRange> ranges = new List<IVectorScaleRange>();
@@ -103,10 +103,10 @@
ranges.Sort(new ScaleRangeSorter());
- _vl.VectorScaleRange.Clear();
+ _vl.RemoveAllScaleRanges();
foreach (IVectorScaleRange sc in ranges)
{
- _vl.VectorScaleRange.Add(sc);
+ _vl.AddVectorScaleRange(sc);
}
//Refresh display
@@ -156,7 +156,7 @@
if (_vl == null)
return;
- _vl.VectorScaleRange.Add(vsc);
+ _vl.AddVectorScaleRange(vsc);
Control c = scaleRangeList.AddScaleRange(vsc);
scaleRangeList.ResizeAuto();
_edsvc.HasChanged();
@@ -179,7 +179,7 @@
private void EvaluateCommands()
{
btnDelete.Enabled = btnDuplicate.Enabled = scaleRangeList.SelectedItem != null;
- btnSort.Enabled = _vl.VectorScaleRange.Count > 1;
+ btnSort.Enabled = _vl.HasVectorScaleRanges();
}
}
}
Modified: sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Commands/ExecuteLoadProcedure.cs
===================================================================
--- sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Commands/ExecuteLoadProcedure.cs 2010-10-07 23:58:46 UTC (rev 5258)
+++ sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Commands/ExecuteLoadProcedure.cs 2010-10-08 05:56:23 UTC (rev 5259)
@@ -384,7 +384,7 @@
List<string> geomTypes = new List<string>();
geomTypes.AddRange(obj.ToString().Trim().Split(' '));
- var scale = vld.VectorScaleRange[0];
+ var scale = vld.GetScaleRangeAt(0);
var remove = new List<string>();
if (!geomTypes.Contains(GeometryMetadata.GEOM_TYPE_POINT))
@@ -611,7 +611,7 @@
List<string> geomTypes = new List<string>();
geomTypes.AddRange(obj.ToString().Trim().Split(' '));
- var scale = vld.VectorScaleRange[0];
+ var scale = vld.GetScaleRangeAt(0);
var remove = new List<string>();
if (!geomTypes.Contains(GeometryMetadata.GEOM_TYPE_POINT))
Modified: sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/GridLayerDefinitionImpl.cs
===================================================================
--- sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/GridLayerDefinitionImpl.cs 2010-10-07 23:58:46 UTC (rev 5258)
+++ sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/GridLayerDefinitionImpl.cs 2010-10-08 05:56:23 UTC (rev 5259)
@@ -447,17 +447,30 @@
}
}
- IList<IGridColorRule> IGridColorStyle.ColorRule
+ IEnumerable<IGridColorRule> IGridColorStyle.ColorRule
{
- get { return (IList<IGridColorRule>)this.ColorRule; }
+ get
+ {
+ foreach (var cr in this.ColorRule)
+ {
+ yield return cr;
+ }
+ }
}
void IGridColorStyle.AddColorRule(IGridColorRule rule)
{
- if (this.ColorRule == null)
- this.ColorRule = new System.ComponentModel.BindingList<GridColorRuleType>();
+ var cr = rule as GridColorRuleType;
+ if (cr != null)
+ this.ColorRule.Add((GridColorRuleType)cr);
+ }
- this.ColorRule.Add((GridColorRuleType)rule);
+
+ void IGridColorStyle.RemoveColorRule(IGridColorRule rule)
+ {
+ var cr = rule as GridColorRuleType;
+ if (cr != null)
+ this.ColorRule.Remove((GridColorRuleType)cr);
}
}
Modified: sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/LayerInterfaceExtensions.cs
===================================================================
--- sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/LayerInterfaceExtensions.cs 2010-10-07 23:58:46 UTC (rev 5258)
+++ sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/LayerInterfaceExtensions.cs 2010-10-08 05:56:23 UTC (rev 5259)
@@ -67,6 +67,22 @@
}
}
+ public static class VectorLayerExtensions
+ {
+ public static bool HasVectorScaleRanges(this IVectorLayerDefinition vl)
+ {
+ Check.NotNull(vl, "vl");
+ return vl.GetScaleRangeCount() > 0;
+ }
+
+ public static int GetScaleRangeCount(this IVectorLayerDefinition vl)
+ {
+ Check.NotNull(vl, "vl");
+ var list = new List<IVectorScaleRange>(vl.VectorScaleRange);
+ return list.Count;
+ }
+ }
+
public static class VectorScaleRangeExtensions
{
/// <summary>
Modified: sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/LayerInterfaces.cs
===================================================================
--- sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/LayerInterfaces.cs 2010-10-07 23:58:46 UTC (rev 5258)
+++ sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/LayerInterfaces.cs 2010-10-08 05:56:23 UTC (rev 5259)
@@ -315,20 +315,80 @@
/// </summary>
string Filter { get; set; }
- //FIXME: this compiles, but will probably break when run due to lack of co/contravariance support pre-4.0
-
/// <summary>
/// Gets the scale ranges for this layer
/// </summary>
- IList<IVectorScaleRange> VectorScaleRange { get; }
+ IEnumerable<IVectorScaleRange> VectorScaleRange { get; }
- //FIXME: this compiles, but will probably break when run due to lack of co/contravariance support pre-4.0
+ /// <summary>
+ /// Gets the collection index of this scale range
+ /// </summary>
+ /// <param name="range"></param>
+ /// <returns></returns>
+ int IndexOfScaleRange(IVectorScaleRange range);
/// <summary>
+ /// Removes all scale ranges from this layer
+ /// </summary>
+ void RemoveAllScaleRanges();
+
+ /// <summary>
+ /// Gets the scale range at this specified index
+ /// </summary>
+ /// <param name="index"></param>
+ /// <returns></returns>
+ IVectorScaleRange GetScaleRangeAt(int index);
+
+ /// <summary>
+ /// Adds the specified vector scale range
+ /// </summary>
+ /// <param name="range"></param>
+ void AddVectorScaleRange(IVectorScaleRange range);
+
+ /// <summary>
+ /// Removes the specified vector scale range
+ /// </summary>
+ /// <param name="range"></param>
+ void RemoveVectorScaleRange(IVectorScaleRange range);
+
+ /// <summary>
/// Gets the property mappings for this layer. This determines which properties
/// are displayed (and what labels to use) in the property pane and
/// </summary>
- IList<INameStringPair> PropertyMapping { get; }
+ IEnumerable<INameStringPair> PropertyMapping { get; }
+
+ /// <summary>
+ /// Adds the specified property mapping
+ /// </summary>
+ /// <param name="pair"></param>
+ void AddPropertyMapping(INameStringPair pair);
+
+ /// <summary>
+ /// Removes the specified property mapping
+ /// </summary>
+ /// <param name="pair"></param>
+ void RemovePropertyMapping(INameStringPair pair);
+
+ /// <summary>
+ /// Gets the position of the specified pair in the order of property mappings
+ /// </summary>
+ /// <param name="pair"></param>
+ /// <returns></returns>
+ int GetPosition(INameStringPair pair);
+
+ /// <summary>
+ /// Moves the specified pair up the order of property mappings
+ /// </summary>
+ /// <param name="pair"></param>
+ /// <returns></returns>
+ int MoveUp(INameStringPair pair);
+
+ /// <summary>
+ /// Moves the specified pair down the order of property mappings
+ /// </summary>
+ /// <param name="pair"></param>
+ /// <returns></returns>
+ int MoveDown(INameStringPair pair);
}
/// <summary>
@@ -1120,18 +1180,22 @@
/// </summary>
double ConstrastFactor { get; set; }
- //FIXME: this compiles, but will probably break when run due to lack of co/contravariance support pre-4.0
-
/// <summary>
/// Gets the color rules for this style
/// </summary>
- IList<IGridColorRule> ColorRule { get; }
+ IEnumerable<IGridColorRule> ColorRule { get; }
/// <summary>
/// Adds a color rule to this style
/// </summary>
/// <param name="rule"></param>
void AddColorRule(IGridColorRule rule);
+
+ /// <summary>
+ /// Removes the specified color rule from this style
+ /// </summary>
+ /// <param name="rule"></param>
+ void RemoveColorRule(IGridColorRule rule);
}
public interface IGridSurfaceStyle
Modified: sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/VectorLayerDefinitionImpl.cs
===================================================================
--- sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/VectorLayerDefinitionImpl.cs 2010-10-07 23:58:46 UTC (rev 5258)
+++ sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/VectorLayerDefinitionImpl.cs 2010-10-08 05:56:23 UTC (rev 5259)
@@ -1372,15 +1372,123 @@
}
[XmlIgnore]
- IList<IVectorScaleRange> IVectorLayerDefinition.VectorScaleRange
+ IEnumerable<IVectorScaleRange> IVectorLayerDefinition.VectorScaleRange
{
- get { return (IList<IVectorScaleRange>)this.VectorScaleRange; }
+ get
+ {
+ foreach (var vsr in this.VectorScaleRange)
+ {
+ yield return vsr;
+ }
+ }
}
[XmlIgnore]
- IList<INameStringPair> IVectorLayerDefinition.PropertyMapping
+ IEnumerable<INameStringPair> IVectorLayerDefinition.PropertyMapping
{
- get { return (IList<INameStringPair>)this.PropertyMapping; }
+ get
+ {
+ foreach (var pair in this.PropertyMapping)
+ {
+ yield return pair;
+ }
+ }
}
+
+
+ void IVectorLayerDefinition.AddVectorScaleRange(IVectorScaleRange range)
+ {
+ var r = range as VectorScaleRangeType;
+ if (r != null)
+ this.VectorScaleRange.Add(r);
+ }
+
+ void IVectorLayerDefinition.RemoveVectorScaleRange(IVectorScaleRange range)
+ {
+ var r = range as VectorScaleRangeType;
+ if (r != null)
+ this.VectorScaleRange.Remove(r);
+ }
+
+ void IVectorLayerDefinition.AddPropertyMapping(INameStringPair pair)
+ {
+ var p = pair as NameStringPairType;
+ if (p != null)
+ this.PropertyMapping.Add(p);
+ }
+
+ void IVectorLayerDefinition.RemovePropertyMapping(INameStringPair pair)
+ {
+ var p = pair as NameStringPairType;
+ if (p != null)
+ this.PropertyMapping.Remove(p);
+ }
+
+ int IVectorLayerDefinition.GetPosition(INameStringPair pair)
+ {
+ var p = pair as NameStringPairType;
+ if (p != null)
+ return this.PropertyMapping.IndexOf(p);
+
+ return -1;
+ }
+
+ int IVectorLayerDefinition.MoveUp(INameStringPair pair)
+ {
+ int pos = ((IVectorLayerDefinition)this).GetPosition(pair);
+ if (pos > 0)
+ {
+ int dest = pos - 1;
+ var p = this.PropertyMapping[dest];
+ var p2 = (NameStringPairType)pair;
+
+ //Swap
+ this.PropertyMapping[dest] = p2;
+ this.PropertyMapping[pos] = p;
+
+ return dest;
+ }
+ return -1;
+ }
+
+ int IVectorLayerDefinition.MoveDown(INameStringPair pair)
+ {
+ int pos = ((IVectorLayerDefinition)this).GetPosition(pair);
+ if (pos < this.PropertyMapping.Count - 1)
+ {
+ int dest = pos + 1;
+ var p = this.PropertyMapping[dest];
+ var p2 = (NameStringPairType)pair;
+
+ //Swap
+ this.PropertyMapping[dest] = p2;
+ this.PropertyMapping[pos] = p;
+
+ return dest;
+ }
+ return -1;
+ }
+
+ void IVectorLayerDefinition.RemoveAllScaleRanges()
+ {
+ this.VectorScaleRange.Clear();
+ }
+
+ int IVectorLayerDefinition.IndexOfScaleRange(IVectorScaleRange range)
+ {
+ var r = range as VectorScaleRangeType;
+ if (r != null)
+ return this.VectorScaleRange.IndexOf(r);
+
+ return -1;
+ }
+
+ IVectorScaleRange IVectorLayerDefinition.GetScaleRangeAt(int index)
+ {
+ if (index >= this.VectorScaleRange.Count)
+ return null;
+
+ return this.VectorScaleRange[index];
+ }
}
}
Modified: sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Resource/BaseLayerDefinitionValidator.cs
===================================================================
--- sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Resource/BaseLayerDefinitionValidator.cs 2010-10-07 23:58:46 UTC (rev 5258)
+++ sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Resource/BaseLayerDefinitionValidator.cs 2010-10-08 05:56:23 UTC (rev 5259)
@@ -56,7 +56,7 @@
if (string.IsNullOrEmpty(vldef.Geometry))
issues.Add(new ValidationIssue(resource, ValidationStatus.Error, Properties.Resources.LDF_MissingGeometryError));
- if (vldef.VectorScaleRange == null || vldef.VectorScaleRange.Count == 0)
+ if (vldef.VectorScaleRange == null || !vldef.HasVectorScaleRanges())
issues.Add(new ValidationIssue(resource, ValidationStatus.Error, Properties.Resources.LDF_MissingScaleRangesError));
else
{
Modified: sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ServerConnectionBase.cs
===================================================================
--- sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ServerConnectionBase.cs 2010-10-07 23:58:46 UTC (rev 5258)
+++ sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ServerConnectionBase.cs 2010-10-08 05:56:23 UTC (rev 5259)
@@ -1641,5 +1641,9 @@
}
public abstract OSGeo.MapGuide.ObjectModels.Common.DataStoreList EnumerateDataStores(string providerName, string partialConnString);
+
+ public abstract string[] GetSchemas(string resourceId);
+
+ public abstract string[] GetClassNames(string resourceId, string schemaName);
}
}
Modified: sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Services/IFeatureService.cs
===================================================================
--- sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Services/IFeatureService.cs 2010-10-07 23:58:46 UTC (rev 5258)
+++ sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Services/IFeatureService.cs 2010-10-08 05:56:23 UTC (rev 5259)
@@ -109,5 +109,9 @@
/// <param name="partialConnString"></param>
/// <returns></returns>
OSGeo.MapGuide.ObjectModels.Common.DataStoreList EnumerateDataStores(string providerName, string partialConnString);
+
+ string[] GetSchemas(string resourceId);
+
+ string[] GetClassNames(string resourceId, string schemaName);
}
}
Modified: sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI.Http/HttpServerConnection.cs
===================================================================
--- sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI.Http/HttpServerConnection.cs 2010-10-07 23:58:46 UTC (rev 5258)
+++ sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI.Http/HttpServerConnection.cs 2010-10-08 05:56:23 UTC (rev 5259)
@@ -1831,5 +1831,25 @@
return base.MoveResourceWithReferences(oldpath, newpath, callback, progress);
}
}
+
+ public override string[] GetSchemas(string resourceId)
+ {
+ var req = m_reqBuilder.GetSchemas(resourceId);
+ using (var s = this.OpenRead(req))
+ {
+ var sc = this.DeserializeObject<OSGeo.MapGuide.ObjectModels.Common.StringCollection>(s);
+ return sc.Item.ToArray();
+ }
+ }
+
+ public override string[] GetClassNames(string resourceId, string schemaName)
+ {
+ var req = m_reqBuilder.GetClassNames(resourceId, schemaName);
+ using (var s = this.OpenRead(req))
+ {
+ var sc = this.DeserializeObject<OSGeo.MapGuide.ObjectModels.Common.StringCollection>(s);
+ return sc.Item.ToArray();
+ }
+ }
}
}
Modified: sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI.Http/RequestBuilder.cs
===================================================================
--- sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI.Http/RequestBuilder.cs 2010-10-07 23:58:46 UTC (rev 5258)
+++ sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI.Http/RequestBuilder.cs 2010-10-08 05:56:23 UTC (rev 5259)
@@ -1451,5 +1451,40 @@
return m_hosturi + "?" + EncodeParameters(param);
}
+
+ public string GetSchemas(string resourceId)
+ {
+ NameValueCollection param = new NameValueCollection();
+ param.Add("OPERATION", "GETSCHEMAS");
+ param.Add("VERSION", "1.0.0");
+ param.Add("SESSION", m_sessionID);
+ param.Add("FORMAT", "text/xml");
+ param.Add("CLIENTAGENT", m_userAgent);
+
+ if (m_locale != null)
+ param.Add("LOCALE", m_locale);
+
+ param.Add("RESOURCEID", resourceId);
+
+ return m_hosturi + "?" + EncodeParameters(param);
+ }
+
+ public string GetClassNames(string resourceId, string schemaName)
+ {
+ NameValueCollection param = new NameValueCollection();
+ param.Add("OPERATION", "GETCLASSES");
+ param.Add("VERSION", "1.0.0");
+ param.Add("SESSION", m_sessionID);
+ param.Add("FORMAT", "text/xml");
+ param.Add("CLIENTAGENT", m_userAgent);
+
+ if (m_locale != null)
+ param.Add("LOCALE", m_locale);
+
+ param.Add("RESOURCEID", resourceId);
+ param.Add("SCHEMA", schemaName);
+
+ return m_hosturi + "?" + EncodeParameters(param);
+ }
}
}
More information about the mapguide-commits
mailing list