[mapguide-commits] r4922 - in sandbox/maestro-2.5: Maestro.Base Maestro.Base/Commands Maestro.Base/Commands/Conditions Maestro.Base/Editor Maestro.Base/UI Maestro.Editors Maestro.Editors/FeatureSource/Providers MaestroAPITests

svn_mapguide at osgeo.org svn_mapguide at osgeo.org
Fri May 21 09:22:47 EDT 2010


Author: jng
Date: 2010-05-21 09:22:47 -0400 (Fri, 21 May 2010)
New Revision: 4922

Added:
   sandbox/maestro-2.5/Maestro.Base/Commands/Conditions/
   sandbox/maestro-2.5/Maestro.Base/Commands/Conditions/ActiveEditorConditionEvaluator.cs
   sandbox/maestro-2.5/Maestro.Base/Commands/Conditions/CloseableDocumentConditionEvaluator.cs
   sandbox/maestro-2.5/Maestro.Base/Commands/Conditions/DebugModeConditionEvaluator.cs
   sandbox/maestro-2.5/Maestro.Base/Commands/Conditions/IsConnectedConditionEvaluator.cs
   sandbox/maestro-2.5/Maestro.Base/Commands/Conditions/MultipleSelectedItemConditionEvaluator.cs
   sandbox/maestro-2.5/Maestro.Base/Commands/Conditions/NotConnectedConditionEvaluator.cs
   sandbox/maestro-2.5/Maestro.Base/Commands/Conditions/SelectedItemConditionEvaluator.cs
   sandbox/maestro-2.5/Maestro.Editors/FeatureSource/Providers/Rdbms/
Modified:
   sandbox/maestro-2.5/Maestro.Base/Editor/EditorContentBase.cs
   sandbox/maestro-2.5/Maestro.Base/Editor/IEditorViewContent.cs
   sandbox/maestro-2.5/Maestro.Base/Editor/XmlEditor.cs
   sandbox/maestro-2.5/Maestro.Base/Maestro.Base.addin
   sandbox/maestro-2.5/Maestro.Base/Maestro.Base.csproj
   sandbox/maestro-2.5/Maestro.Base/UI/SiteExplorer.cs
   sandbox/maestro-2.5/Maestro.Base/Workbench.cs
   sandbox/maestro-2.5/Maestro.Editors/Maestro.Editors.csproj
   sandbox/maestro-2.5/MaestroAPITests/MaestroAPITests.csproj
Log:
This submission adds a few extra properties to IEditorViewContent and adds a whole bunch of command evaluators for certain scenarios. Now most commands should only appear or be enabled if the command is in a valid state to execute.

Added: sandbox/maestro-2.5/Maestro.Base/Commands/Conditions/ActiveEditorConditionEvaluator.cs
===================================================================
--- sandbox/maestro-2.5/Maestro.Base/Commands/Conditions/ActiveEditorConditionEvaluator.cs	                        (rev 0)
+++ sandbox/maestro-2.5/Maestro.Base/Commands/Conditions/ActiveEditorConditionEvaluator.cs	2010-05-21 13:22:47 UTC (rev 4922)
@@ -0,0 +1,65 @@
+#region Disclaimer / License
+// Copyright (C) 2010, Jackie Ng
+// http://trac.osgeo.org/mapguide/wiki/maestro, jumpinjackie at gmail.com
+// 
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+// 
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+// 
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+// 
+#endregion
+using System;
+using System.Collections.Generic;
+using System.Text;
+using ICSharpCode.Core;
+using Maestro.Base.Editor;
+
+namespace Maestro.Base.Commands.Conditions
+{
+    internal class ActiveEditorConditionEvaluator : IConditionEvaluator
+    {
+        public bool IsValid(object caller, Condition condition)
+        {
+            var wb = Workbench.Instance;
+            if (wb != null)
+            {
+                var cnt = wb.ActiveDocumentView;
+                var ed = cnt as IEditorViewContent;
+                string prop = condition.Properties["property"];
+                if (!string.IsNullOrEmpty(prop))
+                {
+                    prop = prop.ToUpper();
+                    switch (prop)
+                    {
+                        case "CANPREVIEW":
+                            return ed != null && ed.CanBePreviewed;
+                        case "CANVALIDATE":
+                            return ed != null && ed.CanBeValidated;
+                        case "CANSAVE":
+                            return ed != null && ed.IsDirty;
+                        case "CANPROFILE":
+                            return ed != null && ed.CanProfile;
+                        case "CANEDITASXML":
+                            return ed != null && ed.CanEditAsXml;
+                        default:
+                            return false;
+                    }
+                }
+                else //No property, then just see if active doc is an editor
+                {
+                    return ed != null;
+                }
+            }
+            return false;
+        }
+    }
+}

Added: sandbox/maestro-2.5/Maestro.Base/Commands/Conditions/CloseableDocumentConditionEvaluator.cs
===================================================================
--- sandbox/maestro-2.5/Maestro.Base/Commands/Conditions/CloseableDocumentConditionEvaluator.cs	                        (rev 0)
+++ sandbox/maestro-2.5/Maestro.Base/Commands/Conditions/CloseableDocumentConditionEvaluator.cs	2010-05-21 13:22:47 UTC (rev 4922)
@@ -0,0 +1,40 @@
+#region Disclaimer / License
+// Copyright (C) 2010, Jackie Ng
+// http://trac.osgeo.org/mapguide/wiki/maestro, jumpinjackie at gmail.com
+// 
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+// 
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+// 
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+// 
+#endregion
+using System;
+using System.Collections.Generic;
+using System.Text;
+using ICSharpCode.Core;
+
+namespace Maestro.Base.Commands.Conditions
+{
+    internal class CloseableDocumentConditionEvaluator : IConditionEvaluator
+    {
+        public bool IsValid(object caller, Condition condition)
+        {
+            var wb = Workbench.Instance;
+            if (wb != null)
+            {
+                var cnt = wb.ActiveDocumentView;
+                return cnt != null && cnt.AllowUserClose;
+            }
+            return false;
+        }
+    }
+}

