diff --git a/idea/src/org/jetbrains/jet/plugin/configuration/ConfigureKotlinInProjectUtils.java b/idea/src/org/jetbrains/jet/plugin/configuration/ConfigureKotlinInProjectUtils.java index f500b1b0426..498aed9716e 100644 --- a/idea/src/org/jetbrains/jet/plugin/configuration/ConfigureKotlinInProjectUtils.java +++ b/idea/src/org/jetbrains/jet/plugin/configuration/ConfigureKotlinInProjectUtils.java @@ -89,32 +89,49 @@ public class ConfigureKotlinInProjectUtils { } private static void showConfigureKotlinNotification(final Project project) { - Collection configurators = getApplicableConfigurators(project); - - String links = StringUtil.join(configurators, new Function() { - @Override - public String fun(KotlinProjectConfigurator configurator) { - return getLink(configurator); - } - }, " "); - Notifications.Bus.notify( new Notification("Configure Kotlin", "Kotlin file(s) found in your project.", - "Configure Kotlin:\n" + links, - NotificationType.ERROR, new NotificationListener() { - @Override - public void hyperlinkUpdate(@NotNull Notification notification, @NotNull HyperlinkEvent event) { - if (event.getEventType() == HyperlinkEvent.EventType.ACTIVATED) { - KotlinProjectConfigurator configurator = getConfiguratorByName(event.getDescription()); - if (configurator == null) { - throw new AssertionError("Missed action: " + event.getDescription()); + getNotificationString(project), + NotificationType.WARNING, new NotificationListener() { + @Override + public void hyperlinkUpdate(@NotNull Notification notification, @NotNull HyperlinkEvent event) { + if (event.getEventType() == HyperlinkEvent.EventType.ACTIVATED) { + KotlinProjectConfigurator configurator = getConfiguratorByName(event.getDescription()); + if (configurator == null) { + throw new AssertionError("Missed action: " + event.getDescription()); + } + configurator.configure(project); + notification.expire(); + } } - configurator.configure(project); - notification.expire(); - } + }), project); + } + + private static String getNotificationString(Project project) { + StringBuilder builder = new StringBuilder("Configure "); + + Collection modules = getModulesWithKotlinFiles(project); + final boolean isOnlyOneModule = modules.size() == 1; + if (isOnlyOneModule) { + builder.append("'").append(modules.iterator().next().getName()).append("' module"); + } + else { + builder.append("modules"); + } + + builder.append(" in '").append(project.getName()).append("' project"); + builder.append("\n"); + + String links = StringUtil.join(getApplicableConfigurators(project), new Function() { + @Override + public String fun(KotlinProjectConfigurator configurator) { + return getLink(configurator, isOnlyOneModule); } - }), project); + }, " "); + builder.append(links); + + return builder.toString(); } @NotNull @@ -162,8 +179,11 @@ public class ConfigureKotlinInProjectUtils { return result; } @NotNull - public static String getLink(@NotNull KotlinProjectConfigurator configurator) { - return StringUtil.join("", configurator.getPresentableText(), ""); + public static String getLink(@NotNull KotlinProjectConfigurator configurator, boolean isOnlyOneModule) { + return StringUtil.join("as Kotlin (", + configurator.getPresentableText(), + isOnlyOneModule ? ") module" : ") modules", + ""); } private ConfigureKotlinInProjectUtils() { diff --git a/idea/src/org/jetbrains/jet/plugin/configuration/KotlinAndroidGradleModuleConfigurator.java b/idea/src/org/jetbrains/jet/plugin/configuration/KotlinAndroidGradleModuleConfigurator.java index ead1070f619..d7216e5cc5e 100644 --- a/idea/src/org/jetbrains/jet/plugin/configuration/KotlinAndroidGradleModuleConfigurator.java +++ b/idea/src/org/jetbrains/jet/plugin/configuration/KotlinAndroidGradleModuleConfigurator.java @@ -20,7 +20,7 @@ public class KotlinAndroidGradleModuleConfigurator extends KotlinWithGradleConfi @NotNull @Override public String getPresentableText() { - return "As Android project with Gradle"; + return "Android with Gradle"; } @Override diff --git a/idea/src/org/jetbrains/jet/plugin/configuration/KotlinGradleModuleConfigurator.java b/idea/src/org/jetbrains/jet/plugin/configuration/KotlinGradleModuleConfigurator.java index 5f8f6d57b72..e8711ad3c80 100644 --- a/idea/src/org/jetbrains/jet/plugin/configuration/KotlinGradleModuleConfigurator.java +++ b/idea/src/org/jetbrains/jet/plugin/configuration/KotlinGradleModuleConfigurator.java @@ -36,7 +36,7 @@ public class KotlinGradleModuleConfigurator extends KotlinWithGradleConfigurator @NotNull @Override public String getPresentableText() { - return "As Gradle project"; + return "Gradle"; } @Override diff --git a/idea/src/org/jetbrains/jet/plugin/configuration/KotlinJavaModuleConfigurator.java b/idea/src/org/jetbrains/jet/plugin/configuration/KotlinJavaModuleConfigurator.java index bf6d86e2793..cda40e567ec 100644 --- a/idea/src/org/jetbrains/jet/plugin/configuration/KotlinJavaModuleConfigurator.java +++ b/idea/src/org/jetbrains/jet/plugin/configuration/KotlinJavaModuleConfigurator.java @@ -51,7 +51,7 @@ public class KotlinJavaModuleConfigurator extends KotlinWithLibraryConfigurator @NotNull @Override public String getPresentableText() { - return "As Java project"; + return "Java"; } @NotNull diff --git a/idea/src/org/jetbrains/jet/plugin/configuration/KotlinJsModuleConfigurator.java b/idea/src/org/jetbrains/jet/plugin/configuration/KotlinJsModuleConfigurator.java index 3a7c5138a20..4d9ac7dc3c9 100644 --- a/idea/src/org/jetbrains/jet/plugin/configuration/KotlinJsModuleConfigurator.java +++ b/idea/src/org/jetbrains/jet/plugin/configuration/KotlinJsModuleConfigurator.java @@ -29,7 +29,7 @@ public class KotlinJsModuleConfigurator extends KotlinWithLibraryConfigurator { @NotNull @Override public String getPresentableText() { - return "As JavaScript project"; + return "JavaScript"; } @Override diff --git a/idea/src/org/jetbrains/jet/plugin/configuration/KotlinMavenConfigurator.java b/idea/src/org/jetbrains/jet/plugin/configuration/KotlinMavenConfigurator.java index 1899820d306..87ade0f5c10 100644 --- a/idea/src/org/jetbrains/jet/plugin/configuration/KotlinMavenConfigurator.java +++ b/idea/src/org/jetbrains/jet/plugin/configuration/KotlinMavenConfigurator.java @@ -17,6 +17,7 @@ package org.jetbrains.jet.plugin.configuration; import com.intellij.codeInsight.CodeInsightUtilCore; +import com.intellij.ide.actions.OpenFileAction; import com.intellij.ide.highlighter.JavaFileType; import com.intellij.openapi.application.Result; import com.intellij.openapi.command.WriteCommandAction; @@ -84,6 +85,7 @@ public class KotlinMavenConfigurator implements KotlinProjectConfigurator { PsiFile file = findModulePomFile(module); if (file != null && canConfigureFile(file)) { changePomFile(module, file, dialog.getKotlinVersion()); + OpenFileAction.openFile(file.getVirtualFile(), project); } else { showErrorMessage(project, "Cannot find pom.xml for module " + module.getName()); @@ -254,7 +256,7 @@ public class KotlinMavenConfigurator implements KotlinProjectConfigurator { @NotNull @Override public String getPresentableText() { - return "As Maven project"; + return "Maven"; } @NotNull diff --git a/idea/src/org/jetbrains/jet/plugin/configuration/KotlinWithGradleConfigurator.java b/idea/src/org/jetbrains/jet/plugin/configuration/KotlinWithGradleConfigurator.java index 89cb741f915..a29386b503b 100644 --- a/idea/src/org/jetbrains/jet/plugin/configuration/KotlinWithGradleConfigurator.java +++ b/idea/src/org/jetbrains/jet/plugin/configuration/KotlinWithGradleConfigurator.java @@ -17,6 +17,7 @@ package org.jetbrains.jet.plugin.configuration; import com.intellij.codeInsight.CodeInsightUtilCore; +import com.intellij.ide.actions.OpenFileAction; import com.intellij.openapi.application.Result; import com.intellij.openapi.command.WriteCommandAction; import com.intellij.openapi.module.Module; @@ -90,6 +91,7 @@ public abstract class KotlinWithGradleConfigurator implements KotlinProjectConfi GroovyFile file = getBuildGradleFile(project, gradleFilePath); if (file != null && canConfigureFile(file)) { changeGradleFile(file, dialog.getKotlinVersion()); + OpenFileAction.openFile(gradleFilePath, project); } else { showErrorMessage(project, "Cannot find build.gradle file for module " + module.getName()); diff --git a/idea/src/org/jetbrains/jet/plugin/framework/ui/ChooseModulePanel.form b/idea/src/org/jetbrains/jet/plugin/framework/ui/ChooseModulePanel.form index 6a66942e475..b55d7b4e9b5 100644 --- a/idea/src/org/jetbrains/jet/plugin/framework/ui/ChooseModulePanel.form +++ b/idea/src/org/jetbrains/jet/plugin/framework/ui/ChooseModulePanel.form @@ -13,7 +13,7 @@ - +