[mapguide-commits] r5002 - in sandbox/maestro-3.0: Generated Maestro.Base Maestro.Editors Maestro.Editors/MapDefinition Maestro.Editors/Properties Maestro.Editors/Resources OSGeo.MapGuide.MaestroAPI/Feature OSGeo.MapGuide.MaestroAPI/ObjectModels

svn_mapguide at osgeo.org svn_mapguide at osgeo.org
Wed Jul 7 09:10:28 EDT 2010


Author: jng
Date: 2010-07-07 13:10:28 +0000 (Wed, 07 Jul 2010)
New Revision: 5002

Added:
   sandbox/maestro-3.0/Maestro.Editors/MapDefinition/GroupPropertiesCtrl.Designer.cs
   sandbox/maestro-3.0/Maestro.Editors/MapDefinition/GroupPropertiesCtrl.cs
   sandbox/maestro-3.0/Maestro.Editors/MapDefinition/GroupPropertiesCtrl.resx
   sandbox/maestro-3.0/Maestro.Editors/MapDefinition/LayerPropertiesCtrl.Designer.cs
   sandbox/maestro-3.0/Maestro.Editors/MapDefinition/LayerPropertiesCtrl.cs
   sandbox/maestro-3.0/Maestro.Editors/MapDefinition/LayerPropertiesCtrl.resx
   sandbox/maestro-3.0/Maestro.Editors/Resources/folder--minus.png
   sandbox/maestro-3.0/Maestro.Editors/Resources/folder--plus.png
   sandbox/maestro-3.0/Maestro.Editors/Resources/layer--minus.png
   sandbox/maestro-3.0/Maestro.Editors/Resources/layer--plus.png
   sandbox/maestro-3.0/Maestro.Editors/Resources/layer.png
   sandbox/maestro-3.0/Maestro.Editors/Resources/layers-stack-arrange-back.png
   sandbox/maestro-3.0/Maestro.Editors/Resources/layers-stack-arrange.png
Modified:
   sandbox/maestro-3.0/Generated/ApplicationDefinition-1.0.0.designer.cs
   sandbox/maestro-3.0/Generated/LayerDefinition-1.0.0.designer.cs
   sandbox/maestro-3.0/Generated/LoadProcedure-1.0.0.designer.cs
   sandbox/maestro-3.0/Generated/MapDefinition-1.0.0.designer.cs
   sandbox/maestro-3.0/Generated/SelectAggregate-1.0.0.designer.cs
   sandbox/maestro-3.0/Generated/SymbolDefinition-1.0.0.designer.cs
   sandbox/maestro-3.0/Generated/WebLayout-1.0.0.designer.cs
   sandbox/maestro-3.0/Maestro.Base/Workbench.cs
   sandbox/maestro-3.0/Maestro.Editors/Maestro.Editors.csproj
   sandbox/maestro-3.0/Maestro.Editors/MapDefinition/MapLayersSectionCtrl.Designer.cs
   sandbox/maestro-3.0/Maestro.Editors/MapDefinition/MapLayersSectionCtrl.cs
   sandbox/maestro-3.0/Maestro.Editors/MapDefinition/MapLayersSectionCtrl.resx
   sandbox/maestro-3.0/Maestro.Editors/MapDefinition/MapSettingsSectionCtrl.Designer.cs
   sandbox/maestro-3.0/Maestro.Editors/MapDefinition/MapSettingsSectionCtrl.cs
   sandbox/maestro-3.0/Maestro.Editors/Properties/Resources.Designer.cs
   sandbox/maestro-3.0/Maestro.Editors/Properties/Resources.resx
   sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Feature/FeatureSetReader.cs
   sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/LayerDefinition.cs
   sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/MapDefinition.cs
Log:
This submission includes the following changes:
 - Implement GetSpatialExtent() for LayerDefinition
 - Fix BackgroundColor property in MapDefinition
 - More work on the MapDefinition editor
   - Map properties section is now entirely data-bound.
   - Can now modify properties of layers and groups (and trigger dirty state change)
 - Fix a boatload of warnings related to redundant generated INotifyPropertyChanged code.

Modified: sandbox/maestro-3.0/Generated/ApplicationDefinition-1.0.0.designer.cs
===================================================================
--- sandbox/maestro-3.0/Generated/ApplicationDefinition-1.0.0.designer.cs	2010-07-07 09:30:03 UTC (rev 5001)
+++ sandbox/maestro-3.0/Generated/ApplicationDefinition-1.0.0.designer.cs	2010-07-07 13:10:28 UTC (rev 5002)
@@ -1410,14 +1410,14 @@
             }
         }
         
-        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
+        //public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
         
-        public virtual void OnPropertyChanged(string info) {
-            System.ComponentModel.PropertyChangedEventHandler handler = this.PropertyChanged;
-            if ((handler != null)) {
-                handler(this, new System.ComponentModel.PropertyChangedEventArgs(info));
-            }
-        }
+        //public virtual void OnPropertyChanged(string info) {
+        //    System.ComponentModel.PropertyChangedEventHandler handler = this.PropertyChanged;
+        //    if ((handler != null)) {
+        //        handler(this, new System.ComponentModel.PropertyChangedEventArgs(info));
+        //    }
+        //}
         
         #region Serialize/Deserialize
         /// <summary>
@@ -1612,14 +1612,14 @@
             }
         }
         
-        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
+        //public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
         
-        public virtual void OnPropertyChanged(string info) {
-            System.ComponentModel.PropertyChangedEventHandler handler = this.PropertyChanged;
-            if ((handler != null)) {
-                handler(this, new System.ComponentModel.PropertyChangedEventArgs(info));
-            }
-        }
+        //public virtual void OnPropertyChanged(string info) {
+        //    System.ComponentModel.PropertyChangedEventHandler handler = this.PropertyChanged;
+        //    if ((handler != null)) {
+        //        handler(this, new System.ComponentModel.PropertyChangedEventArgs(info));
+        //    }
+        //}
         
         #region Serialize/Deserialize
         /// <summary>
@@ -2027,14 +2027,14 @@
             }
         }
         
-        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
+        //public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
         
-        public virtual void OnPropertyChanged(string info) {
-            System.ComponentModel.PropertyChangedEventHandler handler = this.PropertyChanged;
-            if ((handler != null)) {
-                handler(this, new System.ComponentModel.PropertyChangedEventArgs(info));
-            }
-        }
+        //public virtual void OnPropertyChanged(string info) {
+        //    System.ComponentModel.PropertyChangedEventHandler handler = this.PropertyChanged;
+        //    if ((handler != null)) {
+        //        handler(this, new System.ComponentModel.PropertyChangedEventArgs(info));
+        //    }
+        //}
         
         #region Serialize/Deserialize
         /// <summary>
@@ -2208,14 +2208,14 @@
             }
         }
         
-        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
+        //public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
         
-        public virtual void OnPropertyChanged(string info) {
-            System.ComponentModel.PropertyChangedEventHandler handler = this.PropertyChanged;
-            if ((handler != null)) {
-                handler(this, new System.ComponentModel.PropertyChangedEventArgs(info));
-            }
-        }
+        //public virtual void OnPropertyChanged(string info) {
+        //    System.ComponentModel.PropertyChangedEventHandler handler = this.PropertyChanged;
+        //    if ((handler != null)) {
+        //        handler(this, new System.ComponentModel.PropertyChangedEventArgs(info));
+        //    }
+        //}
         
         #region Serialize/Deserialize
         /// <summary>
@@ -2495,14 +2495,14 @@
             }
         }
         
-        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
+        //public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
         
-        public virtual void OnPropertyChanged(string info) {
-            System.ComponentModel.PropertyChangedEventHandler handler = this.PropertyChanged;
-            if ((handler != null)) {
-                handler(this, new System.ComponentModel.PropertyChangedEventArgs(info));
-            }
-        }
+        //public virtual void OnPropertyChanged(string info) {
+        //    System.ComponentModel.PropertyChangedEventHandler handler = this.PropertyChanged;
+        //    if ((handler != null)) {
+        //        handler(this, new System.ComponentModel.PropertyChangedEventArgs(info));
+        //    }
+        //}
         
         #region Serialize/Deserialize
         /// <summary>

Modified: sandbox/maestro-3.0/Generated/LayerDefinition-1.0.0.designer.cs
===================================================================
--- sandbox/maestro-3.0/Generated/LayerDefinition-1.0.0.designer.cs	2010-07-07 09:30:03 UTC (rev 5001)
+++ sandbox/maestro-3.0/Generated/LayerDefinition-1.0.0.designer.cs	2010-07-07 13:10:28 UTC (rev 5002)
@@ -58,14 +58,14 @@
             }
         }
         
-        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
+        //public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
         
-        public virtual void OnPropertyChanged(string info) {
-            System.ComponentModel.PropertyChangedEventHandler handler = this.PropertyChanged;
-            if ((handler != null)) {
-                handler(this, new System.ComponentModel.PropertyChangedEventArgs(info));
-            }
-        }
+        //public virtual void OnPropertyChanged(string info) {
+        //    System.ComponentModel.PropertyChangedEventHandler handler = this.PropertyChanged;
+        //    if ((handler != null)) {
+        //        handler(this, new System.ComponentModel.PropertyChangedEventArgs(info));
+        //    }
+        //}
         
         #region Serialize/Deserialize
         /// <summary>
@@ -558,14 +558,14 @@
             }
         }
         
-        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
+        //public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
         
-        public virtual void OnPropertyChanged(string info) {
-            System.ComponentModel.PropertyChangedEventHandler handler = this.PropertyChanged;
-            if ((handler != null)) {
-                handler(this, new System.ComponentModel.PropertyChangedEventArgs(info));
-            }
-        }
+        //public virtual void OnPropertyChanged(string info) {
+        //    System.ComponentModel.PropertyChangedEventHandler handler = this.PropertyChanged;
+        //    if ((handler != null)) {
+        //        handler(this, new System.ComponentModel.PropertyChangedEventArgs(info));
+        //    }
+        //}
         
         #region Serialize/Deserialize
         /// <summary>
@@ -2654,14 +2654,14 @@
             }
         }
         
-        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
+        //public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
         
-        public virtual void OnPropertyChanged(string info) {
-            System.ComponentModel.PropertyChangedEventHandler handler = this.PropertyChanged;
-            if ((handler != null)) {
-                handler(this, new System.ComponentModel.PropertyChangedEventArgs(info));
-            }
-        }
+        //public virtual void OnPropertyChanged(string info) {
+        //    System.ComponentModel.PropertyChangedEventHandler handler = this.PropertyChanged;
+        //    if ((handler != null)) {
+        //        handler(this, new System.ComponentModel.PropertyChangedEventArgs(info));
+        //    }
+        //}
         
         #region Serialize/Deserialize
         /// <summary>
@@ -3551,14 +3551,14 @@
             }
         }
         
-        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
+        //public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
         
-        public virtual void OnPropertyChanged(string info) {
-            System.ComponentModel.PropertyChangedEventHandler handler = this.PropertyChanged;
-            if ((handler != null)) {
-                handler(this, new System.ComponentModel.PropertyChangedEventArgs(info));
-            }
-        }
+        //public virtual void OnPropertyChanged(string info) {
+        //    System.ComponentModel.PropertyChangedEventHandler handler = this.PropertyChanged;
+        //    if ((handler != null)) {
+        //        handler(this, new System.ComponentModel.PropertyChangedEventArgs(info));
+        //    }
+        //}
         
         #region Serialize/Deserialize
         /// <summary>
@@ -3837,14 +3837,14 @@
             }
         }
         
-        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
+        //public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
         
-        public virtual void OnPropertyChanged(string info) {
-            System.ComponentModel.PropertyChangedEventHandler handler = this.PropertyChanged;
-            if ((handler != null)) {
-                handler(this, new System.ComponentModel.PropertyChangedEventArgs(info));
-            }
-        }
+        //public virtual void OnPropertyChanged(string info) {
+        //    System.ComponentModel.PropertyChangedEventHandler handler = this.PropertyChanged;
+        //    if ((handler != null)) {
+        //        handler(this, new System.ComponentModel.PropertyChangedEventArgs(info));
+        //    }
+        //}
         
         #region Serialize/Deserialize
         /// <summary>
@@ -4418,14 +4418,14 @@
             }
         }
         
-        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
+        //public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
         
-        public virtual void OnPropertyChanged(string info) {
-            System.ComponentModel.PropertyChangedEventHandler handler = this.PropertyChanged;
-            if ((handler != null)) {
-                handler(this, new System.ComponentModel.PropertyChangedEventArgs(info));
-            }
-        }
+        //public virtual void OnPropertyChanged(string info) {
+        //    System.ComponentModel.PropertyChangedEventHandler handler = this.PropertyChanged;
+        //    if ((handler != null)) {
+        //        handler(this, new System.ComponentModel.PropertyChangedEventArgs(info));
+        //    }
+        //}
         
         #region Serialize/Deserialize
         /// <summary>
@@ -4643,14 +4643,14 @@
             }
         }
         
-        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
+        //public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
         
-        public virtual void OnPropertyChanged(string info) {
-            System.ComponentModel.PropertyChangedEventHandler handler = this.PropertyChanged;
-            if ((handler != null)) {
-                handler(this, new System.ComponentModel.PropertyChangedEventArgs(info));
-            }
-        }
+        //public virtual void OnPropertyChanged(string info) {
+        //    System.ComponentModel.PropertyChangedEventHandler handler = this.PropertyChanged;
+        //    if ((handler != null)) {
+        //        handler(this, new System.ComponentModel.PropertyChangedEventArgs(info));
+        //    }
+        //}
         
         #region Serialize/Deserialize
         /// <summary>
@@ -5125,14 +5125,14 @@
             }
         }
         
-        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
+        //public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
         
-        public virtual void OnPropertyChanged(string info) {
-            System.ComponentModel.PropertyChangedEventHandler handler = this.PropertyChanged;
-            if ((handler != null)) {
-                handler(this, new System.ComponentModel.PropertyChangedEventArgs(info));
-            }
-        }
+        //public virtual void OnPropertyChanged(string info) {
+        //    System.ComponentModel.PropertyChangedEventHandler handler = this.PropertyChanged;
+        //    if ((handler != null)) {
+        //        handler(this, new System.ComponentModel.PropertyChangedEventArgs(info));
+        //    }
+        //}
         
         #region Serialize/Deserialize
         /// <summary>
@@ -6955,14 +6955,14 @@
             }
         }
         
-        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
+        //public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
         
-        public virtual void OnPropertyChanged(string info) {
-            System.ComponentModel.PropertyChangedEventHandler handler = this.PropertyChanged;
-            if ((handler != null)) {
-                handler(this, new System.ComponentModel.PropertyChangedEventArgs(info));
-            }
-        }
+        //public virtual void OnPropertyChanged(string info) {
+        //    System.ComponentModel.PropertyChangedEventHandler handler = this.PropertyChanged;
+        //    if ((handler != null)) {
+        //        handler(this, new System.ComponentModel.PropertyChangedEventArgs(info));
+        //    }
+        //}
         
         #region Serialize/Deserialize
         /// <summary>
@@ -9960,14 +9960,14 @@
             }
         }
         
-        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
+        //public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
         
-        public virtual void OnPropertyChanged(string info) {
-            System.ComponentModel.PropertyChangedEventHandler handler = this.PropertyChanged;
-            if ((handler != null)) {
-                handler(this, new System.ComponentModel.PropertyChangedEventArgs(info));
-            }
-        }
+        //public virtual void OnPropertyChanged(string info) {
+        //    System.ComponentModel.PropertyChangedEventHandler handler = this.PropertyChanged;
+        //    if ((handler != null)) {
+        //        handler(this, new System.ComponentModel.PropertyChangedEventArgs(info));
+        //    }
+        //}
         
         #region Serialize/Deserialize
         /// <summary>
@@ -10326,14 +10326,14 @@
             }
         }
         
-        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
+        //public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
         
-        public virtual void OnPropertyChanged(string info) {
-            System.ComponentModel.PropertyChangedEventHandler handler = this.PropertyChanged;
-            if ((handler != null)) {
-                handler(this, new System.ComponentModel.PropertyChangedEventArgs(info));
-            }
-        }
+        //public virtual void OnPropertyChanged(string info) {
+        //    System.ComponentModel.PropertyChangedEventHandler handler = this.PropertyChanged;
+        //    if ((handler != null)) {
+        //        handler(this, new System.ComponentModel.PropertyChangedEventArgs(info));
+        //    }
+        //}
         
         #region Serialize/Deserialize
         /// <summary>

Modified: sandbox/maestro-3.0/Generated/LoadProcedure-1.0.0.designer.cs
===================================================================
--- sandbox/maestro-3.0/Generated/LoadProcedure-1.0.0.designer.cs	2010-07-07 09:30:03 UTC (rev 5001)
+++ sandbox/maestro-3.0/Generated/LoadProcedure-1.0.0.designer.cs	2010-07-07 13:10:28 UTC (rev 5002)
@@ -36,14 +36,14 @@
             }
         }
         
-        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
+        //public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
         