Added: sandbox/maestro-2.5/Maestro.Base/Commands/Conditions/DebugModeConditionEvaluator.cs
===================================================================
--- sandbox/maestro-2.5/Maestro.Base/Commands/Conditions/DebugModeConditionEvaluator.cs	                        (rev 0)
+++ sandbox/maestro-2.5/Maestro.Base/Commands/Conditions/DebugModeConditionEvaluator.cs	2010-05-21 13:22:47 UTC (rev 4922)
@@ -0,0 +1,38 @@
+#region Disclaimer / License
+// Copyright (C) 2010, Jackie Ng
+// http://trac.osgeo.org/mapguide/wiki/maestro, jumpinjackie at gmail.com
+// 
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+// 
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+// 
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+// 
+#endregion
+using System;
+using System.Collections.Generic;
+using System.Text;
+using ICSharpCode.Core;
+
+namespace Maestro.Base.Commands.Conditions
+{
+    internal class DebugModeConditionEvaluator : IConditionEvaluator
+    {
+        public bool IsValid(object caller, Condition condition)
+        {
+#if DEBUG
+            return true;
+#else
+            return false;
+#endif
+        }
+    }
+}

Added: sandbox/maestro-2.5/Maestro.Base/Commands/Conditions/IsConnectedConditionEvaluator.cs
===================================================================
--- sandbox/maestro-2.5/Maestro.Base/Commands/Conditions/IsConnectedConditionEvaluator.cs	                        (rev 0)
+++ sandbox/maestro-2.5/Maestro.Base/Commands/Conditions/IsConnectedConditionEvaluator.cs	2010-05-21 13:22:47 UTC (rev 4922)
@@ -0,0 +1,39 @@
+#region Disclaimer / License
+// Copyright (C) 2010, Jackie Ng
+// http://trac.osgeo.org/mapguide/wiki/maestro, jumpinjackie at gmail.com
+// 
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+// 
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+// 
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+// 
+#endregion
+using System;
+using System.Collections.Generic;
+using System.Text;
+using ICSharpCode.Core;
+
+namespace Maestro.Base.Commands.Conditions
+{
+    internal class IsConnectedConditionEvaluator : IConditionEvaluator
+    {
+        public bool IsValid(object caller, Condition condition)
+        {
+            var wb = Workbench.Instance;
+            if (wb != null)
+            {
+                return wb.ActiveSiteExplorer == null;
+            }
+            return false;
+        }
+    }
+}

Added: sandbox/maestro-2.5/Maestro.Base/Commands/Conditions/MultipleSelectedItemConditionEvaluator.cs
===================================================================
--- sandbox/maestro-2.5/Maestro.Base/Commands/Conditions/MultipleSelectedItemConditionEvaluator.cs	                        (rev 0)
+++ sandbox/maestro-2.5/Maestro.Base/Commands/Conditions/MultipleSelectedItemConditionEvaluator.cs	2010-05-21 13:22:47 UTC (rev 4922)
@@ -0,0 +1,39 @@
+#region Disclaimer / License
+// Copyright (C) 2010, Jackie Ng
+// http://trac.osgeo.org/mapguide/wiki/maestro, jumpinjackie at gmail.com
+// 
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+// 
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+// 
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+// 
+#endregion
+using System;
+using System.Collections.Generic;
+using System.Text;
+using ICSharpCode.Core;
+
+namespace Maestro.Base.Commands.Conditions
+{
+    internal class MultipleSelectedItemConditionEvaluator : IConditionEvaluator
+    {
+        public bool IsValid(object caller, Condition condition)
+        {
+            var wb = Workbench.Instance;
+            if (wb != null)
+            {
+                return wb.ActiveSiteExplorer != null && wb.ActiveSiteExplorer.SelectedItems.Length > 1;
+            }
+            return false;
+        }
+    }
+}

Added: sandbox/maestro-2.5/Maestro.Base/Commands/Conditions/NotConnectedConditionEvaluator.cs
===================================================================
--- sandbox/maestro-2.5/Maestro.Base/Commands/Conditions/NotConnectedConditionEvaluator.cs	                        (rev 0)
+++ sandbox/maestro-2.5/Maestro.Base/Commands/Conditions/NotConnectedConditionEvaluator.cs	2010-05-21 13:22:47 UTC (rev 4922)
@@ -0,0 +1,39 @@
+#region Disclaimer / License
+// Copyright (C) 2010, Jackie Ng
+// http://trac.osgeo.org/mapguide/wiki/maestro, jumpinjackie at gmail.com
+// 
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+// 
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+// 
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+// 
+#endregion
+using System;
+using System.Collections.Generic;
+using System.Text;
+using ICSharpCode.Core;
+
+namespace Maestro.Base.Commands.Conditions
+{
+    internal class NotConnectedConditionEvaluator : IConditionEvaluator
+    {
+        public bool IsValid(object caller, Condition condition)
+        {
+            var wb = Workbench.Instance;
+            if (wb != null)
+            {
+                return wb.ActiveSiteExplorer != null;
+            }
+            return false;
+        }
+    }
+}

