From d994e442da2312f71ef24e411340ab58b5ef8507 Mon Sep 17 00:00:00 2001 From: Dmitry Jemerov Date: Sat, 20 Feb 2016 17:15:50 +0100 Subject: [PATCH] support new IDEA API to allow configuring a Java/JS runtime without prompting the user --- ...omLibraryDescriptorWithDeferredConfig.java | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/idea/src/org/jetbrains/kotlin/idea/framework/CustomLibraryDescriptorWithDeferredConfig.java b/idea/src/org/jetbrains/kotlin/idea/framework/CustomLibraryDescriptorWithDeferredConfig.java index 4904b0cd4e6..51eb3e917bd 100644 --- a/idea/src/org/jetbrains/kotlin/idea/framework/CustomLibraryDescriptorWithDeferredConfig.java +++ b/idea/src/org/jetbrains/kotlin/idea/framework/CustomLibraryDescriptorWithDeferredConfig.java @@ -162,9 +162,7 @@ public abstract class CustomLibraryDescriptorWithDeferredConfig extends CustomLi @Nullable @Override public NewLibraryConfiguration createNewLibrary(@NotNull JComponent parentComponent, @Nullable VirtualFile contextDirectory) { - KotlinWithLibraryConfigurator configurator = - (KotlinWithLibraryConfigurator) ConfigureKotlinInProjectUtilsKt.getConfiguratorByName(configuratorName); - assert configurator != null : "Configurator with name " + configuratorName + " should exists"; + KotlinWithLibraryConfigurator configurator = getConfigurator(); deferredCopyFileRequests = new DeferredCopyFileRequests(configurator); @@ -215,6 +213,21 @@ public abstract class CustomLibraryDescriptorWithDeferredConfig extends CustomLi return createConfiguration(Arrays.asList(runtimeJar, reflectJar), runtimeSrcJar); } + @NotNull + private KotlinWithLibraryConfigurator getConfigurator() { + KotlinWithLibraryConfigurator configurator = + (KotlinWithLibraryConfigurator) ConfigureKotlinInProjectUtilsKt.getConfiguratorByName(configuratorName); + assert configurator != null : "Configurator with name " + configuratorName + " should exists"; + return configurator; + } + + // Implements an API added in IDEA 16 + @Nullable + public NewLibraryConfiguration createNewLibraryWithDefaultSettings(@Nullable VirtualFile contextDirectory) { + RuntimeLibraryFiles files = getConfigurator().getExistingJarFiles(); + return createConfiguration(Arrays.asList(files.getRuntimeJar(), files.getReflectJar()), files.getRuntimeSourcesJar()); + } + @NotNull protected NewLibraryConfiguration createConfiguration(@NotNull final List libraryFiles, @NotNull final File librarySrcFile) { return new NewLibraryConfiguration(libraryName, null, new LibraryVersionProperties()) {