[mapguide-commits] r7053 - trunk/Tools/Maestro/Maestro.MapViewer
svn_mapguide at osgeo.org
svn_mapguide at osgeo.org
Mon Oct 1 03:49:47 PDT 2012
Author: jng
Date: 2012-10-01 03:49:46 -0700 (Mon, 01 Oct 2012)
New Revision: 7053
Modified:
trunk/Tools/Maestro/Maestro.MapViewer/Legend.cs
trunk/Tools/Maestro/Maestro.MapViewer/LegendPresenter.cs
Log:
#2135: Fix node actions doing nothing. The TreeView handlers were not delegating off to the LegendPresenter, that now handles such actions.
Modified: trunk/Tools/Maestro/Maestro.MapViewer/Legend.cs
===================================================================
--- trunk/Tools/Maestro/Maestro.MapViewer/Legend.cs 2012-09-29 08:17:35 UTC (rev 7052)
+++ trunk/Tools/Maestro/Maestro.MapViewer/Legend.cs 2012-10-01 10:49:46 UTC (rev 7053)
@@ -101,10 +101,6 @@
this.RefreshLegend();
}
- private Dictionary<string, RuntimeMapLayer> _layers = new Dictionary<string, RuntimeMapLayer>();
- private Dictionary<string, RuntimeMapGroup> _groups = new Dictionary<string, RuntimeMapGroup>();
- private Dictionary<string, string> _layerDefinitionContents = new Dictionary<string, string>();
-
internal bool GetVisibilityFlag(RuntimeMapGroup group)
{
return this.ShowAllLayersAndGroups;
@@ -285,30 +281,14 @@
if (e.Node.Tag == null)
return;
- if (((LegendNodeMetadata)e.Node.Tag).IsGroup) //Group
+ var meta = ((LegendNodeMetadata)e.Node.Tag);
+ if (meta.IsGroup) //Group
{
- if (_groups.ContainsKey(e.Node.Name))
- {
- var grp = _groups[e.Node.Name];
- grp.Visible = e.Node.Checked;
- var bVis = HasVisibleParent(grp);
- if (bVis)
- OnRequestRefresh();
- }
+ _presenter.SetGroupVisible(meta.ObjectId, e.Node.Checked);
}
else //Layer
{
- if (_layers.ContainsKey(e.Node.Name))
- {
- var layer = _layers[e.Node.Name];
- layer.Visible = e.Node.Checked;
- var bVis = HasVisibleParent(layer);
- if (bVis)
- {
- layer.ForceRefresh();
- OnRequestRefresh();
- }
- }
+ _presenter.SetLayerVisible(meta.ObjectId, e.Node.Checked);
}
}
@@ -317,22 +297,14 @@
if (e.Node.Tag == null)
return;
- if (((LegendNodeMetadata)e.Node.Tag).IsGroup) //Group
+ var meta = ((LegendNodeMetadata)e.Node.Tag);
+ if (meta.IsGroup) //Group
{
- if (_groups.ContainsKey(e.Node.Name))
- {
- _groups[e.Node.Name].ExpandInLegend = true;
- _map.Save();
- }
+ _presenter.SetGroupExpandInLegend(meta.ObjectId, true);
}
else //Layer
{
- if (_layers.ContainsKey(e.Node.Name))
- {
- var layer = _layers[e.Node.Name];
- layer.ExpandInLegend = true;
- _map.Save();
- }
+ _presenter.SetLayerExpandInLegend(meta.ObjectId, true);
}
}
@@ -341,22 +313,14 @@
if (e.Node.Tag == null)
return;
- if (((LegendNodeMetadata)e.Node.Tag).IsGroup) //Group
+ var meta = ((LegendNodeMetadata)e.Node.Tag);
+ if (meta.IsGroup) //Group
{
- if (_groups.ContainsKey(e.Node.Name))
- {
- _groups[e.Node.Name].ExpandInLegend = true;
- _map.Save();
- }
+ _presenter.SetGroupExpandInLegend(meta.ObjectId, false);
}
else //Layer
{
- if (_layers.ContainsKey(e.Node.Name))
- {
- var layer = _layers[e.Node.Name];
- layer.ExpandInLegend = true;
- _map.Save();
- }
+ _presenter.SetLayerExpandInLegend(meta.ObjectId, false);
}
}
Modified: trunk/Tools/Maestro/Maestro.MapViewer/LegendPresenter.cs
===================================================================
--- trunk/Tools/Maestro/Maestro.MapViewer/LegendPresenter.cs 2012-09-29 08:17:35 UTC (rev 7052)
+++ trunk/Tools/Maestro/Maestro.MapViewer/LegendPresenter.cs 2012-10-01 10:49:46 UTC (rev 7053)
@@ -204,6 +204,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++)
@@ -234,25 +237,31 @@
}
}
}
- else if (!layerMeta.HasDefaultIconsAt(_map.ViewScale))
+ else
{
- try
+ if (LayerNodeMetadata.ScaleIsApplicable(_map.ViewScale, themeCat))
{
- var img = _map.GetLegendImage(layer.LayerDefinitionID,
- _map.ViewScale,
- 16,
- 16,
- "PNG",
- -1,
- -1);
- legendCallCount++;
- layerMeta.SetDefaultIcon(themeCat, img);
- node.ToolTipText = string.Format(Properties.Resources.DefaultLayerTooltip, Environment.NewLine, layer.Name, layer.FeatureSourceID, layer.QualifiedClassName);
+ if (!layerMeta.HasDefaultIconsAt(_map.ViewScale))
+ {
+ try
+ {
+ var img = _map.GetLegendImage(layer.LayerDefinitionID,
+ _map.ViewScale,
+ 16,
+ 16,
+ "PNG",
+ -1,
+ -1);
+ legendCallCount++;
+ layerMeta.SetDefaultIcon(themeCat, img);
+ node.ToolTipText = string.Format(Properties.Resources.DefaultLayerTooltip, Environment.NewLine, layer.Name, layer.FeatureSourceID, layer.QualifiedClassName);
+ }
+ catch
+ {
+ //layerMeta.SetDefaultIcon(themeCat, Properties.Resources.lc_broken);
+ }
+ }
}
- catch
- {
- //layerMeta.SetDefaultIcon(themeCat, Properties.Resources.lc_broken);
- }
}
}
}
@@ -756,6 +765,7 @@
{
var grp = _groups[objectId].Group;
grp.ExpandInLegend = expand;
+ _map.Save();
}
}
@@ -765,6 +775,7 @@
{
var lyr = _layers[objectId].Layer;
lyr.ExpandInLegend = expand;
+ _map.Save();
}
}
@@ -1087,6 +1098,11 @@
}
return false;
}
+
+ internal bool CategoryExists(ThemeCategory themeCat)
+ {
+ return _themeNodes.ContainsKey(themeCat);
+ }
}
}
}
More information about the mapguide-commits
mailing list