Added: sandbox/maestro-2.5/Maestro.Base/Commands/Conditions/SelectedItemConditionEvaluator.cs
===================================================================
--- sandbox/maestro-2.5/Maestro.Base/Commands/Conditions/SelectedItemConditionEvaluator.cs	                        (rev 0)
+++ sandbox/maestro-2.5/Maestro.Base/Commands/Conditions/SelectedItemConditionEvaluator.cs	2010-05-21 13:22:47 UTC (rev 4922)
@@ -0,0 +1,51 @@
+#region Disclaimer / License
+// Copyright (C) 2010, Jackie Ng
+// http://trac.osgeo.org/mapguide/wiki/maestro, jumpinjackie at gmail.com
+// 
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+// 
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+// 
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+// 
+#endregion
+using System;
+using System.Collections.Generic;
+using System.Text;
+using ICSharpCode.Core;
+
+namespace Maestro.Base.Commands.Conditions
+{
+    internal class SelectedItemConditionEvaluator : IConditionEvaluator
+    {
+        public bool IsValid(object caller, Condition condition)
+        {
+            var wb = Workbench.Instance;
+            if (wb != null)
+            {
+                if (wb.ActiveSiteExplorer != null && wb.ActiveSiteExplorer.SelectedItems.Length == 1)
+                {
+                    var ri = wb.ActiveSiteExplorer.SelectedItems[0];
+                    string prop = condition.Properties["type"];
+                    if (!string.IsNullOrEmpty(prop))
+                    {
+                        return prop.ToUpper() == ri.ResourceType.ToUpper();
+                    }
+                    else
+                    {
+                        return true;
+                    }
+                }
+            }
+            return false;
+        }
+    }
+}

Modified: sandbox/maestro-2.5/Maestro.Base/Editor/EditorContentBase.cs
===================================================================
--- sandbox/maestro-2.5/Maestro.Base/Editor/EditorContentBase.cs	2010-05-21 11:16:39 UTC (rev 4921)
+++ sandbox/maestro-2.5/Maestro.Base/Editor/EditorContentBase.cs	2010-05-21 13:22:47 UTC (rev 4922)
@@ -102,5 +102,20 @@
             get;
             private set;
         }
+
+        public virtual bool CanProfile
+        {
+            get { return false; }
+        }
+
+        public virtual bool CanBeValidated
+        {
+            get { return false; }
+        }
+
+        public virtual bool CanEditAsXml
+        {
+            get { return true; }
+        }
     }
 }

Modified: sandbox/maestro-2.5/Maestro.Base/Editor/IEditorViewContent.cs
===================================================================
--- sandbox/maestro-2.5/Maestro.Base/Editor/IEditorViewContent.cs	2010-05-21 11:16:39 UTC (rev 4921)
+++ sandbox/maestro-2.5/Maestro.Base/Editor/IEditorViewContent.cs	2010-05-21 13:22:47 UTC (rev 4922)
@@ -39,6 +39,21 @@
         IResource Resource { get; }
 
         /// <summary>
+        /// Indicates whether this current resource can be edited with the xml editor
+        /// </summary>
+        bool CanEditAsXml { get; }
+
+        /// <summary>
+        /// Indicates whether this current resource can be profiled
+        /// </summary>
+        bool CanProfile { get; }
+
+        /// <summary>
+        /// Indicates whether this current resource can be validated
+        /// </summary>
+        bool CanBeValidated { get; }
+
+        /// <summary>
         /// Indicates whether this current resource can be upgraded.
         /// </summary>
         bool CanUpgrade { get; }

Modified: sandbox/maestro-2.5/Maestro.Base/Editor/XmlEditor.cs
===================================================================
--- sandbox/maestro-2.5/Maestro.Base/Editor/XmlEditor.cs	2010-05-21 11:16:39 UTC (rev 4921)
+++ sandbox/maestro-2.5/Maestro.Base/Editor/XmlEditor.cs	2010-05-21 13:22:47 UTC (rev 4922)
@@ -108,5 +108,13 @@
             get { return editor.XmlContent; }
             set { editor.XmlContent = value; }
         }
+
+        public override bool CanEditAsXml
+        {
+            get
+            {
+                return false; //We're already in the XML editor!
+            }
+        }
     }
 }

Modified: sandbox/maestro-2.5/Maestro.Base/Maestro.Base.addin
===================================================================
--- sandbox/maestro-2.5/Maestro.Base/Maestro.Base.addin	2010-05-21 11:16:39 UTC (rev 4921)
+++ sandbox/maestro-2.5/Maestro.Base/Maestro.Base.addin	2010-05-21 13:22:47 UTC (rev 4922)
@@ -9,7 +9,15 @@
     </Manifest>
 
     <Runtime>
-        <Import assembly="../Maestro.Base.dll" />
+        <Import assembly="../Maestro.Base.dll">
+            <ConditionEvaluator name="DebugMode" class="Maestro.Base.Commands.Conditions.DebugModeConditionEvaluator" />
+            <ConditionEvaluator name="IsConnected" class="Maestro.Base.Commands.Conditions.IsConnectedConditionEvaluator" />
+            <ConditionEvaluator name="NotConnected" class="Maestro.Base.Commands.Conditions.NotConnectedConditionEvaluator" />
+            <ConditionEvaluator name="EditorFunction" class="Maestro.Base.Commands.Conditions.ActiveEditorConditionEvaluator" />
+            <ConditionEvaluator name="CanClose" class="Maestro.Base.Commands.Conditions.CloseableDocumentConditionEvaluator" />
+            <ConditionEvaluator name="SelectedItem" class="Maestro.Base.Commands.Conditions.SelectedItemConditionEvaluator" />
+            <ConditionEvaluator name="MultipleSelected" class="Maestro.Base.Commands.Conditions.MultipleSelectedItemConditionEvaluator" />
+        </Import>
     </Runtime>
     
     <!-- Main Menu Definition -->
@@ -47,28 +55,30 @@
                       class="Maestro.Base.Commands.NotImplementedCommand" />
         </MenuItem>
         <!-- For testing various APIs, disable for releases -->
