/*******************************************************************************
* Copyright (c) 2008 Pierre-Antoine Grégoire.
* 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:
* Pierre-Antoine Grégoire - initial API and implementation
*******************************************************************************/
package org.org.eclipse.core.utils.platform.dialogs.message;
import org.eclipse.jface.dialogs.IDialogConstants;
import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.widgets.Shell;
import org.org.eclipse.core.utils.platform.Messages;
import org.org.eclipse.core.utils.platform.PlatformUtilsPlugin;
import org.org.eclipse.core.utils.platform.images.PluginImages;
/**
* Added a Details button to the AbstractInformationDialog to show the exception stack trace.
*/
public class InfoDialog extends AbstractInformationDialog {
/**
* This constructor use the active Shell for the org.springframework.ide.eclipse.core.ui.SpringCoreUIPlugin.<br>
* If this plugin is not available in the context of the call (e.g. not started) use a constructor allowing the specification of the shell.<br>
* This constructor also uses a default image from this plugin.<br>
* If this plugin is not available in the context of the call (e.g. not started) use a constructor allowing the specification of the image.<br>
* @param subTitle The SubTitle displayed in the dialog
* @param dialogMessage THe message to display
*/
public InfoDialog(String subTitle, String dialogMessage) {
this(PlatformUtilsPlugin.getActiveShell(), PlatformUtilsPlugin.getDefault().getImages().getImage(PluginImages.LOGO_BASIC_INFO_64), subTitle, dialogMessage);
}
/**
* This constructor use the active Shell for the org.springframework.ide.eclipse.core.ui.PlatformUtilsPlugin
* If this plugin is not available in the context of the call (e.g. not started) use a constructor allowing the specification of the shell.
* This constructor also uses a default image from this plugin.<br>
* If this plugin is not available in the context of the call (e.g. not started) use a constructor allowing the specification of the image.<br>
*
* Note that the details are formatted using the toString() method of the parameterized Object, but if the Object is a Throwable, the message and stacktrace are rendered.<br>
* @param subTitle The SubTitle displayed in the dialog
* @param dialogMessage THe message to display
* @param detail The expandable details
*/
public InfoDialog(String subTitle, String dialogMessage, Object detail) {
this(PlatformUtilsPlugin.getActiveShell(), PlatformUtilsPlugin.getDefault().getImages().getImage(PluginImages.LOGO_BASIC_INFO_64), subTitle, dialogMessage,detail);
}
/**
* This constructor allows you to use your own shell and image.<br>
* @param parentShell the parent shell
* @param image the image to display
* @param subTitle The SubTitle displayed in the dialog
* @param dialogMessage THe message to display
*/
public InfoDialog(Shell parentShell, Image image, String subTitle, String dialogMessage) {
this(parentShell, Messages.InfoDialog_title, subTitle, null, dialogMessage, null, new String[] { IDialogConstants.OK_LABEL}, 0, -1, image);
}
/**
* This constructor allows you to use your own shell and image.<br>
*
* @param parentShell the parent shell
* @param image the image to display
* @param subTitle The SubTitle displayed in the dialog
* @param dialogMessage THe message to display
* @param detail The expandable details
*/
public InfoDialog(Shell parentShell, Image image, String subTitle, String dialogMessage, Object detail) {
this(parentShell, Messages.InfoDialog_title, subTitle, null, dialogMessage, detail, new String[] { IDialogConstants.OK_LABEL, IDialogConstants.SHOW_DETAILS_LABEL }, 0, 1, image);
}
/**
* @param parentShell
* @param dialogTitle
* @param dialogSubTitle
* @param dialogTitleImage
* @param dialogMessage
* @param detail
* @param dialogButtonLabels
* @param defaultIndex
* @param detailIndex
* @param image
*/
public InfoDialog(Shell parentShell, String dialogTitle, String dialogSubTitle, Image dialogTitleImage, String dialogMessage, Object detail, String[] dialogButtonLabels, int defaultIndex, int detailIndex, Image image) {
super(parentShell, dialogTitle, dialogSubTitle, dialogTitleImage, dialogMessage, dialogButtonLabels, defaultIndex, detailIndex);
setDetail(detail);
setShellStyle(getShellStyle() | SWT.APPLICATION_MODAL);
setImage(image);
}
}