-        public virtual void OnPropertyChanged(string info) {
-            System.ComponentModel.PropertyChangedEventHandler handler = this.PropertyChanged;
-            if ((handler != null)) {
-                handler(this, new System.ComponentModel.PropertyChangedEventArgs(info));
-            }
-        }
+        //public virtual void OnPropertyChanged(string info) {
+        //    System.ComponentModel.PropertyChangedEventHandler handler = this.PropertyChanged;
+        //    if ((handler != null)) {
+        //        handler(this, new System.ComponentModel.PropertyChangedEventArgs(info));
+        //    }
+        //}
         
         #region Serialize/Deserialize
         /// <summary>
@@ -424,14 +424,14 @@
             }
         }
         
-        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
+        //public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
         
-        public virtual void OnPropertyChanged(string info) {
-            System.ComponentModel.PropertyChangedEventHandler handler = this.PropertyChanged;
-            if ((handler != null)) {
-                handler(this, new System.ComponentModel.PropertyChangedEventArgs(info));
-            }
-        }
+        //public virtual void OnPropertyChanged(string info) {
+        //    System.ComponentModel.PropertyChangedEventHandler handler = this.PropertyChanged;
+        //    if ((handler != null)) {
+        //        handler(this, new System.ComponentModel.PropertyChangedEventArgs(info));
+        //    }
+        //}
         
         #region Serialize/Deserialize
         /// <summary>
@@ -2033,14 +2033,14 @@
             }
         }
         
-        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
+        //public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
         
-        public virtual void OnPropertyChanged(string info) {
-            System.ComponentModel.PropertyChangedEventHandler handler = this.PropertyChanged;
-            if ((handler != null)) {
-                handler(this, new System.ComponentModel.PropertyChangedEventArgs(info));
-            }
-        }
+        //public virtual void OnPropertyChanged(string info) {
+        //    System.ComponentModel.PropertyChangedEventHandler handler = this.PropertyChanged;
+        //    if ((handler != null)) {
+        //        handler(this, new System.ComponentModel.PropertyChangedEventArgs(info));
+        //    }
+        //}
         
         #region Serialize/Deserialize
         /// <summary>
@@ -2298,14 +2298,14 @@
             }
         }
         
-        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
+        //public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
         
-        public virtual void OnPropertyChanged(string info) {
-            System.ComponentModel.PropertyChangedEventHandler handler = this.PropertyChanged;
-            if ((handler != null)) {
-                handler(this, new System.ComponentModel.PropertyChangedEventArgs(info));
-            }
-        }
+        //public virtual void OnPropertyChanged(string info) {
+        //    System.ComponentModel.PropertyChangedEventHandler handler = this.PropertyChanged;
+        //    if ((handler != null)) {
+        //        handler(this, new System.ComponentModel.PropertyChangedEventArgs(info));
+        //    }
+        //}
         
         #region Serialize/Deserialize
         /// <summary>
@@ -2523,14 +2523,14 @@
             }
         }
         
-        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
+        //public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
         
-        public virtual void OnPropertyChanged(string info) {
-            System.ComponentModel.PropertyChangedEventHandler handler = this.PropertyChanged;
-            if ((handler != null)) {
-                handler(this, new System.ComponentModel.PropertyChangedEventArgs(info));
-            }
-        }
+        //public virtual void OnPropertyChanged(string info) {
+        //    System.ComponentModel.PropertyChangedEventHandler handler = this.PropertyChanged;
+        //    if ((handler != null)) {
+        //        handler(this, new System.ComponentModel.PropertyChangedEventArgs(info));
+        //    }
+        //}
         
         #region Serialize/Deserialize
         /// <summary>
@@ -2734,14 +2734,14 @@
             }
         }
         
-        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
+        //public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
         
-        public virtual void OnPropertyChanged(string info) {
-            System.ComponentModel.PropertyChangedEventHandler handler = this.PropertyChanged;
-            if ((handler != null)) {
-                handler(this, new System.ComponentModel.PropertyChangedEventArgs(info));
-            }
-        }
+        //public virtual void OnPropertyChanged(string info) {
+        //    System.ComponentModel.PropertyChangedEventHandler handler = this.PropertyChanged;
+        //    if ((handler != null)) {
+        //        handler(this, new System.ComponentModel.PropertyChangedEventArgs(info));
+        //    }
+        //}
         
         #region Serialize/Deserialize
         /// <summary>

Modified: sandbox/maestro-3.0/Generated/MapDefinition-1.0.0.designer.cs
===================================================================
--- sandbox/maestro-3.0/Generated/MapDefinition-1.0.0.designer.cs	2010-07-07 09:30:03 UTC (rev 5001)
+++ sandbox/maestro-3.0/Generated/MapDefinition-1.0.0.designer.cs	2010-07-07 13:10:28 UTC (rev 5002)
@@ -12,6 +12,8 @@
     using System.Xml.Schema;
     using System.ComponentModel;
     using System.IO;
+    using OSGeo.MapGuide.MaestroAPI;
+    using System.Drawing;
     
     
     /// <summary>
@@ -216,7 +218,7 @@
         private Box2DType extentsField;
         
         [EditorBrowsable(EditorBrowsableState.Never)]
-        private byte[] backgroundColorField;
+        private Color backgroundColorField;
         
         [EditorBrowsable(EditorBrowsableState.Never)]
         private string metadataField;
@@ -286,20 +288,21 @@
             }
         }
         
-        [System.Xml.Serialization.XmlElementAttribute(DataType="hexBinary")]
-        public byte[] BackgroundColor {
+        [System.Xml.Serialization.XmlElementAttribute("BackgroundColor")]
+        public string BackgroundColorAsHtml {
             get {
-                return this.backgroundColorField;
+                return Utility.SerializeHTMLColor(this.backgroundColorField, true);
             }
             set {
+                var c = Utility.ParseHTMLColor(value);
                 if ((this.backgroundColorField != null)) {
-                    if ((backgroundColorField.Equals(value) != true)) {
-                        this.backgroundColorField = value;
+                    if ((backgroundColorField.Equals(c) != true)) {
+                        this.backgroundColorField = c;
                         this.OnPropertyChanged("BackgroundColor");
                     }
                 }
                 else {
-                    this.backgroundColorField = value;
+                    this.backgroundColorField = c;
                     this.OnPropertyChanged("BackgroundColor");
                 }
             }
@@ -1102,14 +1105,14 @@
             }
         }
         
-        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
+        //public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
         
-        public virtual void OnPropertyChanged(string info) {
-            System.ComponentModel.PropertyChangedEventHandler handler = this.PropertyChanged;
-            if ((handler != null)) {
-                handler(this, new System.ComponentModel.PropertyChangedEventArgs(info));
-            }
-        }
+        //public virtual void OnPropertyChanged(string info) {
+        //    System.ComponentModel.PropertyChangedEventHandler handler = this.PropertyChanged;
+        //    if ((handler != null)) {
+        //        handler(this, new System.ComponentModel.PropertyChangedEventArgs(info));
+        //    }
+        //}
         
         #region Serialize/Deserialize
         /// <summary>
@@ -1609,14 +1612,14 @@
             }
         }
         
-        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
+        //public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
         
-        public virtual void OnPropertyChanged(string info) {
-            System.ComponentModel.PropertyChangedEventHandler handler = this.PropertyChanged;
-            if ((handler != null)) {
-                handler(this, new System.ComponentModel.PropertyChangedEventArgs(info));
-            }
-        }
+        //public virtual void OnPropertyChanged(string info) {
+        //    System.ComponentModel.PropertyChangedEventHandler handler = this.PropertyChanged;
+        //    if ((handler != null)) {
+        //        handler(this, new System.ComponentModel.PropertyChangedEventArgs(info));
+        //    }
+        //}
         
         #region Serialize/Deserialize
         /// <summary>
@@ -1811,14 +1814,14 @@
             }
         }
         
-        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
+        //public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
         
-        public virtual void OnPropertyChanged(string info) {
-            System.ComponentModel.PropertyChangedEventHandler handler = this.PropertyChanged;
-            if ((handler != null)) {
-                handler(this, new System.ComponentModel.PropertyChangedEventArgs(info));
-            }
-        }
+        //public virtual void OnPropertyChanged(string info) {
+        //    System.ComponentModel.PropertyChangedEventHandler handler = this.PropertyChanged;
+        //    if ((handler != null)) {
+        //        handler(this, new System.ComponentModel.PropertyChangedEventArgs(info));
+        //    }
+        //}
         
         #region Serialize/Deserialize
         /// <summary>

Modified: sandbox/maestro-3.0/Generated/SelectAggregate-1.0.0.designer.cs
===================================================================
--- sandbox/maestro-3.0/Generated/SelectAggregate-1.0.0.designer.cs	2010-07-07 09:30:03 UTC (rev 5001)
+++ sandbox/maestro-3.0/Generated/SelectAggregate-1.0.0.designer.cs	2010-07-07 13:10:28 UTC (rev 5002)
@@ -277,14 +277,14 @@
             }
         }
         
-        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
+        //public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
         
-        public virtual void OnPropertyChanged(string info) {
-            System.ComponentModel.PropertyChangedEventHandler handler = this.PropertyChanged;
-            if ((handler != null)) {
-                handler(this, new System.ComponentModel.PropertyChangedEventArgs(info));
-            }
-        }
+        //public virtual void OnPropertyChanged(string info) {
+        //    System.ComponentModel.PropertyChangedEventHandler handler = this.PropertyChanged;
+        //    if ((handler != null)) {
+        //        handler(this, new System.ComponentModel.PropertyChangedEventArgs(info));
+        //    }
+        //}
         
         #region Serialize/Deserialize
         /// <summary>
@@ -1508,14 +1508,14 @@
             }
         }
         
-        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
+        //public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
         
-        public virtual void OnPropertyChanged(string info) {
-            System.ComponentModel.PropertyChangedEventHandler handler = this.PropertyChanged;
-            if ((handler != null)) {
-                handler(this, new System.ComponentModel.PropertyChangedEventArgs(info));
-            }
-        }
+        //public virtual void OnPropertyChanged(string info) {
+        //    System.ComponentModel.PropertyChangedEventHandler handler = this.PropertyChanged;
+        //    if ((handler != null)) {
+        //        handler(this, new System.ComponentModel.PropertyChangedEventArgs(info));
+        //    }
+        //}
         
         #region Serialize/Deserialize
         /// <summary>

Modified: sandbox/maestro-3.0/Generated/SymbolDefinition-1.0.0.designer.cs
===================================================================
--- sandbox/maestro-3.0/Generated/SymbolDefinition-1.0.0.designer.cs	2010-07-07 09:30:03 UTC (rev 5001)
+++ sandbox/maestro-3.0/Generated/SymbolDefinition-1.0.0.designer.cs	2010-07-07 13:10:28 UTC (rev 5002)
@@ -59,14 +59,14 @@
             }
         }
         
-        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
+        //public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
         
-        public virtual void OnPropertyChanged(string info) {
-            System.ComponentModel.PropertyChangedEventHandler handler = this.PropertyChanged;
-            if ((handler != null)) {
-                handler(this, new System.ComponentModel.PropertyChangedEventArgs(info));
-            }
-        }
+        //public virtual void OnPropertyChanged(string info) {
+        //    System.ComponentModel.PropertyChangedEventHandler handler = this.PropertyChanged;
+        //    if ((handler != null)) {
+        //        handler(this, new System.ComponentModel.PropertyChangedEventArgs(info));
+        //    }
+        //}
         
         #region Serialize/Deserialize
         /// <summary>
@@ -411,14 +411,14 @@
             }
         }
         
-        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
+        //public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
         
-        public virtual void OnPropertyChanged(string info) {
-            System.ComponentModel.PropertyChangedEventHandler handler = this.PropertyChanged;
-            if ((handler != null)) {
-                handler(this, new System.ComponentModel.PropertyChangedEventArgs(info));
-            }
-        }
+        //public virtual void OnPropertyChanged(string info) {
+        //    System.ComponentModel.PropertyChangedEventHandler handler = this.PropertyChanged;
+        //    if ((handler != null)) {
+        //        handler(this, new System.ComponentModel.PropertyChangedEventArgs(info));
+        //    }
+        //}
         
         #region Serialize/Deserialize
         /// <summary>
@@ -775,14 +775,14 @@
             }
         }
         
-        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
+        //public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
         
-        public virtual void OnPropertyChanged(string info) {
-            System.ComponentModel.PropertyChangedEventHandler handler = this.PropertyChanged;
-            if ((handler != null)) {
-                handler(this, new System.ComponentModel.PropertyChangedEventArgs(info));
-            }
-        }
+        //public virtual void OnPropertyChanged(string info) {
+        //    System.ComponentModel.PropertyChangedEventHandler handler = this.PropertyChanged;
+        //    if ((handler != null)) {
+        //        handler(this, new System.ComponentModel.PropertyChangedEventArgs(info));
+        //    }
+        //}
         
         #region Serialize/Deserialize
         /// <summary>
@@ -3340,14 +3340,14 @@
             }
         }
         
-        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
+        //public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
         
-        public virtual void OnPropertyChanged(string info) {
-            System.ComponentModel.PropertyChangedEventHandler handler = this.PropertyChanged;
-            if ((handler != null)) {
-                handler(this, new System.ComponentModel.PropertyChangedEventArgs(info));
-            }
-        }
+        //public virtual void OnPropertyChanged(string info) {
+        //    System.ComponentModel.PropertyChangedEventHandler handler = this.PropertyChanged;
+        //    if ((handler != null)) {
+        //        handler(this, new System.ComponentModel.PropertyChangedEventArgs(info));
+        //    }
+        //}
         
         #region Serialize/Deserialize
         /// <summary>
@@ -4139,14 +4139,14 @@
             }
         }
         
-        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
+        //public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
         
-        public virtual void OnPropertyChanged(string info) {
-            System.ComponentModel.PropertyChangedEventHandler handler = this.PropertyChanged;
-            if ((handler != null)) {
-                handler(this, new System.ComponentModel.PropertyChangedEventArgs(info));
-            }
-        }
+        //public virtual void OnPropertyChanged(string info) {
+        //    System.ComponentModel.PropertyChangedEventHandler handler = this.PropertyChanged;
+        //    if ((handler != null)) {
+        //        handler(this, new System.ComponentModel.PropertyChangedEventArgs(info));
+        //    }
+        //}
         
         #region Serialize/Deserialize
         /// <summary>
@@ -5529,14 +5529,14 @@
             }
         }
         
-        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
+        //public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
         
-        public virtual void OnPropertyChanged(string info) {
-            System.ComponentModel.PropertyChangedEventHandler handler = this.PropertyChanged;
-            if ((handler != null)) {
-                handler(this, new System.ComponentModel.PropertyChangedEventArgs(info));
-            }
-        }
+        //public virtual void OnPropertyChanged(string info) {
+        //    System.ComponentModel.PropertyChangedEventHandler handler = this.PropertyChanged;
+        //    if ((handler != null)) {
+        //        handler(this, new System.ComponentModel.PropertyChangedEventArgs(info));
+        //    }
+        //}
         
         #region Serialize/Deserialize
         /// <summary>
@@ -5737,14 +5737,14 @@
             }
         }
         
-        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
+        //public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
         
-        public virtual void OnPropertyChanged(string info) {
-            System.ComponentModel.PropertyChangedEventHandler handler = this.PropertyChanged;
-            if ((handler != null)) {
-                handler(this, new System.ComponentModel.PropertyChangedEventArgs(info));
-            }
-        }
+        //public virtual void OnPropertyChanged(string info) {
+        //    System.ComponentModel.PropertyChangedEventHandler handler = this.PropertyChanged;
+        //    if ((handler != null)) {
+        //        handler(this, new System.ComponentModel.PropertyChangedEventArgs(info));
+        //    }
+        //}
         
         #region Serialize/Deserialize
         /// <summary>

Modified: sandbox/maestro-3.0/Generated/WebLayout-1.0.0.designer.cs
===================================================================
--- sandbox/maestro-3.0/Generated/WebLayout-1.0.0.designer.cs	2010-07-07 09:30:03 UTC (rev 5001)
+++ sandbox/maestro-3.0/Generated/WebLayout-1.0.0.designer.cs	2010-07-07 13:10:28 UTC (rev 5002)
@@ -460,14 +460,14 @@
             }
         }
         
-        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
+        //public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
         
-        public virtual void OnPropertyChanged(string info) {
-            System.ComponentModel.PropertyChangedEventHandler handler = this.PropertyChanged;
-            if ((handler != null)) {
-                handler(this, new System.ComponentModel.PropertyChangedEventArgs(info));
-            }
-        }
+        //public virtual void OnPropertyChanged(string info) {
+        //    System.ComponentModel.PropertyChangedEventHandler handler = this.PropertyChanged;
+        //    if ((handler != null)) {
+        //        handler(this, new System.ComponentModel.PropertyChangedEventArgs(info));
+        //    }
+        //}
         
         #region Serialize/Deserialize
         /// <summary>
@@ -1673,14 +1673,14 @@
             }
         }
         
-        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
+        //public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
         
-        public virtual void OnPropertyChanged(string info) {
-            System.ComponentModel.PropertyChangedEventHandler handler = this.PropertyChanged;
-            if ((handler != null)) {
-                handler(this, new System.ComponentModel.PropertyChangedEventArgs(info));
-            }
-        }
+        //public virtual void OnPropertyChanged(string info) {
+        //    System.ComponentModel.PropertyChangedEventHandler handler = this.PropertyChanged;
+        //    if ((handler != null)) {
+        //        handler(this, new System.ComponentModel.PropertyChangedEventArgs(info));
+        //    }
+        //}
         
         #region Serialize/Deserialize
         /// <summary>