-        <MenuItem id="Menu_Test"
-                  type="Menu"
-                  label="Test">
-            <MenuItem id="Menu_Test_OpenResource"
-                      label="Open Resource"
-                      class="Maestro.Base.Commands.Test.OpenResourceCommand" />
-            <MenuItem id="Menu_Test_OpenResourceWithFilter"
-                      label="Open Resource (with filter)"
-                      class="Maestro.Base.Commands.Test.OpenResourceWithFilterCommand" />
-            <MenuItem id="Menu_Test_OpenFolder"
-                      label="Open Folder"
-                      class="Maestro.Base.Commands.Test.OpenFolderCommand" />
-            <MenuItem id="Menu_Test_SelectCoordSys"
-                      label="Select Coordinate System"
-                      class="Maestro.Base.Commands.Test.OpenCoordinateSystemPickerCommand" />
-            <MenuItem id="Menu_Test_OpenSymbolBrowser"
-                      label="Open Symbol Browser"
-                      class="Maestro.Base.Commands.Test.OpenSymbolBrowserCommand" />
-            <MenuItem id="Menu_Test_SelectFdoProvider"
-                      label="Select FDO Provider"
-                      class="Maestro.Base.Commands.Test.SelectFdoProviderCommand" />
-        </MenuItem>
+        <Condition action="Exclude" name="DebugMode">
+            <MenuItem id="Menu_Test"
+                      type="Menu"
+                      label="Test">
+                <MenuItem id="Menu_Test_OpenResource"
+                          label="Open Resource"
+                          class="Maestro.Base.Commands.Test.OpenResourceCommand" />
+                <MenuItem id="Menu_Test_OpenResourceWithFilter"
+                          label="Open Resource (with filter)"
+                          class="Maestro.Base.Commands.Test.OpenResourceWithFilterCommand" />
+                <MenuItem id="Menu_Test_OpenFolder"
+                          label="Open Folder"
+                          class="Maestro.Base.Commands.Test.OpenFolderCommand" />
+                <MenuItem id="Menu_Test_SelectCoordSys"
+                          label="Select Coordinate System"
+                          class="Maestro.Base.Commands.Test.OpenCoordinateSystemPickerCommand" />
+                <MenuItem id="Menu_Test_OpenSymbolBrowser"
+                          label="Open Symbol Browser"
+                          class="Maestro.Base.Commands.Test.OpenSymbolBrowserCommand" />
+                <MenuItem id="Menu_Test_SelectFdoProvider"
+                          label="Select FDO Provider"
+                          class="Maestro.Base.Commands.Test.SelectFdoProviderCommand" />
+            </MenuItem>
+        </Condition>
         <!-- -->
         <MenuItem id="Menu_Tools"
                   type="Menu"
@@ -118,186 +128,213 @@
     
     <!-- Toolbar Definition -->
     <Path name="/Maestro/Shell/Toolbars/Main">
-        <ToolbarItem id="Connect"
-                     icon="plug__plus"
-                     label="${res:Menu_File_Connect}"
-                     tooltip="${res:Menu_File_Connect}"
-                     class="Maestro.Base.Commands.LoginCommand" />
-        <ToolbarItem id="NewItem"
-                     icon="document__plus"
-                     label="${res:Menu_File_NewResource}"
-                     tooltip="${res:Menu_File_NewResource}"
-                     class="Maestro.Base.Commands.NotImplementedCommand" />
-        <ToolbarItem type="Separator" />
-        <ToolbarItem id="CopyItem"
-                     icon="document_copy"
-                     tooltip="${res:Menu_Edit_Copy}"
-                     class="Maestro.Base.Commands.NotImplementedCommand" />
-        <ToolbarItem id="CutItem"
-                     icon="scissors_blue"
-                     tooltip="${res:Menu_Edit_Cut}"
-                     class="Maestro.Base.Commands.NotImplementedCommand" />
-        <ToolbarItem id="PasteItem"
-                     icon="clipboard_paste"
-                     tooltip="${res:Menu_Edit_Paste}"
-                     class="Maestro.Base.Commands.NotImplementedCommand" />
-        <ToolbarItem type="Separator" />
-        <ToolbarItem id="Save"
-                     icon="disk"
-                     tooltip="${res:Menu_File_SaveResource}"
-                     class="Maestro.Base.Commands.SaveResourceCommand" />
-        <ToolbarItem id="SaveAs"
-                     icon="disk__arrow"
-                     tooltip="${res:Menu_File_SaveResourceAs}"
-                     class="Maestro.Base.Commands.SaveResourceAsCommand" />
-        <ToolbarItem id="Preview"
-                     icon="document_search_result"
-                     tooltip="${res:Menu_File_PreviewResource}"
-                     class="Maestro.Base.Commands.NotImplementedCommand" />
+        <Condition action="Disable" name="IsConnected">
+            <ToolbarItem id="Connect"
+                         icon="plug__plus"
+                         label="${res:Menu_File_Connect}"
+                         tooltip="${res:Menu_File_Connect}"
+                         class="Maestro.Base.Commands.LoginCommand" />
+        </Condition>
+        <Condition action="Disable" name="NotConnected">
+            <ToolbarItem id="NewItem"
+                         icon="document__plus"
+                         label="${res:Menu_File_NewResource}"
+                         tooltip="${res:Menu_File_NewResource}"
+                         class="Maestro.Base.Commands.NotImplementedCommand" />
+            <ToolbarItem type="Separator" />
+            <ToolbarItem id="CopyItem"
+                         icon="document_copy"
+                         tooltip="${res:Menu_Edit_Copy}"
+                         class="Maestro.Base.Commands.NotImplementedCommand" />
+            <ToolbarItem id="CutItem"
+                         icon="scissors_blue"
+                         tooltip="${res:Menu_Edit_Cut}"
+                         class="Maestro.Base.Commands.NotImplementedCommand" />
+            <ToolbarItem id="PasteItem"
+                         icon="clipboard_paste"
+                         tooltip="${res:Menu_Edit_Paste}"
+                         class="Maestro.Base.Commands.NotImplementedCommand" />
+            <ToolbarItem type="Separator" />
+        </Condition>
+        <Condition action="Disable" name="EditorFunction" property="CanSave">
+            <ToolbarItem id="Save"
+                         icon="disk"
+                         tooltip="${res:Menu_File_SaveResource}"
+                         class="Maestro.Base.Commands.SaveResourceCommand" />
+            <ToolbarItem id="SaveAs"
+                         icon="disk__arrow"
+                         tooltip="${res:Menu_File_SaveResourceAs}"
+                         class="Maestro.Base.Commands.SaveResourceAsCommand" />
+        </Condition>
+        <Condition action="Disable" name="EditorFunction" property="CanPreview">
+            <ToolbarItem id="Preview"
+                         icon="document_search_result"
+                         tooltip="${res:Menu_File_PreviewResource}"
+                         class="Maestro.Base.Commands.NotImplementedCommand" />
+        </Condition>
         <ToolbarItem id="XmlEdit"
                      icon="document_code"
                      tooltip="${res:Menu_File_EditResourceWithXml}"
                      class="Maestro.Base.Commands.NotImplementedCommand" />
