[mapguide-commits] r6001 - in trunk/Tools/Maestro:
Maestro.Editors/MapDefinition OSGeo.MapGuide.MaestroAPI
OSGeo.MapGuide.MaestroAPI/ObjectModels
svn_mapguide at osgeo.org
svn_mapguide at osgeo.org
Tue Jul 26 07:51:44 EDT 2011
Author: jng
Date: 2011-07-26 04:51:44 -0700 (Tue, 26 Jul 2011)
New Revision: 6001
Modified:
trunk/Tools/Maestro/Maestro.Editors/MapDefinition/GroupPropertiesCtrl.cs
trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/MapDefinition.cs
trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/MapDefinitionInterfaces.cs
trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ResourceTypeRegistry.cs
Log:
#1759: Update all affected layers when a group's name has been changed.
Modified: trunk/Tools/Maestro/Maestro.Editors/MapDefinition/GroupPropertiesCtrl.cs
===================================================================
--- trunk/Tools/Maestro/Maestro.Editors/MapDefinition/GroupPropertiesCtrl.cs 2011-07-26 09:25:12 UTC (rev 6000)
+++ trunk/Tools/Maestro/Maestro.Editors/MapDefinition/GroupPropertiesCtrl.cs 2011-07-26 11:51:44 UTC (rev 6001)
@@ -44,7 +44,19 @@
{
group.PropertyChanged += new PropertyChangedEventHandler(OnGroupChanged);
- TextBoxBinder.BindText(txtName, group, "Name");
+ //TextBoxBinder.BindText(txtName, group, "Name");
+ IMapDefinition mdf = group.Parent;
+ string currentName = group.Name;
+ txtName.Text = currentName;
+ txtName.TextChanged += (s, e) =>
+ {
+ string newName = txtName.Text;
+ group.Name = newName;
+ mdf.UpdateDynamicGroupName(currentName, newName);
+ System.Diagnostics.Debug.WriteLine(string.Format("Updated group name {0} -> {1}", currentName, newName));
+ currentName = newName;
+ };
+
TextBoxBinder.BindText(txtLegendLabel, group, "LegendLabel");
CheckBoxBinder.BindChecked(chkExpanded, group, "ExpandInLegend");
Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/MapDefinition.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/MapDefinition.cs 2011-07-26 09:25:12 UTC (rev 6000)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/MapDefinition.cs 2011-07-26 11:51:44 UTC (rev 6001)
@@ -91,7 +91,12 @@
public static IResource Deserialize(string xml)
{
- return MapDefinition.Deserialize(xml);
+ var mdf = MapDefinition.Deserialize(xml);
+ foreach (var group in mdf.MapLayerGroup)
+ {
+ group.Parent = mdf;
+ }
+ return mdf;
}
public static Stream Serialize(IResource res)
Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/MapDefinitionInterfaces.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/MapDefinitionInterfaces.cs 2011-07-26 09:25:12 UTC (rev 6000)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/MapDefinitionInterfaces.cs 2011-07-26 11:51:44 UTC (rev 6001)
@@ -420,6 +420,23 @@
public static class MapDefinitionExtensions
{
/// <summary>
+ /// Updates the group name references of all layers belonging to a particular group
+ /// </summary>
+ /// <param name="oldGroupName"></param>
+ /// <param name="newGroupName"></param>
+ public static void UpdateDynamicGroupName(this IMapDefinition map, string oldGroupName, string newGroupName)
+ {
+ Check.NotNull(map, "map");
+ Check.NotEmpty(oldGroupName, "oldGroupName");
+ Check.NotEmpty(newGroupName, "newGroupName");
+ var layers = map.GetLayersForGroup(oldGroupName);
+ foreach (var l in layers)
+ {
+ l.Group = newGroupName;
+ }
+ }
+
+ /// <summary>
/// Removes a layer group and all layers associated with this group
/// </summary>
/// <param name="map"></param>
Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ResourceTypeRegistry.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ResourceTypeRegistry.cs 2011-07-26 09:25:12 UTC (rev 6000)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ResourceTypeRegistry.cs 2011-07-26 11:51:44 UTC (rev 6001)
@@ -132,8 +132,8 @@
ResourceTypeDescriptor.MapDefinition,
new ResourceSerializer()
{
- Serialize = (res) => { return res.SerializeToStream(); },
- Deserialize = (xml) => { return OSGeo.MapGuide.ObjectModels.MapDefinition_1_0_0.MapDefinition.Deserialize(xml); }
+ Serialize = (res) => { return OSGeo.MapGuide.ObjectModels.MapDefinition_1_0_0.MdfEntryPoint.Serialize(res); },
+ Deserialize = (xml) => { return OSGeo.MapGuide.ObjectModels.MapDefinition_1_0_0.MdfEntryPoint.Deserialize(xml); }
});
//PrintLayout 1.0.0
More information about the mapguide-commits
mailing list