@Override
  public void render(@NotNull ChangesBrowserNodeRenderer renderer, boolean selected, boolean expanded, boolean hasFocus) {
    ReadAction.run(() -> {
      Change change = getUserObject();
      FilePath filePath = ChangesUtil.getFilePath(change);
      VirtualFile file = filePath.getVirtualFile();

      if (myDecorator != null) {
        myDecorator.preDecorate(change, renderer, renderer.isShowFlatten());
      }

      renderer.appendFileName(file, filePath.getName(), change.getFileStatus().getColor());

      if (myAdditionalText != null) {
        renderer.append(spaceAndThinSpace() + myAdditionalText, SimpleTextAttributes.REGULAR_ATTRIBUTES);
      }

      if (renderer.isShowFlatten()) {
        appendParentPath(renderer, filePath.getParentPath());
      }

      appendSwitched(renderer, file);

      if (!renderer.isShowFlatten() && getFileCount() != 1 || getDirectoryCount() != 0) {
        appendCount(renderer);
      }

      setIcon(change, filePath, renderer);

      if (myDecorator != null) {
        myDecorator.decorate(change, renderer, renderer.isShowFlatten());
      }
    });
  }
@Override
  public void render(@NotNull ChangesBrowserNodeRenderer renderer, boolean selected, boolean expanded, boolean hasFocus)