-        <ToolbarItem id="Profile"
-                     icon="clock"
-                     tooltip="${res:Menu_File_ProfileResource}"
-                     class="Maestro.Base.Commands.NotImplementedCommand" />
-        <ToolbarItem id="Validate"
-                     icon="tick"
-                     tooltip="${res:Menu_File_ValidateResource}"
-                     class="Maestro.Base.Commands.NotImplementedCommand" />
+        <Condition action="Disable" name="EditorFunction" property="CanProfile">
+            <ToolbarItem id="Profile"
+                         icon="clock"
+                         tooltip="${res:Menu_File_ProfileResource}"
+                         class="Maestro.Base.Commands.NotImplementedCommand" />
+        </Condition>
+        <Condition action="Disable" name="EditorFunction" property="CanValidate">
+            <ToolbarItem id="Validate"
+                         icon="tick"
+                         tooltip="${res:Menu_File_ValidateResource}"
+                         class="Maestro.Base.Commands.NotImplementedCommand" />
+        </Condition>
         <!-- 
         Only needed if our custom drawn close buttons don't appear on document
         tabs (I'm looking at you Mono). So far this isn't the case. 
         
         This command is a fallback in case there are problems.
         -->
-        <!--
         <ToolbarItem type="Separator" />
-        <ToolbarItem id="CloseDocument"
-                     tooltip="${res:Menu_File_CloseActiveDocument}"
-                     icon="cross"
-                     class="Maestro.Base.Commands.CloseActiveDocumentCommand" />
+        <Condition action="Disable" name="CanClose">
+            <ToolbarItem id="CloseDocument"
+                         tooltip="${res:Menu_File_CloseActiveDocument}"
+                         icon="cross"
+                         class="Maestro.Base.Commands.CloseActiveDocumentCommand" />
+        </Condition>
         -->
     </Path>
     
     <!-- Site Explorer Toolbar -->
     <Path name="/Maestro/Shell/SiteExplorer/Toolbar">
-        <ToolbarItem id="NewItem"
-                     label="${res:Menu_File_NewResource}"
-                     icon="document__plus"
-                     class="Maestro.Base.Commands.NotImplementedCommand" />
-        <ToolbarItem type="Separator" />
-        <ToolbarItem id="DeleteItem"
-                     icon="cross_script"
-                     class="Maestro.Base.Commands.NotImplementedCommand" />
-        <ToolbarItem id="SiteExplorer_Refresh"
-                     icon="arrow-circle-045-left"
-                     class="Maestro.Base.Commands.NotImplementedCommand" />
-        <ToolbarItem id="SiteExplorer_Disconnect"
-                     icon="plug--minus"
-                     class="Maestro.Base.Commands.NotImplementedCommand" />
+        <Condition action="Disable" name="NotConnected">
+            <ToolbarItem id="NewItem"
+                         label="${res:Menu_File_NewResource}"
+                         icon="document__plus"
+                         class="Maestro.Base.Commands.NotImplementedCommand" />
+            <ToolbarItem type="Separator" />
+            <Condition action="Disable" name="SelectedItem">
+                <ToolbarItem id="DeleteItem"
+                             icon="cross_script"
+                             class="Maestro.Base.Commands.NotImplementedCommand" />
+            </Condition>
+            <ToolbarItem id="SiteExplorer_Refresh"
+                         icon="arrow-circle-045-left"
+                         class="Maestro.Base.Commands.NotImplementedCommand" />
+            <ToolbarItem id="SiteExplorer_Disconnect"
+                         icon="plug--minus"
+                         class="Maestro.Base.Commands.NotImplementedCommand" />
+        </Condition>
     </Path>
     
     <!-- Site Explorer Context Menu -->
     <Path name="/Maestro/Shell/SiteExplorer/SelectedFolder">
-        <MenuItem id="CreatePackage"
-                  label="${res:SiteExplorer_SelectedFolder_CreatePackage}"
-                  class="Maestro.Base.Commands.NotImplementedCommand" />
-        <MenuItem id="Delete"
-                  label="${res:SiteExplorer_SelectedItem_Delete}"
-                  class="Maestro.Base.Commands.NotImplementedCommand" />
-        <MenuItem id="LoadPackage"
-                  label="${res:SiteExplorer_SelectedFolder_LoadPackage}"
-                  class="Maestro.Base.Commands.NotImplementedCommand" />
-        <MenuItem type="Separator" />
-        <MenuItem id="Copy"
-                  label="${res:SiteExplorer_SelectedItem_Copy}"
-                  class="Maestro.Base.Commands.NotImplementedCommand" />
-        <MenuItem id="Cut"
-                  label="${res:SiteExplorer_SelectedItem_Cut}"
-                  class="Maestro.Base.Commands.NotImplementedCommand" />
-        <MenuItem id="Paste"
-                  label="${res:SiteExplorer_SelectedFolder_Paste}"
-                  class="Maestro.Base.Commands.NotImplementedCommand" />
+        <Condition action="Disable" name="SelectedItem" type="Folder">
+            <MenuItem id="CreatePackage"
+                      label="${res:SiteExplorer_SelectedFolder_CreatePackage}"
+                      class="Maestro.Base.Commands.NotImplementedCommand" />
+            <MenuItem id="Delete"
+                      label="${res:SiteExplorer_SelectedItem_Delete}"
+                      class="Maestro.Base.Commands.NotImplementedCommand" />
+            <MenuItem id="LoadPackage"
+                      label="${res:SiteExplorer_SelectedFolder_LoadPackage}"
+                      class="Maestro.Base.Commands.NotImplementedCommand" />
+            <MenuItem type="Separator" />
+            <MenuItem id="Copy"
+                      label="${res:SiteExplorer_SelectedItem_Copy}"
+                      class="Maestro.Base.Commands.NotImplementedCommand" />
+            <MenuItem id="Cut"
+                      label="${res:SiteExplorer_SelectedItem_Cut}"
+                      class="Maestro.Base.Commands.NotImplementedCommand" />
+            <MenuItem id="Paste"
+                      label="${res:SiteExplorer_SelectedFolder_Paste}"
+                      class="Maestro.Base.Commands.NotImplementedCommand" />
+        </Condition>
     </Path>
 
     <!-- Site Explorer Context Menu -->
     <Path name="/Maestro/Shell/SiteExplorer/SelectedFolders">
-        <MenuItem id="CreatePackage"
-                  label="${res:SiteExplorer_SelectedFolder_CreatePackage}"
-                  class="Maestro.Base.Commands.NotImplementedCommand" />
-        <MenuItem id="Delete"
-                  label="${res:SiteExplorer_SelectedItem_Delete}"
-                  class="Maestro.Base.Commands.NotImplementedCommand" />
-        <MenuItem type="Separator" />
-        <MenuItem id="Copy"
-                  label="${res:SiteExplorer_SelectedItem_Copy}"
-                  class="Maestro.Base.Commands.NotImplementedCommand" />
-        <MenuItem id="Cut"
-                  label="${res:SiteExplorer_SelectedItem_Cut}"
-                  class="Maestro.Base.Commands.NotImplementedCommand" />
+        <Condition action="Disable" name="MultipleSelected">
+            <MenuItem id="CreatePackage"
+                      label="${res:SiteExplorer_SelectedFolder_CreatePackage}"
+                      class="Maestro.Base.Commands.NotImplementedCommand" />
+            <MenuItem id="Delete"
+                      label="${res:SiteExplorer_SelectedItem_Delete}"
+                      class="Maestro.Base.Commands.NotImplementedCommand" />
+            <MenuItem type="Separator" />
+            <MenuItem id="Copy"
+                      label="${res:SiteExplorer_SelectedItem_Copy}"
+                      class="Maestro.Base.Commands.NotImplementedCommand" />
+            <MenuItem id="Cut"
+                      label="${res:SiteExplorer_SelectedItem_Cut}"
+                      class="Maestro.Base.Commands.NotImplementedCommand" />
+        </Condition>
     </Path>
 
     <!-- Site Explorer Context Menu -->
     <Path name="/Maestro/Shell/SiteExplorer/SelectedDocument">
-        <MenuItem id="Open"
-                  label="${res:SiteExplorer_SelectedItem_Open}"
-                  class="Maestro.Base.Commands.NotImplementedCommand" />
-        <MenuItem id="Rename"
-                  label="${res:SiteExplorer_SelectedItem_Rename}"
-                  class="Maestro.Base.Commands.NotImplementedCommand" />
-        <MenuItem id="Delete"
-                  label="${res:SiteExplorer_SelectedItem_Delete}"
-                  class="Maestro.Base.Commands.NotImplementedCommand" />
-        <MenuItem type="Separator" />
-        <MenuItem id="Copy"
-                  label="${res:SiteExplorer_SelectedItem_Copy}"
-                  class="Maestro.Base.Commands.NotImplementedCommand" />
-        <MenuItem id="Cut"
-                  label="${res:SiteExplorer_SelectedItem_Cut}"
-                  class="Maestro.Base.Commands.NotImplementedCommand" />
-        <MenuItem id="Paste"
-                  label="${res:SiteExplorer_SelectedFolder_Paste}"
-                  class="Maestro.Base.Commands.NotImplementedCommand" />
+        <Condition action="Disable" name="SelectedItem">
+            <MenuItem id="Open"
+                      label="${res:SiteExplorer_SelectedItem_Open}"
+                      class="Maestro.Base.Commands.NotImplementedCommand" />
+            <MenuItem id="Rename"
+                      label="${res:SiteExplorer_SelectedItem_Rename}"
+                      class="Maestro.Base.Commands.NotImplementedCommand" />
+            <MenuItem id="Delete"
+                      label="${res:SiteExplorer_SelectedItem_Delete}"
+                      class="Maestro.Base.Commands.NotImplementedCommand" />
+            <MenuItem type="Separator" />
+            <MenuItem id="Copy"
+                      label="${res:SiteExplorer_SelectedItem_Copy}"
+                      class="Maestro.Base.Commands.NotImplementedCommand" />
+            <MenuItem id="Cut"
+                      label="${res:SiteExplorer_SelectedItem_Cut}"
+                      class="Maestro.Base.Commands.NotImplementedCommand" />
+            <MenuItem id="Paste"
+                      label="${res:SiteExplorer_SelectedFolder_Paste}"
+                      class="Maestro.Base.Commands.NotImplementedCommand" />
+        </Condition>
     </Path>
 
     <!-- Site Explorer Context Menu -->
     <Path name="/Maestro/Shell/SiteExplorer/SelectedDocuments">
-        <MenuItem id="Open"
-                  label="${res:SiteExplorer_SelectedItem_Open}"
-                  class="Maestro.Base.Commands.NotImplementedCommand" />
-        <MenuItem id="Delete"
-                  label="${res:SiteExplorer_SelectedItem_Delete}"
-                  class="Maestro.Base.Commands.NotImplementedCommand" />
-        <MenuItem type="Separator" />
-        <MenuItem id="Copy"
-                  label="${res:SiteExplorer_SelectedItem_Copy}"
-                  class="Maestro.Base.Commands.NotImplementedCommand" />
-        <MenuItem id="Cut"
-                  label="${res:SiteExplorer_SelectedItem_Cut}"
-                  class="Maestro.Base.Commands.NotImplementedCommand" />
+        <Condition action="Disable" name="MultipleSelected">
+            <MenuItem id="Open"
+                      label="${res:SiteExplorer_SelectedItem_Open}"
+                      class="Maestro.Base.Commands.NotImplementedCommand" />
+            <MenuItem id="Delete"
+                      label="${res:SiteExplorer_SelectedItem_Delete}"
+                      class="Maestro.Base.Commands.NotImplementedCommand" />
+            <MenuItem type="Separator" />
+            <MenuItem id="Copy"
+                      label="${res:SiteExplorer_SelectedItem_Copy}"
+                      class="Maestro.Base.Commands.NotImplementedCommand" />
+            <MenuItem id="Cut"
+                      label="${res:SiteExplorer_SelectedItem_Cut}"
+                      class="Maestro.Base.Commands.NotImplementedCommand" />
+        </Condition>
     </Path>
 
     <!-- Site Explorer Context Menu -->
     <Path name="/Maestro/Shell/SiteExplorer/SelectedMixedResources">
-        <MenuItem id="Open"
-                  label="${res:SiteExplorer_SelectedItem_Open}"
-                  class="Maestro.Base.Commands.NotImplementedCommand" />s
-        <MenuItem id="Delete"
-                  label="${res:SiteExplorer_SelectedItem_Delete}"
-                  class="Maestro.Base.Commands.NotImplementedCommand" />
-        <MenuItem type="Separator" />
-        <MenuItem id="CreatePackage"
-                 label="${res:SiteExplorer_SelectedFolder_CreatePackage}"
-                 class="Maestro.Base.Commands.NotImplementedCommand" />
-        <MenuItem type="Separator" />
-        <MenuItem id="Copy"
-                  label="${res:SiteExplorer_SelectedItem_Copy}"
-                  class="Maestro.Base.Commands.NotImplementedCommand" />
-        <MenuItem id="Cut"
-                  label="${res:SiteExplorer_SelectedItem_Cut}"
-                  class="Maestro.Base.Commands.NotImplementedCommand" />
+        <Condition action="Disable" name="MultipleSelected">
+            <MenuItem id="Open"
+                      label="${res:SiteExplorer_SelectedItem_Open}"
+                      class="Maestro.Base.Commands.NotImplementedCommand" />s
+            <MenuItem id="Delete"
+                      label="${res:SiteExplorer_SelectedItem_Delete}"
+                      class="Maestro.Base.Commands.NotImplementedCommand" />
+            <MenuItem type="Separator" />
+            <MenuItem id="CreatePackage"
+                     label="${res:SiteExplorer_SelectedFolder_CreatePackage}"
+                     class="Maestro.Base.Commands.NotImplementedCommand" />
+            <MenuItem type="Separator" />
+            <MenuItem id="Copy"
+                      label="${res:SiteExplorer_SelectedItem_Copy}"
+                      class="Maestro.Base.Commands.NotImplementedCommand" />
+            <MenuItem id="Cut"
+                      label="${res:SiteExplorer_SelectedItem_Cut}"
+                      class="Maestro.Base.Commands.NotImplementedCommand" />
+        </Condition>
     </Path>
     
 </AddIn>
\ No newline at end of file

Modified: sandbox/maestro-2.5/Maestro.Base/Maestro.Base.csproj
===================================================================
--- sandbox/maestro-2.5/Maestro.Base/Maestro.Base.csproj	2010-05-21 11:16:39 UTC (rev 4921)
+++ sandbox/maestro-2.5/Maestro.Base/Maestro.Base.csproj	2010-05-21 13:22:47 UTC (rev 4922)
@@ -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>{F1E2F468-5030-4DBA-968C-9620284AFAA1}</ProjectGuid>
     <OutputType>Library</OutputType>
@@ -40,6 +40,13 @@
   <ItemGroup>
     <Compile Include="Commands\AboutCommand.cs" />
     <Compile Include="Commands\CloseActiveDocumentCommand.cs" />
+    <Compile Include="Commands\Conditions\ActiveEditorConditionEvaluator.cs" />
+    <Compile Include="Commands\Conditions\CloseableDocumentConditionEvaluator.cs" />
+    <Compile Include="Commands\Conditions\IsConnectedConditionEvaluator.cs" />
+    <Compile Include="Commands\Conditions\MultipleSelectedItemConditionEvaluator.cs" />
+    <Compile Include="Commands\Conditions\NotConnectedConditionEvaluator.cs" />
+    <Compile Include="Commands\Conditions\DebugModeConditionEvaluator.cs" />
+    <Compile Include="Commands\Conditions\SelectedItemConditionEvaluator.cs" />
     <Compile Include="Commands\CopyCommand.cs" />
     <Compile Include="Commands\CutCommand.cs" />
     <Compile Include="Commands\LoginCommand.cs" />
@@ -250,12 +257,15 @@
     </EmbeddedResource>
     <EmbeddedResource Include="Editor\FeatureSourceEditor.resx">
       <DependentUpon>FeatureSourceEditor.cs</DependentUpon>
+      <SubType>Designer</SubType>
     </EmbeddedResource>
     <EmbeddedResource Include="Editor\LayerDefinitionEditor.resx">
       <DependentUpon>LayerDefinitionEditor.cs</DependentUpon>
+      <SubType>Designer</SubType>
     </EmbeddedResource>
     <EmbeddedResource Include="Editor\LoadProcedureEditor.resx">
       <DependentUpon>LoadProcedureEditor.cs</DependentUpon>
+      <SubType>Designer</SubType>
     </EmbeddedResource>
     <EmbeddedResource Include="Editor\WebLayoutEditor.resx">
       <DependentUpon>WebLayoutEditor.cs</DependentUpon>

Modified: sandbox/maestro-2.5/Maestro.Base/UI/SiteExplorer.cs
===================================================================
--- sandbox/maestro-2.5/Maestro.Base/UI/SiteExplorer.cs	2010-05-21 11:16:39 UTC (rev 4921)
+++ sandbox/maestro-2.5/Maestro.Base/UI/SiteExplorer.cs	2010-05-21 13:22:47 UTC (rev 4922)
@@ -41,9 +41,19 @@
         public SiteExplorer()
         {
             InitializeComponent();
+            Application.Idle += new EventHandler(OnIdle);
             ndResource.ToolTipProvider = new RepositoryItemToolTipProvider();
         }
 
+        void OnIdle(object sender, EventArgs e)
+        {
+            foreach (var item in tsSiteExplorer.Items)
+            {
+                if (item is IStatusUpdate)
+                    ((IStatusUpdate)item).UpdateStatus();
+            }
+        }
+
         public string ConnectionName
         {
             get;

Modified: sandbox/maestro-2.5/Maestro.Base/Workbench.cs
===================================================================
--- sandbox/maestro-2.5/Maestro.Base/Workbench.cs	2010-05-21 11:16:39 UTC (rev 4921)
+++ sandbox/maestro-2.5/Maestro.Base/Workbench.cs	2010-05-21 13:22:47 UTC (rev 4922)
@@ -341,6 +341,15 @@
                 if (item is IStatusUpdate)
                     (item as IStatusUpdate).UpdateStatus();
             }
+
+            foreach (ToolStrip ts in _toolstrips.Values)
+            {
+                foreach (ToolStripItem item in ts.Items)
+                {
+                    if (item is IStatusUpdate)
+                        (item as IStatusUpdate).UpdateStatus();
+                }
+            }
         }
     }
 

