[mapguide-commits] r6026 - trunk/Tools/Maestro/Maestro.Editors/MapDefinition

svn_mapguide at osgeo.org svn_mapguide at osgeo.org
Wed Aug 3 10:26:11 EDT 2011


Author: jng
Date: 2011-08-03 07:26:11 -0700 (Wed, 03 Aug 2011)
New Revision: 6026

Modified:
   trunk/Tools/Maestro/Maestro.Editors/MapDefinition/MapLayersSectionCtrl.Designer.cs
   trunk/Tools/Maestro/Maestro.Editors/MapDefinition/MapLayersSectionCtrl.cs
   trunk/Tools/Maestro/Maestro.Editors/MapDefinition/MapLayersSectionCtrl.resx
Log:
#1742: Improve usability of Map Definition editor. Actually enable/disable buttons which can/cannot be used based on the selected item in the relevant tree view.


Modified: trunk/Tools/Maestro/Maestro.Editors/MapDefinition/MapLayersSectionCtrl.Designer.cs
===================================================================
--- trunk/Tools/Maestro/Maestro.Editors/MapDefinition/MapLayersSectionCtrl.Designer.cs	2011-08-03 06:18:58 UTC (rev 6025)
+++ trunk/Tools/Maestro/Maestro.Editors/MapDefinition/MapLayersSectionCtrl.Designer.cs	2011-08-03 14:26:11 UTC (rev 6026)
@@ -169,8 +169,8 @@
             // btnRemoveGroup
             // 
             this.btnRemoveGroup.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
+            resources.ApplyResources(this.btnRemoveGroup, "btnRemoveGroup");
             this.btnRemoveGroup.Image = global::Maestro.Editors.Properties.Resources.folder__minus;
-            resources.ApplyResources(this.btnRemoveGroup, "btnRemoveGroup");
             this.btnRemoveGroup.Name = "btnRemoveGroup";
             this.btnRemoveGroup.Click += new System.EventHandler(this.btnRemoveGroup_Click);
             // 
@@ -190,8 +190,8 @@
             // btnGRPRemoveLayer
             // 
             this.btnGRPRemoveLayer.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
+            resources.ApplyResources(this.btnGRPRemoveLayer, "btnGRPRemoveLayer");
             this.btnGRPRemoveLayer.Image = global::Maestro.Editors.Properties.Resources.layer__minus;
-            resources.ApplyResources(this.btnGRPRemoveLayer, "btnGRPRemoveLayer");
             this.btnGRPRemoveLayer.Name = "btnGRPRemoveLayer";
             this.btnGRPRemoveLayer.Click += new System.EventHandler(this.btnGRPRemoveLayer_Click);
             // 
@@ -203,16 +203,16 @@
             // btnMoveGroupUp
             // 
             this.btnMoveGroupUp.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
+            resources.ApplyResources(this.btnMoveGroupUp, "btnMoveGroupUp");
             this.btnMoveGroupUp.Image = global::Maestro.Editors.Properties.Resources.arrow_090;
-            resources.ApplyResources(this.btnMoveGroupUp, "btnMoveGroupUp");
             this.btnMoveGroupUp.Name = "btnMoveGroupUp";
             this.btnMoveGroupUp.Click += new System.EventHandler(this.btnMoveGroupUp_Click);
             // 
             // btnMoveGroupDown
             // 
             this.btnMoveGroupDown.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
+            resources.ApplyResources(this.btnMoveGroupDown, "btnMoveGroupDown");
             this.btnMoveGroupDown.Image = global::Maestro.Editors.Properties.Resources.arrow_270;
-            resources.ApplyResources(this.btnMoveGroupDown, "btnMoveGroupDown");
             this.btnMoveGroupDown.Name = "btnMoveGroupDown";
             this.btnMoveGroupDown.Click += new System.EventHandler(this.btnMoveGroupDown_Click);
             // 
@@ -224,8 +224,8 @@
             // btnConvertLayerGroupToBaseGroup
             // 
             this.btnConvertLayerGroupToBaseGroup.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
+            resources.ApplyResources(this.btnConvertLayerGroupToBaseGroup, "btnConvertLayerGroupToBaseGroup");
             this.btnConvertLayerGroupToBaseGroup.Image = global::Maestro.Editors.Properties.Resources.map__arrow;
