Wizard: do not allow to modify common project name

This commit is contained in:
Ilya Kirillov
2020-03-23 00:22:10 +03:00
parent b169d260d3
commit 545abcc667
2 changed files with 11 additions and 3 deletions
@@ -3,6 +3,7 @@ package org.jetbrains.kotlin.tools.projectWizard.wizard.ui.components
import com.intellij.ui.components.JBTextField
import com.intellij.util.ui.JBUI
import com.intellij.util.ui.UIUtil
import org.jetbrains.annotations.Nls
import org.jetbrains.kotlin.tools.projectWizard.core.Context
import org.jetbrains.kotlin.tools.projectWizard.core.entity.SettingValidator
import org.jetbrains.kotlin.tools.projectWizard.wizard.ui.textField
@@ -28,7 +29,7 @@ class TextFieldComponent(
uiComponent.text = newValue
}
fun disable(message: String) {
fun disable(@Nls message: String) {
cachedValueWhenDisabled = getUiValue()
uiComponent.isEditable = false
uiComponent.foreground = UIUtil.getLabelFontColor(UIUtil.FontColor.BRIGHTER)
@@ -8,6 +8,7 @@ import org.jetbrains.kotlin.idea.projectWizard.UiEditorUsageStats
import org.jetbrains.kotlin.tools.projectWizard.core.Context
import org.jetbrains.kotlin.tools.projectWizard.core.Reader
import org.jetbrains.kotlin.tools.projectWizard.core.entity.StringValidators
import org.jetbrains.kotlin.tools.projectWizard.moduleConfigurators.CommonTargetConfigurator
import org.jetbrains.kotlin.tools.projectWizard.moduleConfigurators.getConfiguratorSettings
import org.jetbrains.kotlin.tools.projectWizard.moduleConfigurators.moduleType
import org.jetbrains.kotlin.tools.projectWizard.plugins.kotlin.KotlinPlugin
@@ -87,8 +88,14 @@ private class ModuleNameComponent(context: Context, private val module: Module)
override fun onInit() {
super.onInit()
val isSingleRootMode = read { KotlinPlugin::modules.settingValue }.size == 1
if (isSingleRootMode && module.isRootModule) {
textField.disable("[The same as the project name]")
when {
isSingleRootMode && module.isRootModule -> {
textField.disable("[The same as the project name]")
}
module.configurator == CommonTargetConfigurator -> {
//String concatination to not to forget localisation for localisation
textField.disable("common" + " " + "[Can not be modified]")
}
}
}