[mapguide-commits] r4427 - in trunk/Tools/Maestro: Maestro Maestro/MaestroEditorInterface Maestro/ResourceEditors Maestro/ResourceEditors/Strings Maestro/Strings MaestroAPI

svn_mapguide at osgeo.org svn_mapguide at osgeo.org
Sat Dec 12 14:27:42 EST 2009


Author: ksgeograf
Date: 2009-12-12 14:27:41 -0500 (Sat, 12 Dec 2009)
New Revision: 4427

Modified:
   trunk/Tools/Maestro/Maestro/EditorInterface.cs
   trunk/Tools/Maestro/Maestro/FormMain.cs
   trunk/Tools/Maestro/Maestro/MaestroEditorInterface/EditorInterface.cs
   trunk/Tools/Maestro/Maestro/ResourceEditors/FeatureSourceEditorBase.cs
   trunk/Tools/Maestro/Maestro/ResourceEditors/FeatureSourceEditorGeneric.cs
   trunk/Tools/Maestro/Maestro/ResourceEditors/FeatureSourceEditorGeneric.resx
   trunk/Tools/Maestro/Maestro/ResourceEditors/ResourceDataEditor.cs
   trunk/Tools/Maestro/Maestro/ResourceEditors/Strings/ResourceDataEditor.Designer.cs
   trunk/Tools/Maestro/Maestro/ResourceEditors/Strings/ResourceDataEditor.resx
   trunk/Tools/Maestro/Maestro/ResourceEditors/XmlEditor.cs
   trunk/Tools/Maestro/Maestro/ResourceEditors/XmlEditorControl.cs
   trunk/Tools/Maestro/Maestro/ResourceEditors/XmlEditorControl.resx
   trunk/Tools/Maestro/Maestro/Strings/FormMain.Designer.cs
   trunk/Tools/Maestro/Maestro/Strings/FormMain.resx
   trunk/Tools/Maestro/MaestroAPI/Utf8XmlWriter.cs
Log:
Maestro:
Fixed issue #1151.
The xml editor now includes a resource data editor where applicable, including in the symbol definition editor.
The open problem was due to an poor implementation of the templates, this is now fixed.

Also fixed a formating issue when opening certain resources.

It was not possible to edit resource data, because the resource editors always used the actual resource, so a "cancel" would not undo the resource data changes.
Maestro is now using temporary resources for everything, so cancel works as expected.


Modified: trunk/Tools/Maestro/Maestro/EditorInterface.cs
===================================================================
--- trunk/Tools/Maestro/Maestro/EditorInterface.cs	2009-12-12 12:48:58 UTC (rev 4426)
+++ trunk/Tools/Maestro/Maestro/EditorInterface.cs	2009-12-12 19:27:41 UTC (rev 4427)
@@ -31,6 +31,7 @@
 		private FormMain m_editor;
 		private TabPage m_page;
 		private string m_resourceID;
+        private string m_tempresourceID;
 		private bool m_existing;
 		private static string m_lastPath;
 		public event EventHandler Closing;
@@ -41,6 +42,15 @@
 			m_page = page;
 			m_existing = exisiting;
 			m_resourceID = resid;
+            if (!exisiting)
+                m_tempresourceID = m_resourceID;
+            else
+            {
+                string tmp = "Session:" + m_editor.CurrentConnection.SessionID + "//" + Guid.NewGuid().ToString() + "." + new MaestroAPI.ResourceIdentifier(m_resourceID).Extension;
+                m_editor.CurrentConnection.CopyResource(m_resourceID, tmp, true);
+                m_tempresourceID = tmp;
+            }
+
             if (m_page != null)
                 m_page.ToolTipText = resid == null ? "" : resid;
 		}
@@ -73,11 +83,6 @@
 			m_editor.OpenResource(resourceID);
 		}
 
-		public void CreateItem(string itemtype)
-		{
-			m_editor.CreateResource(null, itemtype);
-		}
-
 		public void HasChanged()
 		{
 			if (m_page != null)
@@ -245,7 +250,7 @@
                             }
 
                             if (fullmsg.Length > 512)
-                                fullmsg = string.Format(Strings.EditorInterface.ValidationMessageTooLong, fullmsg.Substring(1024));
+                                fullmsg = string.Format(Strings.EditorInterface.ValidationMessageTooLong, fullmsg.Substring(512));
 
                             if (errors.Count > 0)
                                 msg = string.Format(Strings.EditorInterface.SaveWithErrorsConfirmation, fullmsg);
@@ -277,12 +282,11 @@
                     if (resid != null)
                     {
                         //If the control handles the save, we only update the local items
-                        if (!((IResourceEditorControl)m_page.Controls[0]).Save(resid))
-                        {
-                            m_editor.CurrentConnection.SaveResourceAs(((IResourceEditorControl)m_page.Controls[0]).Resource, resid);
-                            ((IResourceEditorControl)m_page.Controls[0]).ResourceId = resid;
-                        }
+                        if (!((IResourceEditorControl)m_page.Controls[0]).Save(m_tempresourceID))
+                            m_editor.CurrentConnection.SaveResourceAs(((IResourceEditorControl)m_page.Controls[0]).Resource, m_tempresourceID);
 
+                        m_editor.CurrentConnection.CopyResource(m_tempresourceID, resid, true);
+
                         m_resourceID = resid;
                         m_page.Text = OSGeo.MapGuide.MaestroAPI.ResourceIdentifier.GetName(resid);
                         m_page.ToolTipText = resid;
@@ -340,6 +344,11 @@
 			return Save(m_resourceID);
 		}
 
+        public string TempResourceId
+        {
+            get { return m_tempresourceID; }
+        }
+
         public DialogResult LengthyOperation(object caller, System.Reflection.MethodInfo mi)
         {
             return LengthyOperation(caller, mi, true);

Modified: trunk/Tools/Maestro/Maestro/FormMain.cs
===================================================================
--- trunk/Tools/Maestro/Maestro/FormMain.cs	2009-12-12 12:48:58 UTC (rev 4426)
+++ trunk/Tools/Maestro/Maestro/FormMain.cs	2009-12-12 19:27:41 UTC (rev 4427)
@@ -1150,45 +1150,16 @@
 			get { return m_connection; }
 		}
 
-		public void CreateResource(object item, string itemType)
-		{
-			string resourceID = "Library://" + Guid.NewGuid().ToString() + "." + itemType;
-			System.Type ClassDef = m_editors.GetResourceEditorTypeFromResourceType(itemType);
-
-			if (ClassDef != null)
-				try 
-				{ 
-					EditorInterface edi = AddEditTab(ClassDef, resourceID, false);
-					if (item != null)
-						((IResourceEditorControl)edi.Page.Controls[0]).Resource = item;
-					tabItems.SelectedTab = edi.Page;
-					edi.HasChanged();
-				}
-				catch(Exception ex)
-				{
-                    if (ex as System.Reflection.TargetInvocationException != null)
-                        ex = ex.InnerException;
- 
-                    if (ex is CancelException)
-                        return;
-
-					MessageBox.Show(this, string.Format(Strings.FormMain.CreateResourceError, resourceID, ex.ToString()), Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error);
-				}
-			else
-				MessageBox.Show(this, string.Format(Strings.FormMain.UnknownResourceTypeError, resourceID), Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error);
-		}
-
-
 		public void OpenResource(string resourceID)
 		{
 			OpenResource(resourceID, null);
 		}
 
-		public void OpenResource(string resourceID, System.Type type)
+		public void OpenResource(string resourceID, System.Type ControlType)
 		{
 			if (!m_userControls.ContainsKey(resourceID))
 			{
-				System.Type ClassDef = type;
+				System.Type ClassDef = ControlType;
 				
 				if (ClassDef == null)
 					ClassDef = m_editors.GetResourceEditorTypeFromResourceID(resourceID);
@@ -1196,7 +1167,7 @@
 					ClassDef = typeof(ResourceEditors.XmlEditorControl);
 
 				if (ClassDef != null)
-					try { AddEditTab(ClassDef, resourceID, true); }
+					try { AddEditTab(ClassDef, resourceID, resourceID.StartsWith("Library://")); }
 					catch (System.Reflection.TargetInvocationException tex) { MessageBox.Show(this, string.Format(Strings.FormMain.OpenFailedError, resourceID, tex.InnerException.Message), Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error); }
 					catch (Exception ex) { MessageBox.Show(this, string.Format(Strings.FormMain.OpenFailedError, resourceID, ex.ToString()), Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error); }
 				else
@@ -1229,19 +1200,13 @@
 			if (existing)
 				tp = new TabPage(m_editors.GetResourceNameFromResourceID(resourceID));
 			else
-				tp = new TabPage(Strings.FormMain.NewResourceName);
+				tp = new TabPage(Strings.FormMain.NewResourceName + " *");
 
 			tp.ImageIndex = m_editors.GetImageIndexFromResourceID(resourceID);
 			EditorInterface edi = new EditorInterface(this, tp, resourceID, existing);
 
-			object[] args = null;
-			if (!existing)
-				args = new object[] {edi};
-			else
-				args = new object[] {edi, resourceID};
+			UserControl uc = (UserControl)Activator.CreateInstance(controlType,  new object[] {edi, edi.TempResourceId} );
 
-			UserControl uc = (UserControl)Activator.CreateInstance(controlType, args );
-
             /*tp.BackgroundImage = new System.Drawing.Bitmap("test.png");
             tp.BackgroundImageLayout = ImageLayout.Stretch;
             uc.BackColor = Color.Transparent;*/
@@ -1328,28 +1293,29 @@
 
 		private void NewResourceMenu_Clicked(object sender, System.EventArgs e)
 		{
-			string filename = (string)m_templateMenuIndex[sender];
-			if (filename == null)
-				return;
+			CreateItem((string)m_templateMenuIndex[sender]);
+    	}
 
-			object o = null;
+        public void CreateItem(string templatefilename)
+        {
+            if (templatefilename == null)
+                return;
 
-			try
-			{
-				using(System.IO.FileStream fs = new System.IO.FileStream(filename, System.IO.FileMode.Open, System.IO.FileAccess.Read))
-					o = m_connection.DeserializeObject(m_editors.GetResourceInstanceTypeFromResourceID(filename), fs);
+            try
+            {
+                string tempname = "Session:" + m_connection.SessionID + "//" + Guid.NewGuid().ToString() + System.IO.Path.GetExtension(templatefilename);
+                using (System.IO.FileStream fs = new System.IO.FileStream(templatefilename, System.IO.FileMode.Open, System.IO.FileAccess.Read))
+                    m_connection.SetResourceXmlData(tempname, fs);
 
-			}
-			catch(Exception ex)
-			{
-				MessageBox.Show(this, string.Format(Strings.FormMain.TemplateLoadError, ex.ToString()), Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error);
-				return;
-			}
+                OpenResource(tempname);
+            }
+            catch (Exception ex)
+            {
+                MessageBox.Show(this, string.Format(Strings.FormMain.TemplateLoadError, ex.ToString()), Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error);
+                return;
+            }
+        }
 
-			if (o != null)
-				CreateResource(o, m_editors.GetResourceTypeNameFromResourceID(filename));
-		}
-
 		private void ResourceTree_ItemDrag(object sender, System.Windows.Forms.ItemDragEventArgs e)
 		{
 			ResourceTree.DoDragDrop(e.Item, DragDropEffects.All);
@@ -1745,7 +1711,7 @@
 				if (edi.Page == tabItems.SelectedTab)
 				{
 					object resource = ((IResourceEditorControl)edi.Page.Controls[0]).Resource;
-                    ResourceEditors.XmlEditor dlg = new ResourceEditors.XmlEditor(resource, edi);
+                    ResourceEditors.XmlEditor dlg = new ResourceEditors.XmlEditor(resource, edi.ResourceID, edi);
 					if (dlg.ShowDialog() == DialogResult.OK)
 					{
 						object o = dlg.SerializedObject;
@@ -2414,13 +2380,13 @@
                 {
                     SaveResourceButton.Enabled =
                     SaveResourceAsButton.Enabled =
-                    EditAsXmlButton.Enabled =
                     ClosePageButton.Enabled = true;
 
                     IResourceEditorControl ei = edi.Page.Controls[0] as IResourceEditorControl;
                     PreviewButton.Enabled = ei.SupportsPreview;
                     ProfileButton.Enabled = ei.SupportsProfiling;
                     ValidateButton.Enabled = ei.SupportsValidate;
+                    EditAsXmlButton.Enabled = !(ei is ResourceEditors.XmlEditorControl);
                     TabPageContextMenu.Enabled = true;
                 }
             }

Modified: trunk/Tools/Maestro/Maestro/MaestroEditorInterface/EditorInterface.cs
===================================================================
--- trunk/Tools/Maestro/Maestro/MaestroEditorInterface/EditorInterface.cs	2009-12-12 12:48:58 UTC (rev 4426)
+++ trunk/Tools/Maestro/Maestro/MaestroEditorInterface/EditorInterface.cs	2009-12-12 19:27:41 UTC (rev 4427)
@@ -52,12 +52,6 @@
 		void EditItem(string resourceID);
 
 		/// <summary>
-		/// Instructs the editor to begin creating a new resource.
-		/// </summary>
-		/// <param name="itemType">The type of resource to create</param>
-		void CreateItem(string itemType);
-
-		/// <summary>
 		/// Notifies the main editor that the resource has changed. This will put an asterisk (*) in the resource editor title.
 		/// </summary>
 		void HasChanged();

Modified: trunk/Tools/Maestro/Maestro/ResourceEditors/FeatureSourceEditorBase.cs
===================================================================
--- trunk/Tools/Maestro/Maestro/ResourceEditors/FeatureSourceEditorBase.cs	2009-12-12 12:48:58 UTC (rev 4426)
+++ trunk/Tools/Maestro/Maestro/ResourceEditors/FeatureSourceEditorBase.cs	2009-12-12 19:27:41 UTC (rev 4427)
@@ -41,7 +41,6 @@
 		private System.Windows.Forms.TabControl EditorTab;
 		private System.Windows.Forms.TabPage CustomEditorPage;
 		private System.Windows.Forms.TabPage GenericEditorPage;
-		private string m_realid = null;
 		private ResourceEditors.CoordinateSystemOverride CoordinateSystemOverride;
 		private System.Windows.Forms.Panel TestConnectionPanel;
 		private System.Windows.Forms.TextBox TestConnectionResult;
@@ -139,15 +138,11 @@
 			: this()
 		{
 			m_editor = editor;
-			m_realid = resourceID;
-            string nid = new MaestroAPI.ResourceIdentifier(Guid.NewGuid().ToString(), OSGeo.MapGuide.MaestroAPI.ResourceTypes.FeatureSource, m_editor.CurrentConnection.SessionID);
-			editor.CurrentConnection.CopyResource(resourceID, nid, true);
-			m_feature = editor.CurrentConnection.GetFeatureSource(nid);
+			m_feature = editor.CurrentConnection.GetFeatureSource(resourceID);
 			CreateLayout(editor, m_feature);
 
 			if (m_child == null)
 				throw new Exception(Strings.FeatureSourceEditorBase.FeatureSourceCreationError);
-
 		}
 
 		private System.Type ResolveSpecificResourceEditor(EditorInterface editor, string providerName)
@@ -223,20 +218,16 @@
 			get { return m_feature; }
 			set 
 			{
-				//TODO: If feature is edited by Xml, it won't update here
-				if (m_realid != null)
-				{
-					//Recopy
-					//m_editor.CurrentConnection.CopyResource(((OSGeo.MapGuide.MaestroAPI.FeatureSource)value).ResourceId, m_feature.ResourceId, true);
-					m_editor.CurrentConnection.SaveResourceAs(value, m_feature.ResourceId);
-					m_feature = m_editor.CurrentConnection.GetFeatureSource(m_feature.ResourceId);
-					m_child.Resource = m_feature;
-					if (m_childGeneric != null)
-						m_childGeneric.Resource = m_feature;
-					CoordinateSystemOverride.SetItem(m_editor, m_feature);
-					UpdateDisplay();
-				}
-			}
+                m_feature = (MaestroAPI.FeatureSource)value;
+				m_child.Resource = m_feature;
+				if (m_childGeneric != null)
+					m_childGeneric.Resource = m_feature;
+				CoordinateSystemOverride.SetItem(m_editor, m_feature);
+				UpdateDisplay();
+                m_child.UpdateDisplay();
+                if (m_childGeneric != null)
+                    m_childGeneric.UpdateDisplay();
+            }
 		}
 
 		public string ResourceId
@@ -430,12 +421,9 @@
 
 
 			if (!m_child.Save(savename))
-			{
-				m_editor.CurrentConnection.SaveResource(m_feature);
-				m_editor.CurrentConnection.CopyResource(m_feature.ResourceId, savename, true);
-				m_realid = savename;
+				m_editor.CurrentConnection.SaveResourceAs(m_feature, savename);
 
-			}
+            m_feature.ResourceId = savename;
 			return true;
 		}
 

