blob: 69a42ad9c65e76bdedcc2c508f555083c9eb11d6 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2000, 2005 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.jdt.internal.ui.refactoring;
import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Label;
import org.eclipse.jface.dialogs.Dialog;
import org.eclipse.jface.dialogs.IDialogConstants;
import org.eclipse.ltk.ui.refactoring.UserInputWizardPage;
public abstract class MessageWizardPage extends UserInputWizardPage {
public static final int STYLE_NONE= 0;
public static final int STYLE_INFORMATION= 1;
public static final int STYLE_QUESTION= 2;
public static final int STYLE_ERROR= 3;
public static final int STYLE_WARNING= 4;
private final int fStyle;
public MessageWizardPage(String pageName, boolean isLastUserPage, int style) {
super(pageName);
fStyle= style;
}
protected abstract String getMessageString();
protected Image getMessageImage() {
switch (fStyle) {
case STYLE_ERROR :
return Display.getCurrent().getSystemImage(SWT.ICON_ERROR);
case STYLE_WARNING :
return Display.getCurrent().getSystemImage(SWT.ICON_WARNING);
case STYLE_INFORMATION :
return Display.getCurrent().getSystemImage(SWT.ICON_INFORMATION);
case STYLE_QUESTION :
return Display.getCurrent().getSystemImage(SWT.ICON_QUESTION);
default :
return null;
}
}
/* (non-Javadoc)
* @see org.eclipse.jface.dialogs.IDialogPage#createControl(org.eclipse.swt.widgets.Composite)
*/
public void createControl(Composite parent) {
initializeDialogUnits(parent);
Composite result= new Composite(parent, SWT.NONE);
setControl(result);
GridLayout layout= new GridLayout();
layout.marginHeight= convertVerticalDLUsToPixels(IDialogConstants.VERTICAL_MARGIN) * 3 / 2;
layout.marginWidth= convertHorizontalDLUsToPixels(IDialogConstants.HORIZONTAL_MARGIN);
layout.verticalSpacing= convertVerticalDLUsToPixels(IDialogConstants.VERTICAL_SPACING);
layout.horizontalSpacing= convertHorizontalDLUsToPixels(IDialogConstants.HORIZONTAL_SPACING) * 2;
layout.numColumns= 2;
result.setLayout(layout);
Image image= getMessageImage();
if (image != null) {
Label label= new Label(result, SWT.NULL);
image.setBackground(label.getBackground());
label.setImage(image);
label.setLayoutData(new GridData(
GridData.HORIZONTAL_ALIGN_CENTER | GridData.VERTICAL_ALIGN_BEGINNING));
}
String message= getMessageString();
if (message != null) {
Label messageLabel= new Label(result, SWT.WRAP);
messageLabel.setText(message);
GridData data= new GridData(GridData.GRAB_HORIZONTAL | GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_BEGINNING);
data.widthHint= convertHorizontalDLUsToPixels(IDialogConstants.MINIMUM_MESSAGE_AREA_WIDTH);
messageLabel.setLayoutData(data);
messageLabel.setFont(result.getFont());
}
Dialog.applyDialogFont(result);
}
}