NewLibraryConfiguration (@NotNull Project project, @Nullable String initialFilter, JComponent parentComponent) { RepositoryAttachDialog dialog = new RepositoryAttachDialog(project, initialFilter, RepositoryAttachDialog.Mode.DOWNLOAD); if (!dialog.showAndGet()) { return null; } final boolean attachSources = dialog.getAttachSources(); final boolean attachJavaDoc = dialog.getAttachJavaDoc(); final boolean attachAnnotations = dialog.getAttachExternalAnnotations(); final String copyTo = dialog.getDirectoryPath(); JpsMavenRepositoryLibraryDescriptor libraryDescriptor = dialog.getSelectedLibraryDescriptor(); final EnumSet<ArtifactKind> artifactKinds = ArtifactKind.kindsOf(attachSources, attachJavaDoc, libraryDescriptor.getPackaging()); if (attachAnnotations) { artifactKinds.add(ArtifactKind.ANNOTATIONS); } final NewLibraryConfiguration config = resolveAndDownload( project, libraryDescriptor, artifactKinds, copyTo, RemoteRepositoriesConfiguration.getInstance(project).getRepositories() ); if (config == null) { Messages.showErrorDialog(parentComponent, JavaUiBundle.message("error.message.no.files.were.downloaded.for.0", libraryDescriptor.getMavenId()), CommonBundle.getErrorTitle()); } return config; }