@Override
  protected TreeViewer createTreeViewer(Composite parent) {
    int styleBits = SWT.SINGLE;
    TreeViewer tree;
    if (!hasAtMostOnePage()) {
      filteredTree = new PreferenceFilteredTree(parent, styleBits, new PreferencePatternFilter());
      filteredTree.setBackground(parent.getDisplay().getSystemColor(SWT.COLOR_LIST_BACKGROUND));

      tree = filteredTree.getViewer();
    } else tree = new TreeViewer(parent, styleBits);

    setContentAndLabelProviders(tree);
    tree.setInput(getPreferenceManager());

    tree.addFilter(new CapabilityFilter());

    tree.addSelectionChangedListener(event -> handleTreeSelectionChanged(event));

    super.addListeners(tree);
    return tree;
  }