[mapguide-commits] r6702 - branches/2.4/MgDev/Desktop/MapViewer

svn_mapguide at osgeo.org svn_mapguide at osgeo.org
Mon May 28 22:16:14 PDT 2012


Author: jng
Date: 2012-05-28 22:16:13 -0700 (Mon, 28 May 2012)
New Revision: 6702

Modified:
   branches/2.4/MgDev/Desktop/MapViewer/MgLegend.cs
   branches/2.4/MgDev/Desktop/MapViewer/MgThemeControlImpl.cs
Log:
mg-desktop: Use UNIQUE() for theming individual values instead of select aggregate with distinct = true as UNIQUE() is globally supported.

Modified: branches/2.4/MgDev/Desktop/MapViewer/MgLegend.cs
===================================================================
--- branches/2.4/MgDev/Desktop/MapViewer/MgLegend.cs	2012-05-28 15:49:02 UTC (rev 6701)
+++ branches/2.4/MgDev/Desktop/MapViewer/MgLegend.cs	2012-05-29 05:16:13 UTC (rev 6702)
@@ -685,6 +685,7 @@
         {
             if (IsLayerNode(e.Node) && !e.Bounds.IsEmpty)
             {
+                //TODO: Render +/- for nodes with children (ie. Themed layers)
                 Color backColor, foreColor;
 
                 //For some reason, the default bounds are way off from what you would

Modified: branches/2.4/MgDev/Desktop/MapViewer/MgThemeControlImpl.cs
===================================================================
--- branches/2.4/MgDev/Desktop/MapViewer/MgThemeControlImpl.cs	2012-05-28 15:49:02 UTC (rev 6701)
+++ branches/2.4/MgDev/Desktop/MapViewer/MgThemeControlImpl.cs	2012-05-29 05:16:13 UTC (rev 6702)
@@ -382,13 +382,14 @@
 
             if (THEME_INDIVIDUAL == themeParams.distro)
             {
-                aggregateOptions.AddFeatureProperty(themeParams.property.Name);
-                aggregateOptions.SelectDistinct(true);
+                //aggregateOptions.AddFeatureProperty(themeParams.property.Name);
+                //aggregateOptions.SelectDistinct(true);
+                aggregateOptions.AddComputedProperty("THEME_VALUE", "UNIQUE(\"" + themeParams.property.Name + "\")");
 
                 MgDataReader dataReader = featureService.SelectAggregate(resId, themeParams.layer.GetFeatureClassName(), aggregateOptions);
                 while (dataReader.ReadNext())
                 {
-                    value = Util.GetFeaturePropertyValue(dataReader, themeParams.property.Name);
+                    value = Util.GetFeaturePropertyValue(dataReader, "THEME_VALUE"); // themeParams.property.Name);
 
                     filterText = """ + themeParams.property.Name + "" = ";
                     if (themeParams.property.DataType == MgPropertyType.String)
@@ -464,7 +465,8 @@
             newLayer.SetDisplayInLegend(themeParams.layer.GetDisplayInLegend());
             newLayer.SetVisible(true);
             newLayer.SetSelectable(themeParams.layer.GetSelectable());
-
+            //HACK: This has to be true otherwise owner-drawn nodes will not display its children (the theme rules)
+            provider.SetLayerExpandInLegend(newLayer, true);
             layers.Insert(layers.IndexOf(themeParams.layer), newLayer);
 
             //map.Save(resourceService);



More information about the mapguide-commits mailing list