@@ -1875,14 +1875,14 @@
             }
         }
         
-        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
+        //public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
         
-        public virtual void OnPropertyChanged(string info) {
-            System.ComponentModel.PropertyChangedEventHandler handler = this.PropertyChanged;
-            if ((handler != null)) {
-                handler(this, new System.ComponentModel.PropertyChangedEventArgs(info));
-            }
-        }
+        //public virtual void OnPropertyChanged(string info) {
+        //    System.ComponentModel.PropertyChangedEventHandler handler = this.PropertyChanged;
+        //    if ((handler != null)) {
+        //        handler(this, new System.ComponentModel.PropertyChangedEventArgs(info));
+        //    }
+        //}
         
         #region Serialize/Deserialize
         /// <summary>
@@ -2078,14 +2078,14 @@
             }
         }
         
-        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
+        //public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
         
-        public virtual void OnPropertyChanged(string info) {
-            System.ComponentModel.PropertyChangedEventHandler handler = this.PropertyChanged;
-            if ((handler != null)) {
-                handler(this, new System.ComponentModel.PropertyChangedEventArgs(info));
-            }
-        }
+        //public virtual void OnPropertyChanged(string info) {
+        //    System.ComponentModel.PropertyChangedEventHandler handler = this.PropertyChanged;
+        //    if ((handler != null)) {
+        //        handler(this, new System.ComponentModel.PropertyChangedEventArgs(info));
+        //    }
+        //}
         
         #region Serialize/Deserialize
         /// <summary>
@@ -2506,14 +2506,14 @@
             }
         }
         
-        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
+        //public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
         
-        public virtual void OnPropertyChanged(string info) {
-            System.ComponentModel.PropertyChangedEventHandler handler = this.PropertyChanged;
-            if ((handler != null)) {
-                handler(this, new System.ComponentModel.PropertyChangedEventArgs(info));
-            }
-        }
+        //public virtual void OnPropertyChanged(string info) {
+        //    System.ComponentModel.PropertyChangedEventHandler handler = this.PropertyChanged;
+        //    if ((handler != null)) {
+        //        handler(this, new System.ComponentModel.PropertyChangedEventArgs(info));
+        //    }
+        //}
         
         #region Serialize/Deserialize
         /// <summary>
@@ -2722,14 +2722,14 @@
             }
         }
         
-        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
+        //public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
         
-        public virtual void OnPropertyChanged(string info) {
-            System.ComponentModel.PropertyChangedEventHandler handler = this.PropertyChanged;
-            if ((handler != null)) {
-                handler(this, new System.ComponentModel.PropertyChangedEventArgs(info));
-            }
-        }
+        //public virtual void OnPropertyChanged(string info) {
+        //    System.ComponentModel.PropertyChangedEventHandler handler = this.PropertyChanged;
+        //    if ((handler != null)) {
+        //        handler(this, new System.ComponentModel.PropertyChangedEventArgs(info));
+        //    }
+        //}
         
         #region Serialize/Deserialize
         /// <summary>
@@ -2903,14 +2903,14 @@
             }
         }
         
-        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
+        //public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
         
-        public virtual void OnPropertyChanged(string info) {
-            System.ComponentModel.PropertyChangedEventHandler handler = this.PropertyChanged;
-            if ((handler != null)) {
-                handler(this, new System.ComponentModel.PropertyChangedEventArgs(info));
-            }
-        }
+        //public virtual void OnPropertyChanged(string info) {
+        //    System.ComponentModel.PropertyChangedEventHandler handler = this.PropertyChanged;
+        //    if ((handler != null)) {
+        //        handler(this, new System.ComponentModel.PropertyChangedEventArgs(info));
+        //    }
+        //}
         
         #region Serialize/Deserialize
         /// <summary>
@@ -3084,14 +3084,14 @@
             }
         }
         
-        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
+        //public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
         
-        public virtual void OnPropertyChanged(string info) {
-            System.ComponentModel.PropertyChangedEventHandler handler = this.PropertyChanged;
-            if ((handler != null)) {
-                handler(this, new System.ComponentModel.PropertyChangedEventArgs(info));
-            }
-        }
+        //public virtual void OnPropertyChanged(string info) {
+        //    System.ComponentModel.PropertyChangedEventHandler handler = this.PropertyChanged;
+        //    if ((handler != null)) {
+        //        handler(this, new System.ComponentModel.PropertyChangedEventArgs(info));
+        //    }
+        //}
         
         #region Serialize/Deserialize
         /// <summary>
@@ -3265,14 +3265,14 @@
             }
         }
         
-        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
+        //public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
         
-        public virtual void OnPropertyChanged(string info) {
-            System.ComponentModel.PropertyChangedEventHandler handler = this.PropertyChanged;
-            if ((handler != null)) {
-                handler(this, new System.ComponentModel.PropertyChangedEventArgs(info));
-            }
-        }
+        //public virtual void OnPropertyChanged(string info) {
+        //    System.ComponentModel.PropertyChangedEventHandler handler = this.PropertyChanged;
+        //    if ((handler != null)) {
+        //        handler(this, new System.ComponentModel.PropertyChangedEventArgs(info));
+        //    }
+        //}
         
         #region Serialize/Deserialize
         /// <summary>
@@ -4176,14 +4176,14 @@
             }
         }
         
-        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
+        //public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
         
-        public virtual void OnPropertyChanged(string info) {
-            System.ComponentModel.PropertyChangedEventHandler handler = this.PropertyChanged;
-            if ((handler != null)) {
-                handler(this, new System.ComponentModel.PropertyChangedEventArgs(info));
-            }
-        }
+        //public virtual void OnPropertyChanged(string info) {
+        //    System.ComponentModel.PropertyChangedEventHandler handler = this.PropertyChanged;
+        //    if ((handler != null)) {
+        //        handler(this, new System.ComponentModel.PropertyChangedEventArgs(info));
+        //    }
+        //}
         
         #region Serialize/Deserialize
         /// <summary>
@@ -4372,14 +4372,14 @@
             }
         }
         
-        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
+        //public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
         
-        public virtual void OnPropertyChanged(string info) {
-            System.ComponentModel.PropertyChangedEventHandler handler = this.PropertyChanged;
-            if ((handler != null)) {
-                handler(this, new System.ComponentModel.PropertyChangedEventArgs(info));
-            }
-        }
+        //public virtual void OnPropertyChanged(string info) {
+        //    System.ComponentModel.PropertyChangedEventHandler handler = this.PropertyChanged;
+        //    if ((handler != null)) {
+        //        handler(this, new System.ComponentModel.PropertyChangedEventArgs(info));
+        //    }
+        //}
         
         #region Serialize/Deserialize
         /// <summary>
@@ -4855,14 +4855,14 @@
             }
         }
         
-        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
+        //public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
         
-        public virtual void OnPropertyChanged(string info) {
-            System.ComponentModel.PropertyChangedEventHandler handler = this.PropertyChanged;
-            if ((handler != null)) {
-                handler(this, new System.ComponentModel.PropertyChangedEventArgs(info));
-            }
-        }
+        //public virtual void OnPropertyChanged(string info) {
+        //    System.ComponentModel.PropertyChangedEventHandler handler = this.PropertyChanged;
+        //    if ((handler != null)) {
+        //        handler(this, new System.ComponentModel.PropertyChangedEventArgs(info));
+        //    }
+        //}
         
         #region Serialize/Deserialize
         /// <summary>
@@ -5036,14 +5036,14 @@
             }
         }
         
-        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
+        //public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
         
-        public virtual void OnPropertyChanged(string info) {
-            System.ComponentModel.PropertyChangedEventHandler handler = this.PropertyChanged;
-            if ((handler != null)) {
-                handler(this, new System.ComponentModel.PropertyChangedEventArgs(info));
-            }
-        }
+        //public virtual void OnPropertyChanged(string info) {
+        //    System.ComponentModel.PropertyChangedEventHandler handler = this.PropertyChanged;
+        //    if ((handler != null)) {
+        //        handler(this, new System.ComponentModel.PropertyChangedEventArgs(info));
+        //    }
+        //}
         
         #region Serialize/Deserialize
         /// <summary>
@@ -5344,14 +5344,14 @@
             }
         }
         
-        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
+        //public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
         
-        public virtual void OnPropertyChanged(string info) {
-            System.ComponentModel.PropertyChangedEventHandler handler = this.PropertyChanged;
-            if ((handler != null)) {
-                handler(this, new System.ComponentModel.PropertyChangedEventArgs(info));
-            }
-        }
+        //public virtual void OnPropertyChanged(string info) {
+        //    System.ComponentModel.PropertyChangedEventHandler handler = this.PropertyChanged;
+        //    if ((handler != null)) {
+        //        handler(this, new System.ComponentModel.PropertyChangedEventArgs(info));
+        //    }
+        //}
         
         #region Serialize/Deserialize
         /// <summary>
@@ -6015,14 +6015,14 @@
             }
         }
         
-        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
+        //public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
         
-        public virtual void OnPropertyChanged(string info) {
-            System.ComponentModel.PropertyChangedEventHandler handler = this.PropertyChanged;
-            if ((handler != null)) {
-                handler(this, new System.ComponentModel.PropertyChangedEventArgs(info));
-            }
-        }
+        //public virtual void OnPropertyChanged(string info) {
+        //    System.ComponentModel.PropertyChangedEventHandler handler = this.PropertyChanged;
+        //    if ((handler != null)) {
+        //        handler(this, new System.ComponentModel.PropertyChangedEventArgs(info));
+        //    }
+        //}
         
         #region Serialize/Deserialize
         /// <summary>
@@ -6196,14 +6196,14 @@
             }
         }
         
-        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
+        //public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
         
-        public virtual void OnPropertyChanged(string info) {
-            System.ComponentModel.PropertyChangedEventHandler handler = this.PropertyChanged;
-            if ((handler != null)) {
-                handler(this, new System.ComponentModel.PropertyChangedEventArgs(info));
-            }
-        }
+        //public virtual void OnPropertyChanged(string info) {
+        //    System.ComponentModel.PropertyChangedEventHandler handler = this.PropertyChanged;
+        //    if ((handler != null)) {
+        //        handler(this, new System.ComponentModel.PropertyChangedEventArgs(info));
+        //    }
+        //}
         
         #region Serialize/Deserialize
         /// <summary>
@@ -6399,14 +6399,14 @@
             }
         }
         
-        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
+        //public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
         
-        public virtual void OnPropertyChanged(string info) {
-            System.ComponentModel.PropertyChangedEventHandler handler = this.PropertyChanged;
-            if ((handler != null)) {
-                handler(this, new System.ComponentModel.PropertyChangedEventArgs(info));
-            }
-        }
+        //public virtual void OnPropertyChanged(string info) {
+        //    System.ComponentModel.PropertyChangedEventHandler handler = this.PropertyChanged;
+        //    if ((handler != null)) {
+        //        handler(this, new System.ComponentModel.PropertyChangedEventArgs(info));
+        //    }
+        //}
         
         #region Serialize/Deserialize
         /// <summary>
@@ -6602,14 +6602,14 @@
             }
         }
         
-        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
+        //public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
         
-        public virtual void OnPropertyChanged(string info) {
-            System.ComponentModel.PropertyChangedEventHandler handler = this.PropertyChanged;
-            if ((handler != null)) {
-                handler(this, new System.ComponentModel.PropertyChangedEventArgs(info));
-            }
-        }
+        //public virtual void OnPropertyChanged(string info) {
+        //    System.ComponentModel.PropertyChangedEventHandler handler = this.PropertyChanged;
+        //    if ((handler != null)) {
+        //        handler(this, new System.ComponentModel.PropertyChangedEventArgs(info));
+        //    }
+        //}
         
         #region Serialize/Deserialize
         /// <summary>
@@ -6889,14 +6889,14 @@
             }
         }
         
-        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
+        //public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
         
-        public virtual void OnPropertyChanged(string info) {
-            System.ComponentModel.PropertyChangedEventHandler handler = this.PropertyChanged;
-            if ((handler != null)) {
-                handler(this, new System.ComponentModel.PropertyChangedEventArgs(info));
-            }
-        }
+        //public virtual void OnPropertyChanged(string info) {
+        //    System.ComponentModel.PropertyChangedEventHandler handler = this.PropertyChanged;
+        //    if ((handler != null)) {
+        //        handler(this, new System.ComponentModel.PropertyChangedEventArgs(info));
+        //    }
+        //}
         
         #region Serialize/Deserialize
         /// <summary>
@@ -7087,14 +7087,14 @@
             }
         }
         
-        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
+        //public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
         
-        public virtual void OnPropertyChanged(string info) {
-            System.ComponentModel.PropertyChangedEventHandler handler = this.PropertyChanged;
-            if ((handler != null)) {
-                handler(this, new System.ComponentModel.PropertyChangedEventArgs(info));
-            }
-        }
+        //public virtual void OnPropertyChanged(string info) {
+        //    System.ComponentModel.PropertyChangedEventHandler handler = this.PropertyChanged;
+        //    if ((handler != null)) {
+        //        handler(this, new System.ComponentModel.PropertyChangedEventArgs(info));
+        //    }
+        //}
         
         #region Serialize/Deserialize
         /// <summary>
@@ -7310,14 +7310,14 @@
             }
         }
         
-        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
+        //public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
         
-        public virtual void OnPropertyChanged(string info) {
-            System.ComponentModel.PropertyChangedEventHandler handler = this.PropertyChanged;
-            if ((handler != null)) {
-                handler(this, new System.ComponentModel.PropertyChangedEventArgs(info));
-            }
-        }
+        //public virtual void OnPropertyChanged(string info) {
+        //    System.ComponentModel.PropertyChangedEventHandler handler = this.PropertyChanged;
+        //    if ((handler != null)) {
+        //        handler(this, new System.ComponentModel.PropertyChangedEventArgs(info));
+        //    }
+        //}
         
         #region Serialize/Deserialize
         /// <summary>
@@ -7521,14 +7521,14 @@
             }
         }
         
-        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
+        //public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
         
-        public virtual void OnPropertyChanged(string info) {
-            System.ComponentModel.PropertyChangedEventHandler handler = this.PropertyChanged;
-            if ((handler != null)) {
-                handler(this, new System.ComponentModel.PropertyChangedEventArgs(info));
-            }
-        }
+        //public virtual void OnPropertyChanged(string info) {
+        //    System.ComponentModel.PropertyChangedEventHandler handler = this.PropertyChanged;
+        //    if ((handler != null)) {
+        //        handler(this, new System.ComponentModel.PropertyChangedEventArgs(info));
+        //    }
+        //}
         
         #region Serialize/Deserialize
         /// <summary>

Modified: sandbox/maestro-3.0/Maestro.Base/Workbench.cs
===================================================================
--- sandbox/maestro-3.0/Maestro.Base/Workbench.cs	2010-07-07 09:30:03 UTC (rev 5001)
+++ sandbox/maestro-3.0/Maestro.Base/Workbench.cs	2010-07-07 13:10:28 UTC (rev 5002)
@@ -331,7 +331,6 @@
                     break;
                 case ViewRegion.Floating:
                     throw new NotImplementedException();
-                    break;
                 case ViewRegion.Dialog:
                     throw new NotImplementedException();
                     break;

Modified: sandbox/maestro-3.0/Maestro.Editors/Maestro.Editors.csproj
===================================================================
--- sandbox/maestro-3.0/Maestro.Editors/Maestro.Editors.csproj	2010-07-07 09:30:03 UTC (rev 5001)
+++ sandbox/maestro-3.0/Maestro.Editors/Maestro.Editors.csproj	2010-07-07 13:10:28 UTC (rev 5002)
@@ -3,7 +3,7 @@
   <PropertyGroup>
     <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
     <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
-    <ProductVersion>9.0.30729</ProductVersion>
+    <ProductVersion>9.0.21022</ProductVersion>
     <SchemaVersion>2.0</SchemaVersion>
     <ProjectGuid>{5AD2CDBA-952E-4148-98A1-31D2E0D540D5}</ProjectGuid>
     <OutputType>Library</OutputType>
@@ -324,6 +324,18 @@
     <Compile Include="LoadProcedure\ShpTransformationCtrl.Designer.cs">
       <DependentUpon>ShpTransformationCtrl.cs</DependentUpon>
     </Compile>
+    <Compile Include="MapDefinition\GroupPropertiesCtrl.cs">
+      <SubType>UserControl</SubType>
+    </Compile>
+    <Compile Include="MapDefinition\GroupPropertiesCtrl.Designer.cs">
+      <DependentUpon>GroupPropertiesCtrl.cs</DependentUpon>
+    </Compile>
+    <Compile Include="MapDefinition\LayerPropertiesCtrl.cs">
+      <SubType>UserControl</SubType>
+    </Compile>
+    <Compile Include="MapDefinition\LayerPropertiesCtrl.Designer.cs">
+      <DependentUpon>LayerPropertiesCtrl.cs</DependentUpon>
+    </Compile>
     <Compile Include="MapDefinition\MapDefinitionEditorCtrl.cs">
       <SubType>UserControl</SubType>
     </Compile>
@@ -593,6 +605,14 @@
       <DependentUpon>ShpTransformationCtrl.cs</DependentUpon>
       <SubType>Designer</SubType>
     </EmbeddedResource>
