diff --git a/java/java-impl/src/com/intellij/ui/logging/JvmLoggingConfigurable.kt b/java/java-impl/src/com/intellij/ui/logging/JvmLoggingConfigurable.kt index 778f18d534cb..d457eecb2b59 100644 --- a/java/java-impl/src/com/intellij/ui/logging/JvmLoggingConfigurable.kt +++ b/java/java-impl/src/com/intellij/ui/logging/JvmLoggingConfigurable.kt @@ -15,12 +15,14 @@ import com.intellij.openapi.options.SearchableConfigurable import com.intellij.openapi.project.Project import com.intellij.openapi.ui.DialogPanel import com.intellij.psi.PsiNameHelper +import com.intellij.ui.components.JBTextField import com.intellij.ui.dsl.builder.* import com.intellij.util.concurrency.AppExecutorUtil class JvmLoggingConfigurable(private val project: Project) : DslConfigurableBase(), SearchableConfigurable, NoScroll { private lateinit var warningRow: Row + private lateinit var loggerName: Cell private val settings = project.service().state override fun getDisplayName(): String = JavaBundle.message("jvm.logging.configurable.display.name") @@ -33,7 +35,7 @@ class JvmLoggingConfigurable(private val project: Project) : DslConfigurableBase group(JavaBundle.message("jvm.logging.configurable.java.group.display.name")) { row { label(JavaBundle.message("label.configurable.logger.generation.name")) - textField() + loggerName = textField() .bindText(settings::loggerName.toNonNullableProperty(JvmLoggerFieldDelegate.LOGGER_IDENTIFIER)) .cellValidation { addInputRule(JavaBundle.message("jvm.logging.configurable.invalid.identifier.error")) { @@ -60,6 +62,10 @@ class JvmLoggingConfigurable(private val project: Project) : DslConfigurableBase return panel } + override fun isModified(): Boolean { + return PsiNameHelper.getInstance(project).isIdentifier(loggerName.component.text) && super.isModified(); + } + private fun updateWarningRow(logger: JvmLogger?) { ReadAction.nonBlocking { logger?.isAvailable(project) == false && logger !is UnspecifiedLogger } .finishOnUiThread(ModalityState.any()) { isVisible -> warningRow.visible(isVisible) }