package com.redhat.ceylon.eclipse.code.wizard;
import static com.redhat.ceylon.eclipse.ui.CeylonPlugin.getInstance;
import org.eclipse.jface.dialogs.Dialog;
import org.eclipse.jface.preference.PreferenceConverter;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.ModifyEvent;
import org.eclipse.swt.events.ModifyListener;
import org.eclipse.swt.graphics.Font;
import org.eclipse.swt.graphics.FontData;
import org.eclipse.swt.graphics.Point;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Text;
public class EditDialog extends Dialog {
private String text;
public String getText() {
return text;
}
public void setText(String text) {
this.text = text;
}
public EditDialog(Shell parent) {
super(parent);
setShellStyle(getShellStyle() | SWT.RESIZE | SWT.MAX);
}
@Override
protected Control createDialogArea(Composite parent) {
Composite composite = (Composite) super.createDialogArea(parent);
final Text text = new Text(composite, SWT.MULTI | SWT.BORDER| SWT.WRAP | SWT.V_SCROLL);
FontData fd = PreferenceConverter.getFontData(getInstance().getPreferenceStore(),
"sourceFont");
text.setFont(new Font(getShell().getDisplay(), fd));
text.setText(this.text);
GridData gd = new GridData(GridData.FILL_BOTH);
text.setLayoutData(gd);
text.addModifyListener(new ModifyListener() {
@Override
public void modifyText(ModifyEvent e) {
EditDialog.this.text = text.getText();
}
});
return composite;
}
@Override
protected Point getInitialSize() {
Point size = super.getInitialSize();
if (size.x<600) size.x=600;
if (size.y<200) size.y=200;
return size;
}
@Override
protected void configureShell(Shell newShell) {
super.configureShell(newShell);
newShell.setText("Edit Project Source Header");
}
}