/******************************************************************************* * Copyright (c) 2003, 2004 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 API and implementation *******************************************************************************/ package org.eclipse.jst.j2ee.internal.dialogs; import org.eclipse.jface.dialogs.IDialogConstants; 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.List; import org.eclipse.swt.widgets.Shell; /** * Insert the type's description here. Creation date: (9/7/2001 11:28:24 AM) * * @author: Administrator */ public class ListMessageDialog extends org.eclipse.jface.dialogs.MessageDialog { protected String[] listItems; protected List list; /** * EJBSelectiveImportDialog constructor comment. * * @param parentShell * org.eclipse.swt.widgets.Shell * @param dialogTitle * java.lang.String * @param dialogTitleImage * org.eclipse.swt.graphics.Image * @param dialogMessage * java.lang.String * @param dialogImageType * int * @param dialogButtonLabels * java.lang.String[] * @param defaultIndex * int */ public ListMessageDialog(org.eclipse.swt.widgets.Shell parentShell, String dialogTitle, org.eclipse.swt.graphics.Image dialogTitleImage, String dialogMessage, int dialogImageType, java.lang.String[] dialogButtonLabels, int defaultIndex) { super(parentShell, dialogTitle, dialogTitleImage, dialogMessage, dialogImageType, dialogButtonLabels, defaultIndex); } /** * ListMessageDialog constructor comment. * * @param parentShell * org.eclipse.swt.widgets.Shell * @param dialogTitle * java.lang.String * @param dialogTitleImage * org.eclipse.swt.graphics.Image * @param dialogMessage * java.lang.String * @param dialogImageType * int * @param dialogButtonLabels * java.lang.String[] * @param defaultIndex * int */ public ListMessageDialog(org.eclipse.swt.widgets.Shell parentShell, String dialogTitle, org.eclipse.swt.graphics.Image dialogTitleImage, String dialogMessage, int dialogImageType, java.lang.String[] dialogButtonLabels, int defaultIndex, String[] names) { super(parentShell, dialogTitle, dialogTitleImage, dialogMessage, dialogImageType, dialogButtonLabels, defaultIndex); listItems = names; } /** * Creates and returns the contents of an area of the dialog which appears below the message and * above the button bar. * <p> * The default implementation of this framework method returns <code>null</code>. Subclasses * may override. * </p> * * @param the * parent composite to contain the custom area * @return the custom area control, or <code>null</code> */ @Override protected Control createCustomArea(Composite parent) { Composite composite = new Composite(parent, 0); GridLayout layout = new GridLayout(); layout.numColumns = 1; layout.marginHeight = convertVerticalDLUsToPixels(IDialogConstants.VERTICAL_MARGIN); layout.marginWidth = convertHorizontalDLUsToPixels(IDialogConstants.HORIZONTAL_MARGIN); layout.horizontalSpacing = convertHorizontalDLUsToPixels(IDialogConstants.HORIZONTAL_SPACING); composite.setLayout(layout); composite.setLayoutData(new GridData(GridData.FILL_BOTH)); if (listItems != null) { list = new List(composite, SWT.BORDER); GridData data = new GridData(GridData.GRAB_HORIZONTAL | GridData.GRAB_VERTICAL | GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_CENTER); list.setLayoutData(data); list.setItems(listItems); } return composite; } /** * Convenience method to open a simple confirm (OK/Cancel) dialog. * * @param parent * the parent shell of the dialog, or <code>null</code> if none * @param title * the dialog's title, or <code>null</code> if none * @param message * the message * @return <code>true</code> if the user presses the OK button, <code>false</code> otherwise */ public static boolean openConfirm(Shell parent, String title, String message, String[] items) { ListMessageDialog dialog = new ListMessageDialog(parent, title, null, // accept the default // window icon message, QUESTION, new String[]{IDialogConstants.OK_LABEL, IDialogConstants.CANCEL_LABEL}, 0, items); // OK // is // the // default return dialog.open() == 0; } /** * Convenience method to open a standard error dialog. * * @param parent * the parent shell of the dialog, or <code>null</code> if none * @param title * the dialog's title, or <code>null</code> if none * @param message * the message */ public static void openError(Shell parent, String title, String message, String[] items) { ListMessageDialog dialog = new ListMessageDialog(parent, title, null, // accept the default // window icon message, ERROR, new String[]{IDialogConstants.OK_LABEL}, 0, items); // ok is the // default dialog.open(); return; } /** * Convenience method to open a standard information dialog. * * @param parent * the parent shell of the dialog, or <code>null</code> if none * @param title * the dialog's title, or <code>null</code> if none * @param message * the message */ public static void openInformation(Shell parent, String title, String message, String[] items) { ListMessageDialog dialog = new ListMessageDialog(parent, title, null, // accept the default // window icon message, INFORMATION, new String[]{IDialogConstants.OK_LABEL}, 0, items); // ok is the default dialog.open(); return; } /** * Convenience method to open a simple Yes/No question dialog. * * @param parent * the parent shell of the dialog, or <code>null</code> if none * @param title * the dialog's title, or <code>null</code> if none * @param message * the message * @return <code>true</code> if the user presses the OK button, <code>false</code> otherwise */ public static boolean openQuestion(Shell parent, String title, String message, String[] items) { ListMessageDialog dialog = new ListMessageDialog(parent, title, null, // accept the default // window icon message, QUESTION, new String[]{IDialogConstants.YES_LABEL, IDialogConstants.NO_LABEL}, 0, items); // yes // is // the // default return dialog.open() == 0; } /** * Convenience method to open a standard warning dialog. * * @param parent * the parent shell of the dialog, or <code>null</code> if none * @param title * the dialog's title, or <code>null</code> if none * @param message * the message */ public static void openWarning(Shell parent, String title, String message, String[] items) { ListMessageDialog dialog = new ListMessageDialog(parent, title, null, // accept the default // window icon message, WARNING, new String[]{IDialogConstants.OK_LABEL}, 0, items); // ok is // the // default dialog.open(); return; } }