[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