Object (@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); }