[mapguide-commits] r7055 - branches/2.4/MgDev/Desktop/MapViewer
svn_mapguide at osgeo.org
svn_mapguide at osgeo.org
Mon Oct 1 05:15:14 PDT 2012
Author: jng
Date: 2012-10-01 05:15:14 -0700 (Mon, 01 Oct 2012)
New Revision: 7055
Modified:
branches/2.4/MgDev/Desktop/MapViewer/MgLegendControlPresenter.cs
Log:
mg-desktop: Backport r7053
Modified: branches/2.4/MgDev/Desktop/MapViewer/MgLegendControlPresenter.cs
===================================================================
--- branches/2.4/MgDev/Desktop/MapViewer/MgLegendControlPresenter.cs 2012-10-01 12:02:18 UTC (rev 7054)
+++ branches/2.4/MgDev/Desktop/MapViewer/MgLegendControlPresenter.cs 2012-10-01 12:15:14 UTC (rev 7055)
@@ -179,6 +179,9 @@
GeometryType = geomType
};
+ if (layerMeta.CategoryExists(themeCat))
+ continue;
+
int catIndex = 0;
XmlNodeList typeStyle = scaleRange.GetElementsByTagName(typeStyles[geomType]);
for (int st = 0; st < typeStyle.Count; st++)
@@ -209,44 +212,50 @@
}
}
}
- else if (!layerMeta.HasDefaultIconsAt(_map.ViewScale))
+ else
{
- try
+ if (LayerNodeMetadata.ScaleIsApplicable(_map.ViewScale, themeCat))
{
- MgByteReader layerIcon = _provider.GenerateLegendImage(layer.LayerDefinition,
- _map.ViewScale,
- 16,
- 16,
- "PNG", //NOXLATE
- -1,
- -1);
- legendCallCount++;
- if (layerIcon != null)
+ if (!layerMeta.HasDefaultIconsAt(_map.ViewScale))
{
try
{
- byte[] b = new byte[layerIcon.GetLength()];
- layerIcon.Read(b, b.Length);
- using (var ms = new MemoryStream(b))
+ MgByteReader layerIcon = _provider.GenerateLegendImage(layer.LayerDefinition,
+ _map.ViewScale,
+ 16,
+ 16,
+ "PNG", //NOXLATE
+ -1,
+ -1);
+ legendCallCount++;
+ if (layerIcon != null)
{
- layerMeta.SetDefaultIcon(themeCat, Image.FromStream(ms));
- node.ToolTipText = string.Format(Strings.DefaultLayerTooltip, Environment.NewLine, layer.Name, layer.FeatureSourceId, layer.FeatureClassName);
+ try
+ {
+ byte[] b = new byte[layerIcon.GetLength()];
+ layerIcon.Read(b, b.Length);
+ using (var ms = new MemoryStream(b))
+ {
+ layerMeta.SetDefaultIcon(themeCat, Image.FromStream(ms));
+ node.ToolTipText = string.Format(Strings.DefaultLayerTooltip, Environment.NewLine, layer.Name, layer.FeatureSourceId, layer.FeatureClassName);
+ }
+ }
+ finally
+ {
+ layerIcon.Dispose();
+ }
}
+ else
+ {
+ layerMeta.SetDefaultIcon(themeCat, Properties.Resources.lc_broken);
+ }
}
- finally
+ catch
{
- layerIcon.Dispose();
+ layerMeta.SetDefaultIcon(themeCat, Properties.Resources.lc_broken);
}
}
- else
- {
- layerMeta.SetDefaultIcon(themeCat, Properties.Resources.lc_broken);
- }
}
- catch
- {
- layerMeta.SetDefaultIcon(themeCat, Properties.Resources.lc_broken);
- }
}
}
}
@@ -984,7 +993,7 @@
return nodes.ToArray();
}
- private static bool ScaleIsApplicable(double scale, ThemeCategory cat)
+ internal static bool ScaleIsApplicable(double scale, ThemeCategory cat)
{
bool bApplicable = false;
@@ -1042,6 +1051,11 @@
}
return false;
}
+
+ internal bool CategoryExists(ThemeCategory themeCat)
+ {
+ return _themeNodes.ContainsKey(themeCat);
+ }
}
}
}
More information about the mapguide-commits
mailing list