@Override
  protected CellRendererPane createCellRendererPane() {
    return new CellRendererPane() {
      @Override
      public void paintComponent(Graphics g, Component c, Container p, int x, int y, int w, int h, boolean shouldValidate) {
        TreeCellRenderer renderer = currentCellRenderer;
        if (c != null && renderer != null && LOG.isDebugEnabled()) {
          Method method = getMethod(c.getClass(), "validate");
          Class<?> type = method == null ? null : method.getDeclaringClass();
          if (Component.class.equals(type) || Container.class.equals(type)) {
            String name = renderer.getClass().getName();
            if (LOGGED_RENDERERS.add(name)) LOG.debug("suspicious renderer: " + name);
          }
        }
        if (c instanceof JComponent && myWideSelection) {
          if (c.isOpaque()) {
            ((JComponent)c).setOpaque(false);
          }
        }

        super.paintComponent(g, c, p, x, y, w, h, shouldValidate);
      }
    };
  }
@Override
  protected CellRendererPane createCellRendererPane()