+    <EmbeddedResource Include="MapDefinition\GroupPropertiesCtrl.resx">
+      <DependentUpon>GroupPropertiesCtrl.cs</DependentUpon>
+      <SubType>Designer</SubType>
+    </EmbeddedResource>
+    <EmbeddedResource Include="MapDefinition\LayerPropertiesCtrl.resx">
+      <DependentUpon>LayerPropertiesCtrl.cs</DependentUpon>
+      <SubType>Designer</SubType>
+    </EmbeddedResource>
     <EmbeddedResource Include="MapDefinition\MapDefinitionEditorCtrl.resx">
       <DependentUpon>MapDefinitionEditorCtrl.cs</DependentUpon>
       <SubType>Designer</SubType>
@@ -808,6 +828,27 @@
     <None Include="Resources\server.png" />
   </ItemGroup>
   <ItemGroup>
+    <None Include="Resources\folder--minus.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="Resources\folder--plus.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="Resources\layer--minus.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="Resources\layer--plus.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="Resources\layers-stack-arrange.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="Resources\layers-stack-arrange-back.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="Resources\layer.png" />
+  </ItemGroup>
+  <ItemGroup>
     <Folder Include="DrawingSource\Preview\" />
     <Folder Include="FeatureSource\Providers\Rdbms\" />
     <Folder Include="LayerDefinition\Geometry\" />

Added: sandbox/maestro-3.0/Maestro.Editors/MapDefinition/GroupPropertiesCtrl.Designer.cs
===================================================================
--- sandbox/maestro-3.0/Maestro.Editors/MapDefinition/GroupPropertiesCtrl.Designer.cs	                        (rev 0)
+++ sandbox/maestro-3.0/Maestro.Editors/MapDefinition/GroupPropertiesCtrl.Designer.cs	2010-07-07 13:10:28 UTC (rev 5002)
@@ -0,0 +1,168 @@
+namespace Maestro.Editors.MapDefinition
+{
+    partial class GroupPropertiesCtrl
+    {
+        /// <summary> 
+        /// Required designer variable.
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;
+
+        /// <summary> 
+        /// Clean up any resources being used.
+        /// </summary>
+        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }
+
+        #region Component Designer generated code
+
+        /// <summary> 
+        /// Required method for Designer support - do not modify 
+        /// the contents of this method with the code editor.
+        /// </summary>
+        private void InitializeComponent()
+        {
+            this.groupBox1 = new System.Windows.Forms.GroupBox();
+            this.chkSelectable = new System.Windows.Forms.CheckBox();
+            this.chkExpanded = new System.Windows.Forms.CheckBox();
+            this.chkLegendVisible = new System.Windows.Forms.CheckBox();
+            this.chkVisible = new System.Windows.Forms.CheckBox();
+            this.txtLegendLabel = new System.Windows.Forms.TextBox();
+            this.txtName = new System.Windows.Forms.TextBox();
+            this.label2 = new System.Windows.Forms.Label();
+            this.label1 = new System.Windows.Forms.Label();
+            this.groupBox1.SuspendLayout();
+            this.SuspendLayout();
+            // 
+            // groupBox1
+            // 
+            this.groupBox1.Controls.Add(this.chkSelectable);
+            this.groupBox1.Controls.Add(this.chkExpanded);
+            this.groupBox1.Controls.Add(this.chkLegendVisible);
+            this.groupBox1.Controls.Add(this.chkVisible);
+            this.groupBox1.Controls.Add(this.txtLegendLabel);
+            this.groupBox1.Controls.Add(this.txtName);
+            this.groupBox1.Controls.Add(this.label2);
+            this.groupBox1.Controls.Add(this.label1);
+            this.groupBox1.Dock = System.Windows.Forms.DockStyle.Fill;
+            this.groupBox1.Location = new System.Drawing.Point(0, 0);
+            this.groupBox1.Name = "groupBox1";
+            this.groupBox1.Size = new System.Drawing.Size(400, 187);
+            this.groupBox1.TabIndex = 0;
+            this.groupBox1.TabStop = false;
+            this.groupBox1.Text = "Layer Group Properties";
+            // 
+            // chkSelectable
+            // 
+            this.chkSelectable.AutoSize = true;
+            this.chkSelectable.Location = new System.Drawing.Point(18, 103);
+            this.chkSelectable.Name = "chkSelectable";
+            this.chkSelectable.Size = new System.Drawing.Size(240, 17);
+            this.chkSelectable.TabIndex = 15;
+            this.chkSelectable.Text = "Features on the layer are selectable (if visible)";
+            this.chkSelectable.UseVisualStyleBackColor = true;
+            this.chkSelectable.CheckedChanged += new System.EventHandler(this.ForceUpdate);
+            // 
+            // chkExpanded
+            // 
+            this.chkExpanded.AutoSize = true;
+            this.chkExpanded.Location = new System.Drawing.Point(18, 150);
+            this.chkExpanded.Name = "chkExpanded";
+            this.chkExpanded.Size = new System.Drawing.Size(228, 17);
+            this.chkExpanded.TabIndex = 14;
+            this.chkExpanded.Text = "Layer is expanded in the legend (if themed)";
+            this.chkExpanded.UseVisualStyleBackColor = true;
+            this.chkExpanded.CheckedChanged += new System.EventHandler(this.ForceUpdate);
+            // 
+            // chkLegendVisible
+            // 
+            this.chkLegendVisible.AutoSize = true;
+            this.chkLegendVisible.Location = new System.Drawing.Point(18, 126);
+            this.chkLegendVisible.Name = "chkLegendVisible";
+            this.chkLegendVisible.Size = new System.Drawing.Size(183, 17);
+            this.chkLegendVisible.TabIndex = 13;
+            this.chkLegendVisible.Text = "Layer is shown in the map legend";
+            this.chkLegendVisible.UseVisualStyleBackColor = true;
+            this.chkLegendVisible.CheckedChanged += new System.EventHandler(this.ForceUpdate);
+            // 
+            // chkVisible
+            // 
+            this.chkVisible.AutoSize = true;
+            this.chkVisible.Location = new System.Drawing.Point(18, 80);
+            this.chkVisible.Name = "chkVisible";
+            this.chkVisible.Size = new System.Drawing.Size(141, 17);
+            this.chkVisible.TabIndex = 12;
+            this.chkVisible.Text = "Layer is visible at startup";
+            this.chkVisible.UseVisualStyleBackColor = true;
+            this.chkVisible.CheckedChanged += new System.EventHandler(this.ForceUpdate);
+            // 
+            // txtLegendLabel
+            // 
+            this.txtLegendLabel.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
+                        | System.Windows.Forms.AnchorStyles.Right)));
+            this.txtLegendLabel.Location = new System.Drawing.Point(107, 45);
+            this.txtLegendLabel.Name = "txtLegendLabel";
+            this.txtLegendLabel.Size = new System.Drawing.Size(277, 20);
+            this.txtLegendLabel.TabIndex = 11;
+            this.txtLegendLabel.TextChanged += new System.EventHandler(this.ForceUpdate);
+            // 
+            // txtName
+            // 
+            this.txtName.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
+                        | System.Windows.Forms.AnchorStyles.Right)));
+            this.txtName.Location = new System.Drawing.Point(107, 19);
+            this.txtName.Name = "txtName";
+            this.txtName.Size = new System.Drawing.Size(277, 20);
+            this.txtName.TabIndex = 10;
+            this.txtName.TextChanged += new System.EventHandler(this.ForceUpdate);
+            // 
+            // label2
+            // 
+            this.label2.AutoSize = true;
+            this.label2.Location = new System.Drawing.Point(15, 48);
+            this.label2.Name = "label2";
+            this.label2.Size = new System.Drawing.Size(72, 13);
+            this.label2.TabIndex = 9;
+            this.label2.Text = "Legend Label";
+            // 
+            // label1
+            // 
+            this.label1.AutoSize = true;
+            this.label1.Location = new System.Drawing.Point(15, 22);
+            this.label1.Name = "label1";
+            this.label1.Size = new System.Drawing.Size(35, 13);
+            this.label1.TabIndex = 8;
+            this.label1.Text = "Name";
+            // 
+            // GroupPropertiesCtrl
+            // 
+            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+            this.Controls.Add(this.groupBox1);
+            this.Name = "GroupPropertiesCtrl";
+            this.Size = new System.Drawing.Size(400, 187);
+            this.groupBox1.ResumeLayout(false);
+            this.groupBox1.PerformLayout();
+            this.ResumeLayout(false);
+
+        }
+
+        #endregion
+
+        private System.Windows.Forms.GroupBox groupBox1;
+        private System.Windows.Forms.CheckBox chkSelectable;
+        private System.Windows.Forms.CheckBox chkExpanded;
+        private System.Windows.Forms.CheckBox chkLegendVisible;
+        private System.Windows.Forms.CheckBox chkVisible;
+        private System.Windows.Forms.TextBox txtLegendLabel;
+        private System.Windows.Forms.TextBox txtName;
+        private System.Windows.Forms.Label label2;
+        private System.Windows.Forms.Label label1;
+    }
+}

Added: sandbox/maestro-3.0/Maestro.Editors/MapDefinition/GroupPropertiesCtrl.cs
===================================================================
--- sandbox/maestro-3.0/Maestro.Editors/MapDefinition/GroupPropertiesCtrl.cs	                        (rev 0)
+++ sandbox/maestro-3.0/Maestro.Editors/MapDefinition/GroupPropertiesCtrl.cs	2010-07-07 13:10:28 UTC (rev 5002)
@@ -0,0 +1,46 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Drawing;
+using System.Data;
+using System.Text;
+using System.Windows.Forms;
+using OSGeo.MapGuide.ObjectModels.MapDefinition;
+
+namespace Maestro.Editors.MapDefinition
+{
+    public partial class GroupPropertiesCtrl : UserControl
+    {
+        private GroupPropertiesCtrl()
+        {
+            InitializeComponent();
+        }
+
+        public event EventHandler GroupChanged;
+
+        public GroupPropertiesCtrl(MapLayerGroupType group)
+            : this()
+        {
+            group.PropertyChanged += new PropertyChangedEventHandler(OnGroupChanged);
+
+            txtName.DataBindings.Add("Text", group, "Name");
+            txtLegendLabel.DataBindings.Add("Text", group, "LegendLabel");
+
+            chkExpanded.DataBindings.Add("Checked", group, "ExpandInLegend");
+            chkLegendVisible.DataBindings.Add("Checked", group, "ShowInLegend");
+            chkVisible.DataBindings.Add("Checked", group, "Visible");
+        }
+
+        void OnGroupChanged(object sender, PropertyChangedEventArgs e)
+        {
+            var handler = this.GroupChanged;
+            if (handler != null)
+                handler(this, EventArgs.Empty);
+        }
+
+        void ForceUpdate(object sender, EventArgs e)
+        {
+            ((Control)sender).DataBindings[0].WriteValue();
+        }
+    }
+}

Added: sandbox/maestro-3.0/Maestro.Editors/MapDefinition/GroupPropertiesCtrl.resx
===================================================================
--- sandbox/maestro-3.0/Maestro.Editors/MapDefinition/GroupPropertiesCtrl.resx	                        (rev 0)
+++ sandbox/maestro-3.0/Maestro.Editors/MapDefinition/GroupPropertiesCtrl.resx	2010-07-07 13:10:28 UTC (rev 5002)
@@ -0,0 +1,120 @@
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+</root>
\ No newline at end of file

Added: sandbox/maestro-3.0/Maestro.Editors/MapDefinition/LayerPropertiesCtrl.Designer.cs
===================================================================
--- sandbox/maestro-3.0/Maestro.Editors/MapDefinition/LayerPropertiesCtrl.Designer.cs	                        (rev 0)
+++ sandbox/maestro-3.0/Maestro.Editors/MapDefinition/LayerPropertiesCtrl.Designer.cs	2010-07-07 13:10:28 UTC (rev 5002)
@@ -0,0 +1,168 @@
+namespace Maestro.Editors.MapDefinition
+{
+    partial class LayerPropertiesCtrl
+    {
+        /// <summary> 
+        /// Required designer variable.
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;
+
+        /// <summary> 
+        /// Clean up any resources being used.
+        /// </summary>
+        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }
+
+        #region Component Designer generated code
+
+        /// <summary> 
+        /// Required method for Designer support - do not modify 
+        /// the contents of this method with the code editor.
+        /// </summary>
+        private void InitializeComponent()
+        {
+            this.groupBox1 = new System.Windows.Forms.GroupBox();
+            this.chkSelectable = new System.Windows.Forms.CheckBox();
+            this.chkExpanded = new System.Windows.Forms.CheckBox();
+            this.chkLegendVisible = new System.Windows.Forms.CheckBox();
+            this.chkVisible = new System.Windows.Forms.CheckBox();
+            this.txtLegendLabel = new System.Windows.Forms.TextBox();
+            this.txtName = new System.Windows.Forms.TextBox();
+            this.label2 = new System.Windows.Forms.Label();
+            this.label1 = new System.Windows.Forms.Label();
+            this.groupBox1.SuspendLayout();
+            this.SuspendLayout();
+            // 
+            // groupBox1
+            // 
+            this.groupBox1.Controls.Add(this.chkSelectable);
+            this.groupBox1.Controls.Add(this.chkExpanded);
+            this.groupBox1.Controls.Add(this.chkLegendVisible);
+            this.groupBox1.Controls.Add(this.chkVisible);
+            this.groupBox1.Controls.Add(this.txtLegendLabel);
+            this.groupBox1.Controls.Add(this.txtName);
+            this.groupBox1.Controls.Add(this.label2);
+            this.groupBox1.Controls.Add(this.label1);
+            this.groupBox1.Dock = System.Windows.Forms.DockStyle.Fill;
+            this.groupBox1.Location = new System.Drawing.Point(0, 0);
+            this.groupBox1.Name = "groupBox1";
+            this.groupBox1.Size = new System.Drawing.Size(417, 188);
+            this.groupBox1.TabIndex = 0;
+            this.groupBox1.TabStop = false;
+            this.groupBox1.Text = "Layer Properties";
+            // 
+            // chkSelectable
+            // 
+            this.chkSelectable.AutoSize = true;
+            this.chkSelectable.Location = new System.Drawing.Point(21, 106);
+            this.chkSelectable.Name = "chkSelectable";
+            this.chkSelectable.Size = new System.Drawing.Size(240, 17);
+            this.chkSelectable.TabIndex = 7;
+            this.chkSelectable.Text = "Features on the layer are selectable (if visible)";
+            this.chkSelectable.UseVisualStyleBackColor = true;
+            this.chkSelectable.CheckedChanged += new System.EventHandler(this.ForceUpdate);
+            // 
+            // chkExpanded
+            // 
+            this.chkExpanded.AutoSize = true;
+            this.chkExpanded.Location = new System.Drawing.Point(21, 153);
+            this.chkExpanded.Name = "chkExpanded";
+            this.chkExpanded.Size = new System.Drawing.Size(228, 17);
+            this.chkExpanded.TabIndex = 6;
+            this.chkExpanded.Text = "Layer is expanded in the legend (if themed)";
+            this.chkExpanded.UseVisualStyleBackColor = true;
+            this.chkExpanded.CheckedChanged += new System.EventHandler(this.ForceUpdate);
+            // 
+            // chkLegendVisible
+            // 
+            this.chkLegendVisible.AutoSize = true;
+            this.chkLegendVisible.Location = new System.Drawing.Point(21, 129);
+            this.chkLegendVisible.Name = "chkLegendVisible";
+            this.chkLegendVisible.Size = new System.Drawing.Size(183, 17);
+            this.chkLegendVisible.TabIndex = 5;
+            this.chkLegendVisible.Text = "Layer is shown in the map legend";
+            this.chkLegendVisible.UseVisualStyleBackColor = true;
+            this.chkLegendVisible.CheckedChanged += new System.EventHandler(this.ForceUpdate);
+            // 
+            // chkVisible
+            // 
+            this.chkVisible.AutoSize = true;
+            this.chkVisible.Location = new System.Drawing.Point(21, 83);
+            this.chkVisible.Name = "chkVisible";
+            this.chkVisible.Size = new System.Drawing.Size(141, 17);
+            this.chkVisible.TabIndex = 4;
+            this.chkVisible.Text = "Layer is visible at startup";
+            this.chkVisible.UseVisualStyleBackColor = true;
+            this.chkVisible.CheckedChanged += new System.EventHandler(this.ForceUpdate);
+            // 
+            // txtLegendLabel
+            // 
+            this.txtLegendLabel.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
+                        | System.Windows.Forms.AnchorStyles.Right)));
+            this.txtLegendLabel.Location = new System.Drawing.Point(110, 48);
+            this.txtLegendLabel.Name = "txtLegendLabel";
+            this.txtLegendLabel.Size = new System.Drawing.Size(285, 20);
+            this.txtLegendLabel.TabIndex = 3;
+            this.txtLegendLabel.TextChanged += new System.EventHandler(this.ForceUpdate);
+            // 
+            // txtName
+            // 
+            this.txtName.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
+                        | System.Windows.Forms.AnchorStyles.Right)));
+            this.txtName.Location = new System.Drawing.Point(110, 22);
+            this.txtName.Name = "txtName";
+            this.txtName.Size = new System.Drawing.Size(285, 20);
+            this.txtName.TabIndex = 2;
+            this.txtName.TextChanged += new System.EventHandler(this.ForceUpdate);
+            // 
+            // label2
+            // 
+            this.label2.AutoSize = true;
+            this.label2.Location = new System.Drawing.Point(18, 51);
+            this.label2.Name = "label2";
+            this.label2.Size = new System.Drawing.Size(72, 13);
+            this.label2.TabIndex = 1;
+            this.label2.Text = "Legend Label";
+            // 
+            // label1
+            // 
+            this.label1.AutoSize = true;
+            this.label1.Location = new System.Drawing.Point(18, 25);
+            this.label1.Name = "label1";
+            this.label1.Size = new System.Drawing.Size(35, 13);
+            this.label1.TabIndex = 0;
+            this.label1.Text = "Name";
+            // 
+            // LayerPropertiesCtrl
+            // 
+            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+            this.Controls.Add(this.groupBox1);
+            this.Name = "LayerPropertiesCtrl";
+            this.Size = new System.Drawing.Size(417, 188);
+            this.groupBox1.ResumeLayout(false);
+            this.groupBox1.PerformLayout();
+            this.ResumeLayout(false);
+
+        }
+
+        #endregion
+
+        private System.Windows.Forms.GroupBox groupBox1;
+        private System.Windows.Forms.CheckBox chkExpanded;
+        private System.Windows.Forms.CheckBox chkLegendVisible;
+        private System.Windows.Forms.CheckBox chkVisible;
+        private System.Windows.Forms.TextBox txtLegendLabel;
+        private System.Windows.Forms.TextBox txtName;
+        private System.Windows.Forms.Label label2;
+        private System.Windows.Forms.Label label1;
+        private System.Windows.Forms.CheckBox chkSelectable;
+    }
+}

