[mapguide-commits] r6763 - in trunk/Tools/Maestro: Maestro.Base/Editor Maestro.Base/Properties OSGeo.MapGuide.MaestroAPI OSGeo.MapGuide.MaestroAPI.Http

svn_mapguide at osgeo.org svn_mapguide at osgeo.org
Thu Jun 14 07:05:31 PDT 2012


Author: jng
Date: 2012-06-14 07:05:30 -0700 (Thu, 14 Jun 2012)
New Revision: 6763

Modified:
   trunk/Tools/Maestro/Maestro.Base/Editor/EditorContentBase.Designer.cs
   trunk/Tools/Maestro/Maestro.Base/Editor/EditorContentBase.cs
   trunk/Tools/Maestro/Maestro.Base/Editor/EditorContentBase.resx
   trunk/Tools/Maestro/Maestro.Base/Editor/ResourceEditorService.cs
   trunk/Tools/Maestro/Maestro.Base/Properties/Resources.Designer.cs
   trunk/Tools/Maestro/Maestro.Base/Properties/Resources.resx
   trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI.Http/HttpServerConnection.cs
   trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/MgServerConnectionBase.cs
Log:
#2027: Hook into the new SessionIDChanged event to allow editors to semi-gracefully notify the user that they need to be reloaded.

Modified: trunk/Tools/Maestro/Maestro.Base/Editor/EditorContentBase.Designer.cs
===================================================================
--- trunk/Tools/Maestro/Maestro.Base/Editor/EditorContentBase.Designer.cs	2012-06-14 14:04:07 UTC (rev 6762)
+++ trunk/Tools/Maestro/Maestro.Base/Editor/EditorContentBase.Designer.cs	2012-06-14 14:05:30 UTC (rev 6763)
@@ -33,7 +33,11 @@
             this.label1 = new System.Windows.Forms.Label();
             this.btnUpgrade = new System.Windows.Forms.Button();
             this.panelBody = new System.Windows.Forms.Panel();
+            this.sessionRestartPanel = new System.Windows.Forms.Panel();
+            this.label2 = new System.Windows.Forms.Label();
+            this.btnReload = new System.Windows.Forms.Button();
             this.upgradePanel.SuspendLayout();
+            this.sessionRestartPanel.SuspendLayout();
             this.SuspendLayout();
             // 
             // upgradePanel
@@ -61,14 +65,36 @@
             resources.ApplyResources(this.panelBody, "panelBody");
             this.panelBody.Name = "panelBody";
             // 
+            // sessionRestartPanel
+            // 
+            this.sessionRestartPanel.BackColor = System.Drawing.SystemColors.Info;
+            this.sessionRestartPanel.Controls.Add(this.label2);
+            this.sessionRestartPanel.Controls.Add(this.btnReload);
+            resources.ApplyResources(this.sessionRestartPanel, "sessionRestartPanel");
+            this.sessionRestartPanel.Name = "sessionRestartPanel";
+            // 
+            // label2
+            // 
+            resources.ApplyResources(this.label2, "label2");
+            this.label2.Name = "label2";
+            // 
+            // btnReload
+            // 
+            resources.ApplyResources(this.btnReload, "btnReload");
+            this.btnReload.Name = "btnReload";
+            this.btnReload.UseVisualStyleBackColor = true;
+            this.btnReload.Click += new System.EventHandler(this.btnReload_Click);
+            // 
             // EditorContentBase
             // 
             this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
             this.Controls.Add(this.panelBody);
+            this.Controls.Add(this.sessionRestartPanel);
             this.Controls.Add(this.upgradePanel);
             this.Name = "EditorContentBase";
             resources.ApplyResources(this, "$this");
             this.upgradePanel.ResumeLayout(false);
+            this.sessionRestartPanel.ResumeLayout(false);
             this.ResumeLayout(false);
 
         }
@@ -79,5 +105,8 @@
         private System.Windows.Forms.Label label1;
         private System.Windows.Forms.Button btnUpgrade;
         protected System.Windows.Forms.Panel panelBody;
+        private System.Windows.Forms.Panel sessionRestartPanel;
+        private System.Windows.Forms.Label label2;
+        private System.Windows.Forms.Button btnReload;
     }
 }