-            resources.ApplyResources(this.btnConvertLayerGroupToBaseGroup, "btnConvertLayerGroupToBaseGroup");
             this.btnConvertLayerGroupToBaseGroup.Name = "btnConvertLayerGroupToBaseGroup";
             this.btnConvertLayerGroupToBaseGroup.Click += new System.EventHandler(this.btnConvertLayerGroupToBaseGroup_Click);
             // 
@@ -297,8 +297,8 @@
             // btnDLRemoveLayer
             // 
             this.btnDLRemoveLayer.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
+            resources.ApplyResources(this.btnDLRemoveLayer, "btnDLRemoveLayer");
             this.btnDLRemoveLayer.Image = global::Maestro.Editors.Properties.Resources.layer__minus;
-            resources.ApplyResources(this.btnDLRemoveLayer, "btnDLRemoveLayer");
             this.btnDLRemoveLayer.Name = "btnDLRemoveLayer";
             this.btnDLRemoveLayer.Click += new System.EventHandler(this.btnDLRemoveLayer_Click);
             // 
@@ -310,16 +310,16 @@
             // btnDLMoveLayerUp
             // 
             this.btnDLMoveLayerUp.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
+            resources.ApplyResources(this.btnDLMoveLayerUp, "btnDLMoveLayerUp");
             this.btnDLMoveLayerUp.Image = global::Maestro.Editors.Properties.Resources.arrow_090;
-            resources.ApplyResources(this.btnDLMoveLayerUp, "btnDLMoveLayerUp");
             this.btnDLMoveLayerUp.Name = "btnDLMoveLayerUp";
             this.btnDLMoveLayerUp.Click += new System.EventHandler(this.btnDLMoveLayerUp_Click);
             // 
             // btnDLMoveLayerDown
             // 
             this.btnDLMoveLayerDown.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
+            resources.ApplyResources(this.btnDLMoveLayerDown, "btnDLMoveLayerDown");
             this.btnDLMoveLayerDown.Image = global::Maestro.Editors.Properties.Resources.arrow_270;
-            resources.ApplyResources(this.btnDLMoveLayerDown, "btnDLMoveLayerDown");
             this.btnDLMoveLayerDown.Name = "btnDLMoveLayerDown";
             this.btnDLMoveLayerDown.Click += new System.EventHandler(this.btnDLMoveLayerDown_Click);
             // 
@@ -331,16 +331,16 @@
             // btnDLMoveLayerTop
             // 
             this.btnDLMoveLayerTop.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
+            resources.ApplyResources(this.btnDLMoveLayerTop, "btnDLMoveLayerTop");
             this.btnDLMoveLayerTop.Image = global::Maestro.Editors.Properties.Resources.layers_stack_arrange;
-            resources.ApplyResources(this.btnDLMoveLayerTop, "btnDLMoveLayerTop");
             this.btnDLMoveLayerTop.Name = "btnDLMoveLayerTop";
             this.btnDLMoveLayerTop.Click += new System.EventHandler(this.btnDLMoveLayerTop_Click);
             // 
             // btnDLMoveLayerBottom
             // 
             this.btnDLMoveLayerBottom.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
+            resources.ApplyResources(this.btnDLMoveLayerBottom, "btnDLMoveLayerBottom");
             this.btnDLMoveLayerBottom.Image = global::Maestro.Editors.Properties.Resources.layers_stack_arrange_back;
-            resources.ApplyResources(this.btnDLMoveLayerBottom, "btnDLMoveLayerBottom");
             this.btnDLMoveLayerBottom.Name = "btnDLMoveLayerBottom";
             this.btnDLMoveLayerBottom.Click += new System.EventHandler(this.btnDLMoveLayerBottom_Click);
             // 
@@ -412,8 +412,8 @@
             // btnRemoveBaseLayerGroup
             // 
             this.btnRemoveBaseLayerGroup.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
+            resources.ApplyResources(this.btnRemoveBaseLayerGroup, "btnRemoveBaseLayerGroup");
             this.btnRemoveBaseLayerGroup.Image = global::Maestro.Editors.Properties.Resources.folder__minus;
