From 6c3f01ce2cee1721ade85f90084dc5edb7f5fede Mon Sep 17 00:00:00 2001 From: Nikolay Krasko Date: Wed, 12 Sep 2018 16:13:12 +0300 Subject: [PATCH] Refactoring: move channels titles and urls to single place --- .../KotlinLanguageConfiguration.kt | 27 +++++++++++++------ .../ui/ConfigurePluginUpdatesForm.form | 8 +----- .../ui/ConfigurePluginUpdatesForm.java | 13 +++++++-- 3 files changed, 31 insertions(+), 17 deletions(-) diff --git a/idea/src/org/jetbrains/kotlin/idea/configuration/KotlinLanguageConfiguration.kt b/idea/src/org/jetbrains/kotlin/idea/configuration/KotlinLanguageConfiguration.kt index cc063609c6e..06b32e8aa8e 100644 --- a/idea/src/org/jetbrains/kotlin/idea/configuration/KotlinLanguageConfiguration.kt +++ b/idea/src/org/jetbrains/kotlin/idea/configuration/KotlinLanguageConfiguration.kt @@ -19,23 +19,32 @@ class KotlinUpdatesSettingsConfigurable : SearchableConfigurable, Configurable.N companion object { const val ID = "preferences.language.Kotlin" - private fun saveSelectedChannel(channel: Int) { + private fun saveSelectedChannel(channelOrdinal: Int) { val hosts = UpdateSettings.getInstance().storedPluginHosts hosts.removeIf { it.startsWith("https://plugins.jetbrains.com/plugins/") && (it.endsWith("/6954") || it.endsWith(KotlinPluginUtil.KOTLIN_PLUGIN_ID.idString)) } - EAPChannels.values().find { it.uiIndex == channel }?.let { eapChannel -> - hosts.add(eapChannel.url) + UpdateChannel.values().find { it.ordinal == channelOrdinal }?.let { eapChannel -> + if (eapChannel != UpdateChannel.STABLE) { + hosts.add(eapChannel.url ?: error("Shouldn't add null urls to custom repositories")) + } } } - enum class EAPChannels(val url: String, val uiIndex: Int) { - EAP("https://plugins.jetbrains.com/plugins/eap/${KotlinPluginUtil.KOTLIN_PLUGIN_ID.idString}", 1), - EAP_NEXT("https://plugins.jetbrains.com/plugins/eap-next/${KotlinPluginUtil.KOTLIN_PLUGIN_ID.idString}", 2); + enum class UpdateChannel(val url: String?, val title: String) { + STABLE(null, "Stable"), + EAP("https://plugins.jetbrains.com/plugins/eap/${KotlinPluginUtil.KOTLIN_PLUGIN_ID.idString}", "Early Access Preview 1.3.x"), + EAP_NEXT( + "https://plugins.jetbrains.com/plugins/eap-next/${KotlinPluginUtil.KOTLIN_PLUGIN_ID.idString}", + "Early Access Preview 1.4.x" + ); - fun isInHosts() = url in UpdateSettings.getInstance().pluginHosts + fun isInHosts(): Boolean { + if (this == STABLE) return false + return url in UpdateSettings.getInstance().pluginHosts + } } } @@ -108,7 +117,9 @@ class KotlinUpdatesSettingsConfigurable : SearchableConfigurable, Configurable.N } } - savedChannel = EAPChannels.values().find { it.isInHosts() }?.uiIndex ?: 0 + form.initChannels(UpdateChannel.values().map { it.title }) + + savedChannel = UpdateChannel.values().find { it.isInHosts() }?.ordinal ?: 0 form.channelCombo.selectedIndex = savedChannel form.channelCombo.addActionListener { diff --git a/idea/src/org/jetbrains/kotlin/idea/configuration/ui/ConfigurePluginUpdatesForm.form b/idea/src/org/jetbrains/kotlin/idea/configuration/ui/ConfigurePluginUpdatesForm.form index 48f2139219f..e1b35c654ac 100644 --- a/idea/src/org/jetbrains/kotlin/idea/configuration/ui/ConfigurePluginUpdatesForm.form +++ b/idea/src/org/jetbrains/kotlin/idea/configuration/ui/ConfigurePluginUpdatesForm.form @@ -80,13 +80,7 @@ - - - - - - - + diff --git a/idea/src/org/jetbrains/kotlin/idea/configuration/ui/ConfigurePluginUpdatesForm.java b/idea/src/org/jetbrains/kotlin/idea/configuration/ui/ConfigurePluginUpdatesForm.java index 3bfca242fdd..9bf5345baa8 100644 --- a/idea/src/org/jetbrains/kotlin/idea/configuration/ui/ConfigurePluginUpdatesForm.java +++ b/idea/src/org/jetbrains/kotlin/idea/configuration/ui/ConfigurePluginUpdatesForm.java @@ -10,6 +10,7 @@ import com.intellij.util.ui.AsyncProcessIcon; import org.jetbrains.kotlin.idea.KotlinPluginUtil; import javax.swing.*; +import java.util.List; public class ConfigurePluginUpdatesForm { public JComboBox channelCombo; @@ -23,6 +24,16 @@ public class ConfigurePluginUpdatesForm { private JTextPane currentVersion; public ConfigurePluginUpdatesForm() { + showVerifierDisabledStatus(); + currentVersion.setText(KotlinPluginUtil.getPluginVersion()); + } + + public void initChannels(List channels) { + channelCombo.removeAllItems(); + for (String channel : channels) { + channelCombo.addItem(channel); + } + int size = channelCombo.getModel().getSize(); String maxLengthItem = ""; for (int i = 0; i < size; i++) { @@ -32,8 +43,6 @@ public class ConfigurePluginUpdatesForm { } } channelCombo.setPrototypeDisplayValue(maxLengthItem + " "); - showVerifierDisabledStatus(); - currentVersion.setText(KotlinPluginUtil.getPluginVersion()); } private void createUIComponents() {