X-Git-Url: http://git.phpeclipse.com diff --git a/archive/net.sourceforge.phpeclipse.quantum.sql/src/com/quantum/ui/dialog/SQLExceptionDialog.java b/archive/net.sourceforge.phpeclipse.quantum.sql/src/com/quantum/ui/dialog/SQLExceptionDialog.java new file mode 100644 index 0000000..91a77a3 --- /dev/null +++ b/archive/net.sourceforge.phpeclipse.quantum.sql/src/com/quantum/ui/dialog/SQLExceptionDialog.java @@ -0,0 +1,66 @@ +package com.quantum.ui.dialog; + +import java.sql.SQLException; + +import com.quantum.Messages; +import com.quantum.model.Bookmark; + +import org.eclipse.jface.dialogs.IDialogConstants; +import org.eclipse.jface.dialogs.MessageDialog; +import org.eclipse.swt.SWT; +import org.eclipse.swt.layout.GridData; +import org.eclipse.swt.layout.GridLayout; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Control; +import org.eclipse.swt.widgets.Label; +import org.eclipse.swt.widgets.Shell; + + +/** + * @author BC Holmes + */ +public class SQLExceptionDialog extends MessageDialog { + + private final SQLException sqlException; + + /** + * @param parentShell + * @param dialogTitle + * @param sqlException + */ + private SQLExceptionDialog(Shell parentShell, String dialogTitle, + SQLException sqlException) { + super(parentShell, dialogTitle, null, sqlException.getLocalizedMessage(), ERROR, + new String[]{IDialogConstants.OK_LABEL}, 0); + this.sqlException = sqlException; + } + + protected Control createCustomArea(Composite parent) { + Composite composite = new Composite(parent, SWT.NONE); + composite.setLayout(new GridLayout(2, false)); + composite.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); + + Label label = new Label(composite, SWT.NONE); + label.setText(Messages.getString(SQLExceptionDialog.class, "sqlState")); + label = new Label(composite, SWT.NONE); + label.setText(this.sqlException.getSQLState() == null + ? "" : this.sqlException.getSQLState()); + + label = new Label(composite, SWT.NONE); + label.setText(Messages.getString(SQLExceptionDialog.class, "errorCode")); + label = new Label(composite, SWT.NONE); + label.setText(String.valueOf(this.sqlException.getErrorCode())); + return composite; + } + + public static void openException(Shell shell, Bookmark bookmark, SQLException sqlException) { + SQLExceptionDialog dialog = new SQLExceptionDialog(shell, + bookmark == null + ? Messages.getString(SQLExceptionDialog.class, "title") + : Messages.getString( + SQLExceptionDialog.class, "titleWithBookmark", + new Object[] { bookmark.getDisplayName() }), + sqlException); + dialog.open(); + } +}