Quantum version 2.4.2
[phpeclipse.git] / archive / net.sourceforge.phpeclipse.quantum.sql / src / com / quantum / ui / dialog / SQLExceptionDialog.java
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 (file)
index 0000000..91a77a3
--- /dev/null
@@ -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();
+       }
+}