Modified: trunk/Tools/Maestro/Maestro.Base/Editor/EditorContentBase.cs
===================================================================
--- trunk/Tools/Maestro/Maestro.Base/Editor/EditorContentBase.cs	2012-06-14 14:04:07 UTC (rev 6762)
+++ trunk/Tools/Maestro/Maestro.Base/Editor/EditorContentBase.cs	2012-06-14 14:05:30 UTC (rev 6763)
@@ -51,6 +51,12 @@
             private set { upgradePanel.Visible = value; }
         }
 
+        public bool RequiresReload
+        {
+            get { return sessionRestartPanel.Visible; }
+            set { sessionRestartPanel.Visible = true; }
+        }
+
         private IEditorService _svc;
 
         public IEditorService EditorService
@@ -67,6 +73,9 @@
                     _svc.DirtyStateChanged -= OnDirtyStateChanged;
                     _svc.Saved -= OnSaved;
                     _svc.BeforeSave -= OnBeforeSave;
+
+                    var res = _svc.GetEditedResource();
+                    res.CurrentConnection.SessionIDChanged -= OnSessionIdChanged;
                 }
 
                 _svc = value;
@@ -74,8 +83,13 @@
                 _svc.Saved += OnSaved;
                 _svc.BeforeSave += OnBeforeSave;
 
+                {
+                    var res = _svc.GetEditedResource();
+                    res.CurrentConnection.SessionIDChanged += OnSessionIdChanged;
+                }
+
                 UpdateTitle();
-                
+
                 this.CanUpgrade = _svc.IsUpgradeAvailable;
 
                 Bind(_svc);
@@ -88,6 +102,11 @@
             }
         }
 
+        void OnSessionIdChanged(object sender, EventArgs e)
+        {
+            this.RequiresReload = true;
+        }
+
         /// <summary>
         /// Gets the XML content of the edited resource
         /// </summary>
@@ -334,5 +353,24 @@
                 this.EditorService.MarkDirty(); //It gets re-init with a clean slate, but an in-place upgrade is a dirty operation
             }
         }
+
+        private void btnReload_Click(object sender, EventArgs e)
+        {
+            if (this.EditorService.IsNew)
+            {
+                MessageService.ShowMessage(Properties.Resources.TextReloadNewResource);
+                this.Close(true);
+            }
+            else
+            {
+                var omgr = ServiceRegistry.GetService<OpenResourceManager>();
+                var res = this.EditorService.GetEditedResource();
+                var origResId = this.EditorService.ResourceID;
+                var conn = res.CurrentConnection;
+                var wb = Workbench.Instance;
+                this.Close();
+                omgr.Open(origResId, conn, false, wb.ActiveSiteExplorer);
+            }
+        }
     }
 }

Modified: trunk/Tools/Maestro/Maestro.Base/Editor/EditorContentBase.resx
===================================================================
--- trunk/Tools/Maestro/Maestro.Base/Editor/EditorContentBase.resx	2012-06-14 14:04:07 UTC (rev 6762)
+++ trunk/Tools/Maestro/Maestro.Base/Editor/EditorContentBase.resx	2012-06-14 14:05:30 UTC (rev 6763)
@@ -112,23 +112,71 @@
     <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>
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.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>
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
   </resheader>
-  <assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
+  <data name=">>label1.Name" xml:space="preserve">
+    <value>label1</value>
+  </data>
+  <data name=">>label1.Type" xml:space="preserve">
+    <value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </data>
+  <data name=">>label1.Parent" xml:space="preserve">
+    <value>upgradePanel</value>
+  </data>
+  <data name=">>label1.ZOrder" xml:space="preserve">
+    <value>0</value>
+  </data>
+  <data name=">>btnUpgrade.Name" xml:space="preserve">
+    <value>btnUpgrade</value>
+  </data>
+  <data name=">>btnUpgrade.Type" xml:space="preserve">
+    <value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </data>
+  <data name=">>btnUpgrade.Parent" xml:space="preserve">
+    <value>upgradePanel</value>
+  </data>
+  <data name=">>btnUpgrade.ZOrder" xml:space="preserve">
+    <value>1</value>
+  </data>
+  <assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
+  <data name="upgradePanel.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
+    <value>Top</value>
+  </data>
+  <assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
+  <data name="upgradePanel.Location" type="System.Drawing.Point, System.Drawing">
+    <value>0, 0</value>
+  </data>
+  <data name="upgradePanel.Size" type="System.Drawing.Size, System.Drawing">
+    <value>614, 39</value>
+  </data>
+  <assembly alias="mscorlib" name="mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
+  <data name="upgradePanel.TabIndex" type="System.Int32, mscorlib">
+    <value>0</value>
+  </data>
+  <data name=">>upgradePanel.Name" xml:space="preserve">
+    <value>upgradePanel</value>
+  </data>
+  <data name=">>upgradePanel.Type" xml:space="preserve">
+    <value>System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </data>
+  <data name=">>upgradePanel.Parent" xml:space="preserve">
+    <value>$this</value>
+  </data>
+  <data name=">>upgradePanel.ZOrder" xml:space="preserve">
+    <value>2</value>
+  </data>
   <data name="label1.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
     <value>Top, Left, Right</value>
   </data>
