X-Git-Url: http://git.phpeclipse.com diff --git a/archive/net.sourceforge.phpeclipse.quantum.sql/src/com/quantum/util/connection/ConnectionUtil.java b/archive/net.sourceforge.phpeclipse.quantum.sql/src/com/quantum/util/connection/ConnectionUtil.java new file mode 100644 index 0000000..ecfe620 --- /dev/null +++ b/archive/net.sourceforge.phpeclipse.quantum.sql/src/com/quantum/util/connection/ConnectionUtil.java @@ -0,0 +1,46 @@ +package com.quantum.util.connection; + +import java.sql.Connection; + +import com.quantum.Messages; +import com.quantum.model.Bookmark; +import com.quantum.model.ConnectionException; +import com.quantum.model.NotConnectedException; +import com.quantum.ui.dialog.ExceptionDisplayDialog; +import com.quantum.ui.dialog.PasswordDialog; + +import org.eclipse.swt.widgets.Shell; + +/** + *

This utility gets a connection from a bookmark, and handles any UI-specific + * interactions such as providing messages to the user and/or prompting for a + * password. + * + * @author BC + */ +public class ConnectionUtil { + + public Connection getConnection(Bookmark bookmark, Shell shell) { + Connection connection = null; + try { + connection = bookmark.getConnection(); + } catch (NotConnectedException e) { + connection = connect(bookmark, shell); + } + return connection; + } + + public Connection connect(Bookmark bookmark, Shell shell) { + Connection connection = null; + try { + connection = bookmark.connect(PasswordDialog.createPasswordFinder(shell)); + } catch (ConnectionException e) { + ExceptionDisplayDialog.openError(shell, + Messages.getString(getClass().getName() + ".title"), + Messages.getString(getClass().getName() + ".message") + + " (Bookmark:"+bookmark.getName()+")", e); + } + return connection; + } + +}