Modified: trunk/Tools/Maestro/Maestro/ResourceEditors/FeatureSourceEditorGeneric.cs
===================================================================
--- trunk/Tools/Maestro/Maestro/ResourceEditors/FeatureSourceEditorGeneric.cs	2009-12-12 12:48:58 UTC (rev 4426)
+++ trunk/Tools/Maestro/Maestro/ResourceEditors/FeatureSourceEditorGeneric.cs	2009-12-12 19:27:41 UTC (rev 4427)
@@ -262,6 +262,8 @@
             this.resourceDataEditor.Name = "resourceDataEditor";
             this.resourceDataEditor.ResourceExists = false;
             this.resourceDataEditor.ResourceID = null;
+            this.resourceDataEditor.UseTemporaryResource = false;
+            this.resourceDataEditor.ResourceDataChanged += new System.EventHandler(this.resourceDataEditor_ResourceDataChanged);
             // 
             // FeatureSourceEditorGeneric
             // 
@@ -335,5 +337,10 @@
         public bool SupportsPreview { get { return true; } }
         public bool SupportsValidate { get { return true; } }
         public bool SupportsProfiling { get { return false; } }
+
+        private void resourceDataEditor_ResourceDataChanged(object sender, EventArgs e)
+        {
+            m_editor.HasChanged();
+        }
     }
 }

Modified: trunk/Tools/Maestro/Maestro/ResourceEditors/FeatureSourceEditorGeneric.resx
===================================================================
--- trunk/Tools/Maestro/Maestro/ResourceEditors/FeatureSourceEditorGeneric.resx	2009-12-12 12:48:58 UTC (rev 4426)
+++ trunk/Tools/Maestro/Maestro/ResourceEditors/FeatureSourceEditorGeneric.resx	2009-12-12 19:27:41 UTC (rev 4427)
@@ -184,7 +184,7 @@
     <value>resourceDataEditor</value>
   </data>
   <data name="&gt;&gt;resourceDataEditor.Type" xml:space="preserve">
-    <value>OSGeo.MapGuide.Maestro.ResourceEditors.ResourceDataEditor, OSGeo.MapGuide.Maestro.ResourceEditors, Version=1.1.0.4347, Culture=neutral, PublicKeyToken=null</value>
+    <value>OSGeo.MapGuide.Maestro.ResourceEditors.ResourceDataEditor, OSGeo.MapGuide.Maestro.ResourceEditors, Version=1.1.0.4358, Culture=neutral, PublicKeyToken=null</value>
   </data>
   <data name="&gt;&gt;resourceDataEditor.Parent" xml:space="preserve">
     <value>$this</value>

