diff --git a/idea/src/org/jetbrains/kotlin/idea/configuration/KotlinMigrationProjectComponent.kt b/idea/src/org/jetbrains/kotlin/idea/configuration/KotlinMigrationProjectComponent.kt index 6c2de283eab..ea5da10f6ae 100644 --- a/idea/src/org/jetbrains/kotlin/idea/configuration/KotlinMigrationProjectComponent.kt +++ b/idea/src/org/jetbrains/kotlin/idea/configuration/KotlinMigrationProjectComponent.kt @@ -18,6 +18,7 @@ import org.jetbrains.kotlin.config.ApiVersion import org.jetbrains.kotlin.config.LanguageVersion import org.jetbrains.kotlin.config.LanguageVersionSettings import org.jetbrains.kotlin.config.LanguageVersionSettingsImpl +import org.jetbrains.kotlin.idea.configuration.ui.MigrationNotificationDialog import org.jetbrains.kotlin.idea.framework.GRADLE_SYSTEM_ID import org.jetbrains.kotlin.idea.framework.MAVEN_SYSTEM_ID import org.jetbrains.kotlin.idea.project.languageVersionSettings @@ -51,7 +52,8 @@ class KotlinMigrationProjectComponent(val project: Project) { } ApplicationManager.getApplication().invokeLater { - // Notify + val migrationNotificationDialog = MigrationNotificationDialog(project, migrationInfo) + migrationNotificationDialog.show() } } diff --git a/idea/src/org/jetbrains/kotlin/idea/configuration/ui/MigrationNotificationDialog.kt b/idea/src/org/jetbrains/kotlin/idea/configuration/ui/MigrationNotificationDialog.kt new file mode 100644 index 00000000000..baa9e3bf3da --- /dev/null +++ b/idea/src/org/jetbrains/kotlin/idea/configuration/ui/MigrationNotificationDialog.kt @@ -0,0 +1,37 @@ +package org.jetbrains.kotlin.idea.configuration.ui + +import com.intellij.openapi.project.Project +import com.intellij.openapi.ui.DialogWrapper +import org.jetbrains.kotlin.idea.configuration.MigrationInfo +import javax.swing.JComponent + +internal class MigrationNotificationDialog(project: Project?, migrationInfo: MigrationInfo) : DialogWrapper(project, false) { + private val form = MigrationNotificationForm() + + init { + title = "Kotlin Migration (Experimental)" + setOKButtonText("Migrate") + + form.libraryInfo.isVisible = migrationInfo.oldStdlibVersion != migrationInfo.newStdlibVersion + form.libraryInfo.text = "Standard library: ${migrationInfo.oldStdlibVersion} to ${migrationInfo.newStdlibVersion}" + + form.languageVersionInfo.isVisible = migrationInfo.oldLanguageVersion != migrationInfo.newLanguageVersion + form.languageVersionInfo.text = "Language version: ${migrationInfo.oldLanguageVersion} to ${migrationInfo.newLanguageVersion}" + + form.apiVersionInfo.isVisible = migrationInfo.oldApiVersion != migrationInfo.newApiVersion + form.apiVersionInfo.text = "API version: ${migrationInfo.oldApiVersion} to ${migrationInfo.newApiVersion}" + + init() + } + + override fun createCenterPanel(): JComponent = form.mainPanel + + private fun saveSettings() { + } + + override fun doOKAction() { + saveSettings() + super.doOKAction() + } + +} \ No newline at end of file diff --git a/idea/src/org/jetbrains/kotlin/idea/configuration/ui/MigrationNotificationForm.form b/idea/src/org/jetbrains/kotlin/idea/configuration/ui/MigrationNotificationForm.form new file mode 100644 index 00000000000..20b432c1673 --- /dev/null +++ b/idea/src/org/jetbrains/kotlin/idea/configuration/ui/MigrationNotificationForm.form @@ -0,0 +1,84 @@ + +
diff --git a/idea/src/org/jetbrains/kotlin/idea/configuration/ui/MigrationNotificationForm.java b/idea/src/org/jetbrains/kotlin/idea/configuration/ui/MigrationNotificationForm.java new file mode 100644 index 00000000000..fd44cce83f3 --- /dev/null +++ b/idea/src/org/jetbrains/kotlin/idea/configuration/ui/MigrationNotificationForm.java @@ -0,0 +1,16 @@ +/* + * Copyright 2010-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license + * that can be found in the license/LICENSE.txt file. + */ + +package org.jetbrains.kotlin.idea.configuration.ui; + +import javax.swing.*; + +public class MigrationNotificationForm { + public JCheckBox disableMigrationDetectionCheckBox; + public JPanel mainPanel; + public JLabel libraryInfo; + public JLabel languageVersionInfo; + public JLabel apiVersionInfo; +}