Added: sandbox/maestro-3.0/Maestro.Editors/MapDefinition/LayerPropertiesCtrl.cs
===================================================================
--- sandbox/maestro-3.0/Maestro.Editors/MapDefinition/LayerPropertiesCtrl.cs	                        (rev 0)
+++ sandbox/maestro-3.0/Maestro.Editors/MapDefinition/LayerPropertiesCtrl.cs	2010-07-07 13:10:28 UTC (rev 5002)
@@ -0,0 +1,45 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Drawing;
+using System.Data;
+using System.Text;
+using System.Windows.Forms;
+using OSGeo.MapGuide.ObjectModels.MapDefinition;
+
+namespace Maestro.Editors.MapDefinition
+{
+    public partial class LayerPropertiesCtrl : UserControl
+    {
+        private LayerPropertiesCtrl()
+        {
+            InitializeComponent();
+        }
+
+        public event EventHandler LayerChanged;
+
+        public LayerPropertiesCtrl(MapLayerType layer) : this()
+        {
+            layer.PropertyChanged += new PropertyChangedEventHandler(OnLayerChanged); 
+            txtName.DataBindings.Add("Text", layer, "Name");
+            txtLegendLabel.DataBindings.Add("Text", layer, "LegendLabel");
+
+            chkExpanded.DataBindings.Add("Checked", layer, "ExpandInLegend");
+            chkLegendVisible.DataBindings.Add("Checked", layer, "ShowInLegend");
+            chkVisible.DataBindings.Add("Checked", layer, "Visible");
+            chkSelectable.DataBindings.Add("Checked", layer, "Selectable");
+        }
+
+        void OnLayerChanged(object sender, PropertyChangedEventArgs e)
+        {
+            var handler = this.LayerChanged;
+            if (handler != null)
+                handler(this, EventArgs.Empty);
+        }
+
+        void ForceUpdate(object sender, EventArgs e)
+        {
+            ((Control)sender).DataBindings[0].WriteValue();
+        }
+    }
+}

Added: sandbox/maestro-3.0/Maestro.Editors/MapDefinition/LayerPropertiesCtrl.resx
===================================================================
--- sandbox/maestro-3.0/Maestro.Editors/MapDefinition/LayerPropertiesCtrl.resx	                        (rev 0)
+++ sandbox/maestro-3.0/Maestro.Editors/MapDefinition/LayerPropertiesCtrl.resx	2010-07-07 13:10:28 UTC (rev 5002)
@@ -0,0 +1,120 @@
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+</root>
\ No newline at end of file

Modified: sandbox/maestro-3.0/Maestro.Editors/MapDefinition/MapLayersSectionCtrl.Designer.cs
===================================================================
--- sandbox/maestro-3.0/Maestro.Editors/MapDefinition/MapLayersSectionCtrl.Designer.cs	2010-07-07 09:30:03 UTC (rev 5001)
+++ sandbox/maestro-3.0/Maestro.Editors/MapDefinition/MapLayersSectionCtrl.Designer.cs	2010-07-07 13:10:28 UTC (rev 5002)
@@ -28,23 +28,47 @@
         /// </summary>
         private void InitializeComponent()
         {
+            System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MapLayersSectionCtrl));
             this.tabControl1 = new System.Windows.Forms.TabControl();
             this.TAB_GROUP = new System.Windows.Forms.TabPage();
+            this.trvLayersGroup = new Aga.Controls.Tree.TreeViewAdv();
+            this.NODE_GROUP_ICON = new Aga.Controls.Tree.NodeControls.NodeIcon();
+            this.NODE_GROUP_TEXT = new Aga.Controls.Tree.NodeControls.NodeTextBox();
             this.toolStrip1 = new System.Windows.Forms.ToolStrip();
+            this.toolStripButton1 = new System.Windows.Forms.ToolStripButton();
+            this.toolStripButton2 = new System.Windows.Forms.ToolStripButton();
+            this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator();
+            this.toolStripButton3 = new System.Windows.Forms.ToolStripButton();
+            this.toolStripButton4 = new System.Windows.Forms.ToolStripButton();
+            this.toolStripSeparator2 = new System.Windows.Forms.ToolStripSeparator();
+            this.toolStripButton5 = new System.Windows.Forms.ToolStripButton();
+            this.toolStripButton6 = new System.Windows.Forms.ToolStripButton();
+            this.toolStripSeparator3 = new System.Windows.Forms.ToolStripSeparator();
+            this.toolStripButton7 = new System.Windows.Forms.ToolStripButton();
+            this.toolStripButton8 = new System.Windows.Forms.ToolStripButton();
+            this.toolStripSeparator4 = new System.Windows.Forms.ToolStripSeparator();
+            this.toolStripButton21 = new System.Windows.Forms.ToolStripButton();
             this.TAB_DRAWING_ORDER = new System.Windows.Forms.TabPage();
-            this.TAB_BASE_LAYERS = new System.Windows.Forms.TabPage();
-            this.trvLayersGroup = new Aga.Controls.Tree.TreeViewAdv();
+            this.trvLayerDrawingOrder = new Aga.Controls.Tree.TreeViewAdv();
+            this.NODE_DRAW_ICON = new Aga.Controls.Tree.NodeControls.NodeIcon();
+            this.NODE_DRAW_TEXT = new Aga.Controls.Tree.NodeControls.NodeTextBox();
             this.toolStrip2 = new System.Windows.Forms.ToolStrip();
-            this.trvLayerDrawingOrder = new Aga.Controls.Tree.TreeViewAdv();
-            this.toolStrip3 = new System.Windows.Forms.ToolStrip();
-            this.trvBaseLayers = new Aga.Controls.Tree.TreeViewAdv();
+            this.toolStripButton9 = new System.Windows.Forms.ToolStripButton();
+            this.toolStripButton10 = new System.Windows.Forms.ToolStripButton();
+            this.toolStripSeparator5 = new System.Windows.Forms.ToolStripSeparator();
+            this.toolStripButton11 = new System.Windows.Forms.ToolStripButton();
+            this.toolStripButton12 = new System.Windows.Forms.ToolStripButton();
+            this.toolStripSeparator6 = new System.Windows.Forms.ToolStripSeparator();
+            this.toolStripButton13 = new System.Windows.Forms.ToolStripButton();
+            this.toolStripButton14 = new System.Windows.Forms.ToolStripButton();
             this.splitter1 = new System.Windows.Forms.Splitter();
             this.propertiesPanel = new System.Windows.Forms.Panel();
             this.contentPanel.SuspendLayout();
             this.tabControl1.SuspendLayout();
             this.TAB_GROUP.SuspendLayout();
+            this.toolStrip1.SuspendLayout();
             this.TAB_DRAWING_ORDER.SuspendLayout();
-            this.TAB_BASE_LAYERS.SuspendLayout();
+            this.toolStrip2.SuspendLayout();
             this.SuspendLayout();
             // 
             // contentPanel
@@ -58,7 +82,6 @@
             // 
             this.tabControl1.Controls.Add(this.TAB_GROUP);
             this.tabControl1.Controls.Add(this.TAB_DRAWING_ORDER);
-            this.tabControl1.Controls.Add(this.TAB_BASE_LAYERS);
             this.tabControl1.Dock = System.Windows.Forms.DockStyle.Left;
             this.tabControl1.Location = new System.Drawing.Point(0, 0);
             this.tabControl1.Name = "tabControl1";
@@ -73,19 +96,168 @@
             this.TAB_GROUP.Location = new System.Drawing.Point(4, 22);
             this.TAB_GROUP.Name = "TAB_GROUP";
             this.TAB_GROUP.Padding = new System.Windows.Forms.Padding(3);
-            this.TAB_GROUP.Size = new System.Drawing.Size(324, 257);
+            this.TAB_GROUP.Size = new System.Drawing.Size(318, 266);
             this.TAB_GROUP.TabIndex = 0;
             this.TAB_GROUP.Text = "Layers by Group";
             this.TAB_GROUP.UseVisualStyleBackColor = true;
             // 
+            // trvLayersGroup
+            // 
+            this.trvLayersGroup.BackColor = System.Drawing.SystemColors.Window;
+            this.trvLayersGroup.BorderStyle = System.Windows.Forms.BorderStyle.None;
+            this.trvLayersGroup.DefaultToolTipProvider = null;
+            this.trvLayersGroup.Dock = System.Windows.Forms.DockStyle.Fill;
+            this.trvLayersGroup.DragDropMarkColor = System.Drawing.Color.Black;
+            this.trvLayersGroup.LineColor = System.Drawing.SystemColors.ControlDark;
+            this.trvLayersGroup.Location = new System.Drawing.Point(3, 28);
+            this.trvLayersGroup.Model = null;
+            this.trvLayersGroup.Name = "trvLayersGroup";
+            this.trvLayersGroup.NodeControls.Add(this.NODE_GROUP_ICON);
+            this.trvLayersGroup.NodeControls.Add(this.NODE_GROUP_TEXT);
+            this.trvLayersGroup.SelectedNode = null;
+            this.trvLayersGroup.Size = new System.Drawing.Size(312, 235);
+            this.trvLayersGroup.TabIndex = 1;
+            this.trvLayersGroup.Text = "treeViewAdv1";
+            this.trvLayersGroup.MouseDoubleClick += new System.Windows.Forms.MouseEventHandler(this.trvLayersGroup_MouseDoubleClick);
+            this.trvLayersGroup.MouseClick += new System.Windows.Forms.MouseEventHandler(this.trvLayersGroup_MouseClick);
+            // 
+            // NODE_GROUP_ICON
+            // 
+            this.NODE_GROUP_ICON.DataPropertyName = "Icon";
+            this.NODE_GROUP_ICON.LeftMargin = 1;
+            this.NODE_GROUP_ICON.ParentColumn = null;
+            this.NODE_GROUP_ICON.ScaleMode = Aga.Controls.Tree.ImageScaleMode.Clip;
+            // 
+            // NODE_GROUP_TEXT
+            // 
+            this.NODE_GROUP_TEXT.DataPropertyName = "Text";
+            this.NODE_GROUP_TEXT.IncrementalSearchEnabled = true;
+            this.NODE_GROUP_TEXT.LeftMargin = 3;
+            this.NODE_GROUP_TEXT.ParentColumn = null;
+            // 
             // toolStrip1
             // 
+            this.toolStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
+            this.toolStripButton1,
+            this.toolStripButton2,
+            this.toolStripSeparator1,
+            this.toolStripButton3,
+            this.toolStripButton4,
+            this.toolStripSeparator2,
+            this.toolStripButton5,
+            this.toolStripButton6,
+            this.toolStripSeparator3,
+            this.toolStripButton7,
+            this.toolStripButton8,
+            this.toolStripSeparator4,
+            this.toolStripButton21});
             this.toolStrip1.Location = new System.Drawing.Point(3, 3);
             this.toolStrip1.Name = "toolStrip1";
-            this.toolStrip1.Size = new System.Drawing.Size(318, 25);
+            this.toolStrip1.Size = new System.Drawing.Size(312, 25);
             this.toolStrip1.TabIndex = 0;
             this.toolStrip1.Text = "toolStrip1";
             // 
+            // toolStripButton1
+            // 
+            this.toolStripButton1.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
+            this.toolStripButton1.Image = global::Maestro.Editors.Properties.Resources.folder__plus;
+            this.toolStripButton1.ImageTransparentColor = System.Drawing.Color.Magenta;
+            this.toolStripButton1.Name = "toolStripButton1";
+            this.toolStripButton1.Size = new System.Drawing.Size(23, 22);
+            this.toolStripButton1.Text = "toolStripButton1";
+            // 
+            // toolStripButton2
+            // 
+            this.toolStripButton2.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
+            this.toolStripButton2.Image = global::Maestro.Editors.Properties.Resources.folder__minus;
+            this.toolStripButton2.ImageTransparentColor = System.Drawing.Color.Magenta;
+            this.toolStripButton2.Name = "toolStripButton2";
+            this.toolStripButton2.Size = new System.Drawing.Size(23, 22);
+            this.toolStripButton2.Text = "toolStripButton2";
+            // 
+            // toolStripSeparator1
+            // 
+            this.toolStripSeparator1.Name = "toolStripSeparator1";
+            this.toolStripSeparator1.Size = new System.Drawing.Size(6, 25);
+            // 
+            // toolStripButton3
+            // 
+            this.toolStripButton3.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
+            this.toolStripButton3.Image = global::Maestro.Editors.Properties.Resources.layer__plus;
+            this.toolStripButton3.ImageTransparentColor = System.Drawing.Color.Magenta;
+            this.toolStripButton3.Name = "toolStripButton3";
+            this.toolStripButton3.Size = new System.Drawing.Size(23, 22);
+            this.toolStripButton3.Text = "toolStripButton3";
+            // 
+            // toolStripButton4
+            // 
+            this.toolStripButton4.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
+            this.toolStripButton4.Image = global::Maestro.Editors.Properties.Resources.layer__minus;
+            this.toolStripButton4.ImageTransparentColor = System.Drawing.Color.Magenta;
+            this.toolStripButton4.Name = "toolStripButton4";
+            this.toolStripButton4.Size = new System.Drawing.Size(23, 22);
+            this.toolStripButton4.Text = "toolStripButton4";
+            // 
+            // toolStripSeparator2
+            // 
+            this.toolStripSeparator2.Name = "toolStripSeparator2";
+            this.toolStripSeparator2.Size = new System.Drawing.Size(6, 25);
+            // 
+            // toolStripButton5
+            // 
+            this.toolStripButton5.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
+            this.toolStripButton5.Image = global::Maestro.Editors.Properties.Resources.arrow_090;
+            this.toolStripButton5.ImageTransparentColor = System.Drawing.Color.Magenta;
+            this.toolStripButton5.Name = "toolStripButton5";
+            this.toolStripButton5.Size = new System.Drawing.Size(23, 22);
+            this.toolStripButton5.Text = "toolStripButton5";
+            // 
+            // toolStripButton6
+            // 
+            this.toolStripButton6.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
+            this.toolStripButton6.Image = global::Maestro.Editors.Properties.Resources.arrow_270;
+            this.toolStripButton6.ImageTransparentColor = System.Drawing.Color.Magenta;
+            this.toolStripButton6.Name = "toolStripButton6";
+            this.toolStripButton6.Size = new System.Drawing.Size(23, 22);
+            this.toolStripButton6.Text = "toolStripButton6";
+            // 
+            // toolStripSeparator3
+            // 
+            this.toolStripSeparator3.Name = "toolStripSeparator3";
+            this.toolStripSeparator3.Size = new System.Drawing.Size(6, 25);
+            // 
+            // toolStripButton7
+            // 
+            this.toolStripButton7.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
+            this.toolStripButton7.Image = global::Maestro.Editors.Properties.Resources.layers_stack_arrange;
+            this.toolStripButton7.ImageTransparentColor = System.Drawing.Color.Magenta;
+            this.toolStripButton7.Name = "toolStripButton7";
+            this.toolStripButton7.Size = new System.Drawing.Size(23, 22);
+            this.toolStripButton7.Text = "toolStripButton7";
+            // 
+            // toolStripButton8
+            // 
+            this.toolStripButton8.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
+            this.toolStripButton8.Image = global::Maestro.Editors.Properties.Resources.layers_stack_arrange_back;
+            this.toolStripButton8.ImageTransparentColor = System.Drawing.Color.Magenta;
+            this.toolStripButton8.Name = "toolStripButton8";
+            this.toolStripButton8.Size = new System.Drawing.Size(23, 22);
+            this.toolStripButton8.Text = "toolStripButton8";
+            // 
+            // toolStripSeparator4
+            // 
+            this.toolStripSeparator4.Name = "toolStripSeparator4";
+            this.toolStripSeparator4.Size = new System.Drawing.Size(6, 25);
+            // 
+            // toolStripButton21
+            // 
+            this.toolStripButton21.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
+            this.toolStripButton21.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButton21.Image")));
+            this.toolStripButton21.ImageTransparentColor = System.Drawing.Color.Magenta;
+            this.toolStripButton21.Name = "toolStripButton21";
+            this.toolStripButton21.Size = new System.Drawing.Size(23, 22);
+            this.toolStripButton21.Text = "toolStripButton21";
+            // 
             // TAB_DRAWING_ORDER
             // 
             this.TAB_DRAWING_ORDER.Controls.Add(this.trvLayerDrawingOrder);