Modified: trunk/Tools/Maestro/Maestro/ResourceEditors/ResourceDataEditor.cs
===================================================================
--- trunk/Tools/Maestro/Maestro/ResourceEditors/ResourceDataEditor.cs	2009-12-12 12:48:58 UTC (rev 4426)
+++ trunk/Tools/Maestro/Maestro/ResourceEditors/ResourceDataEditor.cs	2009-12-12 19:27:41 UTC (rev 4427)
@@ -33,6 +33,8 @@
 	/// </summary>
 	public class ResourceDataEditor : System.Windows.Forms.UserControl
 	{
+        public event EventHandler ResourceDataChanged;
+
         private System.Windows.Forms.ImageList toolbarImages;
         private System.Windows.Forms.ColumnHeader columnHeader1;
 		private System.Windows.Forms.ListView ResourceDataFiles;
@@ -49,11 +51,31 @@
         private ToolStripButton ToggleDocumentsButton;
         private MenuItem EditResourceXmlMenu;
 
+        private bool m_useTempResource = true;
+
+        /// <summary>
+        /// Gets or sets a value that determines if the resource data editor 
+        /// should use a temporary resource for updating files.
+        /// Usually used when the user may cancel the edit.
+        /// </summary>
+        [Category("Behavior"), DefaultValue(true)]
+        public bool UseTemporaryResource 
+        {
+            get { return m_useTempResource; }
+            set 
+            { 
+                if (m_tempresourceid != null)
+                    throw new Exception(Strings.ResourceDataEditor.UnableToChangeEditModeError);
+                m_useTempResource = value; 
+            }
+        }
+
 		public ResourceDataEditor(EditorInterface editor, string resourceid)
 			: this()
 		{
             m_editor = editor;
-			m_resource = resourceid;
+			m_resourceid = resourceid;
+            m_tempresourceid = null;
 			this.Enabled = true;
 		}
 
@@ -212,7 +234,8 @@
 		#endregion
 
 		private OSGeo.MapGuide.MaestroAPI.ResourceDataList m_resourceFiles;
-		private string m_resource;
+		private string m_resourceid;
+        private string m_tempresourceid;
 		private EditorInterface m_editor;
 
 		private void ResourceDataFiles_SelectedIndexChanged(object sender, System.EventArgs e)
@@ -222,8 +245,13 @@
 
 		private void RefreshFileList()
 		{
-			if (m_resourceExists && m_resource != null)
-				m_resourceFiles = m_editor.CurrentConnection.EnumerateResourceData(m_resource);
+            if (m_resourceExists)
+            {
+                if (m_tempresourceid != null)
+                    m_resourceFiles = m_editor.CurrentConnection.EnumerateResourceData(m_tempresourceid);
+                else if (m_resourceid != null)
+                    m_resourceFiles = m_editor.CurrentConnection.EnumerateResourceData(m_resourceid);
+            }
 		}
 
 		private void UpdateDisplay()
@@ -233,7 +261,7 @@
 				ResourceDataFiles.BeginUpdate();
 				ResourceDataFiles.Items.Clear();
 
-				if (m_resourceExists && m_resource != null)
+				if (m_resourceExists && m_resourceid != null)
 				{
 					if (m_resourceFiles == null)
 						RefreshFileList();
@@ -606,6 +634,12 @@
 			if (menu == null)
 				return;
 
+            if (ResourceDataFiles.SelectedItems.Count == 0)
+                return;
+
+            if (!EnsureTempResource())
+                return;
+
 			OSGeo.MapGuide.MaestroAPI.ResourceDataType targetType = (OSGeo.MapGuide.MaestroAPI.ResourceDataType)Enum.Parse(typeof(OSGeo.MapGuide.MaestroAPI.ResourceDataType), menu.Text);
 			foreach(ListViewItem i in ResourceDataFiles.SelectedItems)
 			{
@@ -614,14 +648,15 @@
 					try
 					{
 						retry = false;
-                        using (System.IO.Stream s = m_editor.CurrentConnection.GetResourceData(m_resource, i.Text))
+                        using (System.IO.Stream s = m_editor.CurrentConnection.GetResourceData(m_tempresourceid, i.Text))
 						{
-                            m_editor.CurrentConnection.DeleteResourceData(m_resource, i.Text);
-                            m_editor.HasChanged();
+                            m_editor.CurrentConnection.DeleteResourceData(m_tempresourceid, i.Text);
+                            if (ResourceDataChanged != null)
+                                ResourceDataChanged(this, null);
 
                             try
                             {
-                                m_editor.CurrentConnection.SetResourceData(m_resource, i.Text, targetType, s);
+                                m_editor.CurrentConnection.SetResourceData(m_tempresourceid, i.Text, targetType, s);
                             }
                             catch
                             {
@@ -629,7 +664,7 @@
                                 {
                                     //Attempt to recover the file
                                     s.Position = 0;
-                                    m_editor.CurrentConnection.SetResourceData(m_resource, i.Text, ((MaestroAPI.ResourceDataListResourceData)i.Tag).Type, s); 
+                                    m_editor.CurrentConnection.SetResourceData(m_tempresourceid, i.Text, ((MaestroAPI.ResourceDataListResourceData)i.Tag).Type, s); 
                                 }
                                 catch { }
                                 throw;
@@ -677,15 +712,31 @@
 
 		public string ResourceID
 		{
-			get { return m_resource; }
+			get { return m_resourceid; }
 			set 
 			{
-				m_resource = value;
+                //It's faster if we don't clean up, and just let the session expire
+                /*if (m_tempresourceid != null)
+                {
+                    try { m_editor.CurrentConnection.DeleteResource(m_tempresourceid); }
+                    catch { }
+                }*/
+				m_resourceid = value;
+                m_tempresourceid = null;
 				RefreshFileList();
 				UpdateDisplay();
 			}
 		}
 
+        public void SaveChanges()
+        {
+            if (m_tempresourceid != null && m_resourceid != null && m_tempresourceid != m_resourceid)
+            {
+                m_editor.CurrentConnection.MoveResource(m_tempresourceid, m_resourceid, true);
+                m_tempresourceid = null;
+            }
+        }
+
 		public OSGeo.MapGuide.MaestroAPI.ServerConnectionI Connection
 		{
 			get { return m_editor.CurrentConnection; }
@@ -699,20 +750,54 @@
 
         private void AddFileButton_Click(object sender, EventArgs e)
         {
-            if (AddFilesToResource(this, m_editor.CurrentConnection, m_resource, m_resourceFiles))
+            if (!EnsureTempResource())
+                return;
+
+            if (AddFilesToResource(this, m_editor.CurrentConnection, m_tempresourceid, m_resourceFiles))
             {
-                m_editor.HasChanged();
-                
+                if (ResourceDataChanged != null)
+                    ResourceDataChanged(this, null);
+
                 RefreshFileList();
                 UpdateDisplay();
             }
         }
 
+        private bool EnsureTempResource()
+        {
+            try
+            {
+                if (this.UseTemporaryResource)
+                {
+                    if (m_tempresourceid == null)
+                    {
+                        string tmp = "Session:" + m_editor.CurrentConnection.SessionID + "//" + Guid.NewGuid().ToString() + "." + new MaestroAPI.ResourceIdentifier(m_resourceid).Extension;
+                        m_editor.CurrentConnection.CopyResource(m_resourceid, tmp, true);
+                        m_tempresourceid = tmp;
+                    }
+                }
+                else
+                    m_tempresourceid = m_resourceid;
+            }
+            catch (Exception ex)
+            {
+                m_editor.SetLastException(ex);
+                MessageBox.Show(this, string.Format(Strings.ResourceDataEditor.FailedToCreateCopyError, ex.Message), Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error);
+                return false;
+            }
+
+            return true;
+        }
+
         private void DeleteFileButton_Click(object sender, EventArgs e)
         {
-            if (DeleteFilesFromResource(this, m_editor.CurrentConnection, m_resource, ResourceDataFiles))
+            if (!EnsureTempResource())
+                return;
+
+            if (DeleteFilesFromResource(this, m_editor.CurrentConnection, m_tempresourceid, ResourceDataFiles))
             {
-                m_editor.HasChanged();
+                if (ResourceDataChanged != null)
+                    ResourceDataChanged(this, null);
 
                 RefreshFileList();
                 UpdateDisplay();
@@ -721,7 +806,10 @@
 
         private void DownloadFileButton_Click(object sender, EventArgs e)
         {
-            if (DownloadResourceFiles(this, m_editor.CurrentConnection, m_resource, ResourceDataFiles))
+            if (!EnsureTempResource())
+                return;
+
+            if (DownloadResourceFiles(this, m_editor.CurrentConnection, m_tempresourceid, ResourceDataFiles))
             {
                 RefreshFileList();
                 UpdateDisplay();
@@ -741,16 +829,20 @@
 			    if (ResourceDataFiles.SelectedItems.Count != 1)
 				    return;
 
+                if (!EnsureTempResource())
+                    return;
+
                 XmlEditor dlg;
-                using (System.IO.StreamReader sr = new System.IO.StreamReader(m_editor.CurrentConnection.GetResourceData(m_resource, ResourceDataFiles.SelectedItems[0].Text), System.Text.Encoding.UTF8, true))
+                using (System.IO.StreamReader sr = new System.IO.StreamReader(m_editor.CurrentConnection.GetResourceData(m_tempresourceid, ResourceDataFiles.SelectedItems[0].Text), System.Text.Encoding.UTF8, true))
                     dlg = new XmlEditor(sr.ReadToEnd(), m_editor.CurrentConnection);
 
                 if (dlg.ShowDialog(this) == DialogResult.OK)
                 {
-                    using(System.IO.MemoryStream ms = new System.IO.MemoryStream(new System.Text.UTF8Encoding(false).GetBytes(dlg.EditorText)))
-                        m_editor.CurrentConnection.SetResourceData(m_resource, ResourceDataFiles.SelectedItems[0].Text, ((MaestroAPI.ResourceDataListResourceData)(ResourceDataFiles.SelectedItems[0].Tag)).Type, ms);
-                    
-                    m_editor.HasChanged();
+                    using (System.IO.MemoryStream ms = new System.IO.MemoryStream(new System.Text.UTF8Encoding(false).GetBytes(dlg.EditorText)))
+                        m_editor.CurrentConnection.SetResourceData(m_tempresourceid, ResourceDataFiles.SelectedItems[0].Text, ((MaestroAPI.ResourceDataListResourceData)(ResourceDataFiles.SelectedItems[0].Tag)).Type, ms);
+
+                    if (ResourceDataChanged != null)
+                        ResourceDataChanged(this, null);
                 }
             }
             catch (Exception ex)

Modified: trunk/Tools/Maestro/Maestro/ResourceEditors/Strings/ResourceDataEditor.Designer.cs
===================================================================
--- trunk/Tools/Maestro/Maestro/ResourceEditors/Strings/ResourceDataEditor.Designer.cs	2009-12-12 12:48:58 UTC (rev 4426)
+++ trunk/Tools/Maestro/Maestro/ResourceEditors/Strings/ResourceDataEditor.Designer.cs	2009-12-12 19:27:41 UTC (rev 4427)
@@ -110,6 +110,15 @@
         }
         
         /// <summary>
+        ///   Looks up a localized string similar to Unable to create a temporary resource: {0}.
+        /// </summary>
+        internal static string FailedToCreateCopyError {
+            get {
+                return ResourceManager.GetString("FailedToCreateCopyError", resourceCulture);
+            }
+        }
+        
+        /// <summary>
         ///   Looks up a localized string similar to There exists {0} file(s) with similar names which may be required.
         ///Do you want to automatically add matching files?.
         /// </summary>
@@ -140,6 +149,15 @@
         }
         
         /// <summary>
+        ///   Looks up a localized string similar to Unable to change edit mode after the user has modified the resource.
+        /// </summary>
+        internal static string UnableToChangeEditModeError {
+            get {
+                return ResourceManager.GetString("UnableToChangeEditModeError", resourceCulture);
+            }
+        }
+        
+        /// <summary>
         ///   Looks up a localized string similar to Failed to update xml data: {0}.
         /// </summary>
         internal static string UpdateXmlDataError {

Modified: trunk/Tools/Maestro/Maestro/ResourceEditors/Strings/ResourceDataEditor.resx
===================================================================
--- trunk/Tools/Maestro/Maestro/ResourceEditors/Strings/ResourceDataEditor.resx	2009-12-12 12:48:58 UTC (rev 4426)
+++ trunk/Tools/Maestro/Maestro/ResourceEditors/Strings/ResourceDataEditor.resx	2009-12-12 19:27:41 UTC (rev 4427)
@@ -141,6 +141,10 @@
     <value>Select folder where downloaded files will be saved</value>
     <comment>The title for the dialog where the user can choose the location for the files that are being downloaded</comment>
   </data>
+  <data name="FailedToCreateCopyError" xml:space="preserve">
+    <value>Unable to create a temporary resource: {0}</value>
+    <comment>An error message that is displayed when the copy procedure fails</comment>
+  </data>
   <data name="IncludeSimilarFilesConfirmation" xml:space="preserve">
     <value>There exists {0} file(s) with similar names which may be required.
 Do you want to automatically add matching files?</value>
@@ -156,6 +160,10 @@
 Do you want to overwrite the existing file?</value>
     <comment>A confirmation message that appears when the user attempts to overwrite an existing resource file</comment>
   </data>
+  <data name="UnableToChangeEditModeError" xml:space="preserve">
+    <value>Unable to change edit mode after the user has modified the resource</value>
+    <comment>An internal error message that appears if the control is modified in an unsupported way</comment>
+  </data>
   <data name="UpdateXmlDataError" xml:space="preserve">
     <value>Failed to update xml data: {0}</value>
     <comment>An error message that is displayed when the xml fails to save</comment>

Modified: trunk/Tools/Maestro/Maestro/ResourceEditors/XmlEditor.cs
===================================================================
--- trunk/Tools/Maestro/Maestro/ResourceEditors/XmlEditor.cs	2009-12-12 12:48:58 UTC (rev 4426)
+++ trunk/Tools/Maestro/Maestro/ResourceEditors/XmlEditor.cs	2009-12-12 19:27:41 UTC (rev 4427)
@@ -48,10 +48,10 @@
             panel2.Controls.Add(m_xmlEditorControl);
         }
 
-		public XmlEditor(object item, EditorInterface editor)
+		public XmlEditor(object item, string resourceId, EditorInterface editor)
 			: this()
 		{
-            m_xmlEditorControl = new XmlEditorControl(editor, item);
+            m_xmlEditorControl = new XmlEditorControl(editor, item, resourceId);
             m_xmlEditorControl.Dock = DockStyle.Fill;
             panel2.Controls.Add(m_xmlEditorControl);
         }
@@ -149,6 +149,7 @@
 			{
                 m_allowClose = true;
 				m_xmlEditorControl.EndExternalEditing();
+                m_xmlEditorControl.SaveResourceData();
 				this.DialogResult = DialogResult.OK;
 				this.Close();
 			}

Modified: trunk/Tools/Maestro/Maestro/ResourceEditors/XmlEditorControl.cs
===================================================================
--- trunk/Tools/Maestro/Maestro/ResourceEditors/XmlEditorControl.cs	2009-12-12 12:48:58 UTC (rev 4426)
+++ trunk/Tools/Maestro/Maestro/ResourceEditors/XmlEditorControl.cs	2009-12-12 19:27:41 UTC (rev 4427)
@@ -60,21 +60,23 @@
         private ToolStripSeparator toolStripSeparator3;
         private ToolStripButton LaunchExternalEditorButton;
 		private string m_resourceId = null;
+        private GroupBox ResourceDataGroup;
+        private ResourceDataEditor resourceDataEditor;
         private bool m_modified = false;
 
 		public XmlEditorControl(EditorInterface editor, string item)
-			: this(editor, editor.CurrentConnection.TryGetResourceType(item) == null ? editor.CurrentConnection.GetResourceXmlData(item) : editor.CurrentConnection.GetResource(item))
+			: this(editor, editor.CurrentConnection.TryGetResourceType(item) == null ? editor.CurrentConnection.GetResourceXmlData(item) : editor.CurrentConnection.GetResource(item), item)
 		{
             m_resourceId = item;
 		}
 
-        public XmlEditorControl(EditorInterface editor, object item)
+        public XmlEditorControl(EditorInterface editor, object item, string resourceId)
             : this(editor)
         {
             m_inUpdate = true;
             m_editor = editor;
 
-            m_resourceId = null;
+            m_resourceId = resourceId;
             m_serializeType = null;
             m_serializedObject = null;
 
@@ -82,7 +84,22 @@
 
             if (item is byte[])
             {
-                textEditor.Text = System.Text.Encoding.UTF8.GetString(item as byte[]);               
+                try
+                {
+                    //Attempt to format this with indents etc.
+                    System.Xml.XmlDocument doc = new System.Xml.XmlDocument();
+                    doc.LoadXml(System.Text.Encoding.UTF8.GetString(item as byte[]));
+                    using (System.IO.StringWriter sw = new System.IO.StringWriter())
+                    {
+                        doc.WriteTo(new MaestroAPI.Utf8XmlWriter(sw));
+                        textEditor.Text = sw.GetStringBuilder().ToString();
+                    }
+                }
+                catch
+                {
+                    //Fallback, just display the text
+                    textEditor.Text = System.Text.Encoding.UTF8.GetString(item as byte[]);
+                }
             }
             else
             {
@@ -182,6 +199,7 @@
             System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(XmlEditorControl));
             this.panel2 = new System.Windows.Forms.Panel();
             this.textEditor = new System.Windows.Forms.TextBox();
+            this.ResourceDataGroup = new System.Windows.Forms.GroupBox();
             this.LockedMessagePanel = new System.Windows.Forms.Panel();
             this.label3 = new System.Windows.Forms.Label();
             this.label2 = new System.Windows.Forms.Label();
@@ -198,7 +216,9 @@
             this.toolStripSeparator3 = new System.Windows.Forms.ToolStripSeparator();
             this.LaunchExternalEditorButton = new System.Windows.Forms.ToolStripButton();
             this.toolbarImages = new System.Windows.Forms.ImageList(this.components);
+            this.resourceDataEditor = new OSGeo.MapGuide.Maestro.ResourceEditors.ResourceDataEditor();
             this.panel2.SuspendLayout();
+            this.ResourceDataGroup.SuspendLayout();
             this.LockedMessagePanel.SuspendLayout();
             this.toolBar.SuspendLayout();
             this.SuspendLayout();
@@ -206,6 +226,7 @@
             // panel2
             // 
             this.panel2.Controls.Add(this.textEditor);
+            this.panel2.Controls.Add(this.ResourceDataGroup);
             this.panel2.Controls.Add(this.LockedMessagePanel);
             this.panel2.Controls.Add(this.toolBar);
             resources.ApplyResources(this.panel2, "panel2");
@@ -220,6 +241,13 @@
             this.textEditor.TextChanged += new System.EventHandler(this.textEditor_TextChanged);
             this.textEditor.KeyUp += new System.Windows.Forms.KeyEventHandler(this.textEditor_KeyUp);
             // 
+            // ResourceDataGroup
+            // 
+            this.ResourceDataGroup.Controls.Add(this.resourceDataEditor);
+            resources.ApplyResources(this.ResourceDataGroup, "ResourceDataGroup");
+            this.ResourceDataGroup.Name = "ResourceDataGroup";
+            this.ResourceDataGroup.TabStop = false;
+            // 
             // LockedMessagePanel
             // 
             this.LockedMessagePanel.Controls.Add(this.label3);
@@ -337,6 +365,15 @@
             this.toolbarImages.Images.SetKeyName(5, "");
             this.toolbarImages.Images.SetKeyName(6, "");
             // 
+            // resourceDataEditor
+            // 
+            resources.ApplyResources(this.resourceDataEditor, "resourceDataEditor");
+            this.resourceDataEditor.Editor = null;
+            this.resourceDataEditor.Name = "resourceDataEditor";
+            this.resourceDataEditor.ResourceExists = false;
+            this.resourceDataEditor.ResourceID = null;
+            this.resourceDataEditor.ResourceDataChanged += new System.EventHandler(this.resourceDataEditor_ResourceDataChanged);
+            // 
             // XmlEditorControl
             // 
             this.Controls.Add(this.panel2);
@@ -345,6 +382,7 @@
             this.Load += new System.EventHandler(this.XmlEditor_Load);
             this.panel2.ResumeLayout(false);
             this.panel2.PerformLayout();
+            this.ResourceDataGroup.ResumeLayout(false);
             this.LockedMessagePanel.ResumeLayout(false);
             this.toolBar.ResumeLayout(false);
             this.toolBar.PerformLayout();
@@ -491,6 +529,8 @@
 
 		public bool Save(string savename)
 		{
+            resourceDataEditor.SaveChanges();
+
 			if (m_serializeType != null)
 			{
                 m_serializedObject = m_editor.CurrentConnection.DeserializeObject(m_serializeType, new System.IO.MemoryStream(System.Text.Encoding.UTF8.GetBytes(textEditor.Text)));
@@ -512,6 +552,14 @@
 				m_inUpdate = true;
 				if (m_serializedObject != null && m_serializeType != null)
 					textEditor.Text = System.Text.Encoding.UTF8.GetString(m_editor.CurrentConnection.SerializeObject(m_serializedObject).ToArray());
+
+                ResourceDataGroup.Visible = m_resourceId != null;
+                if (m_resourceId != null)
+                {
+                    resourceDataEditor.Editor = m_editor;
+                    resourceDataEditor.ResourceExists = true;
+                    resourceDataEditor.ResourceID = m_resourceId;
+                }
 			}
 			finally
 			{
@@ -602,5 +650,17 @@
 
         public bool Modified { get { return m_modified; } }
         public object SerializedObject { get { return m_serializedObject; } }
+
+        private void resourceDataEditor_ResourceDataChanged(object sender, EventArgs e)
+        {
+            m_modified = true;
+            if (m_editor != null && !(this.ParentForm is XmlEditor))
+                m_editor.HasChanged();
+        }
+
+        internal void SaveResourceData()
+        {
+            resourceDataEditor.SaveChanges();
+        }
     }
 }

Modified: trunk/Tools/Maestro/Maestro/ResourceEditors/XmlEditorControl.resx
===================================================================
--- trunk/Tools/Maestro/Maestro/ResourceEditors/XmlEditorControl.resx	2009-12-12 12:48:58 UTC (rev 4426)
+++ trunk/Tools/Maestro/Maestro/ResourceEditors/XmlEditorControl.resx	2009-12-12 19:27:41 UTC (rev 4427)
@@ -139,7 +139,7 @@
     <value>Both</value>
   </data>
   <data name="textEditor.Size" type="System.Drawing.Size, System.Drawing">
-    <value>656, 432</value>
+    <value>656, 275</value>
   </data>
   <data name="textEditor.TabIndex" type="System.Int32, mscorlib">
     <value>0</value>
@@ -156,6 +156,78 @@
   <data name="&gt;&gt;textEditor.ZOrder" xml:space="preserve">
     <value>0</value>
   </data>
+  <data name="resourceDataEditor.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
+    <value>Fill</value>
+  </data>
+  <data name="resourceDataEditor.Enabled" type="System.Boolean, mscorlib">
+    <value>False</value>
+  </data>
+  <data name="resourceDataEditor.Location" type="System.Drawing.Point, System.Drawing">
+    <value>3, 16</value>
+  </data>
+  <data name="resourceDataEditor.Size" type="System.Drawing.Size, System.Drawing">
+    <value>650, 138</value>
+  </data>
+  <data name="resourceDataEditor.TabIndex" type="System.Int32, mscorlib">
+    <value>4</value>
+  </data>
+  <data name="&gt;&gt;resourceDataEditor.Name" xml:space="preserve">
+    <value>resourceDataEditor</value>
+  </data>
+  <data name="&gt;&gt;resourceDataEditor.Type" xml:space="preserve">
+    <value>OSGeo.MapGuide.Maestro.ResourceEditors.ResourceDataEditor, OSGeo.MapGuide.Maestro.ResourceEditors, Version=1.1.0.4358, Culture=neutral, PublicKeyToken=null</value>
+  </data>
+  <data name="&gt;&gt;resourceDataEditor.Parent" xml:space="preserve">
+    <value>ResourceDataGroup</value>
+  </data>
+  <data name="&gt;&gt;resourceDataEditor.ZOrder" xml:space="preserve">
+    <value>0</value>
+  </data>
+  <data name="ResourceDataGroup.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
+    <value>Bottom</value>
+  </data>
+  <data name="ResourceDataGroup.Location" type="System.Drawing.Point, System.Drawing">
+    <value>0, 368</value>
+  </data>
+  <data name="ResourceDataGroup.Size" type="System.Drawing.Size, System.Drawing">
+    <value>656, 157</value>
+  </data>
+  <data name="ResourceDataGroup.TabIndex" type="System.Int32, mscorlib">
+    <value>5</value>
+  </data>
+  <data name="ResourceDataGroup.Text" xml:space="preserve">
+    <value>Resource data files</value>
+  </data>
+  <data name="ResourceDataGroup.Visible" type="System.Boolean, mscorlib">
+    <value>False</value>
+  </data>
+  <data name="&gt;&gt;ResourceDataGroup.Name" xml:space="preserve">
+    <value>ResourceDataGroup</value>
+  </data>
+  <data name="&gt;&gt;ResourceDataGroup.Type" xml:space="preserve">
+    <value>System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </data>
+  <data name="&gt;&gt;ResourceDataGroup.Parent" xml:space="preserve">
+    <value>panel2</value>
+  </data>
+  <data name="&gt;&gt;ResourceDataGroup.ZOrder" xml:space="preserve">
+    <value>1</value>
+  </data>
+  <data name="label3.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
+    <value>NoControl</value>
+  </data>
+  <data name="label3.Location" type="System.Drawing.Point, System.Drawing">
+    <value>8, 24</value>
+  </data>
+  <data name="label3.Size" type="System.Drawing.Size, System.Drawing">
+    <value>632, 16</value>
+  </data>
+  <data name="label3.TabIndex" type="System.Int32, mscorlib">
+    <value>2</value>
+  </data>
+  <data name="label3.Text" xml:space="preserve">
+    <value>The text display will automatically update when the editor saves the file.</value>
+  </data>
   <data name="&gt;&gt;label3.Name" xml:space="preserve">
     <value>label3</value>
   </data>
@@ -168,6 +240,21 @@
   <data name="&gt;&gt;label3.ZOrder" xml:space="preserve">
     <value>0</value>
   </data>
+  <data name="label2.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
+    <value>NoControl</value>
+  </data>
+  <data name="label2.Location" type="System.Drawing.Point, System.Drawing">
+    <value>8, 40</value>
+  </data>
+  <data name="label2.Size" type="System.Drawing.Size, System.Drawing">
+    <value>632, 16</value>
+  </data>
+  <data name="label2.TabIndex" type="System.Int32, mscorlib">
+    <value>1</value>
+  </data>
+  <data name="label2.Text" xml:space="preserve">
+    <value>Close the external program to restore editing functionality in this xml editor.</value>
+  </data>
   <data name="&gt;&gt;label2.Name" xml:space="preserve">
     <value>label2</value>
   </data>
@@ -180,6 +267,21 @@
   <data name="&gt;&gt;label2.ZOrder" xml:space="preserve">
     <value>1</value>
   </data>
+  <data name="label1.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
+    <value>NoControl</value>
+  </data>
+  <data name="label1.Location" type="System.Drawing.Point, System.Drawing">
+    <value>8, 8</value>
+  </data>
+  <data name="label1.Size" type="System.Drawing.Size, System.Drawing">
+    <value>632, 16</value>
+  </data>
+  <data name="label1.TabIndex" type="System.Int32, mscorlib">
+    <value>0</value>
+  </data>
+  <data name="label1.Text" xml:space="preserve">
+    <value>The application associated with xml editing has been started.</value>
+  </data>
   <data name="&gt;&gt;label1.Name" xml:space="preserve">
     <value>label1</value>
   </data>
@@ -217,7 +319,7 @@
     <value>panel2</value>
   </data>
   <data name="&gt;&gt;LockedMessagePanel.ZOrder" xml:space="preserve">
-    <value>1</value>
+    <value>2</value>
   </data>
   <metadata name="toolBar.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
     <value>0, 0</value>
@@ -401,7 +503,7 @@
     <value>panel2</value>
   </data>
   <data name="&gt;&gt;toolBar.ZOrder" xml:space="preserve">
-    <value>2</value>
+    <value>3</value>
   </data>
   <data name="panel2.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
     <value>Fill</value>
@@ -427,78 +529,6 @@
   <data name="&gt;&gt;panel2.ZOrder" xml:space="preserve">
     <value>0</value>
   </data>
-  <data name="label3.Location" type="System.Drawing.Point, System.Drawing">
-    <value>8, 24</value>
-  </data>
-  <data name="label3.Size" type="System.Drawing.Size, System.Drawing">
-    <value>632, 16</value>
-  </data>
-  <data name="label3.TabIndex" type="System.Int32, mscorlib">
-    <value>2</value>
-  </data>
-  <data name="label3.Text" xml:space="preserve">
-    <value>The text display will automatically update when the editor saves the file.</value>
-  </data>
-  <data name="&gt;&gt;label3.Name" xml:space="preserve">
-    <value>label3</value>
-  </data>
-  <data name="&gt;&gt;label3.Type" xml:space="preserve">
-    <value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;label3.Parent" xml:space="preserve">
-    <value>LockedMessagePanel</value>
-  </data>
-  <data name="&gt;&gt;label3.ZOrder" xml:space="preserve">
-    <value>0</value>
-  </data>
-  <data name="label2.Location" type="System.Drawing.Point, System.Drawing">
-    <value>8, 40</value>
-  </data>
-  <data name="label2.Size" type="System.Drawing.Size, System.Drawing">
-    <value>632, 16</value>
-  </data>
-  <data name="label2.TabIndex" type="System.Int32, mscorlib">
-    <value>1</value>
-  </data>
-  <data name="label2.Text" xml:space="preserve">
-    <value>Close the external program to restore editing functionality in this xml editor.</value>
-  </data>
-  <data name="&gt;&gt;label2.Name" xml:space="preserve">
-    <value>label2</value>
-  </data>
-  <data name="&gt;&gt;label2.Type" xml:space="preserve">
-    <value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;label2.Parent" xml:space="preserve">
-    <value>LockedMessagePanel</value>
-  </data>
-  <data name="&gt;&gt;label2.ZOrder" xml:space="preserve">
-    <value>1</value>
-  </data>
-  <data name="label1.Location" type="System.Drawing.Point, System.Drawing">
-    <value>8, 8</value>
-  </data>
-  <data name="label1.Size" type="System.Drawing.Size, System.Drawing">
-    <value>632, 16</value>
-  </data>
-  <data name="label1.TabIndex" type="System.Int32, mscorlib">
-    <value>0</value>
-  </data>
-  <data name="label1.Text" xml:space="preserve">
-    <value>The application associated with xml editing has been started.</value>
-  </data>
-  <data name="&gt;&gt;label1.Name" xml:space="preserve">
-    <value>label1</value>
-  </data>
-  <data name="&gt;&gt;label1.Type" xml:space="preserve">
-    <value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;label1.Parent" xml:space="preserve">
-    <value>LockedMessagePanel</value>
-  </data>
-  <data name="&gt;&gt;label1.ZOrder" xml:space="preserve">
-    <value>2</value>
-  </data>
   <metadata name="toolbarImages.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
     <value>17, 17</value>
   </metadata>
@@ -507,139 +537,139 @@
         AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj0yLjAuMC4w
         LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
         ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAA6
-        IQAAAk1TRnQBSQFMAgEBBwEAARQBAAEUAQABEAEAARABAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAFA
-        AwABIAMAAQEBAAEgBgABIGYAAYQBygGEAf8BWAG3AVsB//QAAYQBygGEAf8BVgHUAYAB/wF2AfQBpQH/
-        AUIBuAFUAf8kAAGhAZ4BnQH/AaEBngGdAf8BoQGeAZ0B/wGfApwB/wGfApwB/wGfApwB/wGbApgB/wGb
-        ApgB/wGbApgB/wGWApQB/wGWApQB/wGWApQB/wGWApQB/wGWApQB/5AAAY0B0QGNAf8BTgHMAW8B/wF4
-        AfABlwH/AXsB8AGMAf8BZwHmAZIB/wFtAb4BbgH/HAABpAKgAf8B9wHvAewB/wH0AegB4wH/AfQB5wHi
+        IQAAAk1TRnQBSQFMAgEBBwEAATQBAAE0AQABEAEAARABAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAFA
+        AwABIAMAAQEBAAEgBgABIGYAAYQBygGEAf8BVAG3AVcB//QAAYQBygGEAf8BUgHUAYAB/wFyAfQBpQH/
+        AT4BuAFQAf8kAAGhAZ4BnQH/AaEBngGdAf8BoQGeAZ0B/wGfApwB/wGfApwB/wGfApwB/wGbApgB/wGb
+        ApgB/wGbApgB/wGWApQB/wGWApQB/wGWApQB/wGWApQB/wGWApQB/5AAAY0B0QGNAf8BSgHMAWsB/wF0
+        AfABlwH/AXcB8AGMAf8BYwHmAZIB/wFpAb4BagH/HAABpAKgAf8B9wHvAewB/wH0AegB4wH/AfQB5wHi
         Af8B9AHnAeIB/wH0AecB4gH/AfIB4gHcAf8B8gHiAdwB/wHyAeIB3AH/AfIB4gHcAf8B8gHiAdwB/wHy
-        AeIB3AH/AfIB4gHcAf8B8gHiAdwB/wH0AegB4wH/AZYClAH/WAABqwFLAUMB/wG0AVoBRQH/AbQBWgFF
-        Af8BsAFVAUEB/wGwAVUBQQH/Aa4BUgFAAf8BrgFSAUAB/wGuAVIBQAH/Aa4BUgFAAf8BrgFZAV0B/wgA
-        AYQBygGEAf8BTgHMAW8B/wFzAesBlAH/AXoB7gGKAf8BewHwAYwB/wF4AfABlwH/AUgBxQFiAf8cAAGk
+        AeIB3AH/AfIB4gHcAf8B8gHiAdwB/wH0AegB4wH/AZYClAH/WAABqwFHAT8B/wG0AVYBQQH/AbQBVgFB
+        Af8BsAFRAT0B/wGwAVEBPQH/Aa4BTgE8Af8BrgFOATwB/wGuAU4BPAH/Aa4BTgE8Af8BrgFVAVkB/wgA
+        AYQBygGEAf8BSgHMAWsB/wFvAesBlAH/AXYB7gGKAf8BdwHwAYwB/wF0AfABlwH/AUQBxQFeAf8cAAGk
         AqAB/wH0AegB4wH/AeUB1gHQAf8B0QHFAcEB/wHRAcUBwQH/Ac4BwQG9Af8BzgHBAb0B/wHOAcEBvQH/
         Ac0BwAG7Af8BzQHAAbsB/wHNAcABuwH/AcsBvAG4Af8BzQHAAbsB/wHgAc0BxgH/AfIB4gHcAf8BlgKU
-        Af9cAAHHAXkBSQH/AeMBnwFcAf8B2QGKAVIB/wHVAYUBTgH/AdUBhQFOAf8B1QGFAU4B/wHVAYUBTgH/
-        AdwBmQFVAf8BuwFzAXcB/wQAAYEBzAGBAf8BTQHRAXMB/wFtAeQBiwH/AXQB5wGFAf8BdwHxAZwB/wF3
-        AfEBnAH/AXYB7wGIAf8BaQHqAZQB/wFRAbYBVQH/GAABqQGmAaUB/wH3Ae8B7AH/AfIB4gHcAf8B7gHe
+        Af9cAAHHAXUBRQH/AeMBnwFYAf8B2QGKAU4B/wHVAYUBSgH/AdUBhQFKAf8B1QGFAUoB/wHVAYUBSgH/
+        AdwBmQFRAf8BuwFvAXMB/wQAAYEBzAGBAf8BSQHRAW8B/wFpAeQBiwH/AXAB5wGFAf8BcwHxAZwB/wFz
+        AfEBnAH/AXIB7wGIAf8BZQHqAZQB/wFNAbYBUQH/GAABqQGmAaUB/wH3Ae8B7AH/AfIB4gHcAf8B7gHe
         AdkB/wHuAd4B2QH/AewB2gHUAf8B7AHaAdQB/wHsAdoB1AH/Ae0B1wHPAf8B6QHVAc4B/wHpAdUBzgH/
-        AekB1QHOAf8B6QHVAc4B/wHpAdUBzgH/AfIB4gHcAf8BmwKYAf9cAAHHAYQBgQH/AdUBiQFSAf8B1QGF
-        AU4B/wHNAXUBSAH/AcwBcgFGAf8BzAFyAUYB/wHMAXIBRgH/Ac4BggFOAf8EAAGVAdcBlQH/AU4BzAFv
-        Af8BZQHaAYEB/wFsAd4BgQH/AXMB6wGUAf8BQgG4AVQB/wFIAcUBYgH/AXgB8AGXAf8BbAHpAYIB/wFN
-        AdEBcwH/GAABqQGmAaUB/wH3Ae8B7AH/AeUB2QHVAf8B0wHIAcUB/wHRAcUBwQH/AdEBxQHBAf8BzwHD
+        AekB1QHOAf8B6QHVAc4B/wHpAdUBzgH/AfIB4gHcAf8BmwKYAf9cAAHHAYQBgQH/AdUBiQFOAf8B1QGF
+        AUoB/wHNAXEBRAH/AcwBbgFCAf8BzAFuAUIB/wHMAW4BQgH/Ac4BggFKAf8EAAGVAdcBlQH/AUoBzAFr
+        Af8BYQHaAYEB/wFoAd4BgQH/AW8B6wGUAf8BPgG4AVAB/wFEAcUBXgH/AXQB8AGXAf8BaAHpAYIB/wFJ
+        AdEBbwH/GAABqQGmAaUB/wH3Ae8B7AH/AeUB2QHVAf8B0wHIAcUB/wHRAcUBwQH/AdEBxQHBAf8BzwHD
         AcAB/wHOAcEBvQH/Ac4BwQG9Af8BzgHBAb0B/wHNAcABuwH/Ac0BwAG7Af8BywG8AbgB/wHgAc0BxgH/
-        AfIB4gHcAf8BlgKUAf9gAAGuAUwBOQH/AeMBnwFcAf8B0gF6AU4B/wHNAXUBSAH/AcwBcgFGAf8BzQF1
-        AUgB/wHHAXkBSQH/BAABVwHDAVsB/wFgAdgBhwH/AWMB1AF3Af8BZwHmAZIB/wFFAb0BVAH/BAABgQHM
-        AYEB/wFkAeQBjgH/AWwB6AGBAf8BYwHmAYYB/wFBAbgBUQH/FAABqQGmAaUB/wH3Ae8B7AH/AfQB5wHi
+        AfIB4gHcAf8BlgKUAf9gAAGuAUgBNQH/AeMBnwFYAf8B0gF2AUoB/wHNAXEBRAH/AcwBbgFCAf8BzQFx
+        AUQB/wHHAXUBRQH/BAABUwHDAVcB/wFcAdgBhwH/AV8B1AFzAf8BYwHmAZIB/wFBAb0BUAH/BAABgQHM
+        AYEB/wFgAeQBjgH/AWgB6AGBAf8BXwHmAYYB/wE9AbgBTQH/FAABqQGmAaUB/wH3Ae8B7AH/AfQB5wHi
         Af8B7gHeAdkB/wHuAd4B2QH/AeUB2QHVAf8B5QHZAdUB/wHlAdYB0AH/AeUB1gHQAf8B5QHWAdAB/wHk
-        AdIBzAH/AeQB0gHMAf8B5AHSAcwB/wHpAdUBzgH/AfIB4gHcAf8BmwKYAf9cAAG8AWUBRwH/AeYBogFk
-        Af8B4wGMAWMB/wHZAYEBWAH/AdIBegFOAf8BzQF1AUgB/wHSAYEBSwH/AbYBXgE/Af8EAAGBAdABgQH/
-        AU0B0QFzAf8BWQHYAYEB/wFFAb0BVAH/DAABQQG4AVEB/wFzAesBlAH/AV8B3wFzAf8BVwHcAYEB/wFg
-        AbsBYgH/EAABqQGmAaUB/wH4AfEB7gH/AegB3wHcAf8B3gHUAdAB/wHbAdABzQH/AdsB0AHNAf8B3AHO
+        AdIBzAH/AeQB0gHMAf8B5AHSAcwB/wHpAdUBzgH/AfIB4gHcAf8BmwKYAf9cAAG8AWEBQwH/AeYBogFg
+        Af8B4wGMAV8B/wHZAYEBVAH/AdIBdgFKAf8BzQFxAUQB/wHSAYEBRwH/AbYBWgE7Af8EAAGBAdABgQH/
+        AUkB0QFvAf8BVQHYAYEB/wFBAb0BUAH/DAABPQG4AU0B/wFvAesBlAH/AVsB3wFvAf8BUwHcAYEB/wFc
+        AbsBXgH/EAABqQGmAaUB/wH4AfEB7gH/AegB3wHcAf8B3gHUAdAB/wHbAdABzQH/AdsB0AHNAf8B3AHO
         AcoB/wHcAc4BygH/AdwBzgHKAf8B0wHIAcUB/wHgAc0BxgH/AdEBxQHBAf8B1wHIAcQB/wHkAdIBzAH/
-        AfIB4gHcAf8BmwKYAf9UAAHBAW8BVgH/AdYBigFWAf8B8gGrAXUB/wHuAZUBdAH/AecBjQFrAf8B4AGF
-        AWEB/wHZAYEBWAH/AdIBegFOAf8B2QGKAVIB/wGxAVkBTQH/DAABlQHXAZUB/xAAAZUB1wGVAf8BUQHY
-        AX0B/wFfAeABdwH/AVUB2QFuAf8BSAHKAWwB/xAAAawBqQGoAf8B+QHyAfAB/wHuAeQB4QH/AeUB2QHV
+        AfIB4gHcAf8BmwKYAf9UAAHBAWsBUgH/AdYBigFSAf8B8gGrAXEB/wHuAZUBcAH/AecBjQFnAf8B4AGF
+        AV0B/wHZAYEBVAH/AdIBdgFKAf8B2QGKAU4B/wGxAVUBSQH/DAABlQHXAZUB/xAAAZUB1wGVAf8BTQHY
+        AXkB/wFbAeABcwH/AVEB2QFqAf8BRAHKAWgB/xAAAawBqQGoAf8B+QHyAfAB/wHuAeQB4QH/AeUB2QHV
         Af8B4QHXAdQB/wHeAdQB0AH/Ad4B1AHQAf8B2wHQAc0B/wHbAdABzQH/AdsB0AHNAf8B3AHOAcoB/wHc
-        Ac4BygH/AeABzQHGAf8B5QHWAdAB/wH0AecB4gH/AZ8CnAH/QAAB0gGPAXkB/wG/AWIBOwH/AcYBcgFE
-        Af8BzQF1AUgB/wHaAZABWAH/Ae0BpwFwAf8B7wGZAXkB/wHwAZYBegH/AfABlgF6Af8B7gGVAXQB/wHq
-        AaUBaAH/AdoBkAFYAf8B3QGMAVgB/wHeAZcBVwH/AbwBcwFwAf8kAAFSAbwBVwH/AWQB5AGOAf8BUgHV
-        AWMB/wFRAdkBdwH/AUEBuAFRAf8MAAGsAakBqAH/AfkB8gHwAf8B9AHoAeMB/wHoAd8B3AH/AegB3wHc
+        Ac4BygH/AeABzQHGAf8B5QHWAdAB/wH0AecB4gH/AZ8CnAH/QAAB0gGPAXUB/wG/AV4BNwH/AcYBbgFA
+        Af8BzQFxAUQB/wHaAZABVAH/Ae0BpwFsAf8B7wGZAXUB/wHwAZYBdgH/AfABlgF2Af8B7gGVAXAB/wHq
+        AaUBZAH/AdoBkAFUAf8B3QGMAVQB/wHeAZcBUwH/AbwBbwFsAf8kAAFOAbwBUwH/AWAB5AGOAf8BTgHV
+        AV8B/wFNAdkBcwH/AT0BuAFNAf8MAAGsAakBqAH/AfkB8gHwAf8B9AHoAeMB/wHoAd8B3AH/AegB3wHc
         Af8B6AHfAdwB/wHlAdkB1QH/AeUB2QHVAf8B5QHZAdUB/wHlAdYB0AH/AeUB1gHQAf8B5QHWAdAB/wHb
-        AdABzQH/AewB2gHUAf8B9AHnAeIB/wGfApwB/0QAAc0BggFoAf8B1QGJAVIB/wHmAaIBZAH/Ad4BiAFq
-        Af8B4wGJAXEB/wHuAZUBdAH/Ae8BmQF5Af8B8gGrAXUB/wHdAYwBWAH/AbsBZgFRAf8BvAFzAXAB/wHV
-        AYkBUgH/AdoBkAFYAf8sAAFDAcIBWgH/AVcB3AF6Af8BRwHNAVkB/wFRAdgBfQH/AVEBtgFVAf8IAAGq
+        AdABzQH/AewB2gHUAf8B9AHnAeIB/wGfApwB/0QAAc0BggFkAf8B1QGJAU4B/wHmAaIBYAH/Ad4BiAFm
+        Af8B4wGJAW0B/wHuAZUBcAH/Ae8BmQF1Af8B8gGrAXEB/wHdAYwBVAH/AbsBYgFNAf8BvAFvAWwB/wHV
+        AYkBTgH/AdoBkAFUAf8sAAE/AcIBVgH/AVMB3AF2Af8BQwHNAVUB/wFNAdgBeQH/AU0BtgFRAf8IAAGq
         AZ0BnAH/AewB2gHUAf8B5QHZAdUB/wHsAdoB1AH/AeUB1gHQAf8B7QHXAc8B/wHlAdkB1QH/Ae0B1wHP
         Af8B5QHWAdAB/wHlAdYB0AH/AeUB1gHQAf8B5QHWAdAB/wHtAdcBzwH/AeUB1gHQAf8B5QHWAdAB/wGc
-        AZABjgH/TAABxgF0AUwB/wHQAYEBSwH/AdUBiQFSAf8B1QGJAVIB/wHNAXUBSAH/AcIBdAFcAf8MAAG9
-        AW0BYQH/AcYBcgFEAf8sAAGNAdEBjQH/AU0B0QFzAf8BSwHRAWMB/wFHAc0BWQH/AU0B0QFzAf8BdQHF
-        AXYB/wQAAb0BZgFUAf8ByAFwAVwB/wHIAXABXAH/AcgBcAFcAf8ByAFwAVwB/wHIAXABXAH/AcgBcAFc
-        Af8ByAFwAVwB/wHIAXABXAH/AcgBcAFcAf8BwgFtAVoB/wHCAWoBWAH/AcIBagFYAf8BvQFmAVQB/wG9
-        AWYBVAH/AbgBYQFPAf90AAGwAVMBRwH/MAABYQHBAWMB/wFRAdgBfQH/AUcBzQFZAf8BSwHSAWYB/wFF
-        AcYBZQH/BAABwgFqAVgB/wHRAXsBVwH/AdEBewFXAf8B1QGAAWAB/wHVAYABYAH/AdYBgQFiAf8B0gF7
-        AWAB/wHQAXkBXQH/AcgBcAFcAf8BzwGMAX0B/wHIAYEBcwH/AcYBhAF4Af8BvgF5AWgB/wHPAZ8BlQH/
-        AbIBXQFMAf8BvQFmAVQB/6wAAUkBvAFSAf8BUQHYAX0B/wFHAc0BWQH/AVEB2AF9Af8BVgG6AVoB/wHI
-        AXABXAH/AdEBfAFaAf8B0QF7AVcB/wHVAYABYAH/AdUBgAFgAf8B1gGBAWIB/wHWAYEBYgH/AdYBgQFi
-        Af8B1QGAAWAB/wHQAXkBXQH/AckBcQFaAf8B0gGZAYsB/wHIAYEBcwH/Ac8BlQGIAf8BvQFmAVQB/wHI
-        AXABXAH/sAABQQG4AVEB/wFTAdsBgQH/AU0B0QFzAf8BdQHFAXYB/wQAAcgBcAFcAf8BwAFvAV0B/wHC
-        AWoBWAH/AcgBcAFcAf8ByAFwAVwB/wHAAW8BXQH/AcgBcAFcAf8BvgFrAVoB/wHCAWoBWAH/AcgBcAFc
-        Af8BvQFmAVQB/wHIAXABXAH/Ab0BZgFUAf8BvgF5AWgB/7gAAW4BxQFuAf8BhgHOAYUB/5wAAc4CzAH/
+        AZABjgH/TAABxgFwAUgB/wHQAYEBRwH/AdUBiQFOAf8B1QGJAU4B/wHNAXEBRAH/AcIBcAFYAf8MAAG9
+        AWkBXQH/AcYBbgFAAf8sAAGNAdEBjQH/AUkB0QFvAf8BRwHRAV8B/wFDAc0BVQH/AUkB0QFvAf8BcQHF
+        AXIB/wQAAb0BYgFQAf8ByAFsAVgB/wHIAWwBWAH/AcgBbAFYAf8ByAFsAVgB/wHIAWwBWAH/AcgBbAFY
+        Af8ByAFsAVgB/wHIAWwBWAH/AcgBbAFYAf8BwgFpAVYB/wHCAWYBVAH/AcIBZgFUAf8BvQFiAVAB/wG9
+        AWIBUAH/AbgBXQFLAf90AAGwAU8BQwH/MAABXQHBAV8B/wFNAdgBeQH/AUMBzQFVAf8BRwHSAWIB/wFB
+        AcYBYQH/BAABwgFmAVQB/wHRAXcBUwH/AdEBdwFTAf8B1QGAAVwB/wHVAYABXAH/AdYBgQFeAf8B0gF3
+        AVwB/wHQAXUBWQH/AcgBbAFYAf8BzwGMAXkB/wHIAYEBbwH/AcYBhAF0Af8BvgF1AWQB/wHPAZ8BlQH/
+        AbIBWQFIAf8BvQFiAVAB/6wAAUUBvAFOAf8BTQHYAXkB/wFDAc0BVQH/AU0B2AF5Af8BUgG6AVYB/wHI
+        AWwBWAH/AdEBeAFWAf8B0QF3AVMB/wHVAYABXAH/AdUBgAFcAf8B1gGBAV4B/wHWAYEBXgH/AdYBgQFe
+        Af8B1QGAAVwB/wHQAXUBWQH/AckBbQFWAf8B0gGZAYsB/wHIAYEBbwH/Ac8BlQGIAf8BvQFiAVAB/wHI
+        AWwBWAH/sAABPQG4AU0B/wFPAdsBgQH/AUkB0QFvAf8BcQHFAXIB/wQAAcgBbAFYAf8BwAFrAVkB/wHC
+        AWYBVAH/AcgBbAFYAf8ByAFsAVgB/wHAAWsBWQH/AcgBbAFYAf8BvgFnAVYB/wHCAWYBVAH/AcgBbAFY
+        Af8BvQFiAVAB/wHIAWwBWAH/Ab0BYgFQAf8BvgF1AWQB/7gAAWoBxQFqAf8BhgHOAYUB/5wAAc4CzAH/
         Ac4CzAH/Ac4CzAH/Ac4CzAH/AcoByAHHAf8BzgLMAf8BygHIAccB/wHKAcgBxwH/AcoByAHHAf8QAAHI
-        AYEBbAH/AcIBcAFUAf8BxQGBAXAB/xAAAbsBcAFsAf8BsgFZAUsB/wG3AWoBaAH/JAAByQHHAcgB/wHK
+        AYEBaAH/AcIBbAFQAf8BxQGBAWwB/xAAAbsBbAFoAf8BsgFVAUcB/wG3AWYBZAH/JAAByQHHAcgB/wHK
         AsgB/wHKAsgB/wHJAccByAH/AckBxwHIAf8ByQHHAcgB/wHGAsUB/wHGAsUB/wHGAsUB/1wAAfoB9gH1
         Af8B9wHwAe0B/wH2Ae0B6QH/AfYB7QHpAf8B9gHtAekB/wH0AeYB4QH/AfQB5gHhAf8B9AHmAeEB/wH3
-        AfMB8gH/DAAByAF5AVwB/wHrAZUBcQH/AdgBgQFZAf8B2gGEAVkB/wG8AWIBRQH/CAABsgFZAUsB/wHM
-        AXcBSAH/AcABZgFCAf8BzAF3AUgB/wGyAVsBVgH/DAABUAGbAdsB/wFBAZEB2QH/AUEBkQHZAf8BQQGP
-        AdkB/wFEAY8B2AH/Ac0BzwHTAf8B9gHtAekB/wH0AekB5QH/AfIB5gHiAf8B8gHkAd4B/wHyAeQB3gH/
+        AfMB8gH/DAAByAF1AVgB/wHrAZUBbQH/AdgBgQFVAf8B2gGEAVUB/wG8AV4BQQH/CAABsgFVAUcB/wHM
+        AXMBRAH/AcABYgE+Af8BzAFzAUQB/wGyAVcBUgH/DAABTAGbAdsB/wE9AZEB2QH/AT0BkQHZAf8BPQGP
+        AdkB/wFAAY8B2AH/Ac0BzwHTAf8B9gHtAekB/wH0AekB5QH/AfIB5gHiAf8B8gHkAd4B/wHyAeQB3gH/
         AfEB4AHaAf8B8gHkAd4B/wH0AekB5QH/XAAB+gH2AfUB/wH2Ae0B6QH/AfQB5gHhAf8B8QHfAdgB/wHv
-        AdsB1AH/Ae8B2wHUAf8B7wHbAdQB/wHuAdgB0AH/AfYB7QHpAf8MAAHSAXoBUgH/AdQBfAFWAf8EAAHC
-        AXABVAH/AdoBhAFZAf8ByQGGAYEB/wQAAcwBdwFIAf8BtgFhAVQB/wQAAbgBWwE+Af8BswFUATwB/wgA
-        AXQBsAHhAf8BdQHcAfYB/wF1AeoC/wFuAd8C/wFpAdUB/gH/AWUBzgL/AdAB0wHVAf8B9gHtAekB/wHy
+        AdsB1AH/Ae8B2wHUAf8B7wHbAdQB/wHuAdgB0AH/AfYB7QHpAf8MAAHSAXYBTgH/AdQBeAFSAf8EAAHC
+        AWwBUAH/AdoBhAFVAf8ByQGGAYEB/wQAAcwBcwFEAf8BtgFdAVAB/wQAAbgBVwE6Af8BswFQATgB/wgA
+        AXABsAHhAf8BcQHcAfYB/wFxAeoC/wFqAd8C/wFlAdUB/gH/AWEBzgL/AdAB0wHVAf8B9gHtAekB/wHy
         AeYB4gH/AfIB5AHeAf8B7gHfAdkB/wHtAdsB1QH/Ae0B1wHQAf8B7QHXAdAB/wHwAecB5AH/WAABxwLF
         Af8B+gH2AfUB/wHlAdsB1wH/AdgBzwHNAf8B1QHLAcgB/wHTAckBxgH/AdEBxQHCAf8B0QHDAb8B/wHb
-        AcoBxQH/AfYB7QHpAf8MAAHPAXgBUAH/AdQBfAFWAf8IAAHaAYQBWQH/AcIBcAFUAf8BwgF5AWgB/wHI
-        AXIBRQH/CAABugFeAT8B/wGzAVQBPAH/CAABZgGqAd4B/wGAAe8B/AH/AWsB9AL/AWMB5wL/AVoB2AL/
-        AVEBygL/AdAB0wHVAf8B9AHpAeUB/wHcAdQB0gH/AdkB0AHNAf8B2QHOAcsB/wHXAcsByAH/AdUByAHE
-        Af8B4wHSAcwB/wH0AekB5QH/BAABvgFpAVMB/wHAAWkBQwH/Ab4BaAFDAf8BvgFoAUMB/wG5AWEBRAH/
-        AbkBYQFEAf8BtwFdAUQB/wG0AVsBRQH/AbQBWwFFAf8BqAFIAUcB/xgAAcEBvwG+Af8B3QHYAdYB/wHa
+        AcoBxQH/AfYB7QHpAf8MAAHPAXQBTAH/AdQBeAFSAf8IAAHaAYQBVQH/AcIBbAFQAf8BwgF1AWQB/wHI
+        AW4BQQH/CAABugFaATsB/wGzAVABOAH/CAABYgGqAd4B/wGAAe8B/AH/AWcB9AL/AV8B5wL/AVYB2AL/
+        AU0BygL/AdAB0wHVAf8B9AHpAeUB/wHcAdQB0gH/AdkB0AHNAf8B2QHOAcsB/wHXAcsByAH/AdUByAHE
+        Af8B4wHSAcwB/wH0AekB5QH/BAABvgFlAU8B/wHAAWUBPwH/Ab4BZAE/Af8BvgFkAT8B/wG5AV0BQAH/
+        AbkBXQFAAf8BtwFZAUAB/wG0AVcBQQH/AbQBVwFBAf8BqAFEAUMB/xgAAcEBvwG+Af8B3QHYAdYB/wHa
         AdUB1AH/AdoB1QHUAf8B2gHVAdQB/wHFAcABvwH/AfoB9gH1Af8B8AHoAeUB/wHoAeEB3gH/Ae4B5QHi
-        Af8B5QHbAdcB/wHjAdcB0wH/AeIB1AHPAf8B5gHWAdAB/wH2Ae0B6QH/DAAB0AGIAW4B/wHlAZABbQH/
-        AckBfQFgAf8BywGEAXIB/wHkAY0BZwH/AcgBbgFKAf8BvAFiAUUB/wHMAXcBSAH/Ab8BdQFrAf8BuAFn
-        AVoB/wHMAXcBSAH/AbsBcAFsAf8IAAFmAaoB3gH/AYEB8AH8Af8BcgH9Av8BawH0Av8BYwHnAv8BWgHY
+        Af8B5QHbAdcB/wHjAdcB0wH/AeIB1AHPAf8B5gHWAdAB/wH2Ae0B6QH/DAAB0AGIAWoB/wHlAZABaQH/
+        AckBeQFcAf8BywGEAW4B/wHkAY0BYwH/AcgBagFGAf8BvAFeAUEB/wHMAXMBRAH/Ab8BcQFnAf8BuAFj
+        AVYB/wHMAXMBRAH/AbsBbAFoAf8IAAFiAaoB3gH/AYEB8AH8Af8BbgH9Av8BZwH0Av8BXwHnAv8BVgHY
         Av8B0AHTAdUB/wHwAekB5gH/AdwB1AHSAf8B5AHdAdoB/wHhAdgB1QH/AdwB1AHSAf8B2QHQAc0B/wHk
-        AdYB0QH/AfYB7QHpAf8EAAHIAYEBbAH/AfABsQFxAf8B8QGhAXkB/wHxAaEBeQH/AfIBpgF2Af8B7wGj
-        AXEB/wHqAZ0BaQH/AeoBpwFkAf8BwAFuAUUB/xwAAcoByAHHAf8B6AHhAd4B/wHqAdwB2AH/Ae8B2wHU
+        AdYB0QH/AfYB7QHpAf8EAAHIAYEBaAH/AfABsQFtAf8B8QGhAXUB/wHxAaEBdQH/AfIBpgFyAf8B7wGj
+        AW0B/wHqAZ0BZQH/AeoBpwFgAf8BwAFqAUEB/xwAAcoByAHHAf8B6AHhAd4B/wHqAdwB2AH/Ae8B2wHU
         Af8B5gHWAdAB/wHMAcEBvQH/AfoB9gH1Af8B9gHtAekB/wHoAeEB3gH/AfYB7QHpAf8B2gHVAdQB/wHu
-        AeUB4gH/AegB4QHeAf8B2AHPAc0B/wH4AfAB7QH/EAAB0gF8AVIB/wHpAZIBdAH/AesBlQFxAf8B8AGa
-        AXYB/wHYAYEBWQH/AcwBdAFMAf8B2gGEAVkB/wHMAXcBSAH/AcwBdwFIAf8BugFeAT8B/wwAAWYBqgHe
-        Af8BgQHwAfwB/wFyAf0C/wFyAf0C/wFrAfQC/wFjAecC/wHTAdcB2AH/AfYB7QHpAf8B8AHnAeQB/wHw
+        AeUB4gH/AegB4QHeAf8B2AHPAc0B/wH4AfAB7QH/EAAB0gF4AU4B/wHpAZIBcAH/AesBlQFtAf8B8AGa
+        AXIB/wHYAYEBVQH/AcwBcAFIAf8B2gGEAVUB/wHMAXMBRAH/AcwBcwFEAf8BugFaATsB/wwAAWIBqgHe
+        Af8BgQHwAfwB/wFuAf0C/wFuAf0C/wFnAfQC/wFfAecC/wHTAdcB2AH/AfYB7QHpAf8B8AHnAeQB/wHw
         AekB5gH/AeQB3QHaAf8B9gHtAekB/wH0AekB5QH/AdwB1AHSAf8B9gHtAekB/wQAAdcBoAGRAf8B4wGc
-        AWMB/wHrAZABeAH/AesBkAF4Af8B8AGYAXkB/wHvAZUBdwH/Ae0BmQFxAf8B0wGHAVMB/wHMAY8BiwH/
+        AV8B/wHrAZABdAH/AesBkAF0Af8B8AGYAXUB/wHvAZUBcwH/Ae0BmQFtAf8B0wGHAU8B/wHMAY8BiwH/
         HAABygHIAccB/wHwAegB5QH/AdUBywHIAf8B0wHJAcYB/wHKAcgBxwH/AcEBuQG2Af8B+gH2AfUB/wHl
         AdsB1wH/AdgB0QHPAf8B5QHbAdcB/wHdAdgB1gH/AfgB8AHtAf8B+AHwAe0B/wHiAdQBzwH/AfoB9gH1
-        Af8UAAHOAYEBYgH/Ac4BgQFiAf8BwAFqAUsB/wHtAZ0BcQH/AegBmAFpAf8BvAFiAUUB/wHDAXYBXwH/
-        Ab8BcQFbAf8QAAFmAbIB3gH/AYAB7wH8Af8BcgH9Av8BcgH9Av8BcgH9Av8BawH0Av8B0wHXAdgB/wH2
+        Af8UAAHOAYEBXgH/Ac4BgQFeAf8BwAFmAUcB/wHtAZ0BbQH/AegBmAFlAf8BvAFeAUEB/wHDAXIBWwH/
+        Ab8BbQFXAf8QAAFiAbIB3gH/AYAB7wH8Af8BbgH9Av8BbgH9Av8BbgH9Av8BZwH0Av8B0wHXAdgB/wH2
         Ae0B6QH/AeQB3QHaAf8B8AHnAeQB/wHfAdgB1gH/AfgB8AHtAf8B+AHwAe0B/wHhAdgB1QH/AfUB8AHu
-        Af8IAAHYAYwBVQH/AegBjQF1Af8B6wGQAXgB/wHwAZUBegH/AfABlQF6Af8B8gGuAXIB/wGvAU4BPAH/
+        Af8IAAHYAYwBUQH/AegBjQFxAf8B6wGQAXQB/wHwAZUBdgH/AfABlQF2Af8B8gGuAW4B/wGvAUoBOAH/
         IAABygHIAccB/wHwAegB5QH/AegB4QHeAf8B5QHbAdcB/wHjAdcB0wH/AcoByAHHAf8B+gH2AfUB/wH2
         Ae0B6QH/AegB4QHeAf8B9gHtAekB/wHaAdUB1AH/AfQB5gHhAf8B7gHlAeIB/wHaAdUB1AH/AfoB9gH1
-        Af8cAAG6AYoBgQH/AckBiwF9Af8BxwGJAXwB/wG0AYQBfQH/GAABZgGqAd4B/wGAAecB/AH/AXIB8wL/
-        AXIB/QL/AXIB/QL/AXIB/QL/AdMC2AH/AfAB6QHmAf8B3AHUAdIB/wHkAd0B2gH/Ad8B2AHWAf8B3wHY
-        AdYB/wHcAdQB0gH/AecB4AHeAf8B9QHxAfAB/wgAAc4BgQFJAf8B4gGMAW4B/wHoAY0BdQH/AesBkAF4
-        Af8B8AGVAXoB/wHxAZ0BeQH/AecBowFmAf8BuQFhAUQB/xwAAc4CzAH/Ae4B5QHiAf8B1QHLAcgB/wHV
+        Af8cAAG6AYoBgQH/AckBiwF5Af8BxwGJAXgB/wG0AYQBeQH/GAABYgGqAd4B/wGAAecB/AH/AW4B8wL/
+        AW4B/QL/AW4B/QL/AW4B/QL/AdMC2AH/AfAB6QHmAf8B3AHUAdIB/wHkAd0B2gH/Ad8B2AHWAf8B3wHY
+        AdYB/wHcAdQB0gH/AecB4AHeAf8B9QHxAfAB/wgAAc4BgQFFAf8B4gGMAWoB/wHoAY0BcQH/AesBkAF0
+        Af8B8AGVAXYB/wHxAZ0BdQH/AecBowFiAf8BuQFdAUAB/xwAAc4CzAH/Ae4B5QHiAf8B1QHLAcgB/wHV
         AcsByAH/AdoB1QHUAf8BwQG5AbYB/wH6AfYB9QH/Ae4B5QHiAf8B6AHhAd4B/wHuAeUB4gH/Ae4B5QHi
         Af8B5QHbAdcB/wHoAeEB3gH/Ae4B5QHiAf8B9wHzAfIB/xgAAbkBtQG0Af8B6AHcAdcB/wHSAckBxgH/
-        AdIByQHGAf8B5QHXAdMB/wG1ArIB/xQAAWYBsgHeAf8BgAHnAfwB/wFwAeoC/wFyAfMC/wFyAf0C/wFy
+        AdIByQHGAf8B5QHXAdMB/wG1ArIB/xQAAWIBsgHeAf8BgAHnAfwB/wFsAeoC/wFuAfMC/wFuAf0C/wFu
         Af0C/wHTAtgB/wH4AfAB7QH/AfgB8AHtAf8B+AHwAe0B/wH4AfAB7QH/AfgB8AHtAf8B9gHtAekB/wHZ
-        AdABzQH/AdwB1AHSAf8IAAHGAXQBSQH/AeABkAFqAf8B4AGDAW8B/wHoAY0BdQH/AesBkAF4Af8B8AGV
-        AXoB/wHwAZgBeQH/AfIBpgF2Af8BzwGBAVAB/wG5AWYBWAH/FAABzgLMAf8B7gHlAeIB/wHaAdUB1AH/
+        AdABzQH/AdwB1AHSAf8IAAHGAXABRQH/AeABkAFmAf8B4AGDAWsB/wHoAY0BcQH/AesBkAF0Af8B8AGV
+        AXYB/wHwAZgBdQH/AfIBpgFyAf8BzwGBAUwB/wG5AWIBVAH/FAABzgLMAf8B7gHlAeIB/wHaAdUB1AH/
         AdUBzgHMAf8B3QHYAdYB/wHFAcABvwH/AfoB9gH1Af8B9wHwAe0B/wH4AfAB7QH/AfoB9gH1Af8B9gHt
         AekB/wH6AfYB9QH/AeUB2wHXAf8BwAK6Af8BwQG/Ab4B/xgAAdQBzAHKAf8B6gHeAdoB/wG5AbUBtAH/
-        AbkBtQG0Af8B6AHcAdcB/wHRAccBxQH/FAABZgGyAd4B/wF5AdgB/AH/AW4B3wL/AXAB6gL/AXIB8wL/
-        AXIB/QL/AdMB1wHYAf8B+AHwAe0B/wH4AfAB7QH/AfgB8AHtAf8B+AHwAe0B/wH1AfAB7gH/AdwB1AHS
-        Af8ByQHHAcgB/wGrAqgB/wgAAcsBgQFnAf8B4AGYAWUB/wHgAZABagH/Ad0BlwFcAf8B7QGnAXEB/wHu
-        AZUBegH/AfABmAF5Af8B7wGVAXcB/wHtAZkBcQH/AeoBpwFkAf8B1QGIAVQB/wG+AWgBQwH/AbUBWgFC
-        Af8BpQE/ATcB/wHEAoEB/wHOAswB/wHwAegB5QH/AeUB2wHXAf8B6AHhAd4B/wHlAdsB1wH/AcUBwAG/
+        AbkBtQG0Af8B6AHcAdcB/wHRAccBxQH/FAABYgGyAd4B/wF1AdgB/AH/AWoB3wL/AWwB6gL/AW4B8wL/
+        AW4B/QL/AdMB1wHYAf8B+AHwAe0B/wH4AfAB7QH/AfgB8AHtAf8B+AHwAe0B/wH1AfAB7gH/AdwB1AHS
+        Af8ByQHHAcgB/wGrAqgB/wgAAcsBgQFjAf8B4AGYAWEB/wHgAZABZgH/Ad0BlwFYAf8B7QGnAW0B/wHu
+        AZUBdgH/AfABmAF1Af8B7wGVAXMB/wHtAZkBbQH/AeoBpwFgAf8B1QGIAVAB/wG+AWQBPwH/AbUBVgE+
+        Af8BpQE7ATMB/wHEAoEB/wHOAswB/wHwAegB5QH/AeUB2wHXAf8B6AHhAd4B/wHlAdsB1wH/AcUBwAG/
         Af8B+gH2AfUB/wH4AfAB7QH/AfgB8AHtAf8B+AHwAe0B/wH4AfAB7QH/AfgB8AHtAf8B1QHOAcwB/wHa
         AdgB2QH/AbMCsAH/FAABuQG1AbQB/wH0AegB4wH/AbkBtQG0Af8IAAG0AbABrwH/AfIB4wHdAf8BtAGw
-        Aa8B/xAAAWYBsgHeAf8BeQHYAfwB/wFpAdUB/gH/AW4B3wL/AXAB6gL/AXIB8wL/AdMC2AH/AfkB9QHz
+        Aa8B/xAAAWIBsgHeAf8BdQHYAfwB/wFlAdUB/gH/AWoB3wL/AWwB6gL/AW4B8wL/AdMC2AH/AfkB9QHz
         Af8B+QH1AfMB/wH5AfUB8wH/AfkB9QHzAf8B+QH1AfMB/wHfAdoB2QH/AbUBsQGyAf8MAAHYAZ8BigH/
-        Ad0BlwFcAf8B1gGLAVMB/wHNAYYBdAH/AcMBcAFOAf8B3QGXAVwB/wHyAaYBdgH/AfMBpgF5Af8B8QGd
-        AXkB/wHrAZABeAH/AeABkAFqAf8B6gGpAWQB/wHMAYEBTAH/Ab0BdAFuAf8EAAHOAswB/wHwAegB5QH/
+        Ad0BlwFYAf8B1gGLAU8B/wHNAYYBcAH/AcMBbAFKAf8B3QGXAVgB/wHyAaYBcgH/AfMBpgF1Af8B8QGd
+        AXUB/wHrAZABdAH/AeABkAFmAf8B6gGpAWAB/wHMAYEBSAH/Ab0BcAFqAf8EAAHOAswB/wHwAegB5QH/
         AdUBywHIAf8BzgLMAf8B4wHXAdMB/wHHAsUB/wH6AfYB9QH/AfoB9gH1Af8B+gH2AfUB/wH6AfYB9QH/
         AfoB9gH1Af8B+wL5Af8B2gHVAdQB/wGzArAB/xgAAeEB2QHWAf8B1AHMAcoB/xAAAdIByQHGAf8B3gHU
-        AdAB/xAAAWYBsgHeAf8BeAHUAfwB/wFlAc4C/wFpAdUB/gH/AWgB1gHzAf8BagHfAfIB/wGJAcYBzQH/
-        AZABzAHOAf8BjwLOAf8BkALQAf8BkAHVAdgB/wGEAbUBzQH/AasBuQHHAf8UAAHOAYEBSQH/Ac0BgwFs
-        Af8MAAHDAXQBWAH/AcoBegFKAf8B1QGIAVQB/wHWAYsBUwH/Ac4BgQFJAf8BuAFiAU4B/wwAAc4CzAH/
+        AdAB/xAAAWIBsgHeAf8BdAHUAfwB/wFhAc4C/wFlAdUB/gH/AWQB1gHzAf8BZgHfAfIB/wGJAcYBzQH/
+        AZABzAHOAf8BjwLOAf8BkALQAf8BkAHVAdgB/wGEAbUBzQH/AasBuQHHAf8UAAHOAYEBRQH/Ac0BgwFo
+        Af8MAAHDAXABVAH/AcoBdgFGAf8B1QGIAVAB/wHWAYsBTwH/Ac4BgQFFAf8BuAFeAUoB/wwAAc4CzAH/
         AfAB6AHlAf8B8AHoAeUB/wHwAegB5QH/Ae4B5QHiAf8B3QHYAdYB/wHVAcsByAH/AcEBvwG+Af8BtQGx
-        AbAB/wGzArAB/yQAAb0CuQH/Ae4B5gHjAf8BvQK5Af8QAAG1ArIB/wHsAeEB3AH/AbQBsAGvAf8MAAFm
-        AbIB3gH/AXgB1AH8Af8BZQHOAv8BbgG1AdcB/wFpAZoBqQH/AWkBmgGpAf8BaQGeAacB/wFpAaEBpQH/
-        AWkBoQGlAf8BXAK2Af8BbQHzAfUB/wFVAboB6AH/GAABwwFwAU4B/zQAAc4CzAH/Ae4B5QHiAf8B8AHo
+        AbAB/wGzArAB/yQAAb0CuQH/Ae4B5gHjAf8BvQK5Af8QAAG1ArIB/wHsAeEB3AH/AbQBsAGvAf8MAAFi
+        AbIB3gH/AXQB1AH8Af8BYQHOAv8BagG1AdcB/wFlAZoBqQH/AWUBmgGpAf8BZQGeAacB/wFlAaEBpQH/
+        AWUBoQGlAf8BWAK2Af8BaQHzAfUB/wFRAboB6AH/GAABwwFsAUoB/zQAAc4CzAH/Ae4B5QHiAf8B8AHo
         AeUB/wHuAeUB4gH/AfAB6AHlAf8B8AHoAeUB/wHuAeUB4gH/AbUBsQGwAf8BwQG/Ab4B/wGjAqAB/yQA
-        AcsBxgHFAf8BwAG7AboB/xgAAbkBtQG0Af8BwAG7AboB/wwAAW4BtwHfAf8BeAHUAfwB/wFtAc4C/wGf
-        AagBrgH/AbwCugH/AbECrwH/AasCqAH/AbECrwH/AbECrwH/AXoBqAGqAf8BeAH3AfoB/wFRAbUB5QH/
+        AcsBxgHFAf8BwAG7AboB/xgAAbkBtQG0Af8BwAG7AboB/wwAAWoBtwHfAf8BdAHUAfwB/wFpAc4C/wGf
+        AagBrgH/AbwCugH/AbECrwH/AasCqAH/AbECrwH/AbECrwH/AXYBqAGqAf8BdAH3AfoB/wFNAbUB5QH/
         UAABzgLMAf8B7wHqAegB/wHvAeoB6AH/Ae8B6gHoAf8B8AHoAeUB/wHvAeoB6AH/Ae8B6gHoAf8BwQG/
-        Ab4B/wGzArAB/ygAAbkBtQG0Af8gAAG0AbABrwH/EAABOAGgAdYB/wE0AaMB2QH/AVMBmAG9Af8BxgLF
-        Af8B3wHaAdkB/wHfAdoB2QH/Ad8B2gHZAf8BnAGeAaEB/wEzAYUBtwH/ATUBnAHYAf8BWAGkAdwB/1QA
+        Ab4B/wGzArAB/ygAAbkBtQG0Af8gAAG0AbABrwH/EAABNAGgAdYB/wEwAaMB2QH/AU8BmAG9Af8BxgLF
+        Af8B3wHaAdkB/wHfAdoB2QH/Ad8B2gHZAf8BnAGeAaEB/wEvAYUBtwH/ATEBnAHYAf8BVAGkAdwB/1QA
         Ac4CzAH/Ac4CzAH/AcgCxgH/AcgCxgH/Ac4CzAH/AccCxQH/AcACugH/LAABwAG7AboB/yAAAbUCsgH/
         HAABtQGxAbIB/wG1AbEBsgH/AbUBsQGyAf8BsQKvAf8BqwKoAf9cAAFCAU0BPgcAAT4DAAEoAwABQAMA
         ASADAAEBAQABAQYAAQEWAAP/AQAC/wH5A/8CAAL/AfAB/wGAAQECAAL/AeABfwQAAfwBAAHAAX8EAAH+

Modified: trunk/Tools/Maestro/Maestro/Strings/FormMain.Designer.cs
===================================================================
--- trunk/Tools/Maestro/Maestro/Strings/FormMain.Designer.cs	2009-12-12 12:48:58 UTC (rev 4426)
+++ trunk/Tools/Maestro/Maestro/Strings/FormMain.Designer.cs	2009-12-12 19:27:41 UTC (rev 4427)
@@ -70,16 +70,6 @@
         }
         
         /// <summary>
-        ///   Looks up a localized string similar to Unable to create the resource {0}
-        ///Error message: {1}.
-        /// </summary>
-        internal static string CreateResourceError {
-            get {
-                return ResourceManager.GetString("CreateResourceError", resourceCulture);
-            }
-        }
-        
-        /// <summary>
         ///   Looks up a localized string similar to If you delete the folder, any resource that references an item in the selected folder will become unusable.
         ///
         ///Delete folder and all contents?.

Modified: trunk/Tools/Maestro/Maestro/Strings/FormMain.resx
===================================================================
--- trunk/Tools/Maestro/Maestro/Strings/FormMain.resx	2009-12-12 12:48:58 UTC (rev 4426)
+++ trunk/Tools/Maestro/Maestro/Strings/FormMain.resx	2009-12-12 19:27:41 UTC (rev 4427)
@@ -121,11 +121,6 @@
     <value>Copy {0} of {1}</value>
     <comment>The name of a new item that is a copy of an existing item</comment>
   </data>
-  <data name="CreateResourceError" xml:space="preserve">
-    <value>Unable to create the resource {0}
-Error message: {1}</value>
-    <comment>An error message that is displayed if the resource creation fails</comment>
-  </data>
   <data name="DeleteFolderAndResourcesConfirmation" xml:space="preserve">
     <value>If you delete the folder, any resource that references an item in the selected folder will become unusable.
 

Modified: trunk/Tools/Maestro/MaestroAPI/Utf8XmlWriter.cs
===================================================================
--- trunk/Tools/Maestro/MaestroAPI/Utf8XmlWriter.cs	2009-12-12 12:48:58 UTC (rev 4426)
+++ trunk/Tools/Maestro/MaestroAPI/Utf8XmlWriter.cs	2009-12-12 19:27:41 UTC (rev 4427)
@@ -30,14 +30,23 @@
             //This creation of the UTF8 encoder removes the BOM
             //Which is required because MapGuide has trouble reading files with a BOM.
 			: base(s, new System.Text.UTF8Encoding(false, true)) 
-		{ 
-			//The MapGuide Studio parser is broken, it can't read Xml without whitespace :)
-			base.Formatting = System.Xml.Formatting.Indented; 
-			base.Indentation = 2; 
-			base.IndentChar = ' ';
+		{
+            Initialize();
 		}
 
-		public Utf8XmlWriter(System.IO.TextWriter w) : base(w) {}
+        private void Initialize()
+        {
+            //The MapGuide Studio parser is broken, it can't read Xml without whitespace :)
+            base.Formatting = System.Xml.Formatting.Indented;
+            base.Indentation = 2;
+            base.IndentChar = ' ';
+        }
+
+		public Utf8XmlWriter(System.IO.TextWriter w) : base(w) 
+        {
+            Initialize();
+        }
+
 		public override void WriteStartDocument() {Utf8WriteHeader();}
 		public override void WriteStartDocument(bool standalone) {Utf8WriteHeader();}
 



More information about the mapguide-commits mailing list