Object (@Nullable Project project, @NotNull VcsTreeModelData treeSelection, @NotNull VcsTreeModelData exactSelection, @NotNull String slowId) { if (SelectInContext.DATA_KEY.is(slowId)) { if (project == null) return null; VirtualFile file = mapObjectToVirtualFile(exactSelection.iterateRawUserObjects()).first(); if (file == null) return null; return new FileSelectInContext(project, file, null); } else if (VcsDataKeys.VIRTUAL_FILES.is(slowId)) { return mapToVirtualFile(treeSelection); } else if (CommonDataKeys.VIRTUAL_FILE_ARRAY.is(slowId)) { return mapToVirtualFile(treeSelection).toArray(VirtualFile.EMPTY_ARRAY); } else if (CommonDataKeys.NAVIGATABLE_ARRAY.is(slowId)) { if (project == null) return null; return ChangesUtil.getNavigatableArray(project, mapToNavigatableFile(treeSelection)); } return null; }