@@ -93,46 +265,11 @@
             this.TAB_DRAWING_ORDER.Location = new System.Drawing.Point(4, 22);
             this.TAB_DRAWING_ORDER.Name = "TAB_DRAWING_ORDER";
             this.TAB_DRAWING_ORDER.Padding = new System.Windows.Forms.Padding(3);
-            this.TAB_DRAWING_ORDER.Size = new System.Drawing.Size(324, 257);
+            this.TAB_DRAWING_ORDER.Size = new System.Drawing.Size(318, 266);
             this.TAB_DRAWING_ORDER.TabIndex = 1;
             this.TAB_DRAWING_ORDER.Text = "Layers by Drawing Order";
             this.TAB_DRAWING_ORDER.UseVisualStyleBackColor = true;
             // 
-            // TAB_BASE_LAYERS
-            // 
-            this.TAB_BASE_LAYERS.Controls.Add(this.trvBaseLayers);
-            this.TAB_BASE_LAYERS.Controls.Add(this.toolStrip3);
-            this.TAB_BASE_LAYERS.Location = new System.Drawing.Point(4, 22);
-            this.TAB_BASE_LAYERS.Name = "TAB_BASE_LAYERS";
-            this.TAB_BASE_LAYERS.Size = new System.Drawing.Size(318, 266);
-            this.TAB_BASE_LAYERS.TabIndex = 2;
-            this.TAB_BASE_LAYERS.Text = "Base Layer Groups";
-            this.TAB_BASE_LAYERS.UseVisualStyleBackColor = true;
-            // 
-            // trvLayersGroup
-            // 
-            this.trvLayersGroup.BackColor = System.Drawing.SystemColors.Window;
-            this.trvLayersGroup.BorderStyle = System.Windows.Forms.BorderStyle.None;
-            this.trvLayersGroup.DefaultToolTipProvider = null;
-            this.trvLayersGroup.Dock = System.Windows.Forms.DockStyle.Fill;
-            this.trvLayersGroup.DragDropMarkColor = System.Drawing.Color.Black;
-            this.trvLayersGroup.LineColor = System.Drawing.SystemColors.ControlDark;
-            this.trvLayersGroup.Location = new System.Drawing.Point(3, 28);
-            this.trvLayersGroup.Model = null;
-            this.trvLayersGroup.Name = "trvLayersGroup";
-            this.trvLayersGroup.SelectedNode = null;
-            this.trvLayersGroup.Size = new System.Drawing.Size(318, 226);
-            this.trvLayersGroup.TabIndex = 1;
-            this.trvLayersGroup.Text = "treeViewAdv1";
-            // 
-            // toolStrip2
-            // 
-            this.toolStrip2.Location = new System.Drawing.Point(3, 3);
-            this.toolStrip2.Name = "toolStrip2";
-            this.toolStrip2.Size = new System.Drawing.Size(318, 25);
-            this.toolStrip2.TabIndex = 0;
-            this.toolStrip2.Text = "toolStrip2";
-            // 
             // trvLayerDrawingOrder
             // 
             this.trvLayerDrawingOrder.BackColor = System.Drawing.SystemColors.Window;
@@ -144,35 +281,110 @@
             this.trvLayerDrawingOrder.Location = new System.Drawing.Point(3, 28);
             this.trvLayerDrawingOrder.Model = null;
             this.trvLayerDrawingOrder.Name = "trvLayerDrawingOrder";
+            this.trvLayerDrawingOrder.NodeControls.Add(this.NODE_DRAW_ICON);
+            this.trvLayerDrawingOrder.NodeControls.Add(this.NODE_DRAW_TEXT);
             this.trvLayerDrawingOrder.SelectedNode = null;
-            this.trvLayerDrawingOrder.Size = new System.Drawing.Size(318, 226);
+            this.trvLayerDrawingOrder.Size = new System.Drawing.Size(312, 235);
             this.trvLayerDrawingOrder.TabIndex = 1;
             this.trvLayerDrawingOrder.Text = "treeViewAdv1";
+            this.trvLayerDrawingOrder.MouseDoubleClick += new System.Windows.Forms.MouseEventHandler(this.trvLayerDrawingOrder_MouseDoubleClick);
+            this.trvLayerDrawingOrder.MouseClick += new System.Windows.Forms.MouseEventHandler(this.trvLayerDrawingOrder_MouseClick);
             // 
-            // toolStrip3
+            // NODE_DRAW_ICON
             // 
-            this.toolStrip3.Location = new System.Drawing.Point(0, 0);
-            this.toolStrip3.Name = "toolStrip3";
-            this.toolStrip3.Size = new System.Drawing.Size(318, 25);
-            this.toolStrip3.TabIndex = 0;
-            this.toolStrip3.Text = "toolStrip3";
+            this.NODE_DRAW_ICON.DataPropertyName = "Icon";
+            this.NODE_DRAW_ICON.LeftMargin = 1;
+            this.NODE_DRAW_ICON.ParentColumn = null;
+            this.NODE_DRAW_ICON.ScaleMode = Aga.Controls.Tree.ImageScaleMode.Clip;
             // 
-            // trvBaseLayers
+            // NODE_DRAW_TEXT
             // 
-            this.trvBaseLayers.BackColor = System.Drawing.SystemColors.Window;
-            this.trvBaseLayers.BorderStyle = System.Windows.Forms.BorderStyle.None;
-            this.trvBaseLayers.DefaultToolTipProvider = null;
-            this.trvBaseLayers.Dock = System.Windows.Forms.DockStyle.Fill;
-            this.trvBaseLayers.DragDropMarkColor = System.Drawing.Color.Black;
-            this.trvBaseLayers.LineColor = System.Drawing.SystemColors.ControlDark;
-            this.trvBaseLayers.Location = new System.Drawing.Point(0, 25);
-            this.trvBaseLayers.Model = null;
-            this.trvBaseLayers.Name = "trvBaseLayers";
-            this.trvBaseLayers.SelectedNode = null;
-            this.trvBaseLayers.Size = new System.Drawing.Size(318, 241);
-            this.trvBaseLayers.TabIndex = 1;
-            this.trvBaseLayers.Text = "treeViewAdv1";
+            this.NODE_DRAW_TEXT.DataPropertyName = "Text";
+            this.NODE_DRAW_TEXT.IncrementalSearchEnabled = true;
+            this.NODE_DRAW_TEXT.LeftMargin = 3;
+            this.NODE_DRAW_TEXT.ParentColumn = null;
             // 
+            // toolStrip2
+            // 
+            this.toolStrip2.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
+            this.toolStripButton9,
+            this.toolStripButton10,
+            this.toolStripSeparator5,
+            this.toolStripButton11,
+            this.toolStripButton12,
+            this.toolStripSeparator6,
+            this.toolStripButton13,
+            this.toolStripButton14});
+            this.toolStrip2.Location = new System.Drawing.Point(3, 3);
+            this.toolStrip2.Name = "toolStrip2";
+            this.toolStrip2.Size = new System.Drawing.Size(312, 25);
+            this.toolStrip2.TabIndex = 0;
+            this.toolStrip2.Text = "toolStrip2";
+            // 
+            // toolStripButton9
+            // 
+            this.toolStripButton9.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
+            this.toolStripButton9.Image = global::Maestro.Editors.Properties.Resources.layer__plus;
+            this.toolStripButton9.ImageTransparentColor = System.Drawing.Color.Magenta;
+            this.toolStripButton9.Name = "toolStripButton9";
+            this.toolStripButton9.Size = new System.Drawing.Size(23, 22);
+            this.toolStripButton9.Text = "toolStripButton3";
+            // 
+            // toolStripButton10
+            // 
+            this.toolStripButton10.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
+            this.toolStripButton10.Image = global::Maestro.Editors.Properties.Resources.layer__minus;
+            this.toolStripButton10.ImageTransparentColor = System.Drawing.Color.Magenta;
+            this.toolStripButton10.Name = "toolStripButton10";
+            this.toolStripButton10.Size = new System.Drawing.Size(23, 22);
+            this.toolStripButton10.Text = "toolStripButton4";
+            // 
+            // toolStripSeparator5
+            // 
+            this.toolStripSeparator5.Name = "toolStripSeparator5";
+            this.toolStripSeparator5.Size = new System.Drawing.Size(6, 25);
+            // 
+            // toolStripButton11
+            // 
+            this.toolStripButton11.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
+            this.toolStripButton11.Image = global::Maestro.Editors.Properties.Resources.arrow_090;
+            this.toolStripButton11.ImageTransparentColor = System.Drawing.Color.Magenta;
+            this.toolStripButton11.Name = "toolStripButton11";
+            this.toolStripButton11.Size = new System.Drawing.Size(23, 22);
+            this.toolStripButton11.Text = "toolStripButton5";
+            // 
+            // toolStripButton12
+            // 
+            this.toolStripButton12.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
+            this.toolStripButton12.Image = global::Maestro.Editors.Properties.Resources.arrow_270;
+            this.toolStripButton12.ImageTransparentColor = System.Drawing.Color.Magenta;
+            this.toolStripButton12.Name = "toolStripButton12";
+            this.toolStripButton12.Size = new System.Drawing.Size(23, 22);
+            this.toolStripButton12.Text = "toolStripButton6";
+            // 
+            // toolStripSeparator6
+            // 
+            this.toolStripSeparator6.Name = "toolStripSeparator6";
+            this.toolStripSeparator6.Size = new System.Drawing.Size(6, 25);
+            // 
+            // toolStripButton13
+            // 
+            this.toolStripButton13.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
+            this.toolStripButton13.Image = global::Maestro.Editors.Properties.Resources.layers_stack_arrange;
+            this.toolStripButton13.ImageTransparentColor = System.Drawing.Color.Magenta;
+            this.toolStripButton13.Name = "toolStripButton13";
+            this.toolStripButton13.Size = new System.Drawing.Size(23, 22);
+            this.toolStripButton13.Text = "toolStripButton7";
+            // 
+            // toolStripButton14
+            // 
+            this.toolStripButton14.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
+            this.toolStripButton14.Image = global::Maestro.Editors.Properties.Resources.layers_stack_arrange_back;
+            this.toolStripButton14.ImageTransparentColor = System.Drawing.Color.Magenta;
+            this.toolStripButton14.Name = "toolStripButton14";
+            this.toolStripButton14.Size = new System.Drawing.Size(23, 22);
+            this.toolStripButton14.Text = "toolStripButton8";
+            // 
             // splitter1
             // 
             this.splitter1.Location = new System.Drawing.Point(326, 0);
@@ -200,10 +412,12 @@
             this.tabControl1.ResumeLayout(false);
             this.TAB_GROUP.ResumeLayout(false);
             this.TAB_GROUP.PerformLayout();
+            this.toolStrip1.ResumeLayout(false);
+            this.toolStrip1.PerformLayout();
             this.TAB_DRAWING_ORDER.ResumeLayout(false);
             this.TAB_DRAWING_ORDER.PerformLayout();
-            this.TAB_BASE_LAYERS.ResumeLayout(false);
-            this.TAB_BASE_LAYERS.PerformLayout();
+            this.toolStrip2.ResumeLayout(false);
+            this.toolStrip2.PerformLayout();
             this.ResumeLayout(false);
 
         }
@@ -213,14 +427,36 @@
         private System.Windows.Forms.TabControl tabControl1;
         private System.Windows.Forms.TabPage TAB_GROUP;
         private System.Windows.Forms.TabPage TAB_DRAWING_ORDER;
-        private System.Windows.Forms.TabPage TAB_BASE_LAYERS;
         private System.Windows.Forms.ToolStrip toolStrip1;
         private System.Windows.Forms.Panel propertiesPanel;
         private System.Windows.Forms.Splitter splitter1;
         private Aga.Controls.Tree.TreeViewAdv trvLayersGroup;
         private Aga.Controls.Tree.TreeViewAdv trvLayerDrawingOrder;
         private System.Windows.Forms.ToolStrip toolStrip2;
-        private Aga.Controls.Tree.TreeViewAdv trvBaseLayers;
-        private System.Windows.Forms.ToolStrip toolStrip3;
+        private System.Windows.Forms.ToolStripButton toolStripButton1;
+        private System.Windows.Forms.ToolStripButton toolStripButton2;
+        private System.Windows.Forms.ToolStripSeparator toolStripSeparator1;
+        private System.Windows.Forms.ToolStripButton toolStripButton3;
+        private System.Windows.Forms.ToolStripButton toolStripButton4;
+        private System.Windows.Forms.ToolStripSeparator toolStripSeparator2;
+        private System.Windows.Forms.ToolStripButton toolStripButton5;
+        private System.Windows.Forms.ToolStripButton toolStripButton6;
+        private System.Windows.Forms.ToolStripSeparator toolStripSeparator3;
+        private System.Windows.Forms.ToolStripButton toolStripButton7;
+        private System.Windows.Forms.ToolStripButton toolStripButton8;
+        private System.Windows.Forms.ToolStripSeparator toolStripSeparator4;
+        private System.Windows.Forms.ToolStripButton toolStripButton21;
+        private System.Windows.Forms.ToolStripButton toolStripButton9;
+        private System.Windows.Forms.ToolStripButton toolStripButton10;
+        private System.Windows.Forms.ToolStripSeparator toolStripSeparator5;
+        private System.Windows.Forms.ToolStripButton toolStripButton11;
+        private System.Windows.Forms.ToolStripButton toolStripButton12;
+        private System.Windows.Forms.ToolStripSeparator toolStripSeparator6;
+        private System.Windows.Forms.ToolStripButton toolStripButton13;
+        private System.Windows.Forms.ToolStripButton toolStripButton14;
+        private Aga.Controls.Tree.NodeControls.NodeIcon NODE_GROUP_ICON;
+        private Aga.Controls.Tree.NodeControls.NodeTextBox NODE_GROUP_TEXT;
+        private Aga.Controls.Tree.NodeControls.NodeIcon NODE_DRAW_ICON;
+        private Aga.Controls.Tree.NodeControls.NodeTextBox NODE_DRAW_TEXT;
     }
 }

Modified: sandbox/maestro-3.0/Maestro.Editors/MapDefinition/MapLayersSectionCtrl.cs
===================================================================
--- sandbox/maestro-3.0/Maestro.Editors/MapDefinition/MapLayersSectionCtrl.cs	2010-07-07 09:30:03 UTC (rev 5001)
+++ sandbox/maestro-3.0/Maestro.Editors/MapDefinition/MapLayersSectionCtrl.cs	2010-07-07 13:10:28 UTC (rev 5002)
@@ -25,12 +25,211 @@
 using System.Text;
 using System.Windows.Forms;
 using Maestro.Shared.UI;
