package com.redhat.ceylon.eclipse.code.refactor;
import org.eclipse.ltk.ui.refactoring.UserInputWizardPage;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.events.SelectionListener;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Label;
import com.redhat.ceylon.compiler.typechecker.tree.Tree;
import com.redhat.ceylon.model.typechecker.model.Value;
public class MakeReceiverInputPage extends UserInputWizardPage {
public MakeReceiverInputPage(String name) {
super(name);
}
public void createControl(Composite parent) {
Composite result = new Composite(parent, SWT.NONE);
setControl(result);
GridLayout layout = new GridLayout();
layout.numColumns = 2;
result.setLayout(layout);
Value dm = ((Tree.AttributeDeclaration) getMakeReceiverRefactoring().node)
.getDeclarationModel();
new Label(result, SWT.RIGHT).setText("Make '" +
dm.getInitializerParameter().getDeclaration().getName() +
"()' a member of the type '" +
dm.getType().getDeclaration().getName() +
"', and remove parameter '" + dm.getName() + "'.");
GridData gd2 = new GridData(GridData.FILL_HORIZONTAL);
gd2.horizontalSpan=2;
new Label(result, SWT.SEPARATOR|SWT.HORIZONTAL).setLayoutData(gd2);
final Button delegate = new Button(result, SWT.CHECK);
delegate.setText("Leave original as delegate");
delegate.setSelection(false);
delegate.addSelectionListener(new SelectionListener() {
@Override
public void widgetSelected(SelectionEvent event) {
getMakeReceiverRefactoring().setLeaveDelegate();
}
@Override
public void widgetDefaultSelected(SelectionEvent event) {}
});
delegate.setEnabled(getMakeReceiverRefactoring().isMethod());
}
private MakeReceiverRefactoring getMakeReceiverRefactoring() {
return (MakeReceiverRefactoring) getRefactoring();
}
}