All pastes #365066 Raw Edit

Stuff

public text v1 · immutable
#365066 ·published 2007-02-20 17:02 UTC
rendered paste body
Index: Extras/MonoQuery/ChangeLog
===================================================================
--- Extras/MonoQuery/ChangeLog	(revision 73136)
+++ Extras/MonoQuery/ChangeLog	(working copy)
@@ -1,3 +1,8 @@
+2007-02-20  Ankit Jain  <jankit@novell.com>
+
+	* MonoQuery/Commands/Commands.cs (Run): Handle empty connection string.
+	Destroy the dialog even if an exception is thrown.
+
 2007-02-16  Lluis Sanchez Gual <lluis@novell.com> 
 
 	* MonoQuery/MonoQuery.addin.xml: Change add-in versions to 0.13.
Index: Extras/MonoQuery/MonoQuery/Commands/Commands.cs
===================================================================
--- Extras/MonoQuery/MonoQuery/Commands/Commands.cs	(revision 73136)
+++ Extras/MonoQuery/MonoQuery/Commands/Commands.cs	(working copy)
@@ -30,6 +30,7 @@
 using System.Reflection;
 
 using MonoDevelop.Core.Gui;
+using MonoDevelop.Ide.Gui;
 using MonoDevelop.Ide.Gui.Pads;
 using MonoDevelop.Components.Commands;
 using MonoDevelop.Core;
@@ -58,20 +59,29 @@
 		protected override void Run ()
 		{
 			ConnectionDialog dialog = new ConnectionDialog ();
-			int retval = dialog.Run ();
-			if (retval == (int) Gtk.ResponseType.Ok) {
-				Assembly asm = Assembly.GetAssembly (typeof (Mono.Data.Sql.DbProviderBase));
-				DbProviderBase provider = (DbProviderBase) asm.CreateInstance (dialog.ConnectionType.FullName);
-				if (provider == null)
-					return;
-				provider.Name = dialog.ConnectionName;
-				provider.ConnectionString = dialog.ConnectionString;
-				
-				MonoQueryService service = (MonoQueryService)
-					ServiceManager.GetService (typeof (MonoQueryService));
-				service.Providers.Add ( (DbProviderBase) provider);
+			try {
+				int retval = dialog.Run ();
+				if (retval == (int) Gtk.ResponseType.Ok) {
+					if (String.IsNullOrEmpty (dialog.ConnectionString)) {
+						IdeApp.Services.MessageService.ShowError (GettextCatalog.GetString (
+							"Connection string cannot be blank."));
+						return;
+					}
+
+					Assembly asm = Assembly.GetAssembly (typeof (Mono.Data.Sql.DbProviderBase));
+					DbProviderBase provider = (DbProviderBase) asm.CreateInstance (dialog.ConnectionType.FullName);
+					if (provider == null)
+						return;
+					provider.Name = dialog.ConnectionName;
+					provider.ConnectionString = dialog.ConnectionString;
+					
+					MonoQueryService service = (MonoQueryService)
+						ServiceManager.GetService (typeof (MonoQueryService));
+					service.Providers.Add ( (DbProviderBase) provider);
+				}
+			} finally {
+				dialog.Destroy ();
 			}
-			dialog.Destroy ();
 		}
 	}
 }