[mapguide-commits] r4882 - in sandbox/maestro-2.5: Generated Maestro.Base Maestro.Base/Commands Maestro.Base/Editor Maestro.Base/Properties Maestro.Base/Resources Maestro.Base/Services Maestro.Base/UI Maestro.Editors Maestro.Shared.UI OSGeo.MapGuide.MaestroAPI/ObjectModels Thirdparty/TreeViewAdv/Aga.Controls

svn_mapguide at osgeo.org svn_mapguide at osgeo.org
Fri May 14 09:40:14 EDT 2010


Author: jng
Date: 2010-05-14 09:40:11 -0400 (Fri, 14 May 2010)
New Revision: 4882

Added:
   sandbox/maestro-2.5/Maestro.Base/Commands/CloseActiveDocumentCommand.cs
   sandbox/maestro-2.5/Maestro.Base/Resources/cross.png
   sandbox/maestro-2.5/Maestro.Base/UI/WelcomeScreen.Designer.cs
   sandbox/maestro-2.5/Maestro.Base/UI/WelcomeScreen.cs
   sandbox/maestro-2.5/Maestro.Base/UI/WelcomeScreen.resx
Modified:
   sandbox/maestro-2.5/Generated/ApplicationDefinition-1.0.0.designer.cs
   sandbox/maestro-2.5/Generated/FeatureSource-1.0.0.designer.cs
   sandbox/maestro-2.5/Generated/LayerDefinition-1.0.0.designer.cs
   sandbox/maestro-2.5/Generated/LayerDefinition-1.1.0.designer.cs
   sandbox/maestro-2.5/Generated/LayerDefinition-1.2.0.designer.cs
   sandbox/maestro-2.5/Generated/LayerDefinition-1.3.0.designer.cs
   sandbox/maestro-2.5/Generated/PlatformCommon-1.0.0.designer.cs
   sandbox/maestro-2.5/Generated/SymbolDefinition-1.0.0.designer.cs
   sandbox/maestro-2.5/Generated/SymbolDefinition-1.1.0.designer.cs
   sandbox/maestro-2.5/Maestro.Base/Commands/LoginCommand.cs
   sandbox/maestro-2.5/Maestro.Base/Commands/StartupCommand.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/Properties/Resources.Designer.cs
   sandbox/maestro-2.5/Maestro.Base/Properties/Resources.resx
   sandbox/maestro-2.5/Maestro.Base/Services/OpenResourceManager.cs
   sandbox/maestro-2.5/Maestro.Base/Services/UrlLauncher.cs
   sandbox/maestro-2.5/Maestro.Base/TabFactory.cs
   sandbox/maestro-2.5/Maestro.Base/Workbench.cs
   sandbox/maestro-2.5/Maestro.Base/ZonedContainer.cs
   sandbox/maestro-2.5/Maestro.Editors/Maestro.Editors.csproj
   sandbox/maestro-2.5/Maestro.Shared.UI/CollapsiblePanel.designer.cs
   sandbox/maestro-2.5/OSGeo.MapGuide.MaestroAPI/ObjectModels/ResourceItems.cs
   sandbox/maestro-2.5/OSGeo.MapGuide.MaestroAPI/ObjectModels/readme.txt
   sandbox/maestro-2.5/Thirdparty/TreeViewAdv/Aga.Controls/Aga.Controls.csproj
Log:
This submission includes the following changes:

- Change the ExtendedData property from all generated classes to XmlElement[] to ensure they were being deserialized properly. readme.txt has been updated to document this change, should we ever regenerate this code.
- Added missing XmlIgnore attributes which were causing deserialization crashes in Mono.
- Workaround a nasty Mono bug where closing a tab in a tab control that has a selected tab causes rendering bugs/crashes
- Added a close active document command which is a fallback should my custom tab close button solution doesn't pan out, so far it does so this command is disabled.
- Disabled embedded browser in Mono, it is just too much trouble than its worth. All urls opened will use the system default web browser.
- Added a welcome screen, which is shown on successful login.