-  <assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
   <data name="label1.Location" type="System.Drawing.Point, System.Drawing">
     <value>17, 13</value>
   </data>
   <data name="label1.Size" type="System.Drawing.Size, System.Drawing">
     <value>494, 13</value>
   </data>
-  <assembly alias="mscorlib" name="mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
   <data name="label1.TabIndex" type="System.Int32, mscorlib">
     <value>2</value>
   </data>
@@ -139,7 +187,7 @@
     <value>label1</value>
   </data>
   <data name=">>label1.Type" xml:space="preserve">
-    <value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+    <value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
   </data>
   <data name=">>label1.Parent" xml:space="preserve">
     <value>upgradePanel</value>
@@ -166,7 +214,7 @@
     <value>btnUpgrade</value>
   </data>
   <data name=">>btnUpgrade.Type" xml:space="preserve">
-    <value>System.Windows.Forms.Button, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+    <value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
   </data>
   <data name=">>btnUpgrade.Parent" xml:space="preserve">
     <value>upgradePanel</value>
@@ -174,38 +222,14 @@
   <data name=">>btnUpgrade.ZOrder" xml:space="preserve">
     <value>1</value>
   </data>
-  <data name="upgradePanel.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
-    <value>Top</value>
-  </data>
-  <data name="upgradePanel.Location" type="System.Drawing.Point, System.Drawing">
-    <value>0, 0</value>
-  </data>
-  <data name="upgradePanel.Size" type="System.Drawing.Size, System.Drawing">
-    <value>614, 39</value>
-  </data>
-  <data name="upgradePanel.TabIndex" type="System.Int32, mscorlib">
-    <value>0</value>
-  </data>
-  <data name=">>upgradePanel.Name" xml:space="preserve">
-    <value>upgradePanel</value>
-  </data>
-  <data name=">>upgradePanel.Type" xml:space="preserve">
-    <value>System.Windows.Forms.Panel, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name=">>upgradePanel.Parent" xml:space="preserve">
-    <value>$this</value>
-  </data>
-  <data name=">>upgradePanel.ZOrder" xml:space="preserve">
-    <value>1</value>
-  </data>
   <data name="panelBody.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
     <value>Fill</value>
   </data>
   <data name="panelBody.Location" type="System.Drawing.Point, System.Drawing">
-    <value>0, 39</value>
+    <value>0, 78</value>
   </data>
   <data name="panelBody.Size" type="System.Drawing.Size, System.Drawing">
-    <value>614, 520</value>
+    <value>614, 481</value>
   </data>
   <data name="panelBody.TabIndex" type="System.Int32, mscorlib">
     <value>1</value>
@@ -214,7 +238,7 @@
     <value>panelBody</value>
   </data>
   <data name=">>panelBody.Type" xml:space="preserve">
-    <value>System.Windows.Forms.Panel, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+    <value>System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
   </data>
   <data name=">>panelBody.Parent" xml:space="preserve">
     <value>$this</value>
@@ -222,7 +246,98 @@
   <data name=">>panelBody.ZOrder" xml:space="preserve">
     <value>0</value>
   </data>
