package org.objectstyle.wolips.baseforuiplugins.utils; import java.lang.reflect.InvocationTargetException; import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.Status; import org.eclipse.swt.widgets.Shell; import org.objectstyle.wolips.baseforplugins.util.StringUtils; public class ErrorUtils { public static void openErrorDialog(Shell _parent, String _title, String _message) { ErrorUtils.openErrorDialog(_parent, _title, _message, null); } public static void openErrorDialog(Shell _parent, String _message) { ErrorUtils.openErrorDialog(_parent, null, _message, null); } public static void openErrorDialog(Shell _parent, Throwable _throwable) { ErrorUtils.openErrorDialog(_parent, null, null, _throwable); } public static void openErrorDialog(Shell _parent, String _title, Throwable _throwable) { ErrorUtils.openErrorDialog(_parent, _title, null, _throwable); } public static void openErrorDialog(final Shell _parent, String _title, String _message, Throwable _throwable) { final Throwable throwable; if (_throwable == null) { throwable = null; } else { _throwable.printStackTrace(); if (_throwable instanceof InvocationTargetException) { throwable = ((InvocationTargetException) _throwable).getCause(); } else { throwable = _throwable; } } final String title; if (_title == null) { title = "Error"; } else { title = _title; } final String message; if (_message == null) { message = StringUtils.getErrorMessage(_throwable); } else { message = _message; } _parent.getDisplay().syncExec(new Runnable() { public void run() { ErrorDialog.openError(_parent, title, message, new Status(IStatus.ERROR, "org.objectstyle.wolips.baseforuiplugins", -1, message, throwable)); } }); } }