-            resources.ApplyResources(this.btnRemoveBaseLayerGroup, "btnRemoveBaseLayerGroup");
             this.btnRemoveBaseLayerGroup.Name = "btnRemoveBaseLayerGroup";
             this.btnRemoveBaseLayerGroup.Click += new System.EventHandler(this.btnRemoveBaseLayerGroup_Click);
             // 
@@ -425,16 +425,16 @@
             // btnAddBaseLayer
             // 
             this.btnAddBaseLayer.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
+            resources.ApplyResources(this.btnAddBaseLayer, "btnAddBaseLayer");
             this.btnAddBaseLayer.Image = global::Maestro.Editors.Properties.Resources.layer__plus;
-            resources.ApplyResources(this.btnAddBaseLayer, "btnAddBaseLayer");
             this.btnAddBaseLayer.Name = "btnAddBaseLayer";
             this.btnAddBaseLayer.Click += new System.EventHandler(this.btnAddBaseLayer_Click);
             // 
             // btnRemoveBaseLayer
             // 
             this.btnRemoveBaseLayer.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
+            resources.ApplyResources(this.btnRemoveBaseLayer, "btnRemoveBaseLayer");
             this.btnRemoveBaseLayer.Image = global::Maestro.Editors.Properties.Resources.layer__minus;
-            resources.ApplyResources(this.btnRemoveBaseLayer, "btnRemoveBaseLayer");
             this.btnRemoveBaseLayer.Name = "btnRemoveBaseLayer";
             this.btnRemoveBaseLayer.Click += new System.EventHandler(this.btnRemoveBaseLayer_Click);
             // 
@@ -446,16 +446,16 @@
             // btnMoveBaseLayerUp
             // 
             this.btnMoveBaseLayerUp.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
+            resources.ApplyResources(this.btnMoveBaseLayerUp, "btnMoveBaseLayerUp");
             this.btnMoveBaseLayerUp.Image = global::Maestro.Editors.Properties.Resources.arrow_090;
-            resources.ApplyResources(this.btnMoveBaseLayerUp, "btnMoveBaseLayerUp");
             this.btnMoveBaseLayerUp.Name = "btnMoveBaseLayerUp";
             this.btnMoveBaseLayerUp.Click += new System.EventHandler(this.btnMoveBaseLayerUp_Click);
             // 
             // btnMoveBaseLayerDown
             // 
             this.btnMoveBaseLayerDown.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
+            resources.ApplyResources(this.btnMoveBaseLayerDown, "btnMoveBaseLayerDown");
             this.btnMoveBaseLayerDown.Image = global::Maestro.Editors.Properties.Resources.arrow_270;
-            resources.ApplyResources(this.btnMoveBaseLayerDown, "btnMoveBaseLayerDown");
             this.btnMoveBaseLayerDown.Name = "btnMoveBaseLayerDown";
             this.btnMoveBaseLayerDown.Click += new System.EventHandler(this.btnMoveBaseLayerDown_Click);
             // 

Modified: trunk/Tools/Maestro/Maestro.Editors/MapDefinition/MapLayersSectionCtrl.cs
===================================================================
--- trunk/Tools/Maestro/Maestro.Editors/MapDefinition/MapLayersSectionCtrl.cs	2011-08-03 06:18:58 UTC (rev 6025)
+++ trunk/Tools/Maestro/Maestro.Editors/MapDefinition/MapLayersSectionCtrl.cs	2011-08-03 14:26:11 UTC (rev 6026)
@@ -161,54 +161,99 @@
             {
                 var layer = node.Tag as LayerItem;
                 var group = node.Tag as GroupItem;
+
+                btnGRPRemoveLayer.Enabled = false;
+                btnRemoveGroup.Enabled = false;
+                btnMoveGroupUp.Enabled = false;
+                btnMoveGroupDown.Enabled = false;
+                btnConvertLayerGroupToBaseGroup.Enabled = false;
+
                 if (layer != null)
                 {
-                    propertiesPanel.Controls.Clear();
-                    var item = new LayerPropertiesCtrl(layer.Tag, _edSvc.ResourceService);
-                    item.LayerChanged += (s, evt) => { OnResourceChanged(); };
-                    item.Dock = DockStyle.Fill;
-                    propertiesPanel.Controls.Add(item);
+                    OnDynamicLayerItemSelected(layer);
                 }
                 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);
