diff m-toolbox/classes/@repogui2/cb_connect.m @ 0:f0afece42f48

Import.
author Daniele Nicolodi <nicolodi@science.unitn.it>
date Wed, 23 Nov 2011 19:22:13 +0100
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/m-toolbox/classes/@repogui2/cb_connect.m	Wed Nov 23 19:22:13 2011 +0100
@@ -0,0 +1,69 @@
+% CB_CONNECT callback when the user clicks connect button.
+%
+% M Hewitson 22-09-08
+%
+% $Id: cb_connect.m,v 1.3 2011/04/08 08:56:36 hewitson Exp $
+%
+
+function cb_connect(varargin)
+
+  myh     = varargin{1};
+  mainfig = varargin{end};
+  status  = findobj(mainfig.handle, 'Tag', 'RepoguiStatusTxt');
+  panels  = mainfig.panels;
+
+  % Get conn
+  conn = mainfig.connection;
+
+  if isempty(conn)
+
+    % get hostname
+    hostname = get(findobj(mainfig.handle, 'Tag','RepoguiServerEdit'), 'String');
+
+    % get the database
+    db = get(findobj(mainfig.handle, 'Tag','RepoguiDatabaseEdit'), 'String');
+
+    if isempty(db)
+      error('### Please select a database first.');
+    end
+    
+    % check for username and password
+    dbuser = mainfig.dbuser;
+    dbpass = mainfig.dbpass;
+
+    % connect
+    if ~isempty(dbpass) && ~isempty(dbuser)
+      conn = utils.mysql.connect(hostname, db, dbuser, dbpass);
+    else
+      [conn, dbpass] = utils.mysql.connect(hostname, db);
+    end
+    if isa(conn, 'database')
+      mainfig.connection = conn;
+      mainfig.username   = conn.Username;
+      set(myh, 'String', 'disconnect');
+      set(status, 'String', sprintf('connected to %s on %s as %s', db, hostname, conn.Username));
+
+      % Set tables on query panel
+      buildConditions(mainfig);
+
+      % store the connection
+      mainfig.dbuser = conn.Username;
+      mainfig.dbpass = dbpass;
+    else
+      set(status, 'String', 'not connected');
+      error('Invalid connection.');
+    end
+  else
+    % disconnect
+    close(conn);
+    conn = [];
+    disp('* disconnected.');
+    mainfig.connection = conn;
+    mainfig.username   = '';
+    set(myh, 'String', 'connect');
+    set(status, 'String', 'not connected');
+    mainfig.dbuser = '';
+    mainfig.dbpass = '';
+  end
+
+end