[mapguide-commits] r6502 - trunk/MgDev/Desktop/MapViewer

svn_mapguide at osgeo.org svn_mapguide at osgeo.org
Mon Feb 13 01:35:46 EST 2012


Author: jng
Date: 2012-02-12 22:35:46 -0800 (Sun, 12 Feb 2012)
New Revision: 6502

Modified:
   trunk/MgDev/Desktop/MapViewer/MgLegend.cs
Log:
Small mg-desktop viewer optimization: Don't redraw if toggling a layer/group of an invisible parent.

Modified: trunk/MgDev/Desktop/MapViewer/MgLegend.cs
===================================================================
--- trunk/MgDev/Desktop/MapViewer/MgLegend.cs	2012-02-12 12:50:59 UTC (rev 6501)
+++ trunk/MgDev/Desktop/MapViewer/MgLegend.cs	2012-02-13 06:35:46 UTC (rev 6502)
@@ -511,6 +511,23 @@
             public Image ThemeIcon { get; set; }
         }
 
+        private bool HasVisibleParent(MgLayerGroup grp)
+        {
+            var current = grp.Group;
+            if (current != null)
+                return current.IsVisible();
+            return true;
+        }
+
+        private bool HasVisibleParent(MgLayerBase layer)
+        {
+            var current = layer.Group;
+            if (current != null)
+                return current.IsVisible();
+
+            return true;
+        }
+
         private void trvLegend_AfterCheck(object sender, TreeViewEventArgs e)
         {
             if (e.Node.Tag == null)
@@ -520,8 +537,11 @@
             {
                 if (_groups.ContainsKey(e.Node.Name))
                 {
-                    _groups[e.Node.Name].SetVisible(e.Node.Checked);
-                    OnRequestRefresh();
+                    var grp = _groups[e.Node.Name];
+                    grp.SetVisible(e.Node.Checked);
+                    var bVis = HasVisibleParent(grp);
+                    if (bVis)
+                        OnRequestRefresh();
                 }
             }
             else //Layer
@@ -530,8 +550,12 @@
                 {
                     var layer = _layers[e.Node.Name];
                     layer.SetVisible(e.Node.Checked);
-                    layer.ForceRefresh();
-                    OnRequestRefresh();
+                    var bVis = HasVisibleParent(layer);
+                    if (bVis)
+                    {
+                        layer.ForceRefresh();
+                        OnRequestRefresh();
+                    }
                 }
             }
         }



More information about the mapguide-commits mailing list