+using Aga.Controls.Tree;
+using OSGeo.MapGuide.ObjectModels.MapDefinition;
 
 namespace Maestro.Editors.MapDefinition
 {
+    public delegate void OpenLayerEventHandler(object sender, string layerResourceId);
+
     [ToolboxItem(true)]
     internal partial class MapLayersSectionCtrl : CollapsiblePanel, IEditorBindable
     {
+        abstract class TreeItem<T>
+        {
+            public TreeItem(string text, Image icon, T item)
+            {
+                this.Text = text;
+                this.Icon = icon;
+                this.Tag = item;
+            }
+
+            public Image Icon { get; set; }
+
+            public string Text { get; set; }
+
+            public T Tag { get; set; }
+        }
+
+        class ScaleItem : TreeItem<IList<double>>
+        {
+            public ScaleItem(string name, IList<double> range)
+                : base(name, Properties.Resources.magnifier, range)
+            {
+            }
+        }
+
+        class LayerItem : TreeItem<MapLayerType>
+        {
+            public LayerItem(MapLayerType layer)
+                : base(layer.Name, Properties.Resources.layer, layer)
+            {
+            }
+        }
+
+        class GroupItem : TreeItem<MapLayerGroupType>
+        {
+            public GroupItem(MapLayerGroupType grp)
+                : base(grp.Name, Properties.Resources.folder_horizontal, grp)
+            {
+            }
+        }
+
+        class BaseLayerItem : TreeItem<BaseMapLayerType>
+        {
+            public BaseLayerItem(BaseMapLayerType layer)
+                : base(layer.Name, Properties.Resources.layer, layer)
+            {
+            }
+        }
+
+        class BaseLayerGroupItem : TreeItem<BaseMapLayerGroupCommonType>
+        {
+            public BaseLayerGroupItem(BaseMapLayerGroupCommonType group)
+                : base(group.Name, Properties.Resources.folder_horizontal, group)
+            {
+            }
+        }
+
+        abstract class TreeModelBase : ITreeModel
+        {
+            public abstract System.Collections.IEnumerable GetChildren(TreePath treePath);
+
+            public abstract bool IsLeaf(TreePath treePath);
+
+            public event EventHandler<TreeModelEventArgs> NodesChanged;
+
+            protected void OnNodesInserted(TreeModelEventArgs e)
+            {
+                var handler = this.NodesInserted;
+                if (handler != null)
+                    handler(this, e);
+            }
+
+            public event EventHandler<TreeModelEventArgs> NodesInserted;
+
+            protected void OnNodesRemoved(TreeModelEventArgs e)
+            {
+                var handler = this.NodesRemoved;
+                if (handler != null)
+                    handler(this, e);
+            }
+
+            public event EventHandler<TreeModelEventArgs> NodesRemoved;
+
+            protected void OnStructureChanged(TreePathEventArgs e)
+            {
+                var handler = this.StructureChanged;
+                if (handler != null)
+                    handler(this, e);
+            }
+
+            public event EventHandler<TreePathEventArgs> StructureChanged;
+        }
+
+        class DrawOrderLayerModel : TreeModelBase
+        {
+            private OSGeo.MapGuide.ObjectModels.MapDefinition.MapDefinition _map;
+
+            public DrawOrderLayerModel(OSGeo.MapGuide.ObjectModels.MapDefinition.MapDefinition map)
+            {
+                _map = map;
+            }
+
+            public override System.Collections.IEnumerable GetChildren(TreePath treePath)
+            {
+                if (treePath.IsEmpty())
+                {
+                    foreach (var layer in _map.MapLayer)
+                    {
+                        yield return new LayerItem(layer);
+                    }
+                }
+                else
+                {
+                    yield break;
+                }
+            }
+
+            public override bool IsLeaf(TreePath treePath)
+            {
+                return !treePath.IsEmpty();
+            }
+        }
+
+        class GroupedLayerModel : TreeModelBase
+        {
+            private OSGeo.MapGuide.ObjectModels.MapDefinition.MapDefinition _map;
+
+            private Dictionary<string, List<MapLayerType>> _layersByGroup;
+
+            public GroupedLayerModel(OSGeo.MapGuide.ObjectModels.MapDefinition.MapDefinition map)
+            {
+                _map = map;
+                _layersByGroup = new Dictionary<string, List<MapLayerType>>();
+                foreach (var layer in _map.MapLayer)
+                {
+                    if (!string.IsNullOrEmpty(layer.Group))
+                    {
+                        if (!_layersByGroup.ContainsKey(layer.Group))
+                            _layersByGroup[layer.Group] = new List<MapLayerType>();
+
+                        _layersByGroup[layer.Group].Add(layer);
+                    }
+                }
+            }
+
+            public override System.Collections.IEnumerable GetChildren(TreePath treePath)
+            {
+                if (treePath.IsEmpty())
+                {
+                    foreach (var group in _map.MapLayerGroup)
+                    {
+                        yield return new GroupItem(group);
+                    }
+                }
+                else 
+                {
+                    var gitem = treePath.LastNode as GroupItem;
+                    if (gitem != null)
+                    {
+                        var group = gitem.Tag;
+                        foreach (var g in _map.MapLayerGroup)
+                        {
+                            if (g.Group == group.Name)
+                                yield return new GroupItem(g);
+                        }
+
+                        if (_layersByGroup.ContainsKey(group.Name))
+                        {
+                            foreach (var layer in _layersByGroup[group.Name])
+                            {
+                                yield return new LayerItem(layer);
+                            }
+                        }
+                    }
+                    else
+                    {
+                        yield break;
+                    }
+                }
+            }
+
+            public override bool IsLeaf(TreePath treePath)
+            {
+                var layer = treePath.LastNode as LayerItem;
+                var group = treePath.LastNode as GroupItem;
+
+                if (layer != null)
+                    return true;
+                else if (group != null)
+                    return !_layersByGroup.ContainsKey(group.Tag.Name);
+
+                throw new ApplicationException();
+            }
+        }
+
+
         public MapLayersSectionCtrl()
         {
             InitializeComponent();
@@ -43,9 +242,92 @@
             service.RegisterCustomNotifier(this);
             _map = (OSGeo.MapGuide.ObjectModels.MapDefinition.MapDefinition)service.GetEditedResource();
 
-            
+            trvLayerDrawingOrder.Model = new DrawOrderLayerModel(_map);
+            trvLayersGroup.Model = new GroupedLayerModel(_map);
         }
 
         public event EventHandler ResourceChanged;
+
+        public event OpenLayerEventHandler RequestLayerOpen;
+
+        private void trvLayersGroup_MouseDoubleClick(object sender, MouseEventArgs e)
+        {
+            TreeNodeAdv node = trvLayersGroup.GetNodeAt(new Point(e.X, e.Y));
+            if (node != null)
+            {
+                var layer = node.Tag as LayerItem;
+                if (layer != null)
+                {
+                    var handler = this.RequestLayerOpen;
+                    if (handler != null)
+                        handler(this, layer.Tag.ResourceId);
+                }
+            }
+        }
+
+        private void trvLayerDrawingOrder_MouseDoubleClick(object sender, MouseEventArgs e)
+        {
+            TreeNodeAdv node = trvLayerDrawingOrder.GetNodeAt(new Point(e.X, e.Y));
+            if (node != null)
+            {
+                var layer = node.Tag as LayerItem;
+                if (layer != null)
+                {
+                    var handler = this.RequestLayerOpen;
+                    if (handler != null)
+                        handler(this, layer.Tag.ResourceId);
+                }
+            }
+        }
+
+        private void OnResourceChanged()
+        {
+            var handler = this.ResourceChanged;
+            if (handler != null)
+                handler(this, EventArgs.Empty);
+        }
+
+        private void trvLayersGroup_MouseClick(object sender, MouseEventArgs e)
+        {
+            TreeNodeAdv node = trvLayersGroup.GetNodeAt(new Point(e.X, e.Y));
+            if (node != null)
+            {
+                var layer = node.Tag as LayerItem;
+                var group = node.Tag as GroupItem;
+                if (layer != null)
+                {
+                    propertiesPanel.Controls.Clear();
+                    var item = new LayerPropertiesCtrl(layer.Tag);
+                    item.LayerChanged += (s, evt) => { OnResourceChanged(); };
+                    item.Dock = DockStyle.Fill;
+                    propertiesPanel.Controls.Add(item);
+                }
+                else if (group != null)
+                {
+                    propertiesPanel.Controls.Clear();
+                    var item = new GroupPropertiesCtrl(group.Tag);
+                    item.GroupChanged += (s, evt) => { OnResourceChanged(); };
+                    item.Dock = DockStyle.Fill;
+                    propertiesPanel.Controls.Add(item);
+                }
+            }
+        }
+
+        private void trvLayerDrawingOrder_MouseClick(object sender, MouseEventArgs e)
+        {
+            TreeNodeAdv node = trvLayerDrawingOrder.GetNodeAt(new Point(e.X, e.Y));
+            if (node != null)
+            {
+                var layer = node.Tag as LayerItem;
+                if (layer != null)
+                {
+                    propertiesPanel.Controls.Clear();
+                    var item = new LayerPropertiesCtrl(layer.Tag);
+                    item.LayerChanged += (s, evt) => { OnResourceChanged(); };
+                    item.Dock = DockStyle.Fill;
+                    propertiesPanel.Controls.Add(item);
+                }
+            }
+        }
     }
 }

Modified: sandbox/maestro-3.0/Maestro.Editors/MapDefinition/MapLayersSectionCtrl.resx
===================================================================
--- sandbox/maestro-3.0/Maestro.Editors/MapDefinition/MapLayersSectionCtrl.resx	2010-07-07 09:30:03 UTC (rev 5001)
+++ sandbox/maestro-3.0/Maestro.Editors/MapDefinition/MapLayersSectionCtrl.resx	2010-07-07 13:10:28 UTC (rev 5002)
@@ -123,7 +123,23 @@
   <metadata name="toolStrip2.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
     <value>116, 17</value>
   </metadata>
-  <metadata name="toolStrip3.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
-    <value>215, 17</value>
+  <metadata name="toolStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
+    <value>17, 17</value>
   </metadata>
+  <assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
+  <data name="toolStripButton21.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
+        YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAgxJREFUOE+lkvtL
+        U2EYx+0PEbtpFwnBKPGKiJImGP0gYhIYs1E5GF5gIxkpA00JRSmMEF0ohMh+GaRWYlqabMVcNdS2QpaI
+        VqiDIYhk397vA6fXhCjyhYdzeM/5fp7vczkAdeL2cwho7v/wWzT1zcN+Pwhr51uY2/y41PQaF+wzKKiZ
+        QvaN58g0jyLd5KEUcQbg+84P/Cm2tncQjW3j68YWIqubCC3FcOJc478BAuGoZM6zvoRnakXEruEIjhc4
+        /g5gZop9c+voGAyLbQIfeBZxLL9BA1jzXvuGbWamuKh+GmmVbswE19A59FEBbmoAG7YbsLtm2mZmiml9
+        cvabNDwpz6YB7LYBoMXCumkJr7LOmnnHzBQ/9X2Bo2cOibm1GsBREbAQiYmw/8lnuCeWkVzcgnZlnw1j
+        3HV/wuNXK6i/9x5Hc6wawDlTXHbLJ+LZUBQPRyKwdQdxutwl1h+NLXHh5Ht1ewBHsiwawCW57HyDAfWR
+        dvl0uhZQ1eqX8aVc7EKLqrum651ATLf9OJx5XQM4KmY0xPzZ0hFAiQJnXB0WwME0E3IsL5B17ZlADqWb
+        NYDrOepdlcysmTWWOrxqbceRWtaLk0VO1XW72D5Vckd2gMBfq8zdpmUG62NJvKM4+XyziDk24xmfWoGE
+        s1c0gHPmbrPTpHNJKOCo2G1mZs20zcwUJ5yp1AB5+8/zEwgF5GMVDxh4AAAAAElFTkSuQmCC
+</value>
+  </data>
 </root>
\ No newline at end of file

Modified: sandbox/maestro-3.0/Maestro.Editors/MapDefinition/MapSettingsSectionCtrl.Designer.cs
===================================================================
--- sandbox/maestro-3.0/Maestro.Editors/MapDefinition/MapSettingsSectionCtrl.Designer.cs	2010-07-07 09:30:03 UTC (rev 5001)
+++ sandbox/maestro-3.0/Maestro.Editors/MapDefinition/MapSettingsSectionCtrl.Designer.cs	2010-07-07 13:10:28 UTC (rev 5002)
@@ -32,7 +32,7 @@
             this.label2 = new System.Windows.Forms.Label();
             this.label3 = new System.Windows.Forms.Label();
             this.groupBox2 = new System.Windows.Forms.GroupBox();
-            this.SetZoom = new System.Windows.Forms.Button();
+            this.btnSetZoom = new System.Windows.Forms.Button();
             this.txtUpperY = new System.Windows.Forms.TextBox();
             this.label8 = new System.Windows.Forms.Label();
             this.txtUpperX = new System.Windows.Forms.TextBox();
@@ -53,8 +53,8 @@
             // 
             // contentPanel
             // 
+            this.contentPanel.Controls.Add(this.cmbBackgroundColor);
             this.contentPanel.Controls.Add(this.btnPickCs);
-            this.contentPanel.Controls.Add(this.cmbBackgroundColor);
             this.contentPanel.Controls.Add(this.txtCoordinateSystem);
             this.contentPanel.Controls.Add(this.txtDescription);
             this.contentPanel.Controls.Add(this.groupBox2);
@@ -94,7 +94,7 @@
             // 
             this.groupBox2.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
                         | System.Windows.Forms.AnchorStyles.Right)));
-            this.groupBox2.Controls.Add(this.SetZoom);
+            this.groupBox2.Controls.Add(this.btnSetZoom);
             this.groupBox2.Controls.Add(this.txtUpperY);
             this.groupBox2.Controls.Add(this.label8);
             this.groupBox2.Controls.Add(this.txtUpperX);
@@ -113,15 +113,16 @@
             this.groupBox2.TabStop = false;
             this.groupBox2.Text = "Initial map view";
             // 
-            // SetZoom
+            // btnSetZoom
             // 
-            this.SetZoom.Enabled = false;
-            this.SetZoom.ImeMode = System.Windows.Forms.ImeMode.NoControl;
-            this.SetZoom.Location = new System.Drawing.Point(403, 22);
-            this.SetZoom.Name = "SetZoom";
-            this.SetZoom.Size = new System.Drawing.Size(104, 48);
-            this.SetZoom.TabIndex = 10;
-            this.SetZoom.Text = "Set view to current layers extent";
+            this.btnSetZoom.Enabled = false;
+            this.btnSetZoom.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.btnSetZoom.Location = new System.Drawing.Point(403, 22);
+            this.btnSetZoom.Name = "btnSetZoom";
+            this.btnSetZoom.Size = new System.Drawing.Size(104, 48);
+            this.btnSetZoom.TabIndex = 10;
+            this.btnSetZoom.Text = "Set view to current layers extent";
+            this.btnSetZoom.Click += new System.EventHandler(this.btnSetZoom_Click);
             // 
             // txtUpperY
             // 
@@ -213,6 +214,8 @@
             // 
             // txtDescription
             // 
+            this.txtDescription.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
+                        | System.Windows.Forms.AnchorStyles.Right)));
             this.txtDescription.Location = new System.Drawing.Point(143, 6);
             this.txtDescription.Name = "txtDescription";
             this.txtDescription.Size = new System.Drawing.Size(405, 20);
@@ -220,6 +223,8 @@
             // 
             // txtCoordinateSystem
             // 
+            this.txtCoordinateSystem.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
+                        | System.Windows.Forms.AnchorStyles.Right)));
             this.txtCoordinateSystem.Location = new System.Drawing.Point(143, 32);
             this.txtCoordinateSystem.Name = "txtCoordinateSystem";
             this.txtCoordinateSystem.ReadOnly = true;
@@ -228,6 +233,7 @@
             // 
             // btnPickCs
             // 
+            this.btnPickCs.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
             this.btnPickCs.Location = new System.Drawing.Point(520, 30);
             this.btnPickCs.Name = "btnPickCs";
             this.btnPickCs.Size = new System.Drawing.Size(28, 23);
@@ -242,7 +248,7 @@
             this.cmbBackgroundColor.Location = new System.Drawing.Point(143, 58);
             this.cmbBackgroundColor.Name = "cmbBackgroundColor";
             this.cmbBackgroundColor.Size = new System.Drawing.Size(121, 21);
-            this.cmbBackgroundColor.TabIndex = 7;
+            this.cmbBackgroundColor.TabIndex = 9;
             // 
             // MapSettingsSectionCtrl
             // 
@@ -267,7 +273,7 @@
         private System.Windows.Forms.TextBox txtCoordinateSystem;
         private System.Windows.Forms.TextBox txtDescription;
         private System.Windows.Forms.GroupBox groupBox2;
-        private System.Windows.Forms.Button SetZoom;
+        private System.Windows.Forms.Button btnSetZoom;
         private System.Windows.Forms.TextBox txtUpperY;
         private System.Windows.Forms.Label label8;
         private System.Windows.Forms.TextBox txtUpperX;
@@ -278,7 +284,7 @@
         private System.Windows.Forms.Label label5;
         private System.Windows.Forms.Label label4;
         private System.Windows.Forms.Label label9;
+        private System.Windows.Forms.Button btnPickCs;
         private Maestro.Editors.Common.ColorComboBox cmbBackgroundColor;
-        private System.Windows.Forms.Button btnPickCs;
     }
 }

Modified: sandbox/maestro-3.0/Maestro.Editors/MapDefinition/MapSettingsSectionCtrl.cs
===================================================================
--- sandbox/maestro-3.0/Maestro.Editors/MapDefinition/MapSettingsSectionCtrl.cs	2010-07-07 09:30:03 UTC (rev 5001)
+++ sandbox/maestro-3.0/Maestro.Editors/MapDefinition/MapSettingsSectionCtrl.cs	2010-07-07 13:10:28 UTC (rev 5002)
@@ -46,28 +46,44 @@
 
         public void Bind(IEditorService service)
         {
+            cmbBackgroundColor.ResetColors();
+
             _service = service;
             _service.RegisterCustomNotifier(this);
             _map = (OSGeo.MapGuide.ObjectModels.MapDefinition.MapDefinition)service.GetEditedResource();
 
-            var b = new Binding("Text", _map, "Metadata");
-            b.Parse += (sender, e) =>
+            var bmeta = new Binding("Text", _map, "Metadata");
+            bmeta.Parse += (sender, e) =>
             {
                 e.Value = META_START + e.Value + META_END;
             };
-            b.Format += (sender, e) =>
+            bmeta.Format += (sender, e) =>
             {
-                var str = e.Value.ToString();
-                if (str.StartsWith(META_START) && str.EndsWith(META_END))
+                if (e.Value != null)
                 {
-                    e.Value = str.Substring(META_START.Length, str.Length - (META_START.Length + META_END.Length));
+                    var str = e.Value.ToString();
+                    if (str.StartsWith(META_START) && str.EndsWith(META_END))
+                    {
+                        e.Value = str.Substring(META_START.Length, str.Length - (META_START.Length + META_END.Length));
+                    }
                 }
             };
-            txtDescription.DataBindings.Add(b);
+            txtDescription.DataBindings.Add(bmeta);
             txtCoordinateSystem.DataBindings.Add("Text", _map, "CoordinateSystem");
 
-            //TODO: Find proper binding target
-            cmbBackgroundColor.DataBindings.Add("Tag", _map, "BackgroundColor");
+            //ColorComboBox requires custom databinding
+            cmbBackgroundColor.CurrentColor = _map.BackgroundColor;
+            cmbBackgroundColor.SelectedIndexChanged += (sender, e) =>
+            {
+                _map.BackgroundColor = cmbBackgroundColor.CurrentColor;
+            };
+            _map.PropertyChanged += (sender, e) =>
+            {
+                if (e.PropertyName == "BackgroundColor")
+                {
+                    cmbBackgroundColor.CurrentColor = _map.BackgroundColor;
+                }
+            };
 
             txtLowerX.DataBindings.Add("Text", _map.Extents, "MinX");
             txtLowerY.DataBindings.Add("Text", _map.Extents, "MinY");
@@ -98,5 +114,10 @@
                 txtCoordinateSystem.DataBindings[0].WriteValue();
             }
         }