Modified: sandbox/maestro-2.5/Maestro.Editors/Maestro.Editors.csproj
===================================================================
--- sandbox/maestro-2.5/Maestro.Editors/Maestro.Editors.csproj	2010-05-21 11:16:39 UTC (rev 4921)
+++ sandbox/maestro-2.5/Maestro.Editors/Maestro.Editors.csproj	2010-05-21 13:22:47 UTC (rev 4922)
@@ -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>
@@ -417,6 +417,7 @@
     </EmbeddedResource>
     <EmbeddedResource Include="Common\ResourceDataCtrl.resx">
       <DependentUpon>ResourceDataCtrl.cs</DependentUpon>
+      <SubType>Designer</SubType>
     </EmbeddedResource>
     <EmbeddedResource Include="Common\SourceDataCtrl.resx">
       <DependentUpon>SourceDataCtrl.cs</DependentUpon>
@@ -428,6 +429,7 @@
     </EmbeddedResource>
     <EmbeddedResource Include="DrawingSource\DrawingSourceEditorCtrl.resx">
       <DependentUpon>DrawingSourceEditorCtrl.cs</DependentUpon>
+      <SubType>Designer</SubType>
     </EmbeddedResource>
     <EmbeddedResource Include="DrawingSource\SheetSectionControl.resx">
       <DependentUpon>SheetSectionControl.cs</DependentUpon>
