private void handleHyperlinkKeyModifierModified() {
    String modifiers = fHyperlinkKeyModifierText.getText();

    int stateMask = computeStateMask(modifiers);

    if (fHyperlinksEnabledCheckBox.getSelection()
        && (stateMask == -1 || (stateMask & SWT.SHIFT) != 0)) {
      if (stateMask == -1)
        fHyperlinkKeyModifierStatus =
            new StatusInfo(
                IStatus.ERROR,
                NLSUtility.format(
                    TextEditorMessages.HyperlinkKeyModifier_error_modifierIsNotValid, modifiers));
      else
        fHyperlinkKeyModifierStatus =
            new StatusInfo(
                IStatus.ERROR, TextEditorMessages.HyperlinkKeyModifier_error_shiftIsDisabled);
      applyToStatusLine(getHyperlinkKeyModifierStatus());
      fPreferencePage.setValid(getHyperlinkKeyModifierStatus().isOK());
    } else {
      ListItem item = getSelectedItem();
      if (item != null) {
        if (item.modifierKeys != null
            || !modifiers.equalsIgnoreCase(fHyperlinkDefaultKeyModifierText.getText()))
          item.modifierKeys = modifiers;
        fHyperlinkDetectorsViewer.refresh(getSelectedItem());
        fStore.setValue(item.id + HyperlinkDetectorDescriptor.STATE_MASK_POSTFIX, stateMask);
      }
      fHyperlinkKeyModifierStatus = new StatusInfo();
      fPreferencePage.setValid(true);
      applyToStatusLine(fHyperlinkKeyModifierStatus);
    }
  }