//------------------------------------------------------------------------------ // Copyright (c) 2005, 2006 IBM Corporation and others. // All rights reserved. This program and the accompanying materials // are made available under the terms of the Eclipse Public License v1.0 // which accompanies this distribution, and is available at // http://www.eclipse.org/legal/epl-v10.html // // Contributors: // IBM Corporation - initial implementation //------------------------------------------------------------------------------ package org.eclipse.epf.common.ui.util; import org.eclipse.swt.SWT; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.MessageBox; import org.eclipse.swt.widgets.Shell; /** * Helper class to display a message box. * * @author Phong Nguyen Le * @author Kelvin Low * @since 1.0 */ public final class MsgBox { /** * Use this method to show error message if you don't want long path to be * cut off. * * @param msg */ public static final void nativeShowError(Shell shell, String msg) { if (shell == null) { shell = getDefaultShell(); if (shell == null) { return; } } MessageBox msgBox = new MessageBox(shell, SWT.OK | SWT.ICON_ERROR); msgBox.setMessage(msg); msgBox.setText(shell.getText()); msgBox.open(); } public static final void showError(String msg) { showError(getDefaultShell(), msg); } public static final void showError(Shell shell, String msg) { WrappedMessageDialog.openError(shell, shell == null ? null : shell .getText(), msg); } public static final void showWarning(String msg) { showWarning(getDefaultShell(), msg); } public static final void showWarning(Shell shell, String msg) { WrappedMessageDialog.openWarning(shell, shell == null ? null : shell .getText(), msg); } public static final Shell getDefaultShell() { try { Display d = Display.getCurrent(); if (d == null) { d = Display.getDefault(); } Shell s = null; if (d != null) { s = d.getActiveShell(); } return s; } catch (RuntimeException e) { return null; } } public static final Display getDisplay() { try { Display d = Display.getCurrent(); if (d == null) { d = Display.getDefault(); } return d; } catch (RuntimeException e) { return null; } } public static final int prompt(String msg) { return prompt(getDefaultShell(), msg); } public static final int prompt(Shell shell, String msg) { return prompt(shell, null, msg, SWT.YES | SWT.NO | SWT.CANCEL); } public static final int prompt(String msg, int buttons) { return prompt(getDefaultShell(), null, msg, buttons); } public static final int prompt(String title, String msg, int buttons) { return prompt(getDefaultShell(), title, msg, buttons); } public static final int prompt(Shell shell, String msg, int buttons) { return prompt(shell, null, msg, buttons); } public static final int prompt(Shell shell, String title, String msg, int buttons) { MessageBox msgBox = new MessageBox(shell, buttons | SWT.ICON_QUESTION); msgBox.setText(title != null && title.length() > 0 ? title : shell .getText()); msgBox.setMessage(msg); return msgBox.open(); } }