@Override
  public Object getData(@NotNull String dataId) {
    if (myTreeBrowser != null && myTreeBrowser.isVisible()) {
      return null;
    }
    if (CommonDataKeys.NAVIGATABLE.is(dataId)) {
      VirtualFilePointer pointer = getSelectedFilePointer();
      if (pointer == null || !pointer.isValid()) return null;
      VirtualFile selectedFile = pointer.getFile();
      return selectedFile != null ? new OpenFileDescriptor(myProject, selectedFile) : null;
    }
    else if (CommonDataKeys.VIRTUAL_FILE_ARRAY.is(dataId)) {
      return getVirtualFileArray();
    }
    else if (VcsDataKeys.FILE_PATHS.is(dataId)) {
      return getFilePathIterable();
    } else if (PlatformDataKeys.TREE_EXPANDER.is(dataId)) {
      if (myGroupByChangeList) {
        return myTreeBrowser != null ? myTreeBrowser.getTreeExpander() : null;
      }
      else {
        return myTreeExpander;
      }
    } else if (UPDATE_VIEW_SELECTED_PATH.is(dataId)) {
      VirtualFilePointer pointer = getSelectedFilePointer();
      return pointer != null ? getFilePath(pointer) : null;
    } else if (UPDATE_VIEW_FILES_ITERABLE.is(dataId)) {
      return myTreeIterable;
    } else if (LABEL_BEFORE.is(dataId)) {
      return myBefore;
    }  else if (LABEL_AFTER.is(dataId)) {
      return myAfter;
    }

    return super.getData(dataId);
  }
@Override
  public Object getData(@NotNull String dataId)