@@ -471,15 +473,19 @@
     </EmbeddedResource>
     <EmbeddedResource Include="FeatureSource\Providers\FileBasedCtrl.resx">
       <DependentUpon>FileBasedCtrl.cs</DependentUpon>
+      <SubType>Designer</SubType>
     </EmbeddedResource>
     <EmbeddedResource Include="FeatureSource\Providers\GenericCtrl.resx">
       <DependentUpon>GenericCtrl.cs</DependentUpon>
+      <SubType>Designer</SubType>
     </EmbeddedResource>
     <EmbeddedResource Include="FeatureSource\Providers\Sdf\SdfFileCtrl.resx">
       <DependentUpon>SdfFileCtrl.cs</DependentUpon>
+      <SubType>Designer</SubType>
     </EmbeddedResource>
     <EmbeddedResource Include="FeatureSource\Providers\Shp\ShpFileCtrl.resx">
       <DependentUpon>ShpFileCtrl.cs</DependentUpon>
+      <SubType>Designer</SubType>
     </EmbeddedResource>
     <EmbeddedResource Include="Generic\ResourceDataPanel.resx">
       <DependentUpon>ResourceDataPanel.cs</DependentUpon>
@@ -495,6 +501,7 @@
     </EmbeddedResource>
     <EmbeddedResource Include="Generic\XmlValidationResult.resx">
       <DependentUpon>XmlValidationResult.cs</DependentUpon>
+      <SubType>Designer</SubType>
     </EmbeddedResource>
     <EmbeddedResource Include="LayerDefinition\LayerPropertiesSectionCtrl.resx">
       <DependentUpon>LayerPropertiesSectionCtrl.cs</DependentUpon>

Modified: sandbox/maestro-2.5/MaestroAPITests/MaestroAPITests.csproj
===================================================================
--- sandbox/maestro-2.5/MaestroAPITests/MaestroAPITests.csproj	2010-05-21 11:16:39 UTC (rev 4921)
+++ sandbox/maestro-2.5/MaestroAPITests/MaestroAPITests.csproj	2010-05-21 13:22:47 UTC (rev 4922)
@@ -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>{351D49A3-2E4A-4EC3-AFC2-D56598F44F51}</ProjectGuid>
     <OutputType>Library</OutputType>
@@ -71,6 +71,7 @@
     <EmbeddedResource Include="Properties\Resources.resx">
       <Generator>ResXFileCodeGenerator</Generator>
       <LastGenOutput>Resources.Designer.cs</LastGenOutput>
+      <SubType>Designer</SubType>
     </EmbeddedResource>
   </ItemGroup>
   <ItemGroup>



More information about the mapguide-commits mailing list