/**
   * Creates a combo box and associates the combo data with the combo box.
   *
   * @param composite the composite to create the combo box in
   * @param key the unique key to identify the combo box
   * @param values the values represented by the combo options
   * @param valueLabels the values displayed in the combo box
   * @return the generated combo box
   */
  protected Combo newComboControl(
      Composite composite, String key, int[] values, String[] valueLabels) {
    ComboData data = new ComboData(key, values, -1);

    Combo comboBox = new Combo(composite, SWT.READ_ONLY);
    comboBox.setItems(valueLabels);
    comboBox.setData(data);
    comboBox.addSelectionListener(getSelectionListener());
    comboBox.setFont(JFaceResources.getDialogFont());

    makeScrollableCompositeAware(comboBox);

    int severity = -1;
    if (key != null)
      severity =
          fPreferencesService.getInt(
              getPreferenceNodeQualifier(),
              key,
              ValidationMessage.WARNING,
              createPreferenceScopes());

    if (severity == ValidationMessage.ERROR
        || severity == ValidationMessage.WARNING
        || severity == ValidationMessage.IGNORE) {
      data.setSeverity(severity);
      data.originalSeverity = severity;
    }

    if (data.getIndex() >= 0) comboBox.select(data.getIndex());

    fCombos.add(comboBox);
    return comboBox;
  }
 protected void resetSeverities() {
   IEclipsePreferences defaultContext = new DefaultScope().getNode(getPreferenceNodeQualifier());
   for (int i = 0; i < fCombos.size(); i++) {
     ComboData data = (ComboData) ((Combo) fCombos.get(i)).getData();
     int severity = defaultContext.getInt(data.getKey(), ValidationMessage.WARNING);
     data.setSeverity(severity);
     ((Combo) fCombos.get(i)).select(data.getIndex());
   }
 }