Author: bmotmans
Date: 2008-01-29 08:23:32 -0500 (Tue, 29 Jan 2008)
New Revision: 94245

Modified:
   
trunk/monodevelop/extras/MonoDevelop.Database/MonoDevelop.Database.Components/ChangeLog
   
trunk/monodevelop/extras/MonoDevelop.Database/MonoDevelop.Database.Components/Widgets/ConnectionSettingsWidget.cs
   
trunk/monodevelop/extras/MonoDevelop.Database/MonoDevelop.Database.Components/gtk-gui/MonoDevelop.Database.Components.ConnectionSettingsWidget.cs
   
trunk/monodevelop/extras/MonoDevelop.Database/MonoDevelop.Database.Components/gtk-gui/gui.stetic
Log:
* Widgets/ConnectionSettingsWidget.cs,
  gtk-gui/MonoDevelop.Database.Components.ConnectionSettingsWidget.cs:
  several improvements to the "test connection" method

Modified: 
trunk/monodevelop/extras/MonoDevelop.Database/MonoDevelop.Database.Components/ChangeLog
===================================================================
--- 
trunk/monodevelop/extras/MonoDevelop.Database/MonoDevelop.Database.Components/ChangeLog
     2008-01-29 13:20:03 UTC (rev 94244)
+++ 
trunk/monodevelop/extras/MonoDevelop.Database/MonoDevelop.Database.Components/ChangeLog
     2008-01-29 13:23:32 UTC (rev 94245)
@@ -1,3 +1,9 @@
+2008-01-29  Ben Motmans <[EMAIL PROTECTED]> 
+
+       * Widgets/ConnectionSettingsWidget.cs,
+         gtk-gui/MonoDevelop.Database.Components.ConnectionSettingsWidget.cs:
+         several improvements to the "test connection" method
+
 2008-01-28  Ben Motmans <[EMAIL PROTECTED]> 
 
        * Widgets/ConnectionSettingsWidget.cs: implemented the test button

Modified: 
trunk/monodevelop/extras/MonoDevelop.Database/MonoDevelop.Database.Components/Widgets/ConnectionSettingsWidget.cs
===================================================================
--- 
trunk/monodevelop/extras/MonoDevelop.Database/MonoDevelop.Database.Components/Widgets/ConnectionSettingsWidget.cs
   2008-01-29 13:20:03 UTC (rev 94244)
+++ 
trunk/monodevelop/extras/MonoDevelop.Database/MonoDevelop.Database.Components/Widgets/ConnectionSettingsWidget.cs
   2008-01-29 13:23:32 UTC (rev 94245)
@@ -57,6 +57,7 @@
                {
                        if (factory == null)
                                throw new ArgumentNullException ("factory");
+                       this.factory = factory;
                        
                        this.Build();
                        
@@ -287,11 +288,11 @@
                                ISchemaProvider prov = fac.CreateSchemaProvider 
(pool);
                                DatabaseSchemaCollection databases = 
prov.GetDatabases ();
                                
-                               foreach (DatabaseSchema db in databases) {
-                                       DispatchService.GuiDispatch (delegate 
() {
+                               DispatchService.GuiDispatch (delegate () {
+                                       foreach (DatabaseSchema db in 
databases) {
                                                storeDatabases.AppendValues 
(db.Name);
-                                       });
-                               }
+                                       }
+                               });
                                isDatabaseListEmpty = databases.Count == 0;
                        } catch {
                        } finally {
@@ -320,7 +321,10 @@
 
                protected virtual void TestClicked (object sender, 
System.EventArgs e)
                {
+                       //TODO: use a Thread object, so the thread can be 
aborted when the entered values change
                        DatabaseConnectionSettings settingsCopy = 
CreateDatabaseConnectionSettings ();
+                       labelTest.Text = AddinCatalog.GetString ("Trying to 
connect to database ...");
+                       buttonTest.Sensitive = false;
                        ThreadPool.QueueUserWorkItem (new WaitCallback 
(TestClickedThreaded), settingsCopy);
                }
                
@@ -330,21 +334,33 @@
                        DatabaseConnectionContext context = new 
DatabaseConnectionContext (settings);
                        IDbFactory fac = DbFactoryService.GetDbFactory 
(settings.ProviderIdentifier);
 
-                       string message = null;
+                       bool success = false;
+                       string error = null;
+                       
                        FakeConnectionPool pool = null;
+                       IPooledDbConnection conn = null;
                        try {
                                pool = new FakeConnectionPool (fac, 
fac.ConnectionProvider, context);
-                               pool.Initialize ();
-                               message = AddinCatalog.GetString ("Test 
succeeded");
+                               success = pool.Initialize ();
+                               error = pool.Error;
                        } catch (System.Data.DataException ex) {
-                               message = AddinCatalog.GetString ("Test failed: 
{0}", ex.Message);
+                               error = ex.Message;
+                               success = false;
                        } finally {
+                               if (conn != null) {
+                                       conn.Release ();
+                                       conn.Dispose ();
+                               }
                                if (pool != null)
                                        pool.Close ();
                        }
                        
                        DispatchService.GuiDispatch (delegate () {
-                               labelTest.Text = message;
+                               buttonTest.Sensitive = true;
+                               if (success)
+                                       labelTest.Text = AddinCatalog.GetString 
("Test Succeeded.");
+                               else
+                                       labelTest.Text = AddinCatalog.GetString 
("Test Failed: {0}.", error);
                        });
                }
        }

Modified: 
trunk/monodevelop/extras/MonoDevelop.Database/MonoDevelop.Database.Components/gtk-gui/MonoDevelop.Database.Components.ConnectionSettingsWidget.cs
===================================================================
--- 
trunk/monodevelop/extras/MonoDevelop.Database/MonoDevelop.Database.Components/gtk-gui/MonoDevelop.Database.Components.ConnectionSettingsWidget.cs
   2008-01-29 13:20:03 UTC (rev 94244)
+++ 
trunk/monodevelop/extras/MonoDevelop.Database/MonoDevelop.Database.Components/gtk-gui/MonoDevelop.Database.Components.ConnectionSettingsWidget.cs
   2008-01-29 13:23:32 UTC (rev 94245)
@@ -390,6 +390,7 @@
             this.labelTest.Name = "labelTest";
             this.labelTest.Xalign = 0F;
             this.labelTest.LabelProp = "";
+            this.labelTest.Wrap = true;
             this.table.Add(this.labelTest);
             Gtk.Table.TableChild w34 = 
((Gtk.Table.TableChild)(this.table[this.labelTest]));
             w34.TopAttach = ((uint)(7));

Modified: 
trunk/monodevelop/extras/MonoDevelop.Database/MonoDevelop.Database.Components/gtk-gui/gui.stetic
===================================================================
--- 
trunk/monodevelop/extras/MonoDevelop.Database/MonoDevelop.Database.Components/gtk-gui/gui.stetic
    2008-01-29 13:20:03 UTC (rev 94244)
+++ 
trunk/monodevelop/extras/MonoDevelop.Database/MonoDevelop.Database.Components/gtk-gui/gui.stetic
    2008-01-29 13:23:32 UTC (rev 94245)
@@ -1101,6 +1101,7 @@
             <property name="MemberName" />
             <property name="Xalign">0</property>
             <property name="LabelProp" translatable="yes" />
+            <property name="Wrap">True</property>
           </widget>
           <packing>
             <property name="TopAttach">7</property>

_______________________________________________
Mono-patches maillist  -  [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches

Reply via email to