+                    OnDynamicGroupItemSelected(group);
                 }
             }
         }
 
+        private void OnDynamicGroupItemSelected(GroupItem group)
+        {
+            btnRemoveGroup.Enabled = true;
+            btnMoveGroupUp.Enabled = true;
+            btnMoveGroupDown.Enabled = true;
+            btnConvertLayerGroupToBaseGroup.Enabled = true;
+
+            propertiesPanel.Controls.Clear();
+            var item = new GroupPropertiesCtrl(group.Tag);
+            item.GroupChanged += (s, evt) => { OnResourceChanged(); };
+            item.Dock = DockStyle.Fill;
+            propertiesPanel.Controls.Add(item);
+        }
+
+        private void OnDynamicLayerItemSelected(LayerItem layer)
+        {
+            btnGRPRemoveLayer.Enabled = true;
+
+            propertiesPanel.Controls.Clear();
+            var item = new LayerPropertiesCtrl(layer.Tag, _edSvc.ResourceService);
+            item.LayerChanged += (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;
+                btnDLMoveLayerBottom.Enabled =
+                btnDLMoveLayerDown.Enabled =
+                btnDLMoveLayerTop.Enabled =
+                btnDLMoveLayerUp.Enabled =
+                btnDLRemoveLayer.Enabled = false;
+
                 if (layer != null)
                 {
-                    propertiesPanel.Controls.Clear();
-                    var item = new LayerPropertiesCtrl(layer.Tag, _edSvc.ResourceService);
-                    item.LayerChanged += (s, evt) => { OnResourceChanged(); };
-                    item.Dock = DockStyle.Fill;
-                    propertiesPanel.Controls.Add(item);
+                    OnDrawOrderLayerItemSelected(layer);
                 }
             }
         }
 
+        private void OnDrawOrderLayerItemSelected(LayerItem layer)
+        {
+            btnDLMoveLayerBottom.Enabled =
+            btnDLMoveLayerDown.Enabled =
+            btnDLMoveLayerTop.Enabled =
+            btnDLMoveLayerUp.Enabled =
+            btnDLRemoveLayer.Enabled = true;
+
+            propertiesPanel.Controls.Clear();
+            var item = new LayerPropertiesCtrl(layer.Tag, _edSvc.ResourceService);
+            item.LayerChanged += (s, evt) => { OnResourceChanged(); };
+            item.Dock = DockStyle.Fill;
+            propertiesPanel.Controls.Add(item);
+        }
+
         private void btnAddGroup_Click(object sender, EventArgs e)
         {
             var selGroup = GetSelectedLayerGroupItem() as IMapLayerGroup;
-            CreateNewGroup(selGroup);
+            var newGroup = CreateNewGroup(selGroup);
 
             _grpLayerModel.Invalidate();
+            RestoreGroupSelection(newGroup);
         }
 
         private void btnRemoveGroup_Click(object sender, EventArgs e)
         {
             var group = GetSelectedLayerGroupItem() as GroupItem;
-            RemoveSelectedLayerGroupItem(group);
+            if (group != null)
+            {
+                RemoveSelectedLayerGroupItem(group);
+            }
         }
 
         private void RemoveSelectedLayerGroupItem(GroupItem group)
@@ -231,9 +276,9 @@
                     LastSelectedFolder.FolderId = picker.SelectedFolder;
                     string layerId = picker.ResourceID;
                     var selGroup = GetSelectedLayerGroupItem() as GroupItem;
-                    CreateLayer(layerId, selGroup == null ? null : selGroup.Tag);
-
+                    var layer = CreateLayer(layerId, selGroup == null ? null : selGroup.Tag);
                     this.RefreshModels();
+                    RestoreLayerSelection(layer);
                 }
             }
         }
@@ -306,8 +351,9 @@
                     LastSelectedFolder.FolderId = picker.SelectedFolder;
                     string layerId = picker.ResourceID;
                     var selGroup = GetSelectedDrawOrderItem() as GroupItem;
-                    CreateLayer(layerId, selGroup != null ? selGroup.Tag : null);
+                    var layer = CreateLayer(layerId, selGroup != null ? selGroup.Tag : null);
                     this.RefreshModels();
