diff options
Diffstat (limited to 'pdf-over-gui/src/main/java/at/asit/pdfover/gui/controls')
-rw-r--r-- | pdf-over-gui/src/main/java/at/asit/pdfover/gui/controls/ErrorDialog.java | 264 |
1 files changed, 19 insertions, 245 deletions
diff --git a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/controls/ErrorDialog.java b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/controls/ErrorDialog.java index 6d04b33f..88392d98 100644 --- a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/controls/ErrorDialog.java +++ b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/controls/ErrorDialog.java @@ -16,273 +16,47 @@ package at.asit.pdfover.gui.controls; // Imports -import java.io.InputStream; - import org.eclipse.swt.SWT; -import org.eclipse.swt.custom.ScrolledComposite; -import org.eclipse.swt.events.SelectionAdapter; -import org.eclipse.swt.events.SelectionEvent; -import org.eclipse.swt.graphics.Image; -import org.eclipse.swt.graphics.ImageData; -import org.eclipse.swt.layout.FormAttachment; -import org.eclipse.swt.layout.FormData; -import org.eclipse.swt.layout.FormLayout; -import org.eclipse.swt.widgets.Button; -import org.eclipse.swt.widgets.Dialog; -import org.eclipse.swt.widgets.Display; -import org.eclipse.swt.widgets.Group; -import org.eclipse.swt.widgets.Label; +import org.eclipse.swt.widgets.MessageBox; import org.eclipse.swt.widgets.Shell; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import at.asit.pdfover.gui.Messages; /** * */ -public class ErrorDialog extends Dialog { - - private static final boolean VERBOSE_ERROR = false; +public class ErrorDialog { + private MessageBox box; + /** * @param parent - * @param style * @param message - * @param exception * @param canRetry */ - public ErrorDialog(Shell parent, int style, String message, - Throwable exception, boolean canRetry) { - super(parent, style); - this.message = message; - this.canRetry = canRetry; - final StringBuilder result = new StringBuilder(); - result.append(exception.getLocalizedMessage()); - final String NEW_LINE = System.getProperty("line.separator"); //$NON-NLS-1$ - result.append(NEW_LINE); - result.append(NEW_LINE); - result.append(NEW_LINE); - - // add each element of the stack trace - for (StackTraceElement element : exception.getStackTrace()) { - result.append(element); - result.append(NEW_LINE); + public ErrorDialog(Shell parent, String message, boolean canRetry) { + int boxstyle = SWT.ICON_ERROR ; + if(canRetry) { + boxstyle |= SWT.RETRY| SWT.CANCEL; + } else { + boxstyle |= SWT.OK; } - this.details = result.toString(); - } - - /** - * @param parent - * @param style - * @param message - * @param details - * @param canRetry - */ - public ErrorDialog(Shell parent, int style, String message, String details, - boolean canRetry) { - super(parent, style); - this.message = message; - this.details = details; - this.canRetry = canRetry; + + this.box = new MessageBox(parent, boxstyle); + this.box.setMessage(message); + this.box.setText(Messages.getString("error.title")); //$NON-NLS-1$ } - private String message = null; - - private boolean canRetry = false; - - boolean doRetry = false; - - private String details = null; - - /** - * SLF4J Logger instance - **/ - @SuppressWarnings("unused") - private static final Logger log = LoggerFactory - .getLogger(ErrorDialog.class); - /** * Open error dialog * * @return if the user wants to retry the action which caused the error */ public boolean open() { - Shell parent = getParent(); - final Shell shell = new Shell(parent, SWT.DIALOG_TRIM - | SWT.APPLICATION_MODAL); - shell.setText(getText()); - shell.setLayout(new FormLayout()); - - Label lblErrorImage = new Label(shell, SWT.NONE); - FormData fd_lblErrorImage = new FormData(); - fd_lblErrorImage.top = new FormAttachment(50, -16); - fd_lblErrorImage.left = new FormAttachment(0, 5); - lblErrorImage.setLayoutData(fd_lblErrorImage); - lblErrorImage.setText(""); //$NON-NLS-1$ - - String imgPath = "/img/error.png"; //$NON-NLS-1$ - - InputStream stream = this.getClass().getResourceAsStream(imgPath); - - Image orig = new Image(Display.getCurrent(), - new ImageData(stream).scaledTo(32, 32)); - - lblErrorImage.setImage(orig); - - Label lblerrorMessage = new Label(shell, SWT.NONE); - FormData fd_lblerrorMessage = new FormData(); - fd_lblerrorMessage.top = new FormAttachment(0, 5); - fd_lblerrorMessage.left = new FormAttachment(0, 42); - lblerrorMessage.setLayoutData(fd_lblerrorMessage); - lblerrorMessage.setText(this.message); - - if (VERBOSE_ERROR) { - - Group group = new Group(shell, SWT.NONE); - group.setLayout(new FormLayout()); - FormData fd_group = new FormData(); - - fd_group.right = new FormAttachment(100, -5); - fd_group.top = new FormAttachment(lblerrorMessage, 5); - fd_group.left = new FormAttachment(lblErrorImage, 5); - group.setLayoutData(fd_group); - group.setText(Messages.getString("error.Details")); //$NON-NLS-1$ - - if (!this.canRetry) { - - Button btnOk = new Button(shell, SWT.NONE); - btnOk.addSelectionListener(new SelectionAdapter() { - @Override - public void widgetSelected(SelectionEvent e) { - shell.dispose(); - } - }); - fd_group.bottom = new FormAttachment(btnOk, -5); - - ScrolledComposite scrolledComposite = new ScrolledComposite( - group, SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL); - FormData fd_scrolledComposite = new FormData(); - fd_scrolledComposite.top = new FormAttachment(0, 5); - fd_scrolledComposite.left = new FormAttachment(0, 5); - fd_scrolledComposite.bottom = new FormAttachment(100, -5); - fd_scrolledComposite.right = new FormAttachment(100, -5); - scrolledComposite.setLayoutData(fd_scrolledComposite); - scrolledComposite.setExpandHorizontal(true); - scrolledComposite.setExpandVertical(true); - - Label lblDetails = new Label(scrolledComposite, SWT.NONE); - - lblDetails.setText(this.details); - - scrolledComposite.setContent(lblDetails); - scrolledComposite.setMinSize(lblDetails.computeSize( - SWT.DEFAULT, SWT.DEFAULT)); - FormData fd_btnOk = new FormData(); - fd_btnOk.bottom = new FormAttachment(100, -5); - fd_btnOk.right = new FormAttachment(100, -5); - btnOk.setLayoutData(fd_btnOk); - btnOk.setText(Messages.getString("common.Ok")); //$NON-NLS-1$ - } else { - Button btnCancel = new Button(shell, SWT.NONE); - Button btnRetry = new Button(shell, SWT.NONE); - - btnCancel.addSelectionListener(new SelectionAdapter() { - @Override - public void widgetSelected(SelectionEvent e) { - shell.dispose(); - } - }); - - btnRetry.addSelectionListener(new SelectionAdapter() { - @Override - public void widgetSelected(SelectionEvent e) { - ErrorDialog.this.doRetry = true; - shell.dispose(); - } - }); - fd_group.bottom = new FormAttachment(btnCancel, -5); - - ScrolledComposite scrolledComposite = new ScrolledComposite( - group, SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL); - FormData fd_scrolledComposite = new FormData(); - fd_scrolledComposite.top = new FormAttachment(0, 5); - fd_scrolledComposite.left = new FormAttachment(0, 5); - fd_scrolledComposite.bottom = new FormAttachment(100, -5); - fd_scrolledComposite.right = new FormAttachment(100, -5); - scrolledComposite.setLayoutData(fd_scrolledComposite); - scrolledComposite.setExpandHorizontal(true); - scrolledComposite.setExpandVertical(true); - - Label lblDetails = new Label(scrolledComposite, SWT.NONE); - - lblDetails.setText(this.details); - - scrolledComposite.setContent(lblDetails); - scrolledComposite.setMinSize(lblDetails.computeSize( - SWT.DEFAULT, SWT.DEFAULT)); - FormData fd_btnCancel = new FormData(); - fd_btnCancel.bottom = new FormAttachment(100, -5); - fd_btnCancel.right = new FormAttachment(100, -5); - btnCancel.setLayoutData(fd_btnCancel); - btnCancel.setText(Messages.getString("common.Cancel")); //$NON-NLS-1$ - - FormData fd_btnRetry = new FormData(); - fd_btnRetry.bottom = new FormAttachment(100, -5); - fd_btnRetry.right = new FormAttachment(btnCancel, -10); - btnRetry.setLayoutData(fd_btnRetry); - btnRetry.setText(Messages.getString("error.Retry")); //$NON-NLS-1$ - } - - } else { - - Button btnCancel = new Button(shell, SWT.NONE); - - btnCancel.addSelectionListener(new SelectionAdapter() { - @Override - public void widgetSelected(SelectionEvent e) { - shell.dispose(); - } - }); - - FormData fd_btnCancel = new FormData(); - fd_btnCancel.bottom = new FormAttachment(100, -5); - fd_btnCancel.right = new FormAttachment(100, -5); - fd_btnCancel.top = new FormAttachment(lblerrorMessage, 10); - btnCancel.setLayoutData(fd_btnCancel); - btnCancel.setText(Messages.getString("common.Ok")); //$NON-NLS-1$ - - - if(this.canRetry) { - btnCancel.setText(Messages.getString("common.Cancel")); //$NON-NLS-1$ - - Button btnRetry = new Button(shell, SWT.NONE); - - - btnRetry.addSelectionListener(new SelectionAdapter() { - @Override - public void widgetSelected(SelectionEvent e) { - ErrorDialog.this.doRetry = true; - shell.dispose(); - } - }); - FormData fd_btnRetry = new FormData(); - - fd_btnRetry.bottom = new FormAttachment(100, -5); - fd_btnRetry.right = new FormAttachment(btnCancel, -10); - btnRetry.setLayoutData(fd_btnRetry); - btnRetry.setText(Messages.getString("error.Retry")); //$NON-NLS-1$ - } - } - shell.pack(); - shell.open(); - shell.pack(); - Display display = parent.getDisplay(); - while (!shell.isDisposed()) { - if (!display.readAndDispatch()) - display.sleep(); - } - - return this.doRetry; + int rc = this.box.open(); + if(rc == SWT.RETRY) { + return true; + } + return false; } } |