From 827b8594b2edaec8b8afa9f6f7af4f95406a87a7 Mon Sep 17 00:00:00 2001 From: nik Date: Thu, 23 Nov 2017 19:02:08 +0300 Subject: [PATCH] project configuration: improve 'Convert to Repository Library' action Allow excluding transitive dependencies when searching for a library in repositories, before the library files are downloaded and compared with the existing files. --- .../jarRepository/RepositoryAttachDialog.form | 28 +++++++++++++++++-- .../jarRepository/RepositoryAttachDialog.java | 5 +++- .../ConvertToRepositoryLibraryActionBase.kt | 4 +-- 3 files changed, 32 insertions(+), 5 deletions(-) diff --git a/java/idea-ui/src/com/intellij/jarRepository/RepositoryAttachDialog.form b/java/idea-ui/src/com/intellij/jarRepository/RepositoryAttachDialog.form index 09d2db2d61a4..21ab1009c4b5 100644 --- a/java/idea-ui/src/com/intellij/jarRepository/RepositoryAttachDialog.form +++ b/java/idea-ui/src/com/intellij/jarRepository/RepositoryAttachDialog.form @@ -1,6 +1,6 @@
- + @@ -10,7 +10,7 @@ - + @@ -121,6 +121,30 @@ + + + + + + + + + + + + + + + + + + + + + + + +
diff --git a/java/idea-ui/src/com/intellij/jarRepository/RepositoryAttachDialog.java b/java/idea-ui/src/com/intellij/jarRepository/RepositoryAttachDialog.java index cc2353d48530..c6081d1c4eb9 100644 --- a/java/idea-ui/src/com/intellij/jarRepository/RepositoryAttachDialog.java +++ b/java/idea-ui/src/com/intellij/jarRepository/RepositoryAttachDialog.java @@ -91,6 +91,8 @@ public class RepositoryAttachDialog extends DialogWrapper { private JBLabel myCaptionLabel; private JPanel myDownloadOptionsPanel; private JBCheckBox myIncludeTransitiveDepsCheckBox; + private JPanel mySearchOptionsPanel; + private JBCheckBox myIncludeTransitiveDependenciesForSearchCheckBox; private final JComboBox myCombobox; @@ -182,6 +184,7 @@ public class RepositoryAttachDialog extends DialogWrapper { descriptor); updateInfoLabel(); myDownloadOptionsPanel.setVisible(mode == Mode.DOWNLOAD); + mySearchOptionsPanel.setVisible(mode == Mode.SEARCH); init(); } @@ -218,7 +221,7 @@ public class RepositoryAttachDialog extends DialogWrapper { } public boolean getIncludeTransitiveDependencies() { - return myIncludeTransitiveDepsCheckBox.isSelected(); + return myMode == Mode.DOWNLOAD ? myIncludeTransitiveDepsCheckBox.isSelected() : myIncludeTransitiveDependenciesForSearchCheckBox.isSelected(); } @Nullable diff --git a/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/projectRoot/ConvertToRepositoryLibraryActionBase.kt b/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/projectRoot/ConvertToRepositoryLibraryActionBase.kt index 424f8ce159ec..97abbc40d920 100644 --- a/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/projectRoot/ConvertToRepositoryLibraryActionBase.kt +++ b/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/projectRoot/ConvertToRepositoryLibraryActionBase.kt @@ -79,7 +79,7 @@ abstract class ConvertToRepositoryLibraryActionBase(protected val context: Struc private fun downloadLibraryAndReplace(library: LibraryEx, mavenCoordinates: JpsMavenRepositoryLibraryDescriptor) { - val libraryProperties = RepositoryLibraryProperties(mavenCoordinates.groupId, mavenCoordinates.artifactId, mavenCoordinates.version) + val libraryProperties = RepositoryLibraryProperties(mavenCoordinates.groupId, mavenCoordinates.artifactId, mavenCoordinates.version, mavenCoordinates.isIncludeTransitiveDependencies) val hasSources = RepositoryUtils.libraryHasSources(library) val hasJavadoc = RepositoryUtils.libraryHasJavaDocs(library) LOG.debug("Resolving $mavenCoordinates") @@ -150,7 +150,7 @@ abstract class ConvertToRepositoryLibraryActionBase(protected val context: Struc return null } - return JpsMavenRepositoryLibraryDescriptor(dialog.coordinateText) + return JpsMavenRepositoryLibraryDescriptor(dialog.coordinateText, dialog.includeTransitiveDependencies) } private fun replaceByLibrary(library: Library, configuration: NewLibraryConfiguration) {