+                    RestoreDrawOrderSelection(layer);
                 }
             }
         }
@@ -377,8 +423,10 @@
             }
         }
 
-        private static void RestoreSelection<TaggedType>(TreeViewAdv tree, Predicate<TaggedType> predicate) where TaggedType : class
+        private static TaggedType RestoreSelection<TaggedType>(TreeViewAdv tree, Predicate<TaggedType> predicate) where TaggedType : class
         {
+            TaggedType ret = null;
+
             //Restore selection
             TreeNodeAdv selectedNode = null;
             foreach (var node in tree.AllNodes)
@@ -388,11 +436,14 @@
                 if (tag != null && predicate(tag))
                 {
                     selectedNode = node;
+                    ret = tag;
                     break;
                 }
             }
             if (selectedNode != null)
                 tree.SelectedNode = selectedNode;
+
+            return ret;
         }
 
         private static void ExpandNode<TaggedType>(TreeViewAdv tree, Predicate<TaggedType> predicate) where TaggedType : class
@@ -420,36 +471,80 @@
             }
         }
 
+        private void RestoreLayerSelection(LayerItem item)
+        {
+            //The node tag will probably be different, but the wrapped
+            //instance is what we're checking for
+            var it = RestoreSelection<LayerItem>(trvLayersGroup, (tag) => { return tag.Tag == item.Tag; });
+            if (it != null)
+                OnDynamicLayerItemSelected(it);
+        }
+
+        private void RestoreLayerSelection(IMapLayer item)
+        {
+            //The node tag will probably be different, but the wrapped
+            //instance is what we're checking for
+            var it = RestoreSelection<LayerItem>(trvLayersGroup, (tag) => { return tag.Tag == item; });
+            if (it != null)
+                OnDynamicLayerItemSelected(it);
+        }
+
         private void RestoreGroupSelection(GroupItem item)
         {
             //The node tag will probably be different, but the wrapped
             //instance is what we're checking for
-            RestoreSelection<GroupItem>(trvLayersGroup, (tag) => { return tag.Tag == item.Tag; });
+            var it = RestoreSelection<GroupItem>(trvLayersGroup, (tag) => { return tag.Tag == item.Tag; });
+            if (it != null)
+                OnDynamicGroupItemSelected(it);
         }
 
+        private void RestoreGroupSelection(IMapLayerGroup group)
+        {
+            //The node tag will probably be different, but the wrapped
+            //instance is what we're checking for
+            var it = RestoreSelection<GroupItem>(trvLayersGroup, (tag) => { return tag.Tag == group; });
+            if (it != null)
+                OnDynamicGroupItemSelected(it);
+        }
+
         private void RestoreBaseLayerSelection(BaseLayerItem item)
         {
             //The node tag will probably be different, but the wrapped
             //instance is what we're checking for
-            RestoreSelection<BaseLayerItem>(trvBaseLayers, (tag) => { return tag.Tag == item.Tag; });
+            var it = RestoreSelection<BaseLayerItem>(trvBaseLayers, (tag) => { return tag.Tag == item.Tag; });
+            if (it != null)
+                OnBaseLayerItemSelected(it);
         }
 
         private void RestoreBaseLayerSelection(IBaseMapLayer layer)
         {
             //The node tag will probably be different, but the wrapped
             //instance is what we're checking for
-            RestoreSelection<BaseLayerItem>(trvBaseLayers, (tag) => { return tag.Tag == layer; });
+            var it = RestoreSelection<BaseLayerItem>(trvBaseLayers, (tag) => { return tag.Tag == layer; });
+            if (it != null)
+                OnBaseLayerItemSelected(it);
         }
 
         private void RestoreDrawOrderSelection(LayerItem layer)
         {
             //The node tag will probably be different, but the wrapped
             //instance is what we're checking for
-            RestoreSelection<LayerItem>(trvLayerDrawingOrder, (tag) => { return tag.Tag == layer.Tag; });
+            var lyr = RestoreSelection<LayerItem>(trvLayerDrawingOrder, (tag) => { return tag.Tag == layer.Tag; });
+            if (lyr != null)
+                OnDrawOrderLayerItemSelected(lyr);
         }
 