-  <metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+  <data name="label2.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
+    <value>Top, Left, Right</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>17, 8</value>
+  </data>
+  <data name="label2.Size" type="System.Drawing.Size, System.Drawing">
+    <value>494, 28</value>
+  </data>
+  <data name="label2.TabIndex" type="System.Int32, mscorlib">
+    <value>2</value>
+  </data>
+  <data name="label2.Text" xml:space="preserve">
+    <value>A new session was created since this editor was opened. Click reload to refresh this editor. All unsaved changes are lost
+</value>
+  </data>
+  <data name="label2.TextAlign" type="System.Drawing.ContentAlignment, System.Drawing">
+    <value>MiddleLeft</value>
+  </data>
+  <data name=">>label2.Name" xml:space="preserve">
+    <value>label2</value>
+  </data>
+  <data name=">>label2.Type" xml:space="preserve">
+    <value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </data>
+  <data name=">>label2.Parent" xml:space="preserve">
+    <value>sessionRestartPanel</value>
+  </data>
+  <data name=">>label2.ZOrder" xml:space="preserve">
+    <value>0</value>
+  </data>
+  <data name="btnReload.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
+    <value>Top, Right</value>
+  </data>
+  <data name="btnReload.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
+    <value>NoControl</value>
+  </data>
+  <data name="btnReload.Location" type="System.Drawing.Point, System.Drawing">
+    <value>526, 8</value>
+  </data>
+  <data name="btnReload.Size" type="System.Drawing.Size, System.Drawing">
+    <value>75, 23</value>
+  </data>
+  <data name="btnReload.TabIndex" type="System.Int32, mscorlib">
+    <value>1</value>
+  </data>
+  <data name="btnReload.Text" xml:space="preserve">
+    <value>Reload</value>
+  </data>
+  <data name=">>btnReload.Name" xml:space="preserve">
+    <value>btnReload</value>
+  </data>
+  <data name=">>btnReload.Type" xml:space="preserve">
+    <value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </data>
+  <data name=">>btnReload.Parent" xml:space="preserve">
+    <value>sessionRestartPanel</value>
+  </data>
+  <data name=">>btnReload.ZOrder" xml:space="preserve">
+    <value>1</value>
+  </data>
+  <data name="sessionRestartPanel.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
+    <value>Top</value>
+  </data>
+  <data name="sessionRestartPanel.Location" type="System.Drawing.Point, System.Drawing">
+    <value>0, 39</value>
+  </data>
+  <data name="sessionRestartPanel.Size" type="System.Drawing.Size, System.Drawing">
+    <value>614, 39</value>
+  </data>
+  <data name="sessionRestartPanel.TabIndex" type="System.Int32, mscorlib">
+    <value>2</value>
+  </data>
+  <data name="sessionRestartPanel.Visible" type="System.Boolean, mscorlib">
+    <value>False</value>
+  </data>
+  <data name=">>sessionRestartPanel.Name" xml:space="preserve">
+    <value>sessionRestartPanel</value>
+  </data>
+  <data name=">>sessionRestartPanel.Type" xml:space="preserve">
+    <value>System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </data>
+  <data name=">>sessionRestartPanel.Parent" xml:space="preserve">
+    <value>$this</value>
+  </data>
+  <data name=">>sessionRestartPanel.ZOrder" xml:space="preserve">
+    <value>1</value>
+  </data>
+  <metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
     <value>True</value>
   </metadata>
   <data name="$this.Size" type="System.Drawing.Size, System.Drawing">
@@ -232,6 +347,6 @@
     <value>EditorContentBase</value>
   </data>
   <data name=">>$this.Type" xml:space="preserve">
-    <value>Maestro.Base.ViewContentBase, Maestro.Base, Version=3.5.0.5977, Culture=neutral, PublicKeyToken=null</value>
+    <value>Maestro.Shared.UI.ViewContentBase, Maestro.Shared.UI, Version=5.0.0.6640, Culture=neutral, PublicKeyToken=f526c48929fda856</value>
   </data>
 </root>
\ No newline at end of file

Modified: trunk/Tools/Maestro/Maestro.Base/Editor/ResourceEditorService.cs
===================================================================
--- trunk/Tools/Maestro/Maestro.Base/Editor/ResourceEditorService.cs	2012-06-14 14:04:07 UTC (rev 6762)
+++ trunk/Tools/Maestro/Maestro.Base/Editor/ResourceEditorService.cs	2012-06-14 14:05:30 UTC (rev 6763)
@@ -41,7 +41,7 @@
         private ISiteExplorer _siteExp;
         private OpenResourceManager _orm;
 
-        public ResourceEditorService(string resourceID, IServerConnection conn, IUrlLauncherService launcher, ISiteExplorer siteExp, OpenResourceManager orm)
+        internal ResourceEditorService(string resourceID, IServerConnection conn, IUrlLauncherService launcher, ISiteExplorer siteExp, OpenResourceManager orm)
             : base(resourceID, conn)
         {
             _siteExp = siteExp;

Modified: trunk/Tools/Maestro/Maestro.Base/Properties/Resources.Designer.cs
===================================================================
--- trunk/Tools/Maestro/Maestro.Base/Properties/Resources.Designer.cs	2012-06-14 14:04:07 UTC (rev 6762)
+++ trunk/Tools/Maestro/Maestro.Base/Properties/Resources.Designer.cs	2012-06-14 14:05:30 UTC (rev 6763)
@@ -1,7 +1,7 @@
 //------------------------------------------------------------------------------
 // <auto-generated>
 //     This code was generated by a tool.
-//     Runtime Version:4.0.30319.225
+//     Runtime Version:4.0.30319.269
 //
 //     Changes to this file may cause incorrect behavior and will be lost if
 //     the code is regenerated.
@@ -2460,6 +2460,15 @@
             }
         }
         
