private Control createParameterTableControl(Composite composite) {
      Composite border = new Composite(composite, SWT.NONE);
      border.setLayout(new GridLayout());

      String labelText = null; // no label
      ChangeParametersControl cp =
          new ChangeParametersControl(
              border,
              SWT.NONE,
              labelText,
              new IParameterListChangeListener() {
                public void parameterChanged(ParameterInfo parameter) {
                  update(true);
                }

                public void parameterListChanged() {
                  update(true);
                }

                public void parameterAdded(ParameterInfo parameter) {
                  update(true);
                }
              },
              ChangeParametersControl.Mode.CHANGE_METHOD_SIGNATURE,
              getChangeMethodSignatureProcessor().getStubTypeContext());
      cp.setLayoutData(new GridData(GridData.FILL_BOTH));
      cp.setInput(getChangeMethodSignatureProcessor().getParameterInfos());
      return border;
    }
  @Override
  public void createControl(Composite parent) {
    fRefactoring = (ExtractMethodRefactoring) getRefactoring();
    loadSettings();

    Composite result = new Composite(parent, SWT.NONE);
    setControl(result);
    GridLayout layout = new GridLayout();
    layout.numColumns = 2;
    result.setLayout(layout);
    RowLayouter layouter = new RowLayouter(2);
    GridData gd = null;

    initializeDialogUnits(result);

    Label label = new Label(result, SWT.NONE);
    label.setText(getLabelText());

    fTextField = createTextInputField(result, SWT.BORDER);
    fTextField.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));

    layouter.perform(label, fTextField, 1);

    if (!fRefactoring.getParameters().isEmpty()) {
      ChangeParametersControl cp =
          new ChangeParametersControl(
              result,
              SWT.NONE,
              RefactoringMessages.ExtractMethodInputPage_parameters,
              new IParameterListChangeListener.Empty() {
                @Override
                public void parameterChanged(ParameterInfo parameter) {
                  parameterModified();
                }

                @Override
                public void parameterListChanged() {
                  parameterModified();
                }
              },
              ChangeParametersControl.Mode.EXTRACT_METHOD);
      gd = new GridData(GridData.FILL_BOTH);
      gd.horizontalSpan = 2;
      cp.setLayoutData(gd);
      cp.setInput(fRefactoring.getParameters());
    }

    //    checkBox = new Button(result, SWT.CHECK);
    //    checkBox.setText(RefactoringMessages.ExtractMethodInputPage_generateJavadocComment);
    //    boolean generate = computeGenerateJavadoc();
    //    setGenerateJavadoc(generate);
    //    checkBox.setSelection(generate);
    //    checkBox.addSelectionListener(new SelectionAdapter() {
    //      @Override
    //      public void widgetSelected(SelectionEvent e) {
    //        setGenerateJavadoc(((Button) e.widget).getSelection());
    //      }
    //    });
    //    layouter.perform(checkBox);

    int duplicates = fRefactoring.getNumberOfDuplicates();
    Button checkBox = new Button(result, SWT.CHECK);
    if (duplicates == 0) {
      checkBox.setText(RefactoringMessages.ExtractMethodInputPage_duplicates_none);
    } else if (duplicates == 1) {
      checkBox.setText(RefactoringMessages.ExtractMethodInputPage_duplicates_single);
    } else {
      checkBox.setText(
          Messages.format(
              RefactoringMessages.ExtractMethodInputPage_duplicates_multi,
              new Integer(duplicates)));
    }
    checkBox.setSelection(fRefactoring.getReplaceAllOccurrences());
    checkBox.setEnabled(duplicates > 0);
    checkBox.addSelectionListener(
        new SelectionAdapter() {
          @Override
          public void widgetSelected(SelectionEvent e) {
            fRefactoring.setReplaceAllOccurrences(((Button) e.widget).getSelection());
          }
        });
    layouter.perform(checkBox);

    label = new Label(result, SWT.SEPARATOR | SWT.HORIZONTAL);
    label.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
    layouter.perform(label);

    createSignaturePreview(result, layouter);

    Dialog.applyDialogFont(result);
    PlatformUI.getWorkbench()
        .getHelpSystem()
        .setHelp(getControl(), DartHelpContextIds.EXTRACT_METHOD_WIZARD_PAGE);
  }