[mapguide-commits] r5974 - in trunk/Tools/Maestro:
Maestro.Editors/Common Maestro.Editors/FeatureSource/Providers
Maestro.Editors/FeatureSource/Providers/Sdf
Maestro.Editors/FeatureSource/Providers/Shp
OSGeo.MapGuide.MaestroAPI/Schema
OSGeo.MapGuide.MaestroAPI/SchemaOverrides
svn_mapguide at osgeo.org
svn_mapguide at osgeo.org
Wed Jul 6 08:32:56 EDT 2011
Author: jng
Date: 2011-07-06 05:32:56 -0700 (Wed, 06 Jul 2011)
New Revision: 5974
Modified:
trunk/Tools/Maestro/Maestro.Editors/Common/UnmanagedFileBrowser.cs
trunk/Tools/Maestro/Maestro.Editors/FeatureSource/Providers/FileBasedCtrl.cs
trunk/Tools/Maestro/Maestro.Editors/FeatureSource/Providers/Sdf/SdfFileCtrl.cs
trunk/Tools/Maestro/Maestro.Editors/FeatureSource/Providers/Shp/ShpFileCtrl.cs
trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Schema/ClassDefinition.cs
trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Schema/DataPropertyDefinition.cs
trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Schema/GeometricPropertyDefinition.cs
trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Schema/RasterPropertyDefinition.cs
trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/SchemaOverrides/OdbcConfigurationDocument.cs
trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/SchemaOverrides/OdbcTableItem.cs
Log:
#1689: Add support for filtering aliased items by file extension. This is used by the SDF and SHP feature source editors to filter out non SDF/SHP file extensions.
Also fix more defects in serialization of class and property definitions with names requiring encoding
Modified: trunk/Tools/Maestro/Maestro.Editors/Common/UnmanagedFileBrowser.cs
===================================================================
--- trunk/Tools/Maestro/Maestro.Editors/Common/UnmanagedFileBrowser.cs 2011-07-06 10:43:58 UTC (rev 5973)
+++ trunk/Tools/Maestro/Maestro.Editors/Common/UnmanagedFileBrowser.cs 2011-07-06 12:32:56 UTC (rev 5974)
@@ -27,6 +27,7 @@
using OSGeo.MapGuide.MaestroAPI.Services;
using Aga.Controls.Tree;
using OSGeo.MapGuide.ObjectModels.Common;
+using System.IO;
namespace Maestro.Editors.Common
{
@@ -157,6 +158,7 @@
private UnmanagedFileBrowser()
{
InitializeComponent();
+ _fileExtensions = new List<string>();
}
private IResourceService _resSvc;
@@ -172,7 +174,26 @@
trvFolders.Model = new FolderTreeModel(_resSvc);
}
+ private List<string> _fileExtensions;
+
/// <summary>
+ /// Gets or sets the file extensions to filter the files by. If empty, no filtering
+ /// will be done
+ /// </summary>
+ public string[] Extensions
+ {
+ get { return _fileExtensions.ToArray(); }
+ set
+ {
+ _fileExtensions.Clear();
+ for (int i = 0; i < value.Length; i++)
+ {
+ _fileExtensions.Add(value[i].ToLower());
+ }
+ }
+ }
+
+ /// <summary>
/// Gets the selected item.
/// </summary>
/// <value>The selected item.</value>
@@ -230,15 +251,26 @@
lstResources.Items.Clear();
foreach (var item in list.Items)
{
- if (typeof(UnmanagedDataListUnmanagedDataFile).IsAssignableFrom(item.GetType()))
+ var f = item as UnmanagedDataListUnmanagedDataFile;
+ if (f != null)
{
- var file = (UnmanagedDataListUnmanagedDataFile)item;
- var li = new ListViewItem();
- li.Name = file.UnmanagedDataId;
- li.Text = file.FileName;
- li.ImageIndex = GetImageIndex(li.Text);
+ var ext = Path.GetExtension(f.FileName);
+ if (string.IsNullOrEmpty(ext))
+ continue;
- lstResources.Items.Add(li);
+ if (_fileExtensions.Count > 0 && !_fileExtensions.Contains(ext.ToLower().Substring(1)))
+ continue;
+
+ if (typeof(UnmanagedDataListUnmanagedDataFile).IsAssignableFrom(item.GetType()))
+ {
+ var file = (UnmanagedDataListUnmanagedDataFile)item;
+ var li = new ListViewItem();
+ li.Name = file.UnmanagedDataId;
+ li.Text = file.FileName;
+ li.ImageIndex = GetImageIndex(li.Text);
+
+ lstResources.Items.Add(li);
+ }
}
}
}
Modified: trunk/Tools/Maestro/Maestro.Editors/FeatureSource/Providers/FileBasedCtrl.cs
===================================================================
--- trunk/Tools/Maestro/Maestro.Editors/FeatureSource/Providers/FileBasedCtrl.cs 2011-07-06 10:43:58 UTC (rev 5973)
+++ trunk/Tools/Maestro/Maestro.Editors/FeatureSource/Providers/FileBasedCtrl.cs 2011-07-06 12:32:56 UTC (rev 5974)
@@ -68,10 +68,13 @@
}
+ protected virtual string[] GetUnmanagedFileExtensions() { return new string[0]; }
+
private void btnBrowseAlias_Click(object sender, EventArgs e)
{
using (var picker = new UnmanagedFileBrowser(_service.ResourceService))
{
+ picker.Extensions = GetUnmanagedFileExtensions();
picker.SelectFoldersOnly = false;
if (picker.ShowDialog() == DialogResult.OK)
{
Modified: trunk/Tools/Maestro/Maestro.Editors/FeatureSource/Providers/Sdf/SdfFileCtrl.cs
===================================================================
--- trunk/Tools/Maestro/Maestro.Editors/FeatureSource/Providers/Sdf/SdfFileCtrl.cs 2011-07-06 10:43:58 UTC (rev 5973)
+++ trunk/Tools/Maestro/Maestro.Editors/FeatureSource/Providers/Sdf/SdfFileCtrl.cs 2011-07-06 12:32:56 UTC (rev 5974)
@@ -76,6 +76,11 @@
}
}
+ protected override string[] GetUnmanagedFileExtensions()
+ {
+ return new string[] { "sdf" };
+ }
+
protected override void OnResourceChanged()
{
base.OnResourceChanged();
Modified: trunk/Tools/Maestro/Maestro.Editors/FeatureSource/Providers/Shp/ShpFileCtrl.cs
===================================================================
--- trunk/Tools/Maestro/Maestro.Editors/FeatureSource/Providers/Shp/ShpFileCtrl.cs 2011-07-06 10:43:58 UTC (rev 5973)
+++ trunk/Tools/Maestro/Maestro.Editors/FeatureSource/Providers/Shp/ShpFileCtrl.cs 2011-07-06 12:32:56 UTC (rev 5974)
@@ -76,6 +76,11 @@
}
}
+ protected override string[] GetUnmanagedFileExtensions()
+ {
+ return new string[] { "shp" };
+ }
+
protected override string FileFdoProperty
{
get
Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Schema/ClassDefinition.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Schema/ClassDefinition.cs 2011-07-06 10:43:58 UTC (rev 5973)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Schema/ClassDefinition.cs 2011-07-06 12:32:56 UTC (rev 5974)
@@ -222,10 +222,11 @@
{
XmlElement id = null;
+ var en = Utility.EncodeFDOName(this.Name);
if (_identity.Count > 0)
{
id = doc.CreateElement("xs", "element", XmlNamespaces.XS);
- var en = Utility.EncodeFDOName(this.Name);
+
id.SetAttribute("name", en); //TODO: May need encoding
id.SetAttribute("type", this.Parent.Name + ":" + en + "Type");
id.SetAttribute("abstract", this.IsAbstract.ToString().ToLower());
@@ -251,7 +252,7 @@
//Now write class body
var ctype = doc.CreateElement("xs", "complexType", XmlNamespaces.XS);
- ctype.SetAttribute("name", this.Name + "Type"); //TODO: This may have been decoded. Should it be re-encoded?
+ ctype.SetAttribute("name", en + "Type"); //TODO: This may have been decoded. Should it be re-encoded?
ctype.SetAttribute("abstract", this.IsAbstract.ToString().ToLower());
if (!string.IsNullOrEmpty(this.DefaultGeometryPropertyName))
{
@@ -292,6 +293,7 @@
public void ReadXml(XmlNode node, XmlNamespaceManager mgr)
{
+ var en = Utility.EncodeFDOName(this.Name);
var abn = node.Attributes["abstract"];
if (abn != null)
this.IsAbstract = Convert.ToBoolean(abn.Value);
@@ -316,7 +318,7 @@
//Process identity properties
var parent = node.ParentNode;
- var key = parent.SelectSingleNode("xs:element[@name=\"" + this.Name + "\"]/xs:key", mgr);
+ var key = parent.SelectSingleNode("xs:element[@name=\"" + en + "\"]/xs:key", mgr);
if (key != null)
{
var fields = key.SelectNodes("xs:field", mgr);
Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Schema/DataPropertyDefinition.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Schema/DataPropertyDefinition.cs 2011-07-06 10:43:58 UTC (rev 5973)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Schema/DataPropertyDefinition.cs 2011-07-06 12:32:56 UTC (rev 5974)
@@ -164,8 +164,10 @@
public override void WriteXml(System.Xml.XmlDocument doc, System.Xml.XmlNode currentNode)
{
+ var en = Utility.EncodeFDOName(this.Name);
+
var prop = doc.CreateElement("xs", "element", XmlNamespaces.XS);
- prop.SetAttribute("name", this.Name); //TODO: This may have been decoded. Should it be re-encoded?
+ prop.SetAttribute("name", en);
prop.SetAttribute("minOccurs", this.IsNullable ? "0" : "1");
if (this.IsReadOnly)
prop.SetAttribute("readOnly", XmlNamespaces.FDO, this.IsReadOnly.ToString().ToLower());
Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Schema/GeometricPropertyDefinition.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Schema/GeometricPropertyDefinition.cs 2011-07-06 10:43:58 UTC (rev 5973)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Schema/GeometricPropertyDefinition.cs 2011-07-06 12:32:56 UTC (rev 5974)
@@ -211,8 +211,10 @@
public override void WriteXml(System.Xml.XmlDocument doc, System.Xml.XmlNode currentNode)
{
+ var en = Utility.EncodeFDOName(this.Name);
+
var geom = doc.CreateElement("xs", "element", XmlNamespaces.XS);
- geom.SetAttribute("name", this.Name); //TODO: This may have been decoded. Should it be re-encoded?
+ geom.SetAttribute("name", en); //TODO: This may have been decoded. Should it be re-encoded?
geom.SetAttribute("type", "gml:AbstractGeometryType");
geom.SetAttribute("hasMeasure", XmlNamespaces.FDO, this.HasMeasure.ToString().ToLower());
geom.SetAttribute("hasElevation", XmlNamespaces.FDO, this.HasElevation.ToString().ToLower());
Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Schema/RasterPropertyDefinition.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Schema/RasterPropertyDefinition.cs 2011-07-06 10:43:58 UTC (rev 5973)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Schema/RasterPropertyDefinition.cs 2011-07-06 12:32:56 UTC (rev 5974)
@@ -70,8 +70,10 @@
public override void WriteXml(System.Xml.XmlDocument doc, System.Xml.XmlNode currentNode)
{
+ var en = Utility.EncodeFDOName(this.Name);
+
var geom = doc.CreateElement("xs", "element", XmlNamespaces.XS);
- geom.SetAttribute("name", this.Name); //TODO: This may have been decoded. Should it be re-encoded?
+ geom.SetAttribute("name", en); //TODO: This may have been decoded. Should it be re-encoded?
geom.SetAttribute("type", "fdo:RasterPropertyType");
geom.SetAttribute("defaultImageXSize", XmlNamespaces.FDO, this.DefaultImageXSize.ToString());
geom.SetAttribute("defaultImageYSize", XmlNamespaces.FDO, this.DefaultImageYSize.ToString());
Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/SchemaOverrides/OdbcConfigurationDocument.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/SchemaOverrides/OdbcConfigurationDocument.cs 2011-07-06 10:43:58 UTC (rev 5973)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/SchemaOverrides/OdbcConfigurationDocument.cs 2011-07-06 12:32:56 UTC (rev 5974)
@@ -70,24 +70,22 @@
{
foreach (var fs in _schemas)
{
+ var map = doc.CreateElement("SchemaMapping");
+ //The version is required for data compatiblity with FDO. I don't think
+ //the actual value matters. So use a safe version of FDO
+ map.SetAttribute("provider", "OSGeo.ODBC.3.2");
+ map.SetAttribute("xmlns:rdb", "http://fdordbms.osgeo.org/schemas");
+ map.SetAttribute("xmlns", "http://fdoodbc.osgeo.org/schemas");
+ map.SetAttribute("name", fs.Name);
var items = GetMappingsForSchema(fs.Name);
if (items.Count > 0)
{
- var map = doc.CreateElement("SchemaMapping");
- //The version is required for data compatiblity with FDO. I don't think
- //the actual value matters. So use a safe version of FDO
- map.SetAttribute("provider", "OSGeo.ODBC.3.2");
- map.SetAttribute("xmlns:rdb", "http://fdordbms.osgeo.org/schemas");
- map.SetAttribute("xmlns", "http://fdoodbc.osgeo.org/schemas");
- map.SetAttribute("name", fs.Name);
-
foreach (var item in items)
{
item.WriteXml(doc, map);
}
-
- currentNode.AppendChild(map);
}
+ currentNode.AppendChild(map);
}
}
Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/SchemaOverrides/OdbcTableItem.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/SchemaOverrides/OdbcTableItem.cs 2011-07-06 10:43:58 UTC (rev 5973)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/SchemaOverrides/OdbcTableItem.cs 2011-07-06 12:32:56 UTC (rev 5974)
@@ -67,7 +67,7 @@
if (cls != null)
{
var ctype = doc.CreateElement("complexType");
- ctype.SetAttribute("name", this.ClassName + "Type");
+ ctype.SetAttribute("name", Utility.EncodeFDOName(this.ClassName) + "Type");
{
var table = doc.CreateElement("Table");
table.SetAttribute("name", this.ClassName);
@@ -83,7 +83,7 @@
}
var el = doc.CreateElement("element");
- el.SetAttribute("name", prop.Name);
+ el.SetAttribute("name", Utility.EncodeFDOName(prop.Name));
var col = doc.CreateElement("Column");
col.SetAttribute("name", prop.Name);
More information about the mapguide-commits
mailing list