mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-03-22 06:50:54 +07:00
IJPL-177947 Validation errors do not disappear on segmented buttons after value set
(cherry picked from commit a6794f2eaebf4045e94f160fc8003e439f412a6e) (cherry picked from commit f9879e36bcb88198ad4bd46166bea933e3e86f41) IJ-MR-155667 GitOrigin-RevId: 7056b94f8a56edaf8822981e7e8225a3c582926d
This commit is contained in:
committed by
intellij-monorepo-bot
parent
ccbbb17dd8
commit
1bb53c5e92
@@ -11,11 +11,13 @@ import com.intellij.ui.DocumentAdapter
|
||||
import com.intellij.ui.EditorTextComponent
|
||||
import com.intellij.ui.PopupMenuListenerAdapter
|
||||
import com.intellij.ui.SearchTextField
|
||||
import com.intellij.ui.UserActivityProviderComponent
|
||||
import com.intellij.ui.components.DropDownLink
|
||||
import com.intellij.ui.hover.HoverListener
|
||||
import com.intellij.ui.table.TableView
|
||||
import com.intellij.util.ui.TableViewModel
|
||||
import com.intellij.util.ui.tree.TreeModelAdapter
|
||||
import org.jetbrains.annotations.ApiStatus
|
||||
import org.jetbrains.annotations.ApiStatus.Experimental
|
||||
import java.awt.Component
|
||||
import java.awt.Dimension
|
||||
@@ -254,3 +256,9 @@ fun JCheckBox.whenStateChangedFromUi(parentDisposable: Disposable? = null, liste
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ApiStatus.Internal
|
||||
fun UserActivityProviderComponent.whenChanged(parentDisposable: Disposable? = null, listener: ChangeListener) {
|
||||
addChangeListener(listener)
|
||||
parentDisposable?.whenDisposed { removeChangeListener(listener) }
|
||||
}
|
||||
|
||||
@@ -4,19 +4,22 @@ package com.intellij.ui.dsl.builder.impl
|
||||
import com.intellij.openapi.Disposable
|
||||
import com.intellij.openapi.diagnostic.logger
|
||||
import com.intellij.openapi.observable.properties.ObservableProperty
|
||||
import com.intellij.openapi.ui.*
|
||||
import com.intellij.openapi.observable.util.whenChanged
|
||||
import com.intellij.openapi.ui.ValidationInfo
|
||||
import com.intellij.openapi.ui.validation.*
|
||||
import com.intellij.openapi.util.NlsContexts
|
||||
import com.intellij.openapi.util.NlsSafe
|
||||
import com.intellij.ui.DocumentAdapter
|
||||
import com.intellij.ui.EditorTextField
|
||||
import com.intellij.ui.UserActivityProviderComponent
|
||||
import com.intellij.ui.dsl.UiDslException
|
||||
import com.intellij.ui.dsl.builder.*
|
||||
import com.intellij.ui.dsl.builder.Cell
|
||||
import com.intellij.ui.dsl.builder.components.DslLabel
|
||||
import com.intellij.ui.dsl.gridLayout.*
|
||||
import com.intellij.ui.dsl.validation.CellValidation
|
||||
import com.intellij.ui.layout.*
|
||||
import com.intellij.ui.layout.ComponentPredicate
|
||||
import com.intellij.ui.layout.PropertyBinding
|
||||
import com.intellij.ui.layout.ValidationInfoBuilder
|
||||
import com.intellij.util.containers.map2Array
|
||||
import com.intellij.util.ui.JBFont
|
||||
import org.jetbrains.annotations.ApiStatus
|
||||
@@ -354,6 +357,11 @@ internal class CellImpl<T : JComponent>(
|
||||
is JTextComponent -> WHEN_TEXT_CHANGED(component)
|
||||
is ItemSelectable -> WHEN_STATE_CHANGED(component)
|
||||
is EditorTextField -> WHEN_DOCUMENT_CHANGED(component)
|
||||
is UserActivityProviderComponent -> {
|
||||
DialogValidationRequestor { parentDisposable, validate ->
|
||||
component.whenChanged(parentDisposable) { validate() }
|
||||
}
|
||||
}
|
||||
else -> null
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user