+
+        private void btnSetZoom_Click(object sender, EventArgs e)
+        {
+
+        }
     }
 }

Modified: sandbox/maestro-3.0/Maestro.Editors/Properties/Resources.Designer.cs
===================================================================
--- sandbox/maestro-3.0/Maestro.Editors/Properties/Resources.Designer.cs	2010-07-07 09:30:03 UTC (rev 5001)
+++ sandbox/maestro-3.0/Maestro.Editors/Properties/Resources.Designer.cs	2010-07-07 13:10:28 UTC (rev 5002)
@@ -292,6 +292,29 @@
             }
         }
         
+        /// <summary>
+        ///   Looks up a localized string similar to Finite Display Scales.
+        /// </summary>
+        internal static string FiniteDisplayScales {
+            get {
+                return ResourceManager.GetString("FiniteDisplayScales", resourceCulture);
+            }
+        }
+        
+        internal static System.Drawing.Bitmap folder__minus {
+            get {
+                object obj = ResourceManager.GetObject("folder--minus", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
+        internal static System.Drawing.Bitmap folder__plus {
+            get {
+                object obj = ResourceManager.GetObject("folder--plus", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
         internal static System.Drawing.Bitmap folder_horizontal {
             get {
                 object obj = ResourceManager.GetObject("folder_horizontal", resourceCulture);
@@ -352,6 +375,41 @@
             }
         }
         
+        internal static System.Drawing.Bitmap layer {
+            get {
+                object obj = ResourceManager.GetObject("layer", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
+        internal static System.Drawing.Bitmap layer__minus {
+            get {
+                object obj = ResourceManager.GetObject("layer--minus", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
+        internal static System.Drawing.Bitmap layer__plus {
+            get {
+                object obj = ResourceManager.GetObject("layer--plus", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
+        internal static System.Drawing.Bitmap layers_stack_arrange {
+            get {
+                object obj = ResourceManager.GetObject("layers-stack-arrange", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
+        internal static System.Drawing.Bitmap layers_stack_arrange_back {
+            get {
+                object obj = ResourceManager.GetObject("layers-stack-arrange-back", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
         internal static System.Drawing.Bitmap magnifier {
             get {
                 object obj = ResourceManager.GetObject("magnifier", resourceCulture);
@@ -359,6 +417,13 @@
             }
         }
         
+        internal static System.Drawing.Bitmap MgCooker {
+            get {
+                object obj = ResourceManager.GetObject("MgCooker", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
         internal static System.Drawing.Bitmap minus_circle {
             get {
                 object obj = ResourceManager.GetObject("minus-circle", resourceCulture);

Modified: sandbox/maestro-3.0/Maestro.Editors/Properties/Resources.resx
===================================================================
--- sandbox/maestro-3.0/Maestro.Editors/Properties/Resources.resx	2010-07-07 09:30:03 UTC (rev 5001)
+++ sandbox/maestro-3.0/Maestro.Editors/Properties/Resources.resx	2010-07-07 13:10:28 UTC (rev 5002)
@@ -117,22 +117,31 @@
   <resheader name="writer">
     <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
   </resheader>
-  <data name="FindReplaceNothing" xml:space="preserve">
-    <value>Nothing to replace</value>
-  </data>
   <assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
-  <data name="globe--arrow" type="System.Resources.ResXFileRef, System.Windows.Forms">
-    <value>..\Resources\globe--arrow.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  <data name="sql-join" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\sql-join.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
   <data name="minus-circle" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\Resources\minus-circle.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
+  <data name="tick" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\tick.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="TestConnectionNoErrors" xml:space="preserve">
+    <value>Provider reported no errors</value>
+  </data>
+  <data name="globe--pencil" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\globe--pencil.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
   <data name="cross-script" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\Resources\cross-script.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
   <data name="sql-join-left" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\Resources\sql-join-left.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
+  <data name="application--arrow" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\application--arrow.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
   <data name="drive-upload" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\Resources\drive-upload.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
@@ -140,21 +149,27 @@
     <value>infinite</value>
     <comment>A value that is displayed when the value assigned is infinite</comment>
   </data>
+  <data name="server" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\server.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
   <data name="magnifier" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\Resources\magnifier.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
+  <data name="sql-join-inner" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\sql-join-inner.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
   <data name="plus-circle" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\Resources\plus-circle.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
+  <data name="scissors-blue" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\scissors-blue.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
   <data name="XmlDocIsValid" xml:space="preserve">
     <value>Document is valid</value>
   </data>
   <data name="TransparentName" xml:space="preserve">
     <value>Transparent</value>
   </data>
-  <data name="script--arrow" type="System.Resources.ResXFileRef, System.Windows.Forms">
-    <value>..\Resources\script--arrow.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
-  </data>
   <data name="control-stop-square" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\Resources\control-stop-square.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
@@ -174,8 +189,8 @@
   <data name="FileDownloaded" xml:space="preserve">
     <value>File Downloaded</value>
   </data>
-  <data name="TestConnectionNoErrors" xml:space="preserve">
-    <value>Provider reported no errors</value>
+  <data name="globe--plus" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\globe--plus.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
   <data name="document--plus" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\Resources\document--plus.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
@@ -186,12 +201,12 @@
   <data name="control" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\Resources\control.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
-  <data name="sort-number" type="System.Resources.ResXFileRef, System.Windows.Forms">
-    <value>..\Resources\sort-number.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
-  </data>
   <data name="folder_horizontal" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\Resources\folder-horizontal.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
+  <data name="arrow-090" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\arrow-090.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
   <data name="FindNothing" xml:space="preserve">
     <value>Could not find specified string or end of document reached</value>
   </data>
@@ -204,42 +219,45 @@
   <data name="table--arrow" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\Resources\table--arrow.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
+  <data name="layer--plus" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\layer--plus.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
   <data name="document-copy" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\Resources\document-copy.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
   <data name="databases-relation" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\Resources\databases-relation.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
-  <data name="cross-circle-frame" type="System.Resources.ResXFileRef, System.Windows.Forms">
-    <value>..\Resources\cross-circle-frame.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  <data name="globe--arrow" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\globe--arrow.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
   <data name="MoreColorsName" xml:space="preserve">
     <value>More colors...</value>
   </data>
+  <data name="script--arrow" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\script--arrow.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="sort-number" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\sort-number.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
   <data name="tick-circle-frame" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\Resources\tick-circle-frame.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
-  <data name="scissors-blue" type="System.Resources.ResXFileRef, System.Windows.Forms">
-    <value>..\Resources\scissors-blue.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
-  </data>
-  <data name="tick" type="System.Resources.ResXFileRef, System.Windows.Forms">
-    <value>..\Resources\tick.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
-  </data>
-  <data name="application--arrow" type="System.Resources.ResXFileRef, System.Windows.Forms">
-    <value>..\Resources\application--arrow.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
-  </data>
   <data name="FindEmptyString" xml:space="preserve">
     <value>Cannot Find an Empty String</value>
   </data>
-  <data name="sql-join-inner" type="System.Resources.ResXFileRef, System.Windows.Forms">
-    <value>..\Resources\sql-join-inner.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  <data name="arrow-270" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\arrow-270.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
-  <data name="function" type="System.Resources.ResXFileRef, System.Windows.Forms">
-    <value>..\Resources\function.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  <data name="globe--minus" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\globe--minus.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
   <data name="sql-join-right" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\Resources\sql-join-right.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
+  <data name="folder--minus" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\folder--minus.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
   <data name="application--minus" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\Resources\application--minus.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
@@ -252,11 +270,14 @@
   <data name="document--pencil" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\Resources\document--pencil.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
+  <data name="layer--minus" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\layer--minus.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
   <data name="cross" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\Resources\cross.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
-  <data name="arrow-090" type="System.Resources.ResXFileRef, System.Windows.Forms">
-    <value>..\Resources\arrow-090.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  <data name="cross-circle-frame" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\cross-circle-frame.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
   <data name="arrow-curve" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\Resources\arrow-curve.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
@@ -267,8 +288,8 @@
   <data name="application--plus" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\Resources\application--plus.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
-  <data name="sql-join" type="System.Resources.ResXFileRef, System.Windows.Forms">
-    <value>..\Resources\sql-join.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  <data name="FindReplaceNothing" xml:space="preserve">
+    <value>Nothing to replace</value>
   </data>
   <data name="application-export" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\Resources\application-export.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
@@ -276,6 +297,9 @@
   <data name="database--plus" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\Resources\database--plus.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
+  <data name="folder--plus" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\folder--plus.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
   <data name="XmlEditorCursorTemplate" xml:space="preserve">
     <value>Line {0}, Column {1}</value>
   </data>
@@ -285,22 +309,37 @@
   <data name="sql" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\Resources\sql.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
-  <data name="arrow-270" type="System.Resources.ResXFileRef, System.Windows.Forms">
-    <value>..\Resources\arrow-270.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  <data name="function" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\function.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
   <data name="application-import" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\Resources\application-import.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
-  <data name="globe--pencil" type="System.Resources.ResXFileRef, System.Windows.Forms">
-    <value>..\Resources\globe--pencil.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  <data name="layers-stack-arrange" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\layers-stack-arrange.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
-  <data name="globe--plus" type="System.Resources.ResXFileRef, System.Windows.Forms">
-    <value>..\Resources\globe--plus.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  <data name="layers-stack-arrange-back" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\layers-stack-arrange-back.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
-  <data name="globe--minus" type="System.Resources.ResXFileRef, System.Windows.Forms">
-    <value>..\Resources\globe--minus.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  <data name="layer" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\layer.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
-  <data name="server" type="System.Resources.ResXFileRef, System.Windows.Forms">
-    <value>..\Resources\server.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  <data name="FiniteDisplayScales" xml:space="preserve">
+    <value>Finite Display Scales</value>
   </data>
+  <assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
+  <data name="MgCooker" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
+        YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAHrSURBVDhPhZLtS1NhGMb9T/rQx6ACyUVDyQjDaKAGQYOB
+        Ew2K9ilifrA+LDAMablFb1IM03DbMXMwj4O15VZ5iPly2Go0yzCzF0iwr4OdX3seOxK1owcunofzPPfv
+        vq77nLo6i2d44j0Xb8elgk90rO7VfN80dB13coLmyUFalCMcHjvJ+fBnHkdLu4Psty5wKhZgz9022tUw
+        9oiHpuQy+1IG7umNnQGdfkV2bA4fq3ZtpCP+EI9u4NAM6mMJDkaDuPoj1pCGgUt/LDfiSYV4sFzGm6/g
+        zBkcGOtj/4gTm/+cNeBqvIBttIeexDDqlwqhjxX6ixVcc1/lHITawn5rwBVlVRa0x4ZoVc7i1V5JBx3p
+        nIwk4wU6rQG+e3m8ehlnMrodxaGOc+K1gS21waHRMzh6B3cepHDRrf2UHe3jp2mZXaf+hcHeRBnxeXf9
+        H4L3Z3HfnOJoyMVxtUSD+ovW55t03SnguzZNOp2xhiws6GjaPJPPXnLDn8Hnn6NvIMvl3qcEApHq2Rsp
+        SxcCUHj7QUrsTaAo0vUSi0vv5JklxCwUl0Wxuf4NE3vLGCuf1rdtii7Z7JZlASoWV1G6uslEpsjlFmvH
+        WFv7wcxM6j8JZ9++bzL/aISV/Ja7mnNYqmY07YouQubg/l1NwG/XLb2y/7oFegAAAABJRU5ErkJggg==
+</value>
+  </data>
 </root>
\ No newline at end of file

Added: sandbox/maestro-3.0/Maestro.Editors/Resources/folder--minus.png
===================================================================
(Binary files differ)


Property changes on: sandbox/maestro-3.0/Maestro.Editors/Resources/folder--minus.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Added: sandbox/maestro-3.0/Maestro.Editors/Resources/folder--plus.png
===================================================================
(Binary files differ)


Property changes on: sandbox/maestro-3.0/Maestro.Editors/Resources/folder--plus.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Added: sandbox/maestro-3.0/Maestro.Editors/Resources/layer--minus.png
===================================================================
(Binary files differ)


Property changes on: sandbox/maestro-3.0/Maestro.Editors/Resources/layer--minus.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Added: sandbox/maestro-3.0/Maestro.Editors/Resources/layer--plus.png
===================================================================
(Binary files differ)


Property changes on: sandbox/maestro-3.0/Maestro.Editors/Resources/layer--plus.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Added: sandbox/maestro-3.0/Maestro.Editors/Resources/layer.png
===================================================================
(Binary files differ)


Property changes on: sandbox/maestro-3.0/Maestro.Editors/Resources/layer.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Added: sandbox/maestro-3.0/Maestro.Editors/Resources/layers-stack-arrange-back.png
===================================================================
(Binary files differ)


Property changes on: sandbox/maestro-3.0/Maestro.Editors/Resources/layers-stack-arrange-back.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Added: sandbox/maestro-3.0/Maestro.Editors/Resources/layers-stack-arrange.png
===================================================================
(Binary files differ)


Property changes on: sandbox/maestro-3.0/Maestro.Editors/Resources/layers-stack-arrange.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Modified: sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Feature/FeatureSetReader.cs
===================================================================
--- sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Feature/FeatureSetReader.cs	2010-07-07 09:30:03 UTC (rev 5001)
+++ sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Feature/FeatureSetReader.cs	2010-07-07 13:10:28 UTC (rev 5002)
@@ -213,7 +213,7 @@
 
         public bool IsDBNull(int i)
         {
-            return m_row.IsValueNull(i);
+            return m_row.IsDBNull(i);
         }
 
         public object this[string name]

Modified: sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/LayerDefinition.cs
===================================================================
--- sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/LayerDefinition.cs	2010-07-07 09:30:03 UTC (rev 5001)
+++ sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/LayerDefinition.cs	2010-07-07 13:10:28 UTC (rev 5002)
@@ -95,5 +95,27 @@
         {
             get { return true; }
         }
+
+        /// <summary>
+        /// Returns the spatial extent of the data. 
+        /// This is calculated by asking the underlying featuresource for the minimum rectangle that
+        /// contains all the features in the specified table. If the <paramref name="allowFallbackToContextInformation"/>
+        /// is set to true, and the query fails, the code will attempt to read this information
+        /// from the spatial context information instead.
+        /// </summary>
+        /// <param name="allowFallbackToContextInformation">True to allow reading spatial extents from the spatial context information, if the spatial query fails.</param>
+        /// <returns>The envelope for the data in the table</returns>
+        public Topology.Geometries.IEnvelope GetSpatialExtent(bool allowFallbackToContextInformation)
+        {
+            if (this.CurrentConnection == null)
+                throw new System.Exception("No server set for object");
+
+            if (this.Item as VectorLayerDefinitionType != null)
+                return this.CurrentConnection.FeatureService.GetSpatialExtent(this.Item.ResourceId, (this.Item as VectorLayerDefinitionType).FeatureName, (this.Item as VectorLayerDefinitionType).Geometry, allowFallbackToContextInformation);
+            else if (this.Item as GridLayerDefinitionType != null)
+                return this.CurrentConnection.FeatureService.GetSpatialExtent(this.Item.ResourceId, (this.Item as GridLayerDefinitionType).FeatureName, (this.Item as GridLayerDefinitionType).Geometry, allowFallbackToContextInformation);
+            else
+                return null;
+        }
     }
 }

Modified: sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/MapDefinition.cs
===================================================================
--- sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/MapDefinition.cs	2010-07-07 09:30:03 UTC (rev 5001)
+++ sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/MapDefinition.cs	2010-07-07 13:10:28 UTC (rev 5002)
@@ -23,9 +23,27 @@
 using OSGeo.MapGuide.MaestroAPI.Resource;
 using System.Xml.Serialization;
 using OSGeo.MapGuide.MaestroAPI;
+using System.Drawing;
 
 namespace OSGeo.MapGuide.ObjectModels.MapDefinition
 {
+    partial class MapDefinitionType
+    {
+        [XmlIgnore]
+        public Color BackgroundColor
+        {
+            get
+            {
+                return this.backgroundColorField;
+            }
+            set
+            {
+                this.backgroundColorField = value;
+                OnPropertyChanged("BackgroundColor");
+            }
+        }
+    }
+
     partial class MapDefinition : IResource
     {
         private static readonly Version RES_VERSION = new Version(1, 0, 0);



More information about the mapguide-commits mailing list