Modified: sandbox/maestro-2.5/Generated/ApplicationDefinition-1.0.0.designer.cs
===================================================================
--- sandbox/maestro-2.5/Generated/ApplicationDefinition-1.0.0.designer.cs	2010-05-14 09:44:44 UTC (rev 4881)
+++ sandbox/maestro-2.5/Generated/ApplicationDefinition-1.0.0.designer.cs	2010-05-14 13:40:11 UTC (rev 4882)
@@ -1095,7 +1095,7 @@
     public partial class CustomContentType : System.ComponentModel.INotifyPropertyChanged {
         
         [EditorBrowsable(EditorBrowsableState.Never)]
-        private BindingList<System.Xml.XmlElement> anyField;
+        private System.Xml.XmlElement[] anyField;
         
         private static System.Xml.Serialization.XmlSerializer serializer;
         
@@ -1103,11 +1103,11 @@
         /// CustomContentType class constructor
         /// </summary>
         public CustomContentType() {
-            this.anyField = new BindingList<System.Xml.XmlElement>();
+            this.anyField = new System.Xml.XmlElement[0];
         }
         
         [System.Xml.Serialization.XmlAnyElementAttribute()]
-        public BindingList<System.Xml.XmlElement> Any {
+        public System.Xml.XmlElement[] Any {
             get {
                 return this.anyField;
             }

Modified: sandbox/maestro-2.5/Generated/FeatureSource-1.0.0.designer.cs
===================================================================
--- sandbox/maestro-2.5/Generated/FeatureSource-1.0.0.designer.cs	2010-05-14 09:44:44 UTC (rev 4881)
+++ sandbox/maestro-2.5/Generated/FeatureSource-1.0.0.designer.cs	2010-05-14 13:40:11 UTC (rev 4882)
@@ -635,7 +635,7 @@
     public partial class ExtendedDataType : System.ComponentModel.INotifyPropertyChanged {
         
         [EditorBrowsable(EditorBrowsableState.Never)]
-        private BindingList<System.Xml.XmlElement> anyField;
+        private System.Xml.XmlElement[] anyField;
         
         private static System.Xml.Serialization.XmlSerializer serializer;
         
@@ -643,11 +643,11 @@
         /// ExtendedDataType class constructor
         /// </summary>
         public ExtendedDataType() {
-            this.anyField = new BindingList<System.Xml.XmlElement>();
+            this.anyField = new System.Xml.XmlElement[0];
         }
         
         [System.Xml.Serialization.XmlAnyElementAttribute()]
-        public BindingList<System.Xml.XmlElement> Any {
+        public System.Xml.XmlElement[] Any {
             get {
                 return this.anyField;
             }

Modified: sandbox/maestro-2.5/Generated/LayerDefinition-1.0.0.designer.cs
===================================================================
--- sandbox/maestro-2.5/Generated/LayerDefinition-1.0.0.designer.cs	2010-05-14 09:44:44 UTC (rev 4881)
+++ sandbox/maestro-2.5/Generated/LayerDefinition-1.0.0.designer.cs	2010-05-14 13:40:11 UTC (rev 4882)
@@ -736,7 +736,7 @@
     public partial class ExtendedDataType : System.ComponentModel.INotifyPropertyChanged {
         
         [EditorBrowsable(EditorBrowsableState.Never)]
-        private BindingList<System.Xml.XmlElement> anyField;
+        private System.Xml.XmlElement[] anyField;
         
         private static System.Xml.Serialization.XmlSerializer serializer;
         
@@ -744,11 +744,11 @@
         /// ExtendedDataType class constructor
         /// </summary>
         public ExtendedDataType() {
-            this.anyField = new BindingList<System.Xml.XmlElement>();
+            this.anyField = new System.Xml.XmlElement[0];
         }
         
         [System.Xml.Serialization.XmlAnyElementAttribute()]
-        public BindingList<System.Xml.XmlElement> Any {
+        public System.Xml.XmlElement[] Any {
             get {
                 return this.anyField;
             }

Modified: sandbox/maestro-2.5/Generated/LayerDefinition-1.1.0.designer.cs
===================================================================
--- sandbox/maestro-2.5/Generated/LayerDefinition-1.1.0.designer.cs	2010-05-14 09:44:44 UTC (rev 4881)
+++ sandbox/maestro-2.5/Generated/LayerDefinition-1.1.0.designer.cs	2010-05-14 13:40:11 UTC (rev 4882)
@@ -1433,7 +1433,7 @@
     public partial class ExtendedDataType : System.ComponentModel.INotifyPropertyChanged {
         
         [EditorBrowsable(EditorBrowsableState.Never)]
-        private BindingList<System.Xml.XmlElement> anyField;
+        private System.Xml.XmlElement[] anyField;
         
         private static System.Xml.Serialization.XmlSerializer serializer;
         
@@ -1441,11 +1441,11 @@
         /// ExtendedDataType class constructor
         /// </summary>
         public ExtendedDataType() {
-            this.anyField = new BindingList<System.Xml.XmlElement>();
+            this.anyField = new System.Xml.XmlElement[0];
         }
         
         [System.Xml.Serialization.XmlAnyElementAttribute()]
-        public BindingList<System.Xml.XmlElement> Any {
+        public System.Xml.XmlElement[] Any {
             get {
                 return this.anyField;
             }

Modified: sandbox/maestro-2.5/Generated/LayerDefinition-1.2.0.designer.cs
===================================================================
--- sandbox/maestro-2.5/Generated/LayerDefinition-1.2.0.designer.cs	2010-05-14 09:44:44 UTC (rev 4881)
+++ sandbox/maestro-2.5/Generated/LayerDefinition-1.2.0.designer.cs	2010-05-14 13:40:11 UTC (rev 4882)
@@ -1433,7 +1433,7 @@
     public partial class ExtendedDataType : System.ComponentModel.INotifyPropertyChanged {
         
         [EditorBrowsable(EditorBrowsableState.Never)]
-        private BindingList<System.Xml.XmlElement> anyField;
+        private System.Xml.XmlElement[] anyField;
         
         private static System.Xml.Serialization.XmlSerializer serializer;
         
@@ -1441,11 +1441,11 @@
         /// ExtendedDataType class constructor
         /// </summary>
         public ExtendedDataType() {
-            this.anyField = new BindingList<System.Xml.XmlElement>();
+            this.anyField = new System.Xml.XmlElement[0];
         }
         
         [System.Xml.Serialization.XmlAnyElementAttribute()]
-        public BindingList<System.Xml.XmlElement> Any {
+        public System.Xml.XmlElement[] Any {
             get {
                 return this.anyField;
             }

Modified: sandbox/maestro-2.5/Generated/LayerDefinition-1.3.0.designer.cs
===================================================================
--- sandbox/maestro-2.5/Generated/LayerDefinition-1.3.0.designer.cs	2010-05-14 09:44:44 UTC (rev 4881)
+++ sandbox/maestro-2.5/Generated/LayerDefinition-1.3.0.designer.cs	2010-05-14 13:40:11 UTC (rev 4882)
@@ -1433,7 +1433,7 @@
     public partial class ExtendedDataType : System.ComponentModel.INotifyPropertyChanged {
         
         [EditorBrowsable(EditorBrowsableState.Never)]
-        private BindingList<System.Xml.XmlElement> anyField;
+        private System.Xml.XmlElement[] anyField;
         
         private static System.Xml.Serialization.XmlSerializer serializer;
         
@@ -1441,11 +1441,11 @@
         /// ExtendedDataType class constructor
         /// </summary>
         public ExtendedDataType() {
-            this.anyField = new BindingList<System.Xml.XmlElement>();
+            this.anyField = new System.Xml.XmlElement[0];
         }
         
         [System.Xml.Serialization.XmlAnyElementAttribute()]
-        public BindingList<System.Xml.XmlElement> Any {
+        public System.Xml.XmlElement[] Any {
             get {
                 return this.anyField;
             }

Modified: sandbox/maestro-2.5/Generated/PlatformCommon-1.0.0.designer.cs
===================================================================
--- sandbox/maestro-2.5/Generated/PlatformCommon-1.0.0.designer.cs	2010-05-14 09:44:44 UTC (rev 4881)
+++ sandbox/maestro-2.5/Generated/PlatformCommon-1.0.0.designer.cs	2010-05-14 13:40:11 UTC (rev 4882)
@@ -22,7 +22,7 @@
     public partial class ExtendedDataType : System.ComponentModel.INotifyPropertyChanged {
         
         [EditorBrowsable(EditorBrowsableState.Never)]
-        private BindingList<System.Xml.XmlElement> anyField;
+        private System.Xml.XmlElement[] anyField;
         
         private static System.Xml.Serialization.XmlSerializer serializer;
         
@@ -30,11 +30,11 @@
         /// ExtendedDataType class constructor
         /// </summary>
         public ExtendedDataType() {
-            this.anyField = new BindingList<System.Xml.XmlElement>();
+            this.anyField = new System.Xml.XmlElement[0];
         }
         
         [System.Xml.Serialization.XmlAnyElementAttribute()]
-        public BindingList<System.Xml.XmlElement> Any {
+        public System.Xml.XmlElement[] Any {
             get {
                 return this.anyField;
             }

Modified: sandbox/maestro-2.5/Generated/SymbolDefinition-1.0.0.designer.cs
===================================================================
--- sandbox/maestro-2.5/Generated/SymbolDefinition-1.0.0.designer.cs	2010-05-14 09:44:44 UTC (rev 4881)
+++ sandbox/maestro-2.5/Generated/SymbolDefinition-1.0.0.designer.cs	2010-05-14 13:40:11 UTC (rev 4882)
@@ -1437,7 +1437,7 @@
     public partial class ExtendedDataType : System.ComponentModel.INotifyPropertyChanged {
         
         [EditorBrowsable(EditorBrowsableState.Never)]
-        private BindingList<System.Xml.XmlElement> anyField;
+        private System.Xml.XmlElement[] anyField;
         
         private static System.Xml.Serialization.XmlSerializer serializer;
         
@@ -1445,11 +1445,11 @@
         /// ExtendedDataType class constructor
         /// </summary>
         public ExtendedDataType() {
-            this.anyField = new BindingList<System.Xml.XmlElement>();
+            this.anyField = new System.Xml.XmlElement[0];
         }
         
         [System.Xml.Serialization.XmlAnyElementAttribute()]
-        public BindingList<System.Xml.XmlElement> Any {
+        public System.Xml.XmlElement[] Any {
             get {
                 return this.anyField;
             }

Modified: sandbox/maestro-2.5/Generated/SymbolDefinition-1.1.0.designer.cs
===================================================================
--- sandbox/maestro-2.5/Generated/SymbolDefinition-1.1.0.designer.cs	2010-05-14 09:44:44 UTC (rev 4881)
+++ sandbox/maestro-2.5/Generated/SymbolDefinition-1.1.0.designer.cs	2010-05-14 13:40:11 UTC (rev 4882)
@@ -1437,7 +1437,7 @@
     public partial class ExtendedDataType : System.ComponentModel.INotifyPropertyChanged {
         
         [EditorBrowsable(EditorBrowsableState.Never)]
-        private BindingList<System.Xml.XmlElement> anyField;
+        private System.Xml.XmlElement[] anyField;
         
         private static System.Xml.Serialization.XmlSerializer serializer;
         
@@ -1445,11 +1445,11 @@
         /// ExtendedDataType class constructor
         /// </summary>
         public ExtendedDataType() {
-            this.anyField = new BindingList<System.Xml.XmlElement>();
+            this.anyField = new System.Xml.XmlElement[0];
         }
         
         [System.Xml.Serialization.XmlAnyElementAttribute()]
-        public BindingList<System.Xml.XmlElement> Any {
+        public System.Xml.XmlElement[] Any {
             get {
                 return this.anyField;
             }

Added: sandbox/maestro-2.5/Maestro.Base/Commands/CloseActiveDocumentCommand.cs
===================================================================
--- sandbox/maestro-2.5/Maestro.Base/Commands/CloseActiveDocumentCommand.cs	                        (rev 0)
+++ sandbox/maestro-2.5/Maestro.Base/Commands/CloseActiveDocumentCommand.cs	2010-05-14 13:40:11 UTC (rev 4882)
@@ -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
+{
+    internal class CloseActiveDocumentCommand : AbstractMenuCommand
+    {
+        public override void Run()
+        {
+            var wb = Workbench.Instance;
+            var cnt = wb.ActiveDocumentView;
+            if (cnt != null && cnt.AllowUserClose)
+            {
+                cnt.Close();
+            }
+        }
+    }
+}

Modified: sandbox/maestro-2.5/Maestro.Base/Commands/LoginCommand.cs
===================================================================
--- sandbox/maestro-2.5/Maestro.Base/Commands/LoginCommand.cs	2010-05-14 09:44:44 UTC (rev 4881)
+++ sandbox/maestro-2.5/Maestro.Base/Commands/LoginCommand.cs	2010-05-14 13:40:11 UTC (rev 4882)
@@ -25,6 +25,7 @@
 using ICSharpCode.Core.Services;
 using Maestro.Base.Services;
 using System.Diagnostics;
+using Maestro.Base.UI;
 
 namespace Maestro.Base.Commands
 {
@@ -43,6 +44,10 @@
 
                 LoggingService.Info("Connection created: " + conn.DisplayName);
                 mgr.AddConnection(conn.DisplayName, conn);
+
+                //Show the welcome screen
+                var vmgr = ServiceRegistry.GetService<ViewContentManager>();
+                vmgr.ShowContent<WelcomeScreen>();
             }
         }
     }

Modified: sandbox/maestro-2.5/Maestro.Base/Commands/StartupCommand.cs
===================================================================
--- sandbox/maestro-2.5/Maestro.Base/Commands/StartupCommand.cs	2010-05-14 09:44:44 UTC (rev 4881)
+++ sandbox/maestro-2.5/Maestro.Base/Commands/StartupCommand.cs	2010-05-14 13:40:11 UTC (rev 4882)
@@ -49,10 +49,6 @@
 
                 //Show messages
                 mgr.OpenContent<MessageViewer>(ViewRegion.Bottom);
-                
-                //Show maestro home page
-                var launcher = ServiceRegistry.GetService<UrlLauncher>();
-                launcher.OpenUrlEmbedded("http://trac.osgeo.org/mapguide/wiki/maestro", false);
 
                 new LoginCommand().Run();
             };

Modified: sandbox/maestro-2.5/Maestro.Base/Editor/XmlEditor.cs
===================================================================
--- sandbox/maestro-2.5/Maestro.Base/Editor/XmlEditor.cs	2010-05-14 09:44:44 UTC (rev 4881)
+++ sandbox/maestro-2.5/Maestro.Base/Editor/XmlEditor.cs	2010-05-14 13:40:11 UTC (rev 4882)
@@ -48,7 +48,7 @@
         protected override void Bind(OSGeo.MapGuide.MaestroAPI.Resource.IResource value)
         {
             var stream = value.CurrentConnection.ResourceService.SerializeObject(value);
-            using (var reader = new StreamReader(stream))
+            using (var reader = new StreamReader(stream, Encoding.UTF8, true))
             {
                 _editor.XmlContent = reader.ReadToEnd();
             }

Modified: sandbox/maestro-2.5/Maestro.Base/Maestro.Base.addin
===================================================================
--- sandbox/maestro-2.5/Maestro.Base/Maestro.Base.addin	2010-05-14 09:44:44 UTC (rev 4881)
+++ sandbox/maestro-2.5/Maestro.Base/Maestro.Base.addin	2010-05-14 13:40:11 UTC (rev 4882)
@@ -89,6 +89,7 @@
     <!-- Singleton view content -->
     <Path name="/Maestro/Shell/SingleViewContent">
         <Class id="MessageViewer" class="Maestro.Base.UI.MessageViewer" />
+        <Class id="WelcomeScreen" class="Maestro.Base.UI.WelcomeScreen" />
     </Path>
     
     <!-- Toolbar Definition -->
@@ -96,40 +97,64 @@
         <ToolbarItem id="Connect"
                      icon="plug__plus"
                      label="${res:Menu_File_Connect}"
+                     tooltip="${res:Menu_File_Connect}"
                      class="Maestro.Base.Commands.NotImplementedCommand" />
         <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.NotImplementedCommand" />
         <ToolbarItem id="SaveAs"
                      icon="disk__arrow"
+                     tooltip="${res:Menu_File_SaveResourceAs}"
                      class="Maestro.Base.Commands.NotImplementedCommand" />
         <ToolbarItem id="Preview"
                      icon="document_search_result"
+                     tooltip="${res:Menu_File_PreviewResource}"
                      class="Maestro.Base.Commands.NotImplementedCommand" />
         <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" />
+        <!-- 
+        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" />
+        -->
     </Path>
     
     <!-- Site Explorer Toolbar -->

Modified: sandbox/maestro-2.5/Maestro.Base/Maestro.Base.csproj
===================================================================
--- sandbox/maestro-2.5/Maestro.Base/Maestro.Base.csproj	2010-05-14 09:44:44 UTC (rev 4881)
+++ sandbox/maestro-2.5/Maestro.Base/Maestro.Base.csproj	2010-05-14 13:40:11 UTC (rev 4882)
@@ -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>
@@ -43,6 +43,7 @@
   </ItemGroup>
   <ItemGroup>
     <Compile Include="Commands\AboutCommand.cs" />
+    <Compile Include="Commands\CloseActiveDocumentCommand.cs" />
     <Compile Include="Commands\CopyCommand.cs" />
     <Compile Include="Commands\CutCommand.cs" />
     <Compile Include="Commands\LoginCommand.cs" />
@@ -135,6 +136,12 @@
       <DependentUpon>SiteExplorer.cs</DependentUpon>
     </Compile>
     <Compile Include="TabFactory.cs" />
+    <Compile Include="UI\WelcomeScreen.cs">
+      <SubType>UserControl</SubType>
+    </Compile>
+    <Compile Include="UI\WelcomeScreen.Designer.cs">
+      <DependentUpon>WelcomeScreen.cs</DependentUpon>
+    </Compile>
     <Compile Include="ViewContentBase.cs">
       <SubType>UserControl</SubType>
     </Compile>
@@ -157,6 +164,7 @@
   </ItemGroup>
   <ItemGroup>
     <Content Include="Maestro.Base.addin" />
+    <None Include="Resources\cross.png" />
     <None Include="Resources\blueprints.png" />
     <None Include="Resources\folder-horizontal.png" />
     <None Include="Resources\document.png" />
@@ -201,12 +209,15 @@
   <ItemGroup>
     <EmbeddedResource Include="Editor\EditorContentBase.resx">
       <DependentUpon>EditorContentBase.cs</DependentUpon>
+      <SubType>Designer</SubType>
     </EmbeddedResource>
     <EmbeddedResource Include="Editor\WebLayoutEditor.resx">
       <DependentUpon>WebLayoutEditor.cs</DependentUpon>
+      <SubType>Designer</SubType>
     </EmbeddedResource>
     <EmbeddedResource Include="Editor\XmlEditor.resx">
       <DependentUpon>XmlEditor.cs</DependentUpon>
+      <SubType>Designer</SubType>
     </EmbeddedResource>
     <EmbeddedResource Include="Properties\Resources.resx">
       <Generator>ResXFileCodeGenerator</Generator>
@@ -223,14 +234,20 @@
     </EmbeddedResource>
     <EmbeddedResource Include="UI\MessageViewer.resx">
       <DependentUpon>MessageViewer.cs</DependentUpon>
+      <SubType>Designer</SubType>
     </EmbeddedResource>
     <EmbeddedResource Include="UI\NewResourceDialog.resx">
       <DependentUpon>NewResourceDialog.cs</DependentUpon>
+      <SubType>Designer</SubType>
     </EmbeddedResource>
     <EmbeddedResource Include="UI\SiteExplorer.resx">
       <DependentUpon>SiteExplorer.cs</DependentUpon>
       <SubType>Designer</SubType>
     </EmbeddedResource>
+    <EmbeddedResource Include="UI\WelcomeScreen.resx">
+      <DependentUpon>WelcomeScreen.cs</DependentUpon>
+      <SubType>Designer</SubType>
+    </EmbeddedResource>
     <EmbeddedResource Include="Workbench.resx">
       <DependentUpon>Workbench.cs</DependentUpon>
       <SubType>Designer</SubType>

Modified: sandbox/maestro-2.5/Maestro.Base/Properties/Resources.Designer.cs
===================================================================
--- sandbox/maestro-2.5/Maestro.Base/Properties/Resources.Designer.cs	2010-05-14 09:44:44 UTC (rev 4881)
+++ sandbox/maestro-2.5/Maestro.Base/Properties/Resources.Designer.cs	2010-05-14 13:40:11 UTC (rev 4882)
@@ -202,6 +202,22 @@
             }
         }
         
+        /// <summary>
+        ///   Looks up a localized string similar to Getting Started.
+        /// </summary>
+        internal static string Content_Welcome {
+            get {
+                return ResourceManager.GetString("Content_Welcome", resourceCulture);
+            }
+        }
+        
+        internal static System.Drawing.Bitmap cross {
+            get {
+                object obj = ResourceManager.GetObject("cross", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
         internal static System.Drawing.Bitmap cross_circle {
             get {
                 object obj = ResourceManager.GetObject("cross-circle", resourceCulture);
@@ -410,6 +426,15 @@
         }
         
         /// <summary>
+        ///   Looks up a localized string similar to Close Active Document.
+        /// </summary>
+        internal static string Menu_File_CloseActiveDocument {
+            get {
+                return ResourceManager.GetString("Menu_File_CloseActiveDocument", resourceCulture);
+            }
+        }
+        
+        /// <summary>
         ///   Looks up a localized string similar to Connect.
         /// </summary>
         internal static string Menu_File_Connect {
@@ -428,6 +453,15 @@
         }
         
         /// <summary>
+        ///   Looks up a localized string similar to Edit Resource with XML Editor.
+        /// </summary>
+        internal static string Menu_File_EditResourceWithXml {
+            get {
+                return ResourceManager.GetString("Menu_File_EditResourceWithXml", resourceCulture);
+            }
+        }
+        
+        /// <summary>
         ///   Looks up a localized string similar to Login.
         /// </summary>
         internal static string Menu_File_Login {
@@ -446,6 +480,24 @@
         }
         
         /// <summary>
+        ///   Looks up a localized string similar to Preview Resource.
+        /// </summary>
+        internal static string Menu_File_PreviewResource {
+            get {
+                return ResourceManager.GetString("Menu_File_PreviewResource", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Profile Resource.
+        /// </summary>
+        internal static string Menu_File_ProfileResource {
+            get {
+                return ResourceManager.GetString("Menu_File_ProfileResource", resourceCulture);
+            }
+        }
+        
+        /// <summary>
         ///   Looks up a localized string similar to Quit.
         /// </summary>
         internal static string Menu_File_Quit {
@@ -455,6 +507,33 @@
         }
         
         /// <summary>
+        ///   Looks up a localized string similar to Save Resource.
+        /// </summary>
+        internal static string Menu_File_SaveResource {
+            get {
+                return ResourceManager.GetString("Menu_File_SaveResource", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Save Resource As.
+        /// </summary>
+        internal static string Menu_File_SaveResourceAs {
+            get {
+                return ResourceManager.GetString("Menu_File_SaveResourceAs", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Validate Resource.
+        /// </summary>
+        internal static string Menu_File_ValidateResource {
+            get {
+                return ResourceManager.GetString("Menu_File_ValidateResource", resourceCulture);
+            }
+        }
+        
+        /// <summary>
         ///   Looks up a localized string similar to Help.
         /// </summary>
         internal static string Menu_Help {

Modified: sandbox/maestro-2.5/Maestro.Base/Properties/Resources.resx
===================================================================
--- sandbox/maestro-2.5/Maestro.Base/Properties/Resources.resx	2010-05-14 09:44:44 UTC (rev 4881)
+++ sandbox/maestro-2.5/Maestro.Base/Properties/Resources.resx	2010-05-14 13:40:11 UTC (rev 4882)
@@ -367,4 +367,31 @@
   <data name="SiteExplorer_SelectedItem_Rename" xml:space="preserve">
     <value>Rename</value>
   </data>
+  <data name="Content_Welcome" xml:space="preserve">
+    <value>Getting Started</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="Menu_File_CloseActiveDocument" xml:space="preserve">
+    <value>Close Active Document</value>
+  </data>
+  <data name="Menu_File_EditResourceWithXml" xml:space="preserve">
+    <value>Edit Resource with XML Editor</value>
+  </data>
+  <data name="Menu_File_PreviewResource" xml:space="preserve">
+    <value>Preview Resource</value>
+  </data>
+  <data name="Menu_File_ProfileResource" xml:space="preserve">
+    <value>Profile Resource</value>
+  </data>
+  <data name="Menu_File_SaveResource" xml:space="preserve">
+    <value>Save Resource</value>
+  </data>
+  <data name="Menu_File_SaveResourceAs" xml:space="preserve">
+    <value>Save Resource As</value>
+  </data>
+  <data name="Menu_File_ValidateResource" xml:space="preserve">
+    <value>Validate Resource</value>
+  </data>
 </root>
\ No newline at end of file

Added: sandbox/maestro-2.5/Maestro.Base/Resources/cross.png
===================================================================
(Binary files differ)


Property changes on: sandbox/maestro-2.5/Maestro.Base/Resources/cross.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Modified: sandbox/maestro-2.5/Maestro.Base/Services/OpenResourceManager.cs
===================================================================
--- sandbox/maestro-2.5/Maestro.Base/Services/OpenResourceManager.cs	2010-05-14 09:44:44 UTC (rev 4881)
+++ sandbox/maestro-2.5/Maestro.Base/Services/OpenResourceManager.cs	2010-05-14 13:40:11 UTC (rev 4882)
@@ -47,8 +47,18 @@
             if (!_openItems.ContainsKey(item.ResourceId))
             {
                 var svc = ServiceRegistry.GetService<ViewContentManager>();
+                IResource res = null;
+                try
+                {
+                    res = (IResource)conn.ResourceService.GetResource(item.ResourceId);
+                }
+                catch (Exception ex)
+                {
+                    MessageService.ShowError(ex);
+                    return;
+                }
+
                 var ed = svc.OpenContent<XmlEditor>(ViewRegion.Document);
-                IResource res = (IResource)conn.ResourceService.GetResource(item.ResourceId);
                 ed.Resource = res;
                 _openItems[item.ResourceId] = ed;
                 ed.ViewContentClosing += (sender, e) =>

Modified: sandbox/maestro-2.5/Maestro.Base/Services/UrlLauncher.cs
===================================================================
--- sandbox/maestro-2.5/Maestro.Base/Services/UrlLauncher.cs	2010-05-14 09:44:44 UTC (rev 4881)
+++ sandbox/maestro-2.5/Maestro.Base/Services/UrlLauncher.cs	2010-05-14 13:40:11 UTC (rev 4882)
@@ -23,6 +23,7 @@
 using ICSharpCode.Core;
 using System.Diagnostics;
 using Maestro.Base.UI;
+using OSGeo.MapGuide.MaestroAPI;
 
 namespace Maestro.Base.Services
 {
@@ -34,9 +35,10 @@
             LoggingService.Info(Properties.Resources.Service_Init_Url_Launcher);
         }
 
-        private bool CanUseEmbeddedWebBrowser
+        public bool CanUseEmbeddedWebBrowser
         {
-            get { return Environment.OSVersion.Platform != PlatformID.MacOSX; } //There's no embedded wb for Mono on Mac (or so I'm told)
+            //Mono's web browser is too unwieldy
+            get { return Platform.IsWindows; } 
         }
 
         /// <summary>

Modified: sandbox/maestro-2.5/Maestro.Base/TabFactory.cs
===================================================================
--- sandbox/maestro-2.5/Maestro.Base/TabFactory.cs	2010-05-14 09:44:44 UTC (rev 4881)
+++ sandbox/maestro-2.5/Maestro.Base/TabFactory.cs	2010-05-14 13:40:11 UTC (rev 4882)
@@ -81,7 +81,34 @@
                     var tabs = page.Parent as TabControl;
                     if (tabs != null && tabs.TabPages.Contains(page))
                     {
+                        int idx = -1;
+
+                        //HACK: Mono (2.4) will chuck a hissy fit if we remove
+                        //a tab from a TabControl that has a selected tab so we
+                        //have to null the selected tab, but this cause weird
+                        //visual effects once the tab is removed, so we record
+                        //the selected index, so we can assign the one beside it
+                        //to be the selected tab after removal.
+                        if (tabs.SelectedTab == page)
+                        {
+                            idx = tabs.SelectedIndex;
+                            tabs.SelectedTab = null;
+                        }
                         tabs.TabPages.Remove(page);
+
+                        if (idx > 0)
+                        {
+                            idx--;
+                            tabs.SelectedIndex = idx;
+                        }
+                        else 
+                        {
+                            //Set to first tab if available.
+                            if (tabs.TabCount > 0)
+                            {
+                                tabs.SelectedIndex = 0;
+                            }
+                        }
                     }
                 };
             }

Added: sandbox/maestro-2.5/Maestro.Base/UI/WelcomeScreen.Designer.cs
===================================================================
--- sandbox/maestro-2.5/Maestro.Base/UI/WelcomeScreen.Designer.cs	                        (rev 0)
+++ sandbox/maestro-2.5/Maestro.Base/UI/WelcomeScreen.Designer.cs	2010-05-14 13:40:11 UTC (rev 4882)
@@ -0,0 +1,175 @@
+namespace Maestro.Base.UI
+{
+    partial class WelcomeScreen
+    {
+        /// <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()
+        {
+            System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(WelcomeScreen));
+            this.panel1 = new System.Windows.Forms.Panel();
+            this.label2 = new System.Windows.Forms.Label();
+            this.label1 = new System.Windows.Forms.Label();
+            this.pictureBox1 = new System.Windows.Forms.PictureBox();
+            this.label3 = new System.Windows.Forms.Label();
+            this.linkLabel1 = new System.Windows.Forms.LinkLabel();
+            this.linkLabel2 = new System.Windows.Forms.LinkLabel();
+            this.linkLabel3 = new System.Windows.Forms.LinkLabel();
+            this.linkLabel4 = new System.Windows.Forms.LinkLabel();
+            this.panel1.SuspendLayout();
+            ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit();
+            this.SuspendLayout();
+            // 
+            // panel1
+            // 
+            this.panel1.BackColor = System.Drawing.Color.White;
+            this.panel1.Controls.Add(this.label2);
+            this.panel1.Controls.Add(this.label1);
+            this.panel1.Controls.Add(this.pictureBox1);
+            this.panel1.Dock = System.Windows.Forms.DockStyle.Top;
+            this.panel1.Location = new System.Drawing.Point(0, 0);
+            this.panel1.Name = "panel1";
+            this.panel1.Size = new System.Drawing.Size(603, 80);
+            this.panel1.TabIndex = 0;
+            // 
+            // label2
+            // 
+            this.label2.AutoSize = true;
+            this.label2.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+            this.label2.Location = new System.Drawing.Point(99, 55);
+            this.label2.Name = "label2";
+            this.label2.Size = new System.Drawing.Size(96, 16);
+            this.label2.TabIndex = 3;
+            this.label2.Text = "Getting Started";
+            // 
+            // label1
+            // 
+            this.label1.AutoSize = true;
+            this.label1.Font = new System.Drawing.Font("Tahoma", 21.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+            this.label1.Location = new System.Drawing.Point(96, 11);
+            this.label1.Name = "label1";
+            this.label1.Size = new System.Drawing.Size(251, 35);
+            this.label1.TabIndex = 2;
+            this.label1.Text = "MapGuide Maestro";
+            // 
+            // pictureBox1
+            // 
+            this.pictureBox1.Image = ((System.Drawing.Image)(resources.GetObject("pictureBox1.Image")));
+            this.pictureBox1.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.pictureBox1.Location = new System.Drawing.Point(0, 0);
+            this.pictureBox1.Name = "pictureBox1";
+            this.pictureBox1.Size = new System.Drawing.Size(80, 80);
+            this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage;
+            this.pictureBox1.TabIndex = 1;
+            this.pictureBox1.TabStop = false;
+            // 
+            // label3
+            // 
+            this.label3.AutoSize = true;
+            this.label3.Font = new System.Drawing.Font("Tahoma", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+            this.label3.ForeColor = System.Drawing.SystemColors.ControlText;
+            this.label3.Location = new System.Drawing.Point(20, 104);
+            this.label3.Name = "label3";
+            this.label3.Size = new System.Drawing.Size(131, 19);
+            this.label3.TabIndex = 1;
+            this.label3.Text = "Common Actions";
+            // 
+            // linkLabel1
+            // 
+            this.linkLabel1.AutoSize = true;
+            this.linkLabel1.Font = new System.Drawing.Font("Tahoma", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+            this.linkLabel1.Location = new System.Drawing.Point(56, 174);
+            this.linkLabel1.Name = "linkLabel1";
+            this.linkLabel1.Size = new System.Drawing.Size(139, 16);
+            this.linkLabel1.TabIndex = 2;
+            this.linkLabel1.TabStop = true;
+            this.linkLabel1.Text = "Create a new resource";
+            // 
+            // linkLabel2
+            // 
+            this.linkLabel2.AutoSize = true;
+            this.linkLabel2.Font = new System.Drawing.Font("Tahoma", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+            this.linkLabel2.Location = new System.Drawing.Point(56, 228);
+            this.linkLabel2.Name = "linkLabel2";
+            this.linkLabel2.Size = new System.Drawing.Size(97, 16);
+            this.linkLabel2.TabIndex = 3;
+            this.linkLabel2.TabStop = true;
+            this.linkLabel2.Text = "Load a Package";
+            // 
+            // linkLabel3
+            // 
+            this.linkLabel3.AutoSize = true;
+            this.linkLabel3.Font = new System.Drawing.Font("Tahoma", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+            this.linkLabel3.Location = new System.Drawing.Point(56, 257);
+            this.linkLabel3.Name = "linkLabel3";
+            this.linkLabel3.Size = new System.Drawing.Size(108, 16);
+            this.linkLabel3.TabIndex = 4;
+            this.linkLabel3.TabStop = true;
+            this.linkLabel3.Text = "Create a Package";
+            // 
+            // linkLabel4
+            // 
+            this.linkLabel4.AutoSize = true;
+            this.linkLabel4.Font = new System.Drawing.Font("Tahoma", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+            this.linkLabel4.Location = new System.Drawing.Point(56, 144);
+            this.linkLabel4.Name = "linkLabel4";
+            this.linkLabel4.Size = new System.Drawing.Size(174, 16);
+            this.linkLabel4.TabIndex = 5;
+            this.linkLabel4.TabStop = true;
+            this.linkLabel4.Text = "Load data into this repository";
+            // 
+            // WelcomeScreen
+            // 
+            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+            this.Controls.Add(this.linkLabel4);
+            this.Controls.Add(this.linkLabel3);
+            this.Controls.Add(this.linkLabel2);
+            this.Controls.Add(this.linkLabel1);
+            this.Controls.Add(this.label3);
+            this.Controls.Add(this.panel1);
+            this.Name = "WelcomeScreen";
+            this.Size = new System.Drawing.Size(603, 418);
+            this.panel1.ResumeLayout(false);
+            this.panel1.PerformLayout();
+            ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit();
+            this.ResumeLayout(false);
+            this.PerformLayout();
+
+        }
+
+        #endregion
+
+        private System.Windows.Forms.Panel panel1;
+        private System.Windows.Forms.PictureBox pictureBox1;
+        private System.Windows.Forms.Label label2;
+        private System.Windows.Forms.Label label1;
+        private System.Windows.Forms.Label label3;
+        private System.Windows.Forms.LinkLabel linkLabel1;
+        private System.Windows.Forms.LinkLabel linkLabel2;
+        private System.Windows.Forms.LinkLabel linkLabel3;
+        private System.Windows.Forms.LinkLabel linkLabel4;
+    }
+}

Added: sandbox/maestro-2.5/Maestro.Base/UI/WelcomeScreen.cs
===================================================================
--- sandbox/maestro-2.5/Maestro.Base/UI/WelcomeScreen.cs	                        (rev 0)
+++ sandbox/maestro-2.5/Maestro.Base/UI/WelcomeScreen.cs	2010-05-14 13:40:11 UTC (rev 4882)
@@ -0,0 +1,46 @@
+#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.ComponentModel;
+using System.Drawing;
+using System.Data;
+using System.Text;
+using System.Windows.Forms;
+
+namespace Maestro.Base.UI
+{
+    public partial class WelcomeScreen : SingletonViewContent
+    {
+        public WelcomeScreen()
+        {
+            InitializeComponent();
+            this.Title = Properties.Resources.Content_Welcome;
+        }
+
+        public override ViewRegion DefaultRegion
+        {
+            get
+            {
+                return ViewRegion.Document;
+            }
+        }
+    }
+}

Added: sandbox/maestro-2.5/Maestro.Base/UI/WelcomeScreen.resx
===================================================================
--- sandbox/maestro-2.5/Maestro.Base/UI/WelcomeScreen.resx	                        (rev 0)
+++ sandbox/maestro-2.5/Maestro.Base/UI/WelcomeScreen.resx	2010-05-14 13:40:11 UTC (rev 4882)
@@ -0,0 +1,997 @@
+<?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>
+  <assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
+  <data name="pictureBox1.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        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
+</value>
+  </data>
+</root>
\ No newline at end of file

Modified: sandbox/maestro-2.5/Maestro.Base/Workbench.cs
===================================================================
--- sandbox/maestro-2.5/Maestro.Base/Workbench.cs	2010-05-14 09:44:44 UTC (rev 4881)
+++ sandbox/maestro-2.5/Maestro.Base/Workbench.cs	2010-05-14 13:40:11 UTC (rev 4882)
@@ -277,6 +277,14 @@
         }
 
         /// <summary>
+        /// Gets the active view in the document region
+        /// </summary>
+        public IViewContent ActiveDocumentView
+        {
+            get { return contentPanel.ActiveDocumentView; }
+        }
+
+        /// <summary>
         /// Gets the active site explorer
         /// </summary>
         public ISiteExplorer ActiveSiteExplorer

Modified: sandbox/maestro-2.5/Maestro.Base/ZonedContainer.cs
===================================================================
--- sandbox/maestro-2.5/Maestro.Base/ZonedContainer.cs	2010-05-14 09:44:44 UTC (rev 4881)
+++ sandbox/maestro-2.5/Maestro.Base/ZonedContainer.cs	2010-05-14 13:40:11 UTC (rev 4882)
@@ -26,6 +26,7 @@
 using System.Windows.Forms;
 using System.Windows.Forms.VisualStyles;
 using Maestro.Base.Services;
+using OSGeo.MapGuide.MaestroAPI;
 
 namespace Maestro.Base
 {
@@ -38,11 +39,25 @@
             InitializeComponent();
         }
 
+        public IViewContent ActiveDocumentView
+        {
+            get
+            {
+                if (documentTabs.TabCount == 0)
+                    return null;
+
+                var page = documentTabs.SelectedTab;
+                var cnt = (IViewContent)page.Tag;
+                return cnt;
+            }
+        }
+
         public event ViewContentActivateEventHandler ViewActivated;
 
         protected override void OnLoad(EventArgs e)
         {
             base.OnLoad(e);
+
             CheckContainerStatus();
 
             var mgr = ServiceRegistry.GetService<ViewContentManager>();
@@ -109,8 +124,8 @@
         {
             TabControl tab = (TabControl)sender;
             //The tag specifies whether the user can manually close this tab
+            var page = tab.TabPages[e.Index];
 
-            var page = tab.TabPages[e.Index];
             bool draw = (page.Tag != null && ((IViewContent)page.Tag).AllowUserClose);
 
             try
@@ -128,7 +143,7 @@
 
                 e.Graphics.FillRectangle(new SolidBrush(SystemColors.ControlLightLight), tabRect);
                 e.Graphics.DrawString(title, f, TitleBrush, new Point(r.X, r.Y));
-                
+
                 if (draw)
                 {
                     //Close Image to draw
@@ -141,23 +156,27 @@
 
         private void ZoneMouseClick(object sender, MouseEventArgs e)
         {
-            TabControl tc = (TabControl)sender;
-            Point p = e.Location;
-            int _tabWidth = 0;
-            _tabWidth = tc.GetTabRect(tc.SelectedIndex).Width - (_imgHitArea.X);
-            Rectangle r = tc.GetTabRect(tc.SelectedIndex);
-            r.Offset(_tabWidth, _imgHitArea.Y);
-            r.Width = 16;
-            r.Height = 16;
-            if (r.Contains(p))
+            try
             {
-                TabPage page = (TabPage)tc.TabPages[tc.SelectedIndex];
-                //The tag specifies whether the user can manually close this tab
-                if (page.Tag != null && ((IViewContent)page.Tag).AllowUserClose)
+                TabControl tc = (TabControl)sender;
+                Point p = e.Location;
+                int _tabWidth = 0;
+                _tabWidth = tc.GetTabRect(tc.SelectedIndex).Width - (_imgHitArea.X);
+                Rectangle r = tc.GetTabRect(tc.SelectedIndex);
+                r.Offset(_tabWidth, _imgHitArea.Y);
+                r.Width = 16;
+                r.Height = 16;
+                if (r.Contains(p))
                 {
-                    ((IViewContent)page.Tag).Close();
+                    TabPage page = (TabPage)tc.TabPages[tc.SelectedIndex];
+                    //The tag specifies whether the user can manually close this tab
+                    if (page.Tag != null && ((IViewContent)page.Tag).AllowUserClose)
+                    {
+                        ((IViewContent)page.Tag).Close();
+                    }
                 }
-            } 
+            }
+            catch { }
         }
 
         private void OnViewActivated(IViewContent content)

Modified: sandbox/maestro-2.5/Maestro.Editors/Maestro.Editors.csproj
===================================================================
--- sandbox/maestro-2.5/Maestro.Editors/Maestro.Editors.csproj	2010-05-14 09:44:44 UTC (rev 4881)
+++ sandbox/maestro-2.5/Maestro.Editors/Maestro.Editors.csproj	2010-05-14 13:40:11 UTC (rev 4882)
@@ -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>
@@ -160,58 +160,76 @@
   <ItemGroup>
     <EmbeddedResource Include="FeatureSource\CoordSysOverrideCtrl.resx">
       <DependentUpon>CoordSysOverrideCtrl.cs</DependentUpon>
+      <SubType>Designer</SubType>
     </EmbeddedResource>
     <EmbeddedResource Include="FeatureSource\ExtensionsCtrl.resx">
       <DependentUpon>ExtensionsCtrl.cs</DependentUpon>
+      <SubType>Designer</SubType>
     </EmbeddedResource>
     <EmbeddedResource Include="FeatureSource\Extensions\JoinSettings.resx">
       <DependentUpon>JoinSettings.cs</DependentUpon>
+      <SubType>Designer</SubType>
     </EmbeddedResource>
     <EmbeddedResource Include="FeatureSource\FeatureSourceEditorCtrl.resx">
       <DependentUpon>FeatureSourceEditorCtrl.cs</DependentUpon>
+      <SubType>Designer</SubType>
     </EmbeddedResource>
     <EmbeddedResource Include="Generic\ResourceDataCtrl.resx">
       <DependentUpon>ResourceDataCtrl.cs</DependentUpon>
+      <SubType>Designer</SubType>
     </EmbeddedResource>
     <EmbeddedResource Include="Generic\ResourcePicker.resx">
       <DependentUpon>ResourcePicker.cs</DependentUpon>
+      <SubType>Designer</SubType>
     </EmbeddedResource>
     <EmbeddedResource Include="Generic\XmlEditorCtrl.resx">
       <DependentUpon>XmlEditorCtrl.cs</DependentUpon>
+      <SubType>Designer</SubType>
     </EmbeddedResource>
     <EmbeddedResource Include="LoadProcedure\InputFilesCtrl.resx">
       <DependentUpon>InputFilesCtrl.cs</DependentUpon>
+      <SubType>Designer</SubType>
     </EmbeddedResource>
     <EmbeddedResource Include="LoadProcedure\LoadProcedureEditorCtrl.resx">
       <DependentUpon>LoadProcedureEditorCtrl.cs</DependentUpon>
+      <SubType>Designer</SubType>
     </EmbeddedResource>
     <EmbeddedResource Include="LoadProcedure\LoadTargetCtrl.resx">
       <DependentUpon>LoadTargetCtrl.cs</DependentUpon>
+      <SubType>Designer</SubType>
     </EmbeddedResource>
     <EmbeddedResource Include="LoadProcedure\SdfTransformationCtrl.resx">
       <DependentUpon>SdfTransformationCtrl.cs</DependentUpon>
+      <SubType>Designer</SubType>
     </EmbeddedResource>
     <EmbeddedResource Include="LoadProcedure\ShpTransformationCtrl.resx">
       <DependentUpon>ShpTransformationCtrl.cs</DependentUpon>
+      <SubType>Designer</SubType>
     </EmbeddedResource>
     <EmbeddedResource Include="Properties\Resources.resx">
       <Generator>ResXFileCodeGenerator</Generator>
       <LastGenOutput>Resources.Designer.cs</LastGenOutput>
+      <SubType>Designer</SubType>
     </EmbeddedResource>
     <EmbeddedResource Include="WebLayout\CustomCommandPropertyCtrl.resx">
       <DependentUpon>CustomCommandPropertyCtrl.cs</DependentUpon>
+      <SubType>Designer</SubType>
     </EmbeddedResource>
     <EmbeddedResource Include="WebLayout\WebLayoutCommandsCtrl.resx">
       <DependentUpon>WebLayoutCommandsCtrl.cs</DependentUpon>
+      <SubType>Designer</SubType>
     </EmbeddedResource>
     <EmbeddedResource Include="WebLayout\WebLayoutEditorCtrl.resx">
       <DependentUpon>WebLayoutEditorCtrl.cs</DependentUpon>
+      <SubType>Designer</SubType>
     </EmbeddedResource>
     <EmbeddedResource Include="WebLayout\WebLayoutMenusCtrl.resx">
       <DependentUpon>WebLayoutMenusCtrl.cs</DependentUpon>
+      <SubType>Designer</SubType>
     </EmbeddedResource>
     <EmbeddedResource Include="WebLayout\WebLayoutSettingsCtrl.resx">
       <DependentUpon>WebLayoutSettingsCtrl.cs</DependentUpon>
+      <SubType>Designer</SubType>
     </EmbeddedResource>
   </ItemGroup>
   <ItemGroup>

Modified: sandbox/maestro-2.5/Maestro.Shared.UI/CollapsiblePanel.designer.cs
===================================================================
--- sandbox/maestro-2.5/Maestro.Shared.UI/CollapsiblePanel.designer.cs	2010-05-14 09:44:44 UTC (rev 4881)
+++ sandbox/maestro-2.5/Maestro.Shared.UI/CollapsiblePanel.designer.cs	2010-05-14 13:40:11 UTC (rev 4882)
@@ -52,6 +52,7 @@
             // 
             this.btnExpand.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
             this.btnExpand.BackgroundImage = global::Maestro.Shared.UI.Properties.Resources.plus_white;
+            this.btnExpand.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Center;
             this.btnExpand.FlatStyle = System.Windows.Forms.FlatStyle.Popup;
             this.btnExpand.Location = new System.Drawing.Point(430, 5);
             this.btnExpand.Name = "btnExpand";
@@ -64,6 +65,7 @@
             // 
             this.btnCollapse.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
             this.btnCollapse.BackgroundImage = global::Maestro.Shared.UI.Properties.Resources.minus_white;
+            this.btnCollapse.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Center;
             this.btnCollapse.FlatStyle = System.Windows.Forms.FlatStyle.Popup;
             this.btnCollapse.Location = new System.Drawing.Point(408, 5);
             this.btnCollapse.Name = "btnCollapse";

Modified: sandbox/maestro-2.5/OSGeo.MapGuide.MaestroAPI/ObjectModels/ResourceItems.cs
===================================================================
--- sandbox/maestro-2.5/OSGeo.MapGuide.MaestroAPI/ObjectModels/ResourceItems.cs	2010-05-14 09:44:44 UTC (rev 4881)
+++ sandbox/maestro-2.5/OSGeo.MapGuide.MaestroAPI/ObjectModels/ResourceItems.cs	2010-05-14 13:40:11 UTC (rev 4882)
@@ -21,6 +21,7 @@
 using System.Collections.Generic;
 using System.Text;
 using OSGeo.MapGuide.MaestroAPI.Resource;
+using System.Xml.Serialization;
 
 namespace OSGeo.MapGuide.ObjectModels.Common
 {
@@ -43,6 +44,7 @@
 
     partial class ResourceList
     {
+        [XmlIgnore]
         public IEnumerable<IRepositoryItem> Children
         {
             get
@@ -57,25 +59,31 @@
 
     partial class ResourceListResourceDocument : IRepositoryItem 
     {
+        [XmlIgnore]
         public string Name
         {
             get { return ResourceIdentifier.GetName(this.ResourceId); }
         }
 
+        [XmlIgnore]
         public string ResourceType { get { return ResourceIdentifier.GetExtension(this.ResourceId); } }
 
+        [XmlIgnore]
         public bool IsFolder { get { return false; } }
     }
 
     partial class ResourceListResourceFolder : IRepositoryItem
     {
+        [XmlIgnore]
         public string Name
         {
             get { return ResourceIdentifier.GetName(this.ResourceId); }
         }
 
+        [XmlIgnore]
         public string ResourceType { get { return "Folder"; } }
 
+        [XmlIgnore]
         public bool IsFolder { get { return true; } }
     }
 }

Modified: sandbox/maestro-2.5/OSGeo.MapGuide.MaestroAPI/ObjectModels/readme.txt
===================================================================
--- sandbox/maestro-2.5/OSGeo.MapGuide.MaestroAPI/ObjectModels/readme.txt	2010-05-14 09:44:44 UTC (rev 4881)
+++ sandbox/maestro-2.5/OSGeo.MapGuide.MaestroAPI/ObjectModels/readme.txt	2010-05-14 13:40:11 UTC (rev 4882)
@@ -1 +1,14 @@
-Running generate.bat will cause redundant generation of the following classes:
\ No newline at end of file
+Running generate.bat will cause redundant generation of the following classes:
+
+Also any schemas with ExtendedData elements will have to be changed. Anything attributed 
+with XmlAnyElementAttribute is usually a BindingList<T> (the default list I've chosen for 
+generating classes). BindingList<T> is not compatible for XML serialization, so these have
+to be changed from:
+
+BindingList<XmlElement>
+
+to:
+
+XmlElement[]
+
+A simple search for XmlAnyElementAttribute will reveal the bits of code that need to change.
\ No newline at end of file

Modified: sandbox/maestro-2.5/Thirdparty/TreeViewAdv/Aga.Controls/Aga.Controls.csproj
===================================================================
--- sandbox/maestro-2.5/Thirdparty/TreeViewAdv/Aga.Controls/Aga.Controls.csproj	2010-05-14 09:44:44 UTC (rev 4881)
+++ sandbox/maestro-2.5/Thirdparty/TreeViewAdv/Aga.Controls/Aga.Controls.csproj	2010-05-14 13:40:11 UTC (rev 4882)
@@ -2,7 +2,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>{E73BB233-D88B-44A7-A98F-D71EE158381D}</ProjectGuid>
     <OutputType>Library</OutputType>
@@ -202,6 +202,7 @@
     </EmbeddedResource>
     <EmbeddedResource Include="Tree\TreeViewAdv.resx">
       <DependentUpon>TreeViewAdv.cs</DependentUpon>
+      <SubType>Designer</SubType>
     </EmbeddedResource>
   </ItemGroup>
   <ItemGroup>



More information about the mapguide-commits mailing list