@Override
 public void createControl(Composite parent) {
   super.createControl(parent);
   if (autoConfigureOnCreate) {
     // HACK warning: when editor is created, automatically do the auto-configure...
     this.pathEditor.autoConfigPressed();
   }
 }
 @Override
 public void createControl(Composite parent) {
   super.createControl(parent);
   PlatformUI.getWorkbench()
       .getHelpSystem()
       .setHelp(
           getControl(),
           TraditionalRenderingPlugin.getUniqueIdentifier()
               + ".TraditionalRenderingPreferencePage_context"); //$NON-NLS-1$
 }
  @Override
  protected Control createDialogArea(Composite parent) {
    Composite composite = (Composite) super.createDialogArea(parent);

    editors = new ArrayList<FieldEditor>();
    messageArea = new DialogMessageArea();

    page =
        new FieldEditorPreferencePage(FieldEditorPreferencePage.GRID) {
          @Override
          public void createControl(Composite parentComposite) {
            noDefaultAndApplyButton();
            super.createControl(parentComposite);
          }

          @SuppressWarnings("synthetic-access")
          @Override
          protected void createFieldEditors() {
            rcps = this.doGetPreferenceStore();
            if (rcps == null) {
              rcps = new PreferenceStore();
            }
            FieldEditor editor;
            if (config == null) {
              messageArea.updateText("No options available", IMessageProvider.NONE);
              return;
            }
            for (Map.Entry<String, ConfigurationOption> entry : config.entrySet()) {
              String key = entry.getKey();
              ConfigurationOption option = entry.getValue();
              if (key.equalsIgnoreCase("builtin")) {
                continue;
              }
              String optionDescription = option.getDescription();
              Object currentValue = currentConfig.get(key);
              Object optionValue = option.getValue();
              if (currentValue != null) {
                optionValue = currentValue;
              }
              logger.debug(key + " class = " + optionValue.getClass().getName());
              Object[] optionPossibleValues = option.getPossibleValues();
              if (optionPossibleValues != null && optionPossibleValues.length > 0) {
                // Option has a list of values so create a dropdown box
                String[][] nv = new String[optionPossibleValues.length][2];
                for (int i = 0; i < optionPossibleValues.length; i++) {
                  nv[i][0] = optionPossibleValues[i].toString();
                  nv[i][1] = optionPossibleValues[i].toString();
                }
                editor = new ComboFieldEditor(key, optionDescription, nv, getFieldEditorParent());
                rcps.setValue(editor.getPreferenceName(), optionValue.toString());
                editor.setPreferenceStore(rcps);
                addField(editor);
                editor.load();
                editors.add(editor);
              } else if (optionValue.getClass().getName().equalsIgnoreCase("java.lang.String")) {
                editor = new StringFieldEditor(key, optionDescription, getFieldEditorParent());
                rcps.setValue(editor.getPreferenceName(), optionValue.toString());
                editor.setPreferenceStore(rcps);
                addField(editor);
                editor.load();
                editors.add(editor);
              } else if (optionValue.getClass().getName().equalsIgnoreCase("java.lang.Boolean")) {
                editor =
                    new BooleanFieldEditor(
                        key,
                        optionDescription,
                        BooleanFieldEditor.SEPARATE_LABEL,
                        getFieldEditorParent());
                rcps.setValue(editor.getPreferenceName(), optionValue.toString());
                editor.setPreferenceStore(rcps);
                addField(editor);
                editor.load();
                editors.add(editor);
              } else if (optionValue.getClass().getName().equalsIgnoreCase("java.lang.Integer")) {
                editor = new IntegerFieldEditor(key, optionDescription, getFieldEditorParent());
                rcps.setValue(editor.getPreferenceName(), optionValue.toString());
                editor.setPreferenceStore(rcps);
                addField(editor);
                editor.setPage(page);
                editor.load();
                editors.add(editor);
              } else if (optionValue.getClass().getName().equalsIgnoreCase("java.lang.Double")) {
                editor = new DoubleFieldEditor(key, optionDescription, getFieldEditorParent());
                rcps.setValue(editor.getPreferenceName(), optionValue.toString());
                editor.setPreferenceStore(rcps);
                addField(editor);
                editor.load();
                editors.add(editor);
              }
            }
          }

          @SuppressWarnings("synthetic-access")
          @Override
          protected void updateApplyButton() {
            updateButtons(isValid());
            super.updateApplyButton();
          }
        };

    messageArea.createContents(composite);
    messageArea.showTitle(translatorCategory + " Configuration Options", null);
    messageArea.setMessageLayoutData(new GridData(GridData.FILL_BOTH));
    page.createControl(composite);
    for (FieldEditor editor : editors) {
      editor.setPreferenceStore(rcps);
    }
    Control pageControl = page.getControl();
    pageControl.setLayoutData(new GridData(GridData.FILL_BOTH));
    return pageControl;
  }
 /*
  * (non-Javadoc)
  *
  * @see org.eclipse.jface.preference.PreferencePage#createControl(Composite)
  */
 public void createControl(Composite parent) {
   super.createControl(parent);
   // PlatformUI.getWorkbench().getHelpSystem().setHelp(
   // getControl(),
   // IDebugHelpContextIds.CONSOLE_PREFERENCE_PAGE );
 }
 /** @see PreferencePage#createControl(Composite) */
 public void createControl(Composite parent) {
   super.createControl(parent);
   // WorkbenchHelp.setHelp(getControl(), new
   // DialogPageContextComputer(this,
   // IJavaHelpContextIds.JAVA_EDITOR_PREFERENCE_PAGE));
 }