[mapguide-commits] r6889 - in trunk/Tools/Maestro: Maestro.Base/Editor Maestro.Base/Services Maestro.Editors Maestro.Editors/FeatureSource/Providers/Rdbms Maestro.Editors/FeatureSource/Providers/Wms Maestro.Editors/Properties Maestro.Editors/SymbolDefinition OSGeo.MapGuide.MaestroAPI/ObjectModels OSGeo.MapGuide.MaestroAPI/Resource
svn_mapguide at osgeo.org
svn_mapguide at osgeo.org
Wed Jul 11 05:55:07 PDT 2012
Author: jng
Date: 2012-07-11 05:55:06 -0700 (Wed, 11 Jul 2012)
New Revision: 6889
Modified:
trunk/Tools/Maestro/Maestro.Base/Editor/EditorContentBase.cs
trunk/Tools/Maestro/Maestro.Base/Services/ResourcePreviewerFactory.cs
trunk/Tools/Maestro/Maestro.Editors/FeatureSource/Providers/Rdbms/RdbmsBaseCtrl.Designer.cs
trunk/Tools/Maestro/Maestro.Editors/FeatureSource/Providers/Rdbms/RdbmsBaseCtrl.cs
trunk/Tools/Maestro/Maestro.Editors/FeatureSource/Providers/Rdbms/RdbmsBaseCtrl.resx
trunk/Tools/Maestro/Maestro.Editors/FeatureSource/Providers/Wms/WmsProviderCtrl.cs
trunk/Tools/Maestro/Maestro.Editors/IEditorService.cs
trunk/Tools/Maestro/Maestro.Editors/Properties/Resources.Designer.cs
trunk/Tools/Maestro/Maestro.Editors/Properties/Resources.resx
trunk/Tools/Maestro/Maestro.Editors/ResourceEditorServiceBase.cs
trunk/Tools/Maestro/Maestro.Editors/SymbolDefinition/SymbolEditorService.cs
trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/FeatureSource.cs
trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/FeatureSourceInterfaces.cs
trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Resource/IResource.cs
Log:
#2071: Add secured credential support for the following Feature Source editors:
- WMS
- RDBMS providers (SQL Server, MySQL, PostgreSQL)
Modified: trunk/Tools/Maestro/Maestro.Base/Editor/EditorContentBase.cs
===================================================================
--- trunk/Tools/Maestro/Maestro.Base/Editor/EditorContentBase.cs 2012-07-11 07:39:52 UTC (rev 6888)
+++ trunk/Tools/Maestro/Maestro.Base/Editor/EditorContentBase.cs 2012-07-11 12:55:06 UTC (rev 6889)
@@ -305,6 +305,7 @@
public virtual void Preview()
{
var conn = this.Resource.CurrentConnection;
+ _svc.PrePreviewProcess();
var previewer = ResourcePreviewerFactory.GetPreviewer(conn.ProviderName);
if (previewer != null)
previewer.Preview(this.Resource, this.EditorService);
Modified: trunk/Tools/Maestro/Maestro.Base/Services/ResourcePreviewerFactory.cs
===================================================================
--- trunk/Tools/Maestro/Maestro.Base/Services/ResourcePreviewerFactory.cs 2012-07-11 07:39:52 UTC (rev 6888)
+++ trunk/Tools/Maestro/Maestro.Base/Services/ResourcePreviewerFactory.cs 2012-07-11 12:55:06 UTC (rev 6889)
@@ -43,12 +43,11 @@
BusyWaitDialog.Run(Properties.Resources.PrgPreparingResourcePreview, () => {
string mapguideRootUrl = (string)conn.GetCustomProperty("BaseUrl");
//Save the current resource to another session copy
- string resId = "Session:" + edSvc.SessionID + "//" + Guid.NewGuid() + "." + res.ResourceType.ToString();
- edSvc.ResourceService.SetResourceXmlData(resId, ResourceTypeRegistry.Serialize(res));
-
- //Copy any resource data
+ string resId = "Session:" + edSvc.SessionID + "//" + res.ResourceType.ToString() + "Preview" + Guid.NewGuid() + "." + res.ResourceType.ToString();
+
+ edSvc.ResourceService.SaveResourceAs(res, resId);
+ edSvc.ResourceService.CopyResource(res.ResourceID, resId, true);
var previewCopy = edSvc.ResourceService.GetResource(resId);
- res.CopyResourceDataTo(previewCopy);
//Now feed it to the preview engine
return new ResourcePreviewEngine(mapguideRootUrl, edSvc).GeneratePreviewUrl(previewCopy);
Modified: trunk/Tools/Maestro/Maestro.Editors/FeatureSource/Providers/Rdbms/RdbmsBaseCtrl.Designer.cs
===================================================================
--- trunk/Tools/Maestro/Maestro.Editors/FeatureSource/Providers/Rdbms/RdbmsBaseCtrl.Designer.cs 2012-07-11 07:39:52 UTC (rev 6888)
+++ trunk/Tools/Maestro/Maestro.Editors/FeatureSource/Providers/Rdbms/RdbmsBaseCtrl.Designer.cs 2012-07-11 12:55:06 UTC (rev 6889)
@@ -36,9 +36,9 @@
this.txtPassword = new System.Windows.Forms.TextBox();
this.label3 = new System.Windows.Forms.Label();
this.groupBox1 = new System.Windows.Forms.GroupBox();
- this.btnConnect = new System.Windows.Forms.Button();
this.groupBox2 = new System.Windows.Forms.GroupBox();
- this.cmbDataStore = new System.Windows.Forms.ComboBox();
+ this.btnBrowseDataStore = new System.Windows.Forms.Button();
+ this.txtDataStore = new System.Windows.Forms.TextBox();
this.label4 = new System.Windows.Forms.Label();
this.txtStatus = new System.Windows.Forms.TextBox();
this.btnTest = new System.Windows.Forms.Button();
@@ -88,7 +88,6 @@
// groupBox1
//
resources.ApplyResources(this.groupBox1, "groupBox1");
- this.groupBox1.Controls.Add(this.btnConnect);
this.groupBox1.Controls.Add(this.txtService);
this.groupBox1.Controls.Add(this.txtPassword);
this.groupBox1.Controls.Add(this.label1);
@@ -98,28 +97,28 @@
this.groupBox1.Name = "groupBox1";
this.groupBox1.TabStop = false;
//
- // btnConnect
- //
- resources.ApplyResources(this.btnConnect, "btnConnect");
- this.btnConnect.Name = "btnConnect";
- this.btnConnect.UseVisualStyleBackColor = true;
- this.btnConnect.Click += new System.EventHandler(this.btnConnect_Click);
- //
// groupBox2
//
resources.ApplyResources(this.groupBox2, "groupBox2");
- this.groupBox2.Controls.Add(this.cmbDataStore);
+ this.groupBox2.Controls.Add(this.btnBrowseDataStore);
+ this.groupBox2.Controls.Add(this.txtDataStore);
this.groupBox2.Controls.Add(this.label4);
this.groupBox2.Name = "groupBox2";
this.groupBox2.TabStop = false;
//
- // cmbDataStore
+ // btnBrowseDataStore
//
- resources.ApplyResources(this.cmbDataStore, "cmbDataStore");
- this.cmbDataStore.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
- this.cmbDataStore.FormattingEnabled = true;
- this.cmbDataStore.Name = "cmbDataStore";
+ resources.ApplyResources(this.btnBrowseDataStore, "btnBrowseDataStore");
+ this.btnBrowseDataStore.Name = "btnBrowseDataStore";
+ this.btnBrowseDataStore.UseVisualStyleBackColor = true;
+ this.btnBrowseDataStore.Click += new System.EventHandler(this.btnBrowseDataStore_Click);
//
+ // txtDataStore
+ //
+ resources.ApplyResources(this.txtDataStore, "txtDataStore");
+ this.txtDataStore.Name = "txtDataStore";
+ this.txtDataStore.ReadOnly = true;
+ //
// label4
//
resources.ApplyResources(this.label4, "label4");
@@ -157,7 +156,6 @@
private System.Windows.Forms.Label label1;
private System.Windows.Forms.GroupBox groupBox2;
- private System.Windows.Forms.ComboBox cmbDataStore;
private System.Windows.Forms.Label label4;
private System.Windows.Forms.GroupBox groupBox1;
private System.Windows.Forms.TextBox txtService;
@@ -165,8 +163,9 @@
private System.Windows.Forms.Label label3;
private System.Windows.Forms.Label label2;
private System.Windows.Forms.TextBox txtUsername;
- private System.Windows.Forms.Button btnConnect;
private System.Windows.Forms.TextBox txtStatus;
private System.Windows.Forms.Button btnTest;
+ private System.Windows.Forms.Button btnBrowseDataStore;
+ private System.Windows.Forms.TextBox txtDataStore;
}
}
Modified: trunk/Tools/Maestro/Maestro.Editors/FeatureSource/Providers/Rdbms/RdbmsBaseCtrl.cs
===================================================================
--- trunk/Tools/Maestro/Maestro.Editors/FeatureSource/Providers/Rdbms/RdbmsBaseCtrl.cs 2012-07-11 07:39:52 UTC (rev 6888)
+++ trunk/Tools/Maestro/Maestro.Editors/FeatureSource/Providers/Rdbms/RdbmsBaseCtrl.cs 2012-07-11 12:55:06 UTC (rev 6889)
@@ -28,6 +28,7 @@
using OSGeo.MapGuide.ObjectModels.FeatureSource;
using Maestro.Shared.UI;
using OSGeo.MapGuide.MaestroAPI;
+using OSGeo.MapGuide.MaestroAPI.Resource;
using Maestro.Editors.FeatureSource.Providers.Odbc;
namespace Maestro.Editors.FeatureSource.Providers.Rdbms
@@ -45,30 +46,38 @@
this.HeaderText = this.Title;
}
+ protected override void UnsubscribeEventHandlers()
+ {
+ _service.BeforeSave -= OnBeforeSave;
+ _service.BeforePreview -= OnBeforePreview;
+ }
+
private IEditorService _service;
private IFeatureSource _fs;
public override void Bind(IEditorService service)
{
_service = service;
+ _service.BeforeSave += OnBeforeSave;
+ _service.BeforePreview += OnBeforePreview;
_service.RegisterCustomNotifier(this);
_fs = _service.GetEditedResource() as IFeatureSource;
//Set the field values
txtService.Text = _fs.GetConnectionProperty("Service");
- txtUsername.Text = _fs.GetConnectionProperty("Username");
- txtPassword.Text = _fs.GetConnectionProperty("Password");
- UpdateDataStoreValues(true);
+ //We're gonna follow MG Studio behaviour here which is: Never load the password
+ //and auto trigger dirty state.
+ if (!_service.IsNew)
+ {
+ txtUsername.Text = _fs.GetEncryptedUsername() ?? _fs.GetConnectionProperty("Username");
+ //txtPassword.Text = _fs.GetConnectionProperty("Password");
+ OnResourceChanged();
+ }
//Set initial value of data store if possible
var dstore = _fs.GetConnectionProperty("DataStore");
- if (!string.IsNullOrEmpty(dstore) && cmbDataStore.Items.Count > 0)
- {
- var idx = cmbDataStore.Items.IndexOf(dstore);
- if (idx >= 0)
- cmbDataStore.SelectedIndex = idx;
- }
+ txtDataStore.Text = dstore;
//As our connection properties are not CLR properties,
//"manually" bind these fields
@@ -79,21 +88,65 @@
txtUsername.TextChanged += (s, e) =>
{
- _fs.SetConnectionProperty("Username", txtUsername.Text);
+ if (string.IsNullOrEmpty(txtUsername.Text))
+ _fs.SetConnectionProperty("Username", null);
+ else
+ _fs.SetConnectionProperty("Username", txtUsername.Text);
};
txtPassword.TextChanged += (s, e) =>
{
- _fs.SetConnectionProperty("Password", txtPassword.Text);
+ if (string.IsNullOrEmpty(txtPassword.Text))
+ _fs.SetConnectionProperty("Password", null);
+ else
+ _fs.SetConnectionProperty("Password", txtPassword.Text);
};
- cmbDataStore.SelectedIndexChanged += (s, e) =>
+ txtDataStore.TextChanged += (s, e) =>
{
- if (cmbDataStore.SelectedItem != null)
- _fs.SetConnectionProperty("DataStore", cmbDataStore.SelectedItem.ToString());
+ _fs.SetConnectionProperty("DataStore", txtDataStore.Text);
};
+
}
+ void OnBeforePreview(object sender, EventArgs e)
+ {
+ WriteEncryptedCredentials();
+ }
+
+ void OnBeforeSave(object sender, CancelEventArgs e)
+ {
+ WriteEncryptedCredentials();
+ }
+
+ private void WriteEncryptedCredentials()
+ {
+ string username = txtUsername.Text;
+ string password = txtPassword.Text;
+
+ if (!string.IsNullOrEmpty(username) && !string.IsNullOrEmpty(password))
+ {
+ if (username != "%MG_USERNAME%" && password != "%MG_PASSWORD%")
+ {
+ _fs.SetConnectionProperty("Username", "%MG_USERNAME%");
+ _fs.SetConnectionProperty("Password", "%MG_PASSWORD%");
+ _fs.SetEncryptedCredentials(username, password);
+ _service.SyncSessionCopy();
+ }
+ }
+ else if (string.IsNullOrEmpty(username) && string.IsNullOrEmpty(password))
+ {
+ _fs.SetConnectionProperty("Username", null);
+ _fs.SetConnectionProperty("Password", null);
+ try
+ {
+ _fs.DeleteResourceData("MG_USER_CREDENTIALS");
+ }
+ catch { }
+ _service.SyncSessionCopy();
+ }
+ }
+
public virtual string Title
{
get { return Properties.Resources.RdbmsFeatureSource; }
@@ -105,46 +158,20 @@
get { throw new NotImplementedException(); }
}
- private string GetPartialConnectionString()
+ private string GetPartialConnectionStringForDataStoreEnumeration()
{
var builder = new System.Data.Common.DbConnectionStringBuilder();
builder["Service"] = _fs.GetConnectionProperty("Service");
- builder["Username"] = _fs.GetConnectionProperty("Username");
- builder["Password"] = _fs.GetConnectionProperty("Password");
+ builder["Username"] = txtUsername.Text; //_fs.GetConnectionProperty("Username");
+ builder["Password"] = txtPassword.Text; //_fs.GetConnectionProperty("Password");
return builder.ToString();
}
private void btnConnect_Click(object sender, EventArgs e)
{
- UpdateDataStoreValues(false);
+ WriteEncryptedCredentials();
}
- private void UpdateDataStoreValues(bool silent)
- {
- using (new WaitCursor(this))
- {
- string[] values = null;
- string reason = string.Empty;
- try
- {
- var dstore = _service.FeatureService.EnumerateDataStores(this.Provider, GetPartialConnectionString());
- values = ConvertToArray(dstore);
- }
- catch (Exception ex) { reason = ex.ToString(); }
- if (values != null && values.Length > 0)
- {
- cmbDataStore.DataSource = values;
- }
- else
- {
- if (!silent)
- MessageBox.Show(string.Format(Properties.Resources.FailEnumDataStores, reason));
-
- cmbDataStore.DataSource = null;
- }
- }
- }
-
private static string[] ConvertToArray(OSGeo.MapGuide.ObjectModels.Common.DataStoreList dstore)
{
List<string> values = new List<string>();
@@ -160,9 +187,27 @@
txtStatus.Text = string.Empty;
using (new WaitCursor(this))
{
- _service.SyncSessionCopy();
+ WriteEncryptedCredentials();
txtStatus.Text = string.Format(Properties.Resources.FdoConnectionStatus, _fs.TestConnection());
}
}
+
+ private void btnBrowseDataStore_Click(object sender, EventArgs e)
+ {
+ try
+ {
+ var dstore = _service.FeatureService.EnumerateDataStores(this.Provider, GetPartialConnectionStringForDataStoreEnumeration());
+ var values = ConvertToArray(dstore);
+ string item = GenericItemSelectionDialog.SelectItem(Properties.Resources.TextSelectDataStore, Properties.Resources.TextSelectDataStore, values);
+ if (item != null)
+ {
+ txtDataStore.Text = item;
+ }
+ }
+ catch (Exception ex)
+ {
+ MessageBox.Show(string.Format(Properties.Resources.FailEnumDataStores, ex.Message));
+ }
+ }
}
}
Modified: trunk/Tools/Maestro/Maestro.Editors/FeatureSource/Providers/Rdbms/RdbmsBaseCtrl.resx
===================================================================
--- trunk/Tools/Maestro/Maestro.Editors/FeatureSource/Providers/Rdbms/RdbmsBaseCtrl.resx 2012-07-11 07:39:52 UTC (rev 6888)
+++ trunk/Tools/Maestro/Maestro.Editors/FeatureSource/Providers/Rdbms/RdbmsBaseCtrl.resx 2012-07-11 12:55:06 UTC (rev 6889)
@@ -112,20 +112,20 @@
<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" />
+ <assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="txtStatus.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" />
+ <assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="txtStatus.Location" type="System.Drawing.Point, System.Drawing">
- <value>130, 202</value>
+ <value>130, 178</value>
</data>
- <assembly alias="mscorlib" name="mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
+ <assembly alias="mscorlib" name="mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="txtStatus.Multiline" type="System.Boolean, mscorlib">
<value>True</value>
</data>
@@ -133,7 +133,7 @@
<value>Vertical</value>
</data>
<data name="txtStatus.Size" type="System.Drawing.Size, System.Drawing">
- <value>303, 38</value>
+ <value>303, 62</value>
</data>
<data name="txtStatus.TabIndex" type="System.Int32, mscorlib">
<value>12</value>
@@ -142,7 +142,7 @@
<value>txtStatus</value>
</data>
<data name=">>txtStatus.Type" xml:space="preserve">
- <value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ <value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name=">>txtStatus.Parent" xml:space="preserve">
<value>contentPanel</value>
@@ -154,7 +154,7 @@
<value>NoControl</value>
</data>
<data name="btnTest.Location" type="System.Drawing.Point, System.Drawing">
- <value>17, 202</value>
+ <value>17, 178</value>
</data>
<data name="btnTest.Size" type="System.Drawing.Size, System.Drawing">
<value>105, 23</value>
@@ -169,7 +169,7 @@
<value>btnTest</value>
</data>
<data name=">>btnTest.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=">>btnTest.Parent" xml:space="preserve">
<value>contentPanel</value>
@@ -180,32 +180,86 @@
<data name="groupBox2.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Top, Left, Right</value>
</data>
- <data name=">>cmbDataStore.Name" xml:space="preserve">
- <value>cmbDataStore</value>
+ <data name="btnBrowseDataStore.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
+ <value>Top, Right</value>
</data>
- <data name=">>cmbDataStore.Type" xml:space="preserve">
- <value>System.Windows.Forms.ComboBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ <data name="btnBrowseDataStore.Location" type="System.Drawing.Point, System.Drawing">
+ <value>363, 22</value>
</data>
- <data name=">>cmbDataStore.Parent" xml:space="preserve">
+ <data name="btnBrowseDataStore.Size" type="System.Drawing.Size, System.Drawing">
+ <value>27, 23</value>
+ </data>
+ <data name="btnBrowseDataStore.TabIndex" type="System.Int32, mscorlib">
+ <value>2</value>
+ </data>
+ <data name="btnBrowseDataStore.Text" xml:space="preserve">
+ <value>...</value>
+ </data>
+ <data name=">>btnBrowseDataStore.Name" xml:space="preserve">
+ <value>btnBrowseDataStore</value>
+ </data>
+ <data name=">>btnBrowseDataStore.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=">>btnBrowseDataStore.Parent" xml:space="preserve">
<value>groupBox2</value>
</data>
- <data name=">>cmbDataStore.ZOrder" xml:space="preserve">
+ <data name=">>btnBrowseDataStore.ZOrder" xml:space="preserve">
<value>0</value>
</data>
+ <data name="txtDataStore.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
+ <value>Top, Left, Right</value>
+ </data>
+ <data name="txtDataStore.Location" type="System.Drawing.Point, System.Drawing">
+ <value>80, 24</value>
+ </data>
+ <data name="txtDataStore.Size" type="System.Drawing.Size, System.Drawing">
+ <value>277, 20</value>
+ </data>
+ <data name="txtDataStore.TabIndex" type="System.Int32, mscorlib">
+ <value>1</value>
+ </data>
+ <data name=">>txtDataStore.Name" xml:space="preserve">
+ <value>txtDataStore</value>
+ </data>
+ <data name=">>txtDataStore.Type" xml:space="preserve">
+ <value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ </data>
+ <data name=">>txtDataStore.Parent" xml:space="preserve">
+ <value>groupBox2</value>
+ </data>
+ <data name=">>txtDataStore.ZOrder" xml:space="preserve">
+ <value>1</value>
+ </data>
+ <data name="label4.AutoSize" type="System.Boolean, mscorlib">
+ <value>True</value>
+ </data>
+ <data name="label4.Location" type="System.Drawing.Point, System.Drawing">
+ <value>13, 27</value>
+ </data>
+ <data name="label4.Size" type="System.Drawing.Size, System.Drawing">
+ <value>58, 13</value>
+ </data>
+ <data name="label4.TabIndex" type="System.Int32, mscorlib">
+ <value>0</value>
+ </data>
+ <data name="label4.Text" xml:space="preserve">
+ <value>Data Store</value>
+ </data>
<data name=">>label4.Name" xml:space="preserve">
<value>label4</value>
</data>
<data name=">>label4.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=">>label4.Parent" xml:space="preserve">
<value>groupBox2</value>
</data>
<data name=">>label4.ZOrder" xml:space="preserve">
- <value>1</value>
+ <value>2</value>
</data>
<data name="groupBox2.Location" type="System.Drawing.Point, System.Drawing">
- <value>17, 140</value>
+ <value>17, 116</value>
</data>
<data name="groupBox2.Size" type="System.Drawing.Size, System.Drawing">
<value>416, 56</value>
@@ -220,7 +274,7 @@
<value>groupBox2</value>
</data>
<data name=">>groupBox2.Type" xml:space="preserve">
- <value>System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ <value>System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name=">>groupBox2.Parent" xml:space="preserve">
<value>contentPanel</value>
@@ -231,129 +285,57 @@
<data name="groupBox1.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Top, Left, Right</value>
</data>
- <data name=">>btnConnect.Name" xml:space="preserve">
- <value>btnConnect</value>
+ <data name="txtService.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
+ <value>Top, Left, Right</value>
</data>
- <data name=">>btnConnect.Type" xml:space="preserve">
- <value>System.Windows.Forms.Button, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ <data name="txtService.Location" type="System.Drawing.Point, System.Drawing">
+ <value>80, 19</value>
</data>
- <data name=">>btnConnect.Parent" xml:space="preserve">
- <value>groupBox1</value>
+ <data name="txtService.Size" type="System.Drawing.Size, System.Drawing">
+ <value>310, 20</value>
</data>
- <data name=">>btnConnect.ZOrder" xml:space="preserve">
- <value>0</value>
+ <data name="txtService.TabIndex" type="System.Int32, mscorlib">
+ <value>1</value>
</data>
<data name=">>txtService.Name" xml:space="preserve">
<value>txtService</value>
</data>
<data name=">>txtService.Type" xml:space="preserve">
- <value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ <value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name=">>txtService.Parent" xml:space="preserve">
<value>groupBox1</value>
</data>
<data name=">>txtService.ZOrder" xml:space="preserve">
- <value>1</value>
+ <value>0</value>
</data>
- <data name=">>txtPassword.Name" xml:space="preserve">
- <value>txtPassword</value>
+ <data name="txtPassword.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
+ <value>Top, Left, Right</value>
</data>
- <data name=">>txtPassword.Type" xml:space="preserve">
- <value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ <data name="txtPassword.Location" type="System.Drawing.Point, System.Drawing">
+ <value>80, 71</value>
</data>
- <data name=">>txtPassword.Parent" xml:space="preserve">
- <value>groupBox1</value>
+ <data name="txtPassword.PasswordChar" type="System.Char, mscorlib" xml:space="preserve">
+ <value>*</value>
</data>
- <data name=">>txtPassword.ZOrder" xml:space="preserve">
- <value>2</value>
+ <data name="txtPassword.Size" type="System.Drawing.Size, System.Drawing">
+ <value>310, 20</value>
</data>
- <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=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
- </data>
- <data name=">>label1.Parent" xml:space="preserve">
- <value>groupBox1</value>
- </data>
- <data name=">>label1.ZOrder" xml:space="preserve">
- <value>3</value>
- </data>
- <data name=">>label3.Name" xml:space="preserve">
- <value>label3</value>
- </data>
- <data name=">>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=">>label3.Parent" xml:space="preserve">
- <value>groupBox1</value>
- </data>
- <data name=">>label3.ZOrder" xml:space="preserve">
- <value>4</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=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
- </data>
- <data name=">>label2.Parent" xml:space="preserve">
- <value>groupBox1</value>
- </data>
- <data name=">>label2.ZOrder" xml:space="preserve">
+ <data name="txtPassword.TabIndex" type="System.Int32, mscorlib">
<value>5</value>
</data>
- <data name=">>txtUsername.Name" xml:space="preserve">
- <value>txtUsername</value>
+ <data name=">>txtPassword.Name" xml:space="preserve">
+ <value>txtPassword</value>
</data>
- <data name=">>txtUsername.Type" xml:space="preserve">
- <value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ <data name=">>txtPassword.Type" xml:space="preserve">
+ <value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
- <data name=">>txtUsername.Parent" xml:space="preserve">
+ <data name=">>txtPassword.Parent" xml:space="preserve">
<value>groupBox1</value>
</data>
- <data name=">>txtUsername.ZOrder" xml:space="preserve">
- <value>6</value>
+ <data name=">>txtPassword.ZOrder" xml:space="preserve">
+ <value>1</value>
</data>
- <data name="groupBox1.Location" type="System.Drawing.Point, System.Drawing">
- <value>17, 6</value>
- </data>
- <data name="groupBox1.Size" type="System.Drawing.Size, System.Drawing">
- <value>416, 128</value>
- </data>
- <data name="groupBox1.TabIndex" type="System.Int32, mscorlib">
- <value>6</value>
- </data>
- <data name="groupBox1.Text" xml:space="preserve">
- <value>Connection Properties</value>
- </data>
- <data name=">>groupBox1.Name" xml:space="preserve">
- <value>groupBox1</value>
- </data>
- <data name=">>groupBox1.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=">>groupBox1.Parent" xml:space="preserve">
- <value>contentPanel</value>
- </data>
- <data name=">>groupBox1.ZOrder" xml:space="preserve">
- <value>3</value>
- </data>
- <data name="contentPanel.Size" type="System.Drawing.Size, System.Drawing">
- <value>449, 255</value>
- </data>
- <data name=">>contentPanel.Name" xml:space="preserve">
- <value>contentPanel</value>
- </data>
- <data name=">>contentPanel.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=">>contentPanel.Parent" xml:space="preserve">
- <value>$this</value>
- </data>
- <data name=">>contentPanel.ZOrder" xml:space="preserve">
- <value>0</value>
- </data>
<data name="label1.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
@@ -373,62 +355,41 @@
<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>groupBox1</value>
</data>
<data name=">>label1.ZOrder" xml:space="preserve">
- <value>3</value>
+ <value>2</value>
</data>
- <data name="txtService.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
- <value>Top, Left, Right</value>
+ <data name="label3.AutoSize" type="System.Boolean, mscorlib">
+ <value>True</value>
</data>
- <data name="txtService.Location" type="System.Drawing.Point, System.Drawing">
- <value>80, 19</value>
+ <data name="label3.Location" type="System.Drawing.Point, System.Drawing">
+ <value>13, 74</value>
</data>
- <data name="txtService.Size" type="System.Drawing.Size, System.Drawing">
- <value>310, 20</value>
+ <data name="label3.Size" type="System.Drawing.Size, System.Drawing">
+ <value>53, 13</value>
</data>
- <data name="txtService.TabIndex" type="System.Int32, mscorlib">
- <value>1</value>
+ <data name="label3.TabIndex" type="System.Int32, mscorlib">
+ <value>4</value>
</data>
- <data name=">>txtService.Name" xml:space="preserve">
- <value>txtService</value>
+ <data name="label3.Text" xml:space="preserve">
+ <value>Password</value>
</data>
- <data name=">>txtService.Type" xml:space="preserve">
- <value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ <data name=">>label3.Name" xml:space="preserve">
+ <value>label3</value>
</data>
- <data name=">>txtService.Parent" xml:space="preserve">
+ <data name=">>label3.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=">>label3.Parent" xml:space="preserve">
<value>groupBox1</value>
</data>
- <data name=">>txtService.ZOrder" xml:space="preserve">
- <value>1</value>
- </data>
- <data name="txtUsername.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
- <value>Top, Left, Right</value>
- </data>
- <data name="txtUsername.Location" type="System.Drawing.Point, System.Drawing">
- <value>80, 45</value>
- </data>
- <data name="txtUsername.Size" type="System.Drawing.Size, System.Drawing">
- <value>310, 20</value>
- </data>
- <data name="txtUsername.TabIndex" type="System.Int32, mscorlib">
+ <data name=">>label3.ZOrder" xml:space="preserve">
<value>3</value>
</data>
- <data name=">>txtUsername.Name" xml:space="preserve">
- <value>txtUsername</value>
- </data>
- <data name=">>txtUsername.Type" xml:space="preserve">
- <value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
- </data>
- <data name=">>txtUsername.Parent" xml:space="preserve">
- <value>groupBox1</value>
- </data>
- <data name=">>txtUsername.ZOrder" xml:space="preserve">
- <value>6</value>
- </data>
<data name="label2.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
@@ -448,145 +409,79 @@
<value>label2</value>
</data>
<data name=">>label2.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=">>label2.Parent" xml:space="preserve">
<value>groupBox1</value>
</data>
<data name=">>label2.ZOrder" xml:space="preserve">
- <value>5</value>
+ <value>4</value>
</data>
- <data name="txtPassword.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
+ <data name="txtUsername.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Top, Left, Right</value>
</data>
- <data name="txtPassword.Location" type="System.Drawing.Point, System.Drawing">
- <value>80, 71</value>
+ <data name="txtUsername.Location" type="System.Drawing.Point, System.Drawing">
+ <value>80, 45</value>
</data>
- <data name="txtPassword.Size" type="System.Drawing.Size, System.Drawing">
+ <data name="txtUsername.Size" type="System.Drawing.Size, System.Drawing">
<value>310, 20</value>
</data>
- <data name="txtPassword.TabIndex" type="System.Int32, mscorlib">
- <value>5</value>
+ <data name="txtUsername.TabIndex" type="System.Int32, mscorlib">
+ <value>3</value>
</data>
- <data name=">>txtPassword.Name" xml:space="preserve">
- <value>txtPassword</value>
+ <data name=">>txtUsername.Name" xml:space="preserve">
+ <value>txtUsername</value>
</data>
- <data name=">>txtPassword.Type" xml:space="preserve">
- <value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ <data name=">>txtUsername.Type" xml:space="preserve">
+ <value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
- <data name=">>txtPassword.Parent" xml:space="preserve">
+ <data name=">>txtUsername.Parent" xml:space="preserve">
<value>groupBox1</value>
</data>
- <data name=">>txtPassword.ZOrder" xml:space="preserve">
- <value>2</value>
+ <data name=">>txtUsername.ZOrder" xml:space="preserve">
+ <value>5</value>
</data>
- <data name="label3.AutoSize" type="System.Boolean, mscorlib">
- <value>True</value>
+ <data name="groupBox1.Location" type="System.Drawing.Point, System.Drawing">
+ <value>17, 6</value>
</data>
- <data name="label3.Location" type="System.Drawing.Point, System.Drawing">
- <value>13, 74</value>
+ <data name="groupBox1.Size" type="System.Drawing.Size, System.Drawing">
+ <value>416, 104</value>
</data>
- <data name="label3.Size" type="System.Drawing.Size, System.Drawing">
- <value>53, 13</value>
- </data>
- <data name="label3.TabIndex" type="System.Int32, mscorlib">
- <value>4</value>
- </data>
- <data name="label3.Text" xml:space="preserve">
- <value>Password</value>
- </data>
- <data name=">>label3.Name" xml:space="preserve">
- <value>label3</value>
- </data>
- <data name=">>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=">>label3.Parent" xml:space="preserve">
- <value>groupBox1</value>
- </data>
- <data name=">>label3.ZOrder" xml:space="preserve">
- <value>4</value>
- </data>
- <data name="btnConnect.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
- <value>Bottom, Right</value>
- </data>
- <data name="btnConnect.Location" type="System.Drawing.Point, System.Drawing">
- <value>315, 97</value>
- </data>
- <data name="btnConnect.Size" type="System.Drawing.Size, System.Drawing">
- <value>75, 23</value>
- </data>
- <data name="btnConnect.TabIndex" type="System.Int32, mscorlib">
+ <data name="groupBox1.TabIndex" type="System.Int32, mscorlib">
<value>6</value>
</data>
- <data name="btnConnect.Text" xml:space="preserve">
- <value>Connect</value>
+ <data name="groupBox1.Text" xml:space="preserve">
+ <value>Connection Properties</value>
</data>
- <data name=">>btnConnect.Name" xml:space="preserve">
- <value>btnConnect</value>
- </data>
- <data name=">>btnConnect.Type" xml:space="preserve">
- <value>System.Windows.Forms.Button, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
- </data>
- <data name=">>btnConnect.Parent" xml:space="preserve">
+ <data name=">>groupBox1.Name" xml:space="preserve">
<value>groupBox1</value>
</data>
- <data name=">>btnConnect.ZOrder" xml:space="preserve">
- <value>0</value>
+ <data name=">>groupBox1.Type" xml:space="preserve">
+ <value>System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
- <data name="cmbDataStore.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
- <value>Top, Left, Right</value>
+ <data name=">>groupBox1.Parent" xml:space="preserve">
+ <value>contentPanel</value>
</data>
- <data name="cmbDataStore.Location" type="System.Drawing.Point, System.Drawing">
- <value>80, 24</value>
+ <data name=">>groupBox1.ZOrder" xml:space="preserve">
+ <value>3</value>
</data>
- <data name="cmbDataStore.Size" type="System.Drawing.Size, System.Drawing">
- <value>310, 21</value>
+ <data name="contentPanel.Size" type="System.Drawing.Size, System.Drawing">
+ <value>449, 255</value>
</data>
- <data name="cmbDataStore.TabIndex" type="System.Int32, mscorlib">
- <value>1</value>
+ <data name=">>contentPanel.Name" xml:space="preserve">
+ <value>contentPanel</value>
</data>
- <data name=">>cmbDataStore.Name" xml:space="preserve">
- <value>cmbDataStore</value>
+ <data name=">>contentPanel.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=">>cmbDataStore.Type" xml:space="preserve">
- <value>System.Windows.Forms.ComboBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ <data name=">>contentPanel.Parent" xml:space="preserve">
+ <value>$this</value>
</data>
- <data name=">>cmbDataStore.Parent" xml:space="preserve">
- <value>groupBox2</value>
- </data>
- <data name=">>cmbDataStore.ZOrder" xml:space="preserve">
+ <data name=">>contentPanel.ZOrder" xml:space="preserve">
<value>0</value>
</data>
- <data name="label4.AutoSize" type="System.Boolean, mscorlib">
+ <metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
- </data>
- <data name="label4.Location" type="System.Drawing.Point, System.Drawing">
- <value>13, 27</value>
- </data>
- <data name="label4.Size" type="System.Drawing.Size, System.Drawing">
- <value>58, 13</value>
- </data>
- <data name="label4.TabIndex" type="System.Int32, mscorlib">
- <value>0</value>
- </data>
- <data name="label4.Text" xml:space="preserve">
- <value>Data Store</value>
- </data>
- <data name=">>label4.Name" xml:space="preserve">
- <value>label4</value>
- </data>
- <data name=">>label4.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=">>label4.Parent" xml:space="preserve">
- <value>groupBox2</value>
- </data>
- <data name=">>label4.ZOrder" xml:space="preserve">
- <value>1</value>
- </data>
- <metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
- <value>True</value>
</metadata>
<data name="$this.Size" type="System.Drawing.Size, System.Drawing">
<value>449, 282</value>
@@ -595,6 +490,6 @@
<value>RdbmsBaseCtrl</value>
</data>
<data name=">>$this.Type" xml:space="preserve">
- <value>Maestro.Editors.Common.EditorBindableCollapsiblePanel, Maestro.Editors, Version=3.0.0.5610, Culture=neutral, PublicKeyToken=null</value>
+ <value>Maestro.Editors.Common.EditorBindableCollapsiblePanel, Maestro.Editors, Version=5.0.0.6640, Culture=neutral, PublicKeyToken=f526c48929fda856</value>
</data>
</root>
\ No newline at end of file
Modified: trunk/Tools/Maestro/Maestro.Editors/FeatureSource/Providers/Wms/WmsProviderCtrl.cs
===================================================================
--- trunk/Tools/Maestro/Maestro.Editors/FeatureSource/Providers/Wms/WmsProviderCtrl.cs 2012-07-11 07:39:52 UTC (rev 6888)
+++ trunk/Tools/Maestro/Maestro.Editors/FeatureSource/Providers/Wms/WmsProviderCtrl.cs 2012-07-11 12:55:06 UTC (rev 6889)
@@ -25,6 +25,8 @@
using System.Text;
using System.Windows.Forms;
using Maestro.Editors.Common;
+using OSGeo.MapGuide.MaestroAPI;
+using OSGeo.MapGuide.MaestroAPI.Resource;
using OSGeo.MapGuide.ObjectModels.FeatureSource;
using Maestro.Shared.UI;
@@ -72,14 +74,20 @@
{
if (_init)
return;
- _fs.SetConnectionProperty("Username", txtUsername.Text);
+ if (string.IsNullOrEmpty(txtUsername.Text))
+ _fs.SetConnectionProperty("Username", null);
+ else
+ _fs.SetConnectionProperty("Username", txtUsername.Text);
}
private void txtPassword_TextChanged(object sender, EventArgs e)
{
if (_init)
return;
- _fs.SetConnectionProperty("Password", txtPassword.Text);
+ if (string.IsNullOrEmpty(txtPassword.Text))
+ _fs.SetConnectionProperty("Password", null);
+ else
+ _fs.SetConnectionProperty("Password", txtPassword.Text);
}
private void btnTest_Click(object sender, EventArgs e)
@@ -87,14 +95,42 @@
txtStatus.Text = string.Empty;
using (new WaitCursor(this))
{
- _service.SyncSessionCopy();
+ WriteEncryptedCredentials();
txtStatus.Text = string.Format(Properties.Resources.FdoConnectionStatus, _fs.TestConnection());
}
}
+ private void WriteEncryptedCredentials()
+ {
+ string username = txtUsername.Text;
+ string password = txtPassword.Text;
+
+ if (!string.IsNullOrEmpty(username) && !string.IsNullOrEmpty(password))
+ {
+ if (username != "%MG_USERNAME%" && password != "%MG_PASSWORD%")
+ {
+ _fs.SetConnectionProperty("Username", "%MG_USERNAME%");
+ _fs.SetConnectionProperty("Password", "%MG_PASSWORD%");
+ _fs.SetEncryptedCredentials(username, password);
+ _service.SyncSessionCopy();
+ }
+ }
+ else
+ {
+ _fs.SetConnectionProperty("Username", null);
+ _fs.SetConnectionProperty("Password", null);
+ try
+ {
+ _fs.DeleteResourceData("MG_USER_CREDENTIALS");
+ }
+ catch { }
+ _service.SyncSessionCopy();
+ }
+ }
+
private void btnAdvanced_Click(object sender, EventArgs e)
{
- _service.SyncSessionCopy();
+ WriteEncryptedCredentials();
var diag = new WmsAdvancedConfigurationDialog(_service);
if (diag.ShowDialog() == DialogResult.OK)
{
Modified: trunk/Tools/Maestro/Maestro.Editors/IEditorService.cs
===================================================================
--- trunk/Tools/Maestro/Maestro.Editors/IEditorService.cs 2012-07-11 07:39:52 UTC (rev 6888)
+++ trunk/Tools/Maestro/Maestro.Editors/IEditorService.cs 2012-07-11 12:55:06 UTC (rev 6889)
@@ -140,6 +140,17 @@
IResource GetEditedResource();
/// <summary>
+ /// Raises the <see cref="E:Maestro.Editors.IEditorService.BeforePreview"/> event and performs any other pre-preview
+ /// processing tasks
+ /// </summary>
+ void PrePreviewProcess();
+
+ /// <summary>
+ /// Raised before a preview occurs
+ /// </summary>
+ event EventHandler BeforePreview;
+
+ /// <summary>
/// Raised before a save operation commences
/// </summary>
event CancelEventHandler BeforeSave;
Modified: trunk/Tools/Maestro/Maestro.Editors/Properties/Resources.Designer.cs
===================================================================
--- trunk/Tools/Maestro/Maestro.Editors/Properties/Resources.Designer.cs 2012-07-11 07:39:52 UTC (rev 6888)
+++ trunk/Tools/Maestro/Maestro.Editors/Properties/Resources.Designer.cs 2012-07-11 12:55:06 UTC (rev 6889)
@@ -3307,6 +3307,15 @@
}
/// <summary>
+ /// Looks up a localized string similar to Select Data Store.
+ /// </summary>
+ internal static string TextSelectDataStore {
+ get {
+ return ResourceManager.GetString("TextSelectDataStore", resourceCulture);
+ }
+ }
+
+ /// <summary>
/// Looks up a localized string similar to (Selection Only).
/// </summary>
internal static string TextSelectionOnly {
Modified: trunk/Tools/Maestro/Maestro.Editors/Properties/Resources.resx
===================================================================
--- trunk/Tools/Maestro/Maestro.Editors/Properties/Resources.resx 2012-07-11 07:39:52 UTC (rev 6888)
+++ trunk/Tools/Maestro/Maestro.Editors/Properties/Resources.resx 2012-07-11 12:55:06 UTC (rev 6889)
@@ -5704,4 +5704,7 @@
<data name="water" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\water.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
+ <data name="TextSelectDataStore" xml:space="preserve">
+ <value>Select Data Store</value>
+ </data>
</root>
\ No newline at end of file
Modified: trunk/Tools/Maestro/Maestro.Editors/ResourceEditorServiceBase.cs
===================================================================
--- trunk/Tools/Maestro/Maestro.Editors/ResourceEditorServiceBase.cs 2012-07-11 07:39:52 UTC (rev 6888)
+++ trunk/Tools/Maestro/Maestro.Editors/ResourceEditorServiceBase.cs 2012-07-11 12:55:06 UTC (rev 6889)
@@ -243,9 +243,8 @@
if (!OnBeforeSave())
{
- _conn.ResourceService.SaveResourceAs(_editCopy, resourceID);
- //Don't forget to copy attached resource data!
- _editCopy.CopyResourceDataTo(resourceID);
+ //_conn.ResourceService.SaveResourceAs(_editCopy, resourceID);
+ _conn.ResourceService.CopyResource(_editCopy.ResourceID, resourceID, true);
this.ResourceID = resourceID;
this.IsNew = false;
this.IsDirty = false;
@@ -484,5 +483,15 @@
}
public abstract void RunProcess(string processName, params string[] args);
+
+ public void PrePreviewProcess()
+ {
+ SyncSessionCopy();
+ var handler = this.BeforePreview;
+ if (handler != null)
+ handler(this, EventArgs.Empty);
+ }
+
+ public event EventHandler BeforePreview;
}
}
Modified: trunk/Tools/Maestro/Maestro.Editors/SymbolDefinition/SymbolEditorService.cs
===================================================================
--- trunk/Tools/Maestro/Maestro.Editors/SymbolDefinition/SymbolEditorService.cs 2012-07-11 07:39:52 UTC (rev 6888)
+++ trunk/Tools/Maestro/Maestro.Editors/SymbolDefinition/SymbolEditorService.cs 2012-07-11 12:55:06 UTC (rev 6889)
@@ -225,5 +225,14 @@
{
throw new NotImplementedException();
}
+
+ public void PrePreviewProcess()
+ {
+ var handler = this.BeforePreview;
+ if (handler != null)
+ handler(this, EventArgs.Empty);
+ }
+
+ public event EventHandler BeforePreview;
}
}
Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/FeatureSource.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/FeatureSource.cs 2012-07-11 07:39:52 UTC (rev 6888)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/FeatureSource.cs 2012-07-11 12:55:06 UTC (rev 6889)
@@ -147,15 +147,26 @@
}
}
+ bool bRaise = false;
if (pr != null)
{
- pr.Value = value;
+ if (value != null)
+ pr.Value = value;
+ else
+ this.Parameter.Remove(pr);
+ bRaise = true;
}
else
{
- this.Parameter.Add(new NameValuePairType() { Name = name, Value = value });
+ if (value != null)
+ {
+ this.Parameter.Add(new NameValuePairType() { Name = name, Value = value });
+ bRaise = true;
+ }
}
- OnPropertyChanged("Parameter");
+
+ if (bRaise)
+ OnPropertyChanged("Parameter");
}
protected void DetachChangeListeners()
Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/FeatureSourceInterfaces.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/FeatureSourceInterfaces.cs 2012-07-11 07:39:52 UTC (rev 6888)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/FeatureSourceInterfaces.cs 2012-07-11 12:55:06 UTC (rev 6889)
@@ -62,7 +62,7 @@
/// Sets the connection property.
/// </summary>
/// <param name="name">The name.</param>
- /// <param name="value">The value.</param>
+ /// <param name="value">The value. If null, the matching parameter is removed from the feature source</param>
void SetConnectionProperty(string name, string value);
/// <summary>
Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Resource/IResource.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Resource/IResource.cs 2012-07-11 07:39:52 UTC (rev 6888)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Resource/IResource.cs 2012-07-11 12:55:06 UTC (rev 6889)
@@ -102,6 +102,12 @@
/// <summary>
/// Copies the resource data to the specified resource
/// </summary>
+ /// <remarks>
+ /// Avoid using this method if you are copying a IFeatureSource with MG_USER_CREDENTIALS resource data, as MapGuide will automatically return
+ /// the decrypted username for MG_USER_CREDENTIALS, rendering the resource data invalid for the target resource. Instead use the
+ /// <see cref="M:OSGeo.MapGuide.MaestroAPI.Services.IResourceService.CopyResource"/> method, which will copy the resource and its resource
+ /// data and keep any MG_USER_CREDENTIALS items intact
+ /// </remarks>
/// <param name="source">The source.</param>
/// <param name="target">The target.</param>
public static void CopyResourceDataTo(this IResource source, IResource target)
@@ -125,6 +131,12 @@
/// <summary>
/// Copies the resource data to the specified resource
/// </summary>
+ /// <remarks>
+ /// Avoid using this method if you are copying a IFeatureSource with MG_USER_CREDENTIALS resource data, as MapGuide will automatically return
+ /// the decrypted username for MG_USER_CREDENTIALS, rendering the resource data invalid for the target resource. Instead use the
+ /// <see cref="M:OSGeo.MapGuide.MaestroAPI.Services.IResourceService.CopyResource"/> method, which will copy the resource and its resource
+ /// data and keep any MG_USER_CREDENTIALS items intact
+ /// </remarks>
/// <param name="source">The source.</param>
/// <param name="targetID">The target ID.</param>
public static void CopyResourceDataTo(this IResource source, string targetID)
More information about the mapguide-commits
mailing list