[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