/*******************************************************************************
* Copyright (c) 2007 Exadel, Inc. and Red Hat, Inc.
* Distributed under license by Red Hat, Inc. All rights reserved.
* This program is 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:
* Exadel, Inc. and Red Hat, Inc. - initial API and implementation
******************************************************************************/
package org.jboss.tools.common.model.ui.dialogs;
import org.eclipse.jface.dialogs.IDialogPage;
import org.eclipse.jface.dialogs.TitleAreaDialog;
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.Label;
import org.eclipse.swt.widgets.Shell;
public class PageDialog extends TitleAreaDialog {
private IDialogPage dialogPage;
private String windowTitle;
// private PageDialog(Shell parentShell) {
// super(parentShell);
// }
public PageDialog(Shell parentShell, IDialogPage dialogPage) {
super(parentShell);
this.dialogPage = dialogPage;
}
protected Control createContents(Composite parent) {
Control control = super.createContents(parent);
if (dialogPage!=null) {
this.setTitle(dialogPage.getTitle());
this.setMessage(dialogPage.getMessage());
this.setTitle(dialogPage.getTitle());
}
updateWindowTitle();
return control;
}
protected Control createDialogArea(Composite parent) {
// create the top level composite for the dialog area
Composite composite = new Composite(parent, SWT.NONE);
GridLayout layout = new GridLayout();
layout.marginHeight = 0;
layout.marginWidth = 0;
layout.verticalSpacing = 0;
layout.horizontalSpacing = 0;
composite.setLayout(layout);
composite.setLayoutData(new GridData(GridData.FILL_BOTH));
composite.setFont(parent.getFont());
// Build the separator line
Label titleBarSeparator = new Label(composite, SWT.HORIZONTAL | SWT.SEPARATOR);
titleBarSeparator.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
if (dialogPage!=null) {
dialogPage.createControl(composite);
Control control = dialogPage.getControl();
control.setLayoutData(new GridData(GridData.FILL_BOTH));
}
// Build the separator line
Label buttonBarSeparator = new Label(composite, SWT.HORIZONTAL | SWT.SEPARATOR);
buttonBarSeparator.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
GridData gd = new GridData(GridData.FILL_BOTH);
gd.heightHint = 225;
gd.widthHint = 300;
composite.setLayoutData(gd);
return composite;
}
public void setWindowTitle(String newTitle) {
windowTitle = newTitle;
updateWindowTitle();
}
public String getWindowTitle() {
return windowTitle;
}
private void updateWindowTitle() {
if (getShell() == null) return;
if (windowTitle == null) windowTitle = ""; //$NON-NLS-1$
getShell().setText(windowTitle);
}
}