+        /// <summary>
+        ///   Looks up a localized string similar to Sorry, this is a newly created resource. The editor will close instead.
+        /// </summary>
+        internal static string TextReloadNewResource {
+            get {
+                return ResourceManager.GetString("TextReloadNewResource", resourceCulture);
+            }
+        }
+        
         internal static System.Drawing.Bitmap tick {
             get {
                 object obj = ResourceManager.GetObject("tick", resourceCulture);

Modified: trunk/Tools/Maestro/Maestro.Base/Properties/Resources.resx
===================================================================
--- trunk/Tools/Maestro/Maestro.Base/Properties/Resources.resx	2012-06-14 14:04:07 UTC (rev 6762)
+++ trunk/Tools/Maestro/Maestro.Base/Properties/Resources.resx	2012-06-14 14:05:30 UTC (rev 6763)
@@ -2682,4 +2682,7 @@
   <data name="PrgPreparingResourcePreview" xml:space="preserve">
     <value>Preparing resource preview</value>
   </data>
+  <data name="TextReloadNewResource" xml:space="preserve">
+    <value>Sorry, this is a newly created resource. The editor will close instead</value>
+  </data>
 </root>
\ No newline at end of file

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/MgServerConnectionBase.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/MgServerConnectionBase.cs	2012-06-14 14:04:07 UTC (rev 6762)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/MgServerConnectionBase.cs	2012-06-14 14:05:30 UTC (rev 6763)
@@ -116,6 +116,12 @@
             var oldSessionId = this.SessionID;
             var ret = RestartSessionInternal(throwException);
             var newSessionId = this.SessionID;
+            CheckAndRaiseSessionChanged(oldSessionId, newSessionId);
+            return ret;
+        }
+
+        protected void CheckAndRaiseSessionChanged(string oldSessionId, string newSessionId)
+        {
             if (!string.IsNullOrEmpty(oldSessionId))
             {
                 if (oldSessionId != newSessionId)
@@ -125,7 +131,6 @@
                         h(this, EventArgs.Empty);
                 }
             }
-            return ret;
         }
 
         protected abstract bool RestartSessionInternal(bool throwException);

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI.Http/HttpServerConnection.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI.Http/HttpServerConnection.cs	2012-06-14 14:04:07 UTC (rev 6762)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI.Http/HttpServerConnection.cs	2012-06-14 14:05:30 UTC (rev 6763)
@@ -1155,6 +1155,7 @@
 
 			Uri hosturl = new Uri(m_reqBuilder.HostURI);
 			string locale = m_reqBuilder.Locale;
+            string oldSessionId = m_reqBuilder.SessionID;
 
 			try
 			{
@@ -1168,6 +1169,8 @@
 					reqb.SessionID = System.Text.Encoding.Default.GetString(wc.DownloadData(req));
                     if (reqb.SessionID.IndexOf("<") >= 0)
                         throw new Exception("Invalid server token recieved: " + reqb.SessionID);
+                    else
+                        CheckAndRaiseSessionChanged(oldSessionId, reqb.SessionID);
 				}
 				catch (Exception ex)
 				{
@@ -1187,14 +1190,13 @@
 							reqb.SessionID = System.Text.Encoding.Default.GetString(wc.DownloadData(req));
                             if (reqb.SessionID.IndexOf("<") >= 0)
                                 throw new Exception("Invalid server token recieved: " + reqb.SessionID);
-				
 							ok = true;
 						}
 					}
 					catch {}
 
-					if (!ok)
-					{
+                    if (!ok)
+                    {
                         if (throwException) //Report original error
                         {
                             if (ex is WebException) //These exceptions, we just want the underlying message. No need for 50 bajillion nested exceptions
@@ -1204,7 +1206,11 @@
                         }
                         else
                             return false;
-					}
+                    }
+                    else
+                    {
+                        CheckAndRaiseSessionChanged(oldSessionId, reqb.SessionID);
+                    }
 				}
 
 				//Reset cached items



More information about the mapguide-commits mailing list