blob: 7f23daf2524881f8a4fca178d52178dbebedf16d [file] [log] [blame]
package org.eclipse.swtbot.generator.jdt.editor;
import org.eclipse.jface.dialogs.IDialogConstants;
import org.eclipse.jface.dialogs.IMessageProvider;
import org.eclipse.jface.dialogs.TitleAreaDialog;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.ModifyEvent;
import org.eclipse.swt.events.ModifyListener;
import org.eclipse.swt.graphics.Point;
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;
import org.eclipse.swt.widgets.Text;
public class AddClassDialog extends TitleAreaDialog{
private String title;
private String className;
private Text classText;
public AddClassDialog(Shell parentShell) {
super(parentShell);
setShellStyle(SWT.CLOSE | SWT.MAX | SWT.TITLE | SWT.BORDER | SWT.RESIZE
| getDefaultOrientation());
title = "Add new class";
setHelpAvailable(false);
}
@Override
protected Control createDialogArea(Composite parent) {
getShell().setText(title);
setTitle(title);
Composite area = (Composite) super.createDialogArea(parent);
Composite container = new Composite(area, SWT.NONE);
GridData gridData = new GridData(GridData.FILL_BOTH);
container.setLayout(new GridLayout(2, false));
container.setLayoutData(gridData);
final Label classLabel = new Label(container, SWT.NONE);
classLabel.setText("Class name: ");
GridData dataClassText = new GridData();
dataClassText.grabExcessHorizontalSpace = true;
dataClassText.horizontalAlignment = GridData.FILL;
classText = new Text(container, SWT.SINGLE | SWT.BORDER);
classText.setLayoutData(dataClassText);
classText.addModifyListener(new ModifyListener() {
@Override
public void modifyText(ModifyEvent arg0) {
if (!classText.getText().isEmpty() && !classText.getText().contains(" ")) {
getButton(IDialogConstants.OK_ID).setEnabled(true);
setMessage("");
} else {
getButton(IDialogConstants.OK_ID).setEnabled(false);
setMessage("Class name " + classText.getText()
+ " is invalid!", IMessageProvider.WARNING);
}
}
});
return getShell();
}
@Override
protected void okPressed() {
className = classText.getText();
super.okPressed();
}
@Override
protected Point getInitialSize() {
return new Point(300, 200);
}
public String getClassName() {
return className;
}
@Override
protected void createButtonsForButtonBar(Composite parent){
super.createButtonsForButtonBar(parent);
getButton(IDialogConstants.OK_ID).setEnabled(false);
}
}