-        private void CreateNewGroup(IMapLayerGroup parentGroup)
+        private void RestoreDrawOrderSelection(IMapLayer layer)
         {
+            //The node tag will probably be different, but the wrapped
+            //instance is what we're checking for
+            var lyr = RestoreSelection<LayerItem>(trvLayerDrawingOrder, (tag) => { return tag.Tag == layer; });
+            if (lyr != null)
+                OnDrawOrderLayerItemSelected(lyr);
+        }
+
+        private IMapLayerGroup CreateNewGroup(IMapLayerGroup parentGroup)
+        {
             int counter = 0;
             string prefix = Properties.Resources.NewLayerGroup;
             var group = _map.GetGroupByName(prefix);
@@ -463,9 +558,11 @@
             group = _map.AddGroup(prefix);
             if (parentGroup != null)
                 group.Group = parentGroup.Name;
+
+            return group;
         }
 
-        private void CreateLayer(string layerId, IMapLayerGroup parentGroup)
+        private IMapLayer CreateLayer(string layerId, IMapLayerGroup parentGroup)
         {
             int counter = 0;
             string prefix = ResourceIdentifier.GetName(layerId);
@@ -482,6 +579,8 @@
                 layer = _map.AddLayer(parentGroup.Name, name, layerId);
             else
                 layer = _map.AddLayer(null, name, layerId);
+
+            return layer;
         }
 
         private object GetSelectedDrawOrderItem()
@@ -559,8 +658,9 @@
                             grp = _map.BaseMap.AddBaseLayerGroup(GenerateBaseGroupName(_map));
                         }
                     }
-                    grp.AddLayer(GenerateBaseLayerName(layerId, _map.BaseMap), layerId);
+                    var bl = grp.AddLayer(GenerateBaseLayerName(layerId, _map.BaseMap), layerId);
                     _tiledLayerModel.Invalidate();
+                    RestoreBaseLayerSelection(bl);
                 }
             }
         }
@@ -708,33 +808,62 @@
                 var layer = node.Tag as BaseLayerItem;
                 var group = node.Tag as BaseLayerGroupItem;
                 var scale = node.Tag as ScaleItem;
+
+                btnRemoveBaseLayerGroup.Enabled = false;
+                btnRemoveBaseLayer.Enabled = false;
+                btnMoveBaseLayerDown.Enabled = false;
+                btnMoveBaseLayerUp.Enabled = false;
+                btnAddBaseLayer.Enabled = false;
+
                 if (layer != null)
                 {
-                    propertiesPanel.Controls.Clear();
-                    var item = new LayerPropertiesCtrl(layer.Tag, _edSvc.ResourceService);
-                    item.LayerChanged += (s, evt) => { OnResourceChanged(); };
-                    item.Dock = DockStyle.Fill;
-                    propertiesPanel.Controls.Add(item);
+                    OnBaseLayerItemSelected(layer);
                 }
                 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);
+                    OnBaseLayerGroupItemSelected(group);
                 }
                 else if (scale != null)
                 {
-                    propertiesPanel.Controls.Clear();
-                    var item = new FiniteScaleListCtrl(_map);
-                    
-                    item.Dock = DockStyle.Fill;
-                    propertiesPanel.Controls.Add(item);
+                    OnFiniteScaleListSelected();
                 }
             }
         }
 
+        private void OnFiniteScaleListSelected()
+        {
+            propertiesPanel.Controls.Clear();
+            var item = new FiniteScaleListCtrl(_map);
+
+            item.Dock = DockStyle.Fill;
+            propertiesPanel.Controls.Add(item);
+        }
+
+        private void OnBaseLayerGroupItemSelected(BaseLayerGroupItem group)
+        {
+            btnAddBaseLayer.Enabled = true;
+            btnRemoveBaseLayerGroup.Enabled = true;
+
+            propertiesPanel.Controls.Clear();
+            var item = new GroupPropertiesCtrl(group.Tag);
+            item.GroupChanged += (s, evt) => { OnResourceChanged(); };
+            item.Dock = DockStyle.Fill;
+            propertiesPanel.Controls.Add(item);
+        }
+
+        private void OnBaseLayerItemSelected(BaseLayerItem layer)
+        {
+            btnRemoveBaseLayer.Enabled = true;
+            btnMoveBaseLayerDown.Enabled = true;
+            btnMoveBaseLayerUp.Enabled = true;
+
+            propertiesPanel.Controls.Clear();
+            var item = new LayerPropertiesCtrl(layer.Tag, _edSvc.ResourceService);
+            item.LayerChanged += (s, evt) => { OnResourceChanged(); };
+            item.Dock = DockStyle.Fill;
+            propertiesPanel.Controls.Add(item);
+        }
+
         private void trvBaseLayers_MouseDoubleClick(object sender, MouseEventArgs e)
         {
             TreeNodeAdv node = trvBaseLayers.GetNodeAt(new Point(e.X, e.Y));

Modified: trunk/Tools/Maestro/Maestro.Editors/MapDefinition/MapLayersSectionCtrl.resx
===================================================================
--- trunk/Tools/Maestro/Maestro.Editors/MapDefinition/MapLayersSectionCtrl.resx	2011-08-03 06:18:58 UTC (rev 6025)
+++ trunk/Tools/Maestro/Maestro.Editors/MapDefinition/MapLayersSectionCtrl.resx	2011-08-03 14:26:11 UTC (rev 6026)
@@ -204,6 +204,9 @@
   <data name="btnAddGroup.ToolTipText" xml:space="preserve">
     <value>Add a new group</value>
   </data>
+  <data name="btnRemoveGroup.Enabled" type="System.Boolean, mscorlib">
+    <value>False</value>
+  </data>
   <data name="btnRemoveGroup.ImageTransparentColor" type="System.Drawing.Color, System.Drawing">
     <value>Magenta</value>
   </data>
@@ -225,6 +228,9 @@
   <data name="btnGRPAddLayer.ToolTipText" xml:space="preserve">
     <value>Add a new layer</value>
   </data>
+  <data name="btnGRPRemoveLayer.Enabled" type="System.Boolean, mscorlib">
+    <value>False</value>
+  </data>
   <data name="btnGRPRemoveLayer.ImageTransparentColor" type="System.Drawing.Color, System.Drawing">
     <value>Magenta</value>
   </data>
@@ -237,6 +243,9 @@
   <data name="toolStripSeparator3.Size" type="System.Drawing.Size, System.Drawing">
     <value>6, 25</value>
   </data>
+  <data name="btnMoveGroupUp.Enabled" type="System.Boolean, mscorlib">
+    <value>False</value>
+  </data>
   <data name="btnMoveGroupUp.ImageTransparentColor" type="System.Drawing.Color, System.Drawing">
     <value>Magenta</value>
   </data>
@@ -246,6 +255,9 @@
   <data name="btnMoveGroupUp.Text" xml:space="preserve">
     <value>Move the selected group up the logical order</value>
   </data>
+  <data name="btnMoveGroupDown.Enabled" type="System.Boolean, mscorlib">
+    <value>False</value>
+  </data>
   <data name="btnMoveGroupDown.ImageTransparentColor" type="System.Drawing.Color, System.Drawing">
     <value>Magenta</value>
   </data>
@@ -258,6 +270,9 @@
   <data name="toolStripSeparator7.Size" type="System.Drawing.Size, System.Drawing">
     <value>6, 25</value>
   </data>
+  <data name="btnConvertLayerGroupToBaseGroup.Enabled" type="System.Boolean, mscorlib">
+    <value>False</value>
+  </data>
   <data name="btnConvertLayerGroupToBaseGroup.ImageTransparentColor" type="System.Drawing.Color, System.Drawing">
     <value>Magenta</value>
   </data>
@@ -357,6 +372,9 @@
   <data name="btnDLAddLayer.ToolTipText" xml:space="preserve">
     <value>Add new layer</value>
   </data>
+  <data name="btnDLRemoveLayer.Enabled" type="System.Boolean, mscorlib">
+    <value>False</value>
+  </data>
   <data name="btnDLRemoveLayer.ImageTransparentColor" type="System.Drawing.Color, System.Drawing">
     <value>Magenta</value>
   </data>
@@ -369,6 +387,9 @@
   <data name="toolStripSeparator5.Size" type="System.Drawing.Size, System.Drawing">
     <value>6, 25</value>
   </data>
+  <data name="btnDLMoveLayerUp.Enabled" type="System.Boolean, mscorlib">
+    <value>False</value>
+  </data>
   <data name="btnDLMoveLayerUp.ImageTransparentColor" type="System.Drawing.Color, System.Drawing">
     <value>Magenta</value>
   </data>
@@ -378,6 +399,9 @@
   <data name="btnDLMoveLayerUp.ToolTipText" xml:space="preserve">
     <value>Move selected layer up</value>
   </data>
+  <data name="btnDLMoveLayerDown.Enabled" type="System.Boolean, mscorlib">
+    <value>False</value>
+  </data>
   <data name="btnDLMoveLayerDown.ImageTransparentColor" type="System.Drawing.Color, System.Drawing">
     <value>Magenta</value>
   </data>
@@ -390,6 +414,9 @@
   <data name="toolStripSeparator6.Size" type="System.Drawing.Size, System.Drawing">
     <value>6, 25</value>
   </data>
+  <data name="btnDLMoveLayerTop.Enabled" type="System.Boolean, mscorlib">
+    <value>False</value>
+  </data>
   <data name="btnDLMoveLayerTop.ImageTransparentColor" type="System.Drawing.Color, System.Drawing">
     <value>Magenta</value>
   </data>
@@ -399,6 +426,9 @@
   <data name="btnDLMoveLayerTop.ToolTipText" xml:space="preserve">
     <value>Move selected layer to top</value>
   </data>
+  <data name="btnDLMoveLayerBottom.Enabled" type="System.Boolean, mscorlib">
+    <value>False</value>
+  </data>
   <data name="btnDLMoveLayerBottom.ImageTransparentColor" type="System.Drawing.Color, System.Drawing">
     <value>Magenta</value>
   </data>
@@ -498,6 +528,9 @@
   <data name="btnNewBaseLayerGroup.ToolTipText" xml:space="preserve">
     <value>Add a new group</value>
   </data>
+  <data name="btnRemoveBaseLayerGroup.Enabled" type="System.Boolean, mscorlib">
+    <value>False</value>
+  </data>
   <data name="btnRemoveBaseLayerGroup.ImageTransparentColor" type="System.Drawing.Color, System.Drawing">
     <value>Magenta</value>
   </data>
@@ -510,6 +543,9 @@
   <data name="toolStripSeparator2.Size" type="System.Drawing.Size, System.Drawing">
     <value>6, 25</value>
   </data>
+  <data name="btnAddBaseLayer.Enabled" type="System.Boolean, mscorlib">
+    <value>False</value>
+  </data>
   <data name="btnAddBaseLayer.ImageTransparentColor" type="System.Drawing.Color, System.Drawing">
     <value>Magenta</value>
   </data>
@@ -519,6 +555,9 @@
   <data name="btnAddBaseLayer.ToolTipText" xml:space="preserve">
     <value>Add a new layer</value>
   </data>
+  <data name="btnRemoveBaseLayer.Enabled" type="System.Boolean, mscorlib">
+    <value>False</value>
+  </data>
   <data name="btnRemoveBaseLayer.ImageTransparentColor" type="System.Drawing.Color, System.Drawing">
     <value>Magenta</value>
   </data>
@@ -531,6 +570,9 @@
   <data name="toolStripSeparator4.Size" type="System.Drawing.Size, System.Drawing">
     <value>6, 25</value>
   </data>
+  <data name="btnMoveBaseLayerUp.Enabled" type="System.Boolean, mscorlib">
+    <value>False</value>
+  </data>
   <data name="btnMoveBaseLayerUp.ImageTransparentColor" type="System.Drawing.Color, System.Drawing">
     <value>Magenta</value>
   </data>
@@ -540,6 +582,9 @@
   <data name="btnMoveBaseLayerUp.ToolTipText" xml:space="preserve">
     <value>Move selected layer up</value>
   </data>
+  <data name="btnMoveBaseLayerDown.Enabled" type="System.Boolean, mscorlib">
+    <value>False</value>
+  </data>
   <data name="btnMoveBaseLayerDown.ImageTransparentColor" type="System.Drawing.Color, System.Drawing">
     <value>Magenta</value>
   </data>



More information about the mapguide-commits mailing list