[mapguide-commits] r6933 - in trunk/Tools/Maestro: Maestro OSGeo.MapGuide.MaestroAPI/ObjectModels OSGeo.MapGuide.MaestroAPI/Properties OSGeo.MapGuide.MaestroAPI/Resource/Validation UserDoc/source
svn_mapguide at osgeo.org
svn_mapguide at osgeo.org
Thu Aug 2 08:56:13 PDT 2012
Author: jng
Date: 2012-08-02 08:56:12 -0700 (Thu, 02 Aug 2012)
New Revision: 6933
Modified:
trunk/Tools/Maestro/Maestro/changelog.txt
trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/FeatureSource.cs
trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/FeatureSourceInterfaces.cs
trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Properties/Resources.Designer.cs
trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Properties/Resources.resx
trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Resource/Validation/FeatureSourceValidator.cs
trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Resource/Validation/ResourceValidationContext.cs
trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Resource/Validation/ValidationStatusCode.cs
trunk/Tools/Maestro/UserDoc/source/differences.rst
trunk/Tools/Maestro/UserDoc/source/installation.rst
trunk/Tools/Maestro/UserDoc/source/mapguide_terminology.rst
Log:
This submission includes the following changes:
- Add new validation rules for Feature Joins
- Small user documentation update
- changelog.txt update
Modified: trunk/Tools/Maestro/Maestro/changelog.txt
===================================================================
--- trunk/Tools/Maestro/Maestro/changelog.txt 2012-08-02 13:48:04 UTC (rev 6932)
+++ trunk/Tools/Maestro/Maestro/changelog.txt 2012-08-02 15:56:12 UTC (rev 6933)
@@ -1,4 +1,17 @@
-5.0 Beta 3
+- New Validation rules for Fusion and Feature Join performance
+- Include full stack trace for any general unclassified validation errors triggered by a NullReferenceException
+- Fusion editor fixes
+ - OSM support
+ - Incorrect serialization of widget XML
+ - Flyout Menu support
+ - Improperly enabled/disabled
+ - Missing label in new fusion templates
+- Fusion editor improvements
+ - Can view widget info in the Generic Widget XML editor
+- Fix: Theming using first rule as template now preserves transparency
+- Fix: Restore missing checkbox for toggling Tiled Layer Group visibility in a Map Definition
+
+5.0 Beta 3
----------
- mg-desktop binary update (20 July 2012 release)
- Added support for new validations rules regarding Feature Source credentials
Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/FeatureSource.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/FeatureSource.cs 2012-08-02 13:48:04 UTC (rev 6932)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/FeatureSource.cs 2012-08-02 15:56:12 UTC (rev 6933)
@@ -452,6 +452,12 @@
}
}
+ [XmlIgnore]
+ int IAttributeRelation.RelatePropertyCount
+ {
+ get { return this.RelateProperty.Count; }
+ }
+
void IAttributeRelation.AddRelateProperty(IRelateProperty prop)
{
var rel = prop as RelatePropertyType;
Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/FeatureSourceInterfaces.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/FeatureSourceInterfaces.cs 2012-08-02 13:48:04 UTC (rev 6932)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/FeatureSourceInterfaces.cs 2012-08-02 15:56:12 UTC (rev 6933)
@@ -304,6 +304,11 @@
IEnumerable<IRelateProperty> RelateProperty { get; }
/// <summary>
+ /// Gets the number of properties being joined on
+ /// </summary>
+ int RelatePropertyCount { get; }
+
+ /// <summary>
/// Creates the property join.
/// </summary>
/// <param name="primaryProperty">The primary property.</param>
Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Properties/Resources.Designer.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Properties/Resources.Designer.cs 2012-08-02 13:48:04 UTC (rev 6932)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Properties/Resources.Designer.cs 2012-08-02 15:56:12 UTC (rev 6933)
@@ -558,6 +558,15 @@
}
/// <summary>
+ /// Looks up a localized string similar to The Extended Feature Class ({0}) is using an empty Join Prefix. A join prefix is used to prevent collisions between property names which may exist in both the primary and joined feature classes..
+ /// </summary>
+ internal static string FS_EmptyJoinPrefix {
+ get {
+ return ResourceManager.GetString("FS_EmptyJoinPrefix", resourceCulture);
+ }
+ }
+
+ /// <summary>
/// Looks up a localized string similar to Empty spatial context extent detected.
/// </summary>
internal static string FS_EmptySpatialContextWarning {
@@ -594,6 +603,24 @@
}
/// <summary>
+ /// Looks up a localized string similar to The Extended Feature Class ({0}) does not satisfy the required parameters for optimal Feature Join performance (both sides sortable, on a single property). Join Performance may not be optimal. Left-side sortable: {1}, Right-side sortable: {2}.
+ /// </summary>
+ internal static string FS_PotentialBadJoinPerformance {
+ get {
+ return ResourceManager.GetString("FS_PotentialBadJoinPerformance", resourceCulture);
+ }
+ }
+
+ /// <summary>
+ /// Looks up a localized string similar to The Extended Feature Class ({0}) does not satisfy the required parameters for optimal Feature Join performance (both sides sortable, on a single property). Join Performance may not be optimal..
+ /// </summary>
+ internal static string FS_PotentialBadJoinPerformance2 {
+ get {
+ return ResourceManager.GetString("FS_PotentialBadJoinPerformance2", resourceCulture);
+ }
+ }
+
+ /// <summary>
/// Looks up a localized string similar to No primary key defined for class: {0}, features will not be selectable and feature joins on this class may produce unexpected results.
/// </summary>
internal static string FS_PrimaryKeyMissingInformation {
Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Properties/Resources.resx
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Properties/Resources.resx 2012-08-02 13:48:04 UTC (rev 6932)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Properties/Resources.resx 2012-08-02 15:56:12 UTC (rev 6933)
@@ -2784,4 +2784,13 @@
<data name="ADF_ReferencedWidgetInMenuHasNoLabel" xml:space="preserve">
<value>A widget by the id of {0} has no label. This may cause display problems in the menu/container ({1}) if there is no icon specified</value>
</data>
+ <data name="FS_EmptyJoinPrefix" xml:space="preserve">
+ <value>The Extended Feature Class ({0}) is using an empty Join Prefix. A join prefix is used to prevent collisions between property names which may exist in both the primary and joined feature classes.</value>
+ </data>
+ <data name="FS_PotentialBadJoinPerformance" xml:space="preserve">
+ <value>The Extended Feature Class ({0}) does not satisfy the required parameters for optimal Feature Join performance (both sides sortable, on a single property). Join Performance may not be optimal. Left-side sortable: {1}, Right-side sortable: {2}</value>
+ </data>
+ <data name="FS_PotentialBadJoinPerformance2" xml:space="preserve">
+ <value>The Extended Feature Class ({0}) does not satisfy the required parameters for optimal Feature Join performance (both sides sortable, on a single property). Join Performance may not be optimal.</value>
+ </data>
</root>
\ No newline at end of file
Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Resource/Validation/FeatureSourceValidator.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Resource/Validation/FeatureSourceValidator.cs 2012-08-02 13:48:04 UTC (rev 6932)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Resource/Validation/FeatureSourceValidator.cs 2012-08-02 15:56:12 UTC (rev 6933)
@@ -59,6 +59,65 @@
IFeatureSource feature = (IFeatureSource)resource;
IFeatureService featSvc = feature.CurrentConnection.FeatureService;
+ //Feature Join Optimization check
+ foreach (var ext in feature.Extension)
+ {
+ foreach (var rel in ext.AttributeRelate)
+ {
+ if (string.IsNullOrEmpty(rel.Name))
+ {
+ issues.Add(new ValidationIssue(resource, ValidationStatus.Warning, ValidationStatusCode.Warning_FeatureSource_EmptyJoinPrefix, string.Format(Properties.Resources.FS_EmptyJoinPrefix, ext.Name)));
+ }
+
+ if (rel.RelatePropertyCount > 0)
+ {
+ if (rel.RelatePropertyCount == 1)
+ {
+ var srcFs = feature;
+ var dstFs = (IFeatureSource)context.GetResource(rel.ResourceId);
+
+ var leftProvider = srcFs.Provider.ToUpper();
+ var rightProvider = dstFs.Provider.ToUpper();
+
+ //FDO Join optimization check
+ if (leftProvider.Contains("OSGEO.SQLITE") && rightProvider.Contains("OSGEO.SQLITE") && srcFs.ResourceID == rel.ResourceId)
+ continue;
+
+ //FDO Join optimization check
+ if (leftProvider.Contains("OSGEO.SQLSERVERSPATIAL") && rightProvider.Contains("OSGEO.SQLSERVERSPATIAL") && srcFs.ResourceID == rel.ResourceId)
+ continue;
+
+ //TODO: Fix the capabilities response. Because it's not telling us enough information!
+ //Anyways, these are the providers known to provide sorted query results.
+ bool bLeftSortable = leftProvider.Contains("OSGEO.SDF") ||
+ leftProvider.Contains("OSGEO.SHP") ||
+ leftProvider.Contains("OSGEO.SQLITE") ||
+ leftProvider.Contains("OSGEO.ODBC") ||
+ leftProvider.Contains("OSGEO.SQLSERVERSPATIAL") ||
+ leftProvider.Contains("OSGEO.MYSQL") ||
+ leftProvider.Contains("OSGEO.POSTGRESQL");
+
+ bool bRightSortable = leftProvider.Contains("OSGEO.SDF") ||
+ leftProvider.Contains("OSGEO.SHP") ||
+ leftProvider.Contains("OSGEO.SQLITE") ||
+ leftProvider.Contains("OSGEO.ODBC") ||
+ leftProvider.Contains("OSGEO.SQLSERVERSPATIAL") ||
+ leftProvider.Contains("OSGEO.MYSQL") ||
+ leftProvider.Contains("OSGEO.POSTGRESQL");
+
+ if (!bLeftSortable || !bRightSortable)
+ {
+ issues.Add(new ValidationIssue(resource, ValidationStatus.Warning, ValidationStatusCode.Warning_FeatureSource_Potential_Bad_Join_Performance, string.Format(Properties.Resources.FS_PotentialBadJoinPerformance, ext.Name, bLeftSortable, bRightSortable)));
+ }
+ }
+ else
+ {
+ issues.Add(new ValidationIssue(resource, ValidationStatus.Warning, ValidationStatusCode.Warning_FeatureSource_Potential_Bad_Join_Performance, string.Format(Properties.Resources.FS_PotentialBadJoinPerformance2, ext.Name)));
+ }
+ }
+ }
+ }
+
//Plaintext credential check
string providerNameUpper = feature.Provider.ToUpper();
string fsXml = feature.Serialize().ToUpper();
Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Resource/Validation/ResourceValidationContext.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Resource/Validation/ResourceValidationContext.cs 2012-08-02 13:48:04 UTC (rev 6932)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Resource/Validation/ResourceValidationContext.cs 2012-08-02 15:56:12 UTC (rev 6933)
@@ -24,6 +24,8 @@
using OSGeo.MapGuide.MaestroAPI.Services;
using OSGeo.MapGuide.ObjectModels.Common;
using OSGeo.MapGuide.MaestroAPI.Schema;
+using OSGeo.MapGuide.ObjectModels.Capabilities;
+using OSGeo.MapGuide.ObjectModels.FeatureSource;
namespace OSGeo.MapGuide.MaestroAPI.Resource.Validation
{
@@ -37,6 +39,7 @@
private Dictionary<string, IResource> _resources;
private Dictionary<string, FeatureSourceDescription> _schemas;
private Dictionary<string, FdoSpatialContextList> _spatialContexts;
+ private Dictionary<string, FdoProviderCapabilities> _caps;
private IResourceService _resSvc;
private IFeatureService _featSvc;
@@ -54,6 +57,7 @@
_resources = new Dictionary<string, IResource>();
_schemas = new Dictionary<string, FeatureSourceDescription>();
_spatialContexts = new Dictionary<string, FdoSpatialContextList>();
+ _caps = new Dictionary<string, FdoProviderCapabilities>();
}
/// <summary>
Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Resource/Validation/ValidationStatusCode.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Resource/Validation/ValidationStatusCode.cs 2012-08-02 13:48:04 UTC (rev 6932)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Resource/Validation/ValidationStatusCode.cs 2012-08-02 15:56:12 UTC (rev 6933)
@@ -125,6 +125,17 @@
Warning_FeatureSource_Plaintext_Credentials,
/// <summary>
+ /// An Extended Feature Class does not specify a join prefix. This will cause collisions if the primary and secondary classes have one or more identical
+ /// property names
+ /// </summary>
+ Warning_FeatureSource_EmptyJoinPrefix,
+
+ /// <summary>
+ /// An Extended Feature Class does not specify
+ /// </summary>
+ Warning_FeatureSource_Potential_Bad_Join_Performance,
+
+ /// <summary>
/// DWG Load Procedures not supported. This is a limitation of Maestro
/// </summary>
Warning_LoadProcedure_DwgNotSupported = 3201,
Modified: trunk/Tools/Maestro/UserDoc/source/differences.rst
===================================================================
--- trunk/Tools/Maestro/UserDoc/source/differences.rst 2012-08-02 13:48:04 UTC (rev 6932)
+++ trunk/Tools/Maestro/UserDoc/source/differences.rst 2012-08-02 15:56:12 UTC (rev 6933)
@@ -14,12 +14,14 @@
Fortunately, MapGuide Maestro is a capable alternative to MapGuide Studio. Besides the base shared features of loading/creating/publishing data, both tools have their own unique set of features, which this section will cover.
-Features unique to MapGuide Studio
-----------------------------------
+Features unique to MapGuide Studio / Autodesk Infrastructure Studio
+-------------------------------------------------------------------
* MapGuide Studio supports loading of DWG files and raster images. Due to licensing and/or the need to be multi-platform, Maestro does not (and probably will never) support these features.
* MapGuide Studio supports creating and editing Symbol Libraries. Maestro cannot edit Symbol Libraries, however it has read support for these resources and Maestro supports symbol selection from Symbol Libraries.
* MapGuide Studio supports the "Convert to SDF" and generalization options of Load Procedures.
+ * Autodesk Infrastructure Studio (2013 onwards) supports publishing DWG files directly with no conversion.
+ * Autodesk Infrastructure Studio supports creating connections to Industry Model (Topobase) data sources.
Features unique to MapGuide Maestro
-----------------------------------
@@ -27,11 +29,17 @@
* Maestro is multi-platform. It runs on Windows, Linux and Mac OSX.
* Maestro can connect to many different versions of MapGuide Open Source and MapGuide Enterprise (as far back as MGOS 1.2 / MGE 2008)
* Maestro supports validating resources ensuring data/resource integrity and trapping common errors and pitfalls that would normally be silent under MapGuide Studio.
- * Maestro has a small installation footprint (under 20mb) compared to MapGuide Studio.
+ * Maestro has a small installation footprint compared to MapGuide Studio.
* Maestro allows you to edit any resource in its XML form. The XML editor is used as a fallback measure if Maestro encounters unsupported or unrecognised resources.
* Maestro supports all known resource versions. Maestro will *never* silently upgrade your resources to the latest version.
* Maestro supports custom resource templates
* Maestro supports the creation and loading of MapGuide Packages (MGP) without needing to use the Site Administrator web application.
* Maestro has a more active development cycle.
* Maestro offers plenty of tools and shortcuts that greatly improves authoring productivity.
+ * Maestro supports authoring data from an mg-desktop application
+ * Maestro includes other various tools and utilities that fully exploit the services provided by MapGuide
+ * A Feature Source previewing utility
+ * A Runtime Map state inspection tool
+ * A tile pre-generation tool (MgCooker)
+ * A "Live" Map Definition editor that supports editing workflows similar to MapGuide Author 6.5
* and much more!
\ No newline at end of file
Modified: trunk/Tools/Maestro/UserDoc/source/installation.rst
===================================================================
--- trunk/Tools/Maestro/UserDoc/source/installation.rst 2012-08-02 13:48:04 UTC (rev 6932)
+++ trunk/Tools/Maestro/UserDoc/source/installation.rst 2012-08-02 15:56:12 UTC (rev 6933)
@@ -13,7 +13,7 @@
.. note::
- MapGuide Maestro requires .net Framework 2.0 or higher installed. For Windows Vista or newer versions of Windows, this is already installed.
+ MapGuide Maestro requires .net Framework 4.0 or higher installed first.
.. note::
@@ -26,7 +26,7 @@
The installation is simply unzipping the file::
- unzip "MapGuideMaestro-4.0.0-Release.zip"
+ unzip "MapGuideMaestro-5.0.0-Release.zip"
Then run the application::
@@ -37,14 +37,14 @@
For distributions like Ubuntu, the Mono package is split into several components. You need to ensure that the winforms component is installed. The following command installs it for Ubuntu::
- sudo apt-get install mono-runtime libmono-winforms2.0-cil
+ sudo apt-get install mono-runtime libmono-system-windows-forms4.0-cil libmono-system-core4.0-cil libmono-system-numerics4.0-cil libmono-system-web4.0-cil
For other distros, please consult your system documentation.
.. note::
**Please note that Mono support for WinForms is not 100% stable.** Even though WinForms is feature complete, some features do not work flawlessly. This means that there are occasional drawing problems. Flipping a tab page back and forth usually solves the problem. Some buttons are missing, because Mono renders them outside the visible area. There are also some issues with certain icons.
- For best results, use the most current release of Mono (currently 2.10.2) where possible. The minimum usable release is Mono 2.0 (this was the release where WinForms was 100% API complete)
+ For best results, use the most current release of Mono (currently 2.10.2) where possible. The minimum usable release is Mono 2.8
.. note::
Modified: trunk/Tools/Maestro/UserDoc/source/mapguide_terminology.rst
===================================================================
--- trunk/Tools/Maestro/UserDoc/source/mapguide_terminology.rst 2012-08-02 13:48:04 UTC (rev 6932)
+++ trunk/Tools/Maestro/UserDoc/source/mapguide_terminology.rst 2012-08-02 15:56:12 UTC (rev 6933)
@@ -44,6 +44,8 @@
* 1.1.0 - MapGuide Open Source 1.2 / MapGuide Enterprise 2008
* 1.2.0 - MapGuide Open Source 2.0 / MapGuide Enterprise 2009
* 1.3.0 - MapGuide Open Source 2.1 / MapGuide Enterprise 2010
+ * 2.3.0 - Autodesk Infrastructure Map Server 2012
+ * 2.4.0 - MapGuide Open Source 2.4 / Autodesk Infrastructure Map Server 2013
Layer Definitions describe how data from a Feature Source is to be styled. (see below: Displaying Data)
@@ -58,6 +60,7 @@
* 1.0.0 - MapGuide Open Source 1.0 / MapGuide Enterprise 2007
* 2.3.0 - MapGuide Open Source 2.3 / MapGuide Enterprise 2012
+ * 2.4.0 - MapGuide Open Source 2.4 / Autodesk Infrastructure Map Server 2013
Map Definitions contains one or more Layer Definitions grouped together and sorted by drawing order.
@@ -70,6 +73,7 @@
* 1.0.0 - MapGuide Open Source 1.0 / MapGuide Enterprise 2007
* 1.1.0 - MapGuide Open Source 2.2 / MapGuide Enterprise 2011
+ * 2.4.0 - MapGuide Open Source 2.4 / Autodesk Infrastructure Map Server 2013
Describes the user interface for the AJAX viewer (see: Understanding MapGuide Applications - Web Layouts)
@@ -130,11 +134,10 @@
* 1.0.0 - MapGuide Open Source 1.2 / MapGuide Enterprise 2008
* 1.1.0 - MapGuide Open Source 2.0 / MapGuide Enterprise 2009
+ * 2.4.0 - MapGuide Open Source 2.4 / Autodesk Infrastructure Map Server 2013
Describes a cartographic symbol, which has lots of display and customisation parameters. Used by Layer Definitions.
-There is no specialized editor support for Symbol Definitions. Opening Symbol Definitions will default to the generic XML editor.
-
Watermark Definitions
^^^^^^^^^^^^^^^^^^^^^
@@ -144,6 +147,4 @@
* 2.3.0 - MapGuide Open Source 2.3 / MapGuide Enterprise 2012
-Describes a watermark that is rendered as part of the map when viewing it. Used by Map Definitions.
-
-There is no specialized editor support for Watermark Definitions. Opening Watermark Definitions will default to the generic XML editor.
\ No newline at end of file
+Describes a watermark that is rendered as part of the map when viewing it. Used by Map Definitions.
\ No newline at end of file
More information about the mapguide-commits
mailing list