@Override
  protected Control createContents(Composite parent) {
    Composite top = SWTUtil.createTopComposite(parent, 2);

    createInfoGroup(top);

    return top;
  }
  @Override
  protected Composite createTopLevelComposite(Composite parent) {
    Composite topComposite = SWTUtil.createTopComposite(parent, 3);

    createContentFolderGroup(topComposite);

    createLanguagePropertiesGroup(topComposite);

    return topComposite;
  }
  protected void createContentFolderGroup(Composite topComposite) {
    Composite composite = SWTUtil.createTopComposite(topComposite, 3);

    GridLayout gl = new GridLayout(3, false);
    gl.marginLeft = 5;

    composite.setLayout(gl);
    composite.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 3, 1));

    SWTUtil.createLabel(composite, SWT.LEAD, Msgs.contentFolder, 1);

    contentFolder = SWTUtil.createText(composite, 1);
    this.synchHelper.synchText(contentFolder, CONTENT_FOLDER, null);

    Button iconFileBrowse = SWTUtil.createPushButton(composite, Msgs.browse, null);
    iconFileBrowse.addSelectionListener(
        new SelectionAdapter() {

          @Override
          public void widgetSelected(SelectionEvent e) {
            handleFileBrowseButton(NewLanguagePropertiesHookWizardPage.this.contentFolder);
          }
        });
  }
  protected void createLanguagePropertiesGroup(Composite parent) {
    Composite composite = SWTUtil.createTopComposite(parent, 2);
    composite.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 3, 1));

    languagePropertiesSection =
        new StringArrayTableWizardSection(
            composite,
            Msgs.languagePropertyFiles,
            Msgs.languagePropertyFileTitle,
            Msgs.add,
            Msgs.edit,
            Msgs.remove,
            new String[] {Msgs.add},
            new String[] {Msgs.languagePropertyFileLabel},
            null,
            getDataModel(),
            LANGUAGE_PROPERTIES_ITEMS);

    GridData gd = new GridData(SWT.FILL, SWT.CENTER, true, true, 1, 1);
    gd.heightHint = 175;

    languagePropertiesSection.setLayoutData(gd);
    languagePropertiesSection.setCallback(new StringArrayTableWizardSectionCallback());
  }