Object (@NotNull String dataId) { if (CommonDataKeys.PROJECT.is(dataId)) { return myProject; } if (PlatformCoreDataKeys.FILE_EDITOR.is(dataId)) { return myFileEditor; } if (PlatformDataKeys.CUT_PROVIDER.is(dataId)) { return myCopyPasteDelegator.getCutProvider(); } if (PlatformDataKeys.COPY_PROVIDER.is(dataId)) { return myCopyPasteDelegator.getCopyProvider(); } if (PlatformDataKeys.PASTE_PROVIDER.is(dataId)) { return myCopyPasteDelegator.getPasteProvider(); } if (PlatformCoreDataKeys.BGT_DATA_PROVIDER.is(dataId)) { DataProvider superProvider = (DataProvider)super.getData(dataId); JBIterable<Object> selection = JBIterable.of(getTree().getSelectionPaths()).map(TreePath::getLastPathComponent); return CompositeDataProvider.compose(slowId -> getSlowData(slowId, selection), superProvider); } if (PlatformCoreDataKeys.HELP_ID.is(dataId)) { return getHelpID(); } return super.getData(dataId); }