drop HIDE_EDITOR_FROM_DATA_CONTEXT_PROPERTY usages

GitOrigin-RevId: 806df6ba21cbb4e0d5e3c4ca98e6f1325c376ca2
This commit is contained in:
Gregory.Shrago
2025-05-06 01:25:08 +04:00
committed by intellij-monorepo-bot
parent fafb1708ce
commit a1c6f16c0f
11 changed files with 21 additions and 102 deletions

View File

@@ -12,7 +12,6 @@ import com.intellij.ide.highlighter.HighlighterFactory
import com.intellij.ide.util.PropertiesComponent
import com.intellij.lang.Language
import com.intellij.openapi.actionSystem.CommonDataKeys
import com.intellij.openapi.actionSystem.PlatformCoreDataKeys
import com.intellij.openapi.actionSystem.UiDataProvider
import com.intellij.openapi.application.ApplicationManager
import com.intellij.openapi.application.WriteAction
@@ -23,7 +22,6 @@ import com.intellij.openapi.editor.event.DocumentEvent
import com.intellij.openapi.editor.event.DocumentListener
import com.intellij.openapi.editor.ex.EditorEx
import com.intellij.openapi.fileEditor.FileDocumentManager
import com.intellij.openapi.fileEditor.impl.text.TextEditorProvider
import com.intellij.openapi.fileTypes.PlainTextLanguage
import com.intellij.openapi.project.Project
import com.intellij.openapi.util.Key
@@ -78,13 +76,9 @@ class EditorCellViewer(private val project: Project,
}
}
private val wrappedComponent = UiDataProvider.wrapComponent(
editor.component,
UiDataProvider { sink ->
sink[CommonDataKeys.EDITOR] = editor
sink[CommonDataKeys.HOST_EDITOR] = editor
sink[PlatformCoreDataKeys.FILE_EDITOR] = TextEditorProvider.getInstance().getTextEditor(editor)
})
private val wrappedComponent = UiDataProvider.wrapComponent(editor.component) { sink ->
sink[CommonDataKeys.EDITOR] = editor
}
override val component: JComponent
get() = wrappedComponent

View File

@@ -168,7 +168,6 @@ public class TableResultPanel extends UserDataHolderBase
myAutoscrollLocker = new JBAutoScroller.AutoscrollLocker();
myDataHookUp = dataHookUp;
myMainPanel = new GridMainPanel(this, sink -> uiDataSnapshot(sink));
myMainPanel.getComponent().putClientProperty(UIUtil.HIDE_EDITOR_FROM_DATA_CONTEXT_PROPERTY, Boolean.TRUE);
myColumnAttributes = new ColumnAttributes();
myLocalFilterState = new LocalFilterState(this, true);
@@ -875,6 +874,7 @@ public class TableResultPanel extends UserDataHolderBase
protected void uiDataSnapshot(@NotNull DataSink sink) {
sink.set(CommonDataKeys.PROJECT, myProject);
sink.setNull(CommonDataKeys.EDITOR);
sink.set(PlatformDataKeys.COPY_PROVIDER, new GridCopyProvider(this));
sink.set(PlatformDataKeys.PASTE_PROVIDER, new GridPasteProvider(this, GridUtil::retrieveDataFromText));
sink.set(PlatformDataKeys.DELETE_ELEMENT_PROVIDER, new DeleteRowsAction());

View File

@@ -129,7 +129,6 @@ public class GridCellEditorTextField extends EditorTextField implements Disposab
sink.set(CommonDataKeys.VIRTUAL_FILE, FileDocumentManager.getInstance().getFile(getDocument()));
Editor editor = getEditor();
sink.set(CommonDataKeys.EDITOR, editor);
sink.set(CommonDataKeys.HOST_EDITOR, editor);
}
@Override

View File

@@ -80,7 +80,6 @@ public class TextResultView implements ResultView {
myViewer.getScrollPane().setBorder(JBUI.Borders.empty());
myComponent = UiDataProvider.wrapComponent(myViewer.getComponent(), sink -> {
sink.set(CommonDataKeys.EDITOR, myViewer);
sink.set(CommonDataKeys.HOST_EDITOR, myViewer);
});
myViewer.setColorsScheme(myViewer.createBoundColorSchemeDelegate(myResultPanel.getEditorColorsScheme()));
updateColorScheme(myViewer);

View File

@@ -363,9 +363,6 @@ f:com.intellij.collaboration.ui.codereview.editor.action.CodeReviewEditorShowFil
- update(com.intellij.openapi.actionSystem.AnActionEvent):V
f:com.intellij.collaboration.ui.codereview.timeline.comment.CommentTextFieldFactory
- sf:INSTANCE:com.intellij.collaboration.ui.codereview.timeline.comment.CommentTextFieldFactory
- f:create(com.intellij.openapi.project.Project,com.intellij.openapi.editor.Document,com.intellij.collaboration.ui.codereview.timeline.comment.CommentTextFieldFactory$ScrollOnChangePolicy,java.lang.String):com.intellij.ui.EditorTextField
- bs:create$default(com.intellij.collaboration.ui.codereview.timeline.comment.CommentTextFieldFactory,com.intellij.openapi.project.Project,com.intellij.openapi.editor.Document,com.intellij.collaboration.ui.codereview.timeline.comment.CommentTextFieldFactory$ScrollOnChangePolicy,java.lang.String,I,java.lang.Object):com.intellij.ui.EditorTextField
- f:wrapWithLeftIcon(com.intellij.collaboration.ui.codereview.timeline.comment.CommentTextFieldFactory$IconConfig,javax.swing.JComponent):javax.swing.JComponent
f:com.intellij.collaboration.ui.codereview.timeline.comment.CommentTextFieldFactory$IconConfig
- sf:Companion:com.intellij.collaboration.ui.codereview.timeline.comment.CommentTextFieldFactory$IconConfig$Companion
- <init>(javax.swing.Icon,I):V
@@ -413,12 +410,14 @@ com.intellij.collaboration.ui.codereview.timeline.thread.CodeReviewResolvableIte
- a:isResolved():kotlinx.coroutines.flow.StateFlow
f:com.intellij.collaboration.ui.codereview.timeline.thread.TimelineThreadCommentsPanel
- com.intellij.util.ui.components.BorderLayoutPanel
- com.intellij.openapi.actionSystem.UiDataProvider
- sf:Companion:com.intellij.collaboration.ui.codereview.timeline.thread.TimelineThreadCommentsPanel$Companion
- sf:FOLD_THRESHOLD:I
- sf:UNFOLD_BUTTON_VERTICAL_GAP:I
- <init>(javax.swing.ListModel,kotlin.jvm.functions.Function1,I,I):V
- b:<init>(javax.swing.ListModel,kotlin.jvm.functions.Function1,I,I,I,kotlin.jvm.internal.DefaultConstructorMarker):V
- f:getFoldModel():com.intellij.collaboration.ui.SingleValueModel
- uiDataSnapshot(com.intellij.openapi.actionSystem.DataSink):V
f:com.intellij.collaboration.ui.codereview.timeline.thread.TimelineThreadCommentsPanel$Companion
- f:createUnfoldComponent(I,kotlin.jvm.functions.Function1):javax.swing.JComponent
com.intellij.collaboration.ui.codereview.user.CodeReviewUser

View File

@@ -161,7 +161,6 @@ object CommentInputActionsComponentFactory {
// installed as AnAction, bc otherwise Esc is stolen by editor
val anAction = if (overrideEditorAction) action.toAnAction() else action.toAnActionWithEditorPromotion()
try {
putClientProperty(UIUtil.HIDE_EDITOR_FROM_DATA_CONTEXT_PROPERTY, true)
anAction.registerCustomShortcutSet(shortcut, component)
awaitCancellation()
}

View File

@@ -7,9 +7,6 @@ import com.intellij.collaboration.ui.icon.IconsProvider
import com.intellij.openapi.actionSystem.DataSink
import com.intellij.openapi.actionSystem.PlatformCoreDataKeys
import com.intellij.openapi.editor.Document
import com.intellij.openapi.editor.actions.IncrementalFindAction
import com.intellij.openapi.editor.event.DocumentEvent
import com.intellij.openapi.editor.event.DocumentListener
import com.intellij.openapi.editor.ex.EditorEx
import com.intellij.openapi.fileEditor.impl.text.TextEditorProvider
import com.intellij.openapi.fileTypes.FileTypes
@@ -17,12 +14,7 @@ import com.intellij.openapi.project.Project
import com.intellij.ui.EditorTextField
import com.intellij.ui.scale.JBUIScale
import com.intellij.util.ui.JBInsets
import com.intellij.util.ui.UIUtil
import org.jetbrains.annotations.ApiStatus.Obsolete
import org.jetbrains.annotations.Nls
import java.awt.*
import java.awt.event.ComponentAdapter
import java.awt.event.ComponentEvent
import javax.swing.Icon
import javax.swing.JComponent
import javax.swing.JLabel
@@ -32,82 +24,12 @@ import kotlin.math.min
object CommentTextFieldFactory {
/**
* Use [com.intellij.collaboration.ui.codereview.comment.CodeReviewCommentTextFieldFactory] or create a standalone editor
*/
@Obsolete
fun create(
project: Project?,
document: Document,
scrollOnChange: ScrollOnChangePolicy = ScrollOnChangePolicy.ScrollToField,
placeHolder: @Nls String? = null,
): EditorTextField = CommentTextField(project, document).apply {
putClientProperty(UIUtil.HIDE_EDITOR_FROM_DATA_CONTEXT_PROPERTY, true)
setPlaceholder(placeHolder)
addSettingsProvider {
it.putUserData(IncrementalFindAction.SEARCH_DISABLED, true)
it.colorsScheme.lineSpacing = 1f
it.settings.isUseSoftWraps = true
it.isEmbeddedIntoDialogWrapper = true
it.contentComponent.isOpaque = false
}
installScrollIfChangedController(scrollOnChange)
selectAll()
}
private fun EditorTextField.installScrollIfChangedController(policy: ScrollOnChangePolicy) {
if (policy == ScrollOnChangePolicy.DontScroll) return
fun scroll() {
val field = this
val parent = field.parent as? JComponent
when (policy) {
is ScrollOnChangePolicy.ScrollToComponent -> {
val componentToScroll = policy.component
parent?.scrollRectToVisible(Rectangle(0, 0, componentToScroll.width, componentToScroll.height))
}
ScrollOnChangePolicy.ScrollToField -> {
parent?.scrollRectToVisible(Rectangle(0, 0, parent.width, parent.height))
}
else -> Unit
}
}
addDocumentListener(object : DocumentListener {
override fun documentChanged(event: DocumentEvent) {
scroll()
}
})
// Previous listener doesn't work properly when text field's size is changed because component is not resized at this moment.
// Without the following listener component will not be scrolled to when newline is inserted.
addComponentListener(object : ComponentAdapter() {
override fun componentResized(e: ComponentEvent?) {
if (UIUtil.isFocusAncestor(parent)) {
scroll()
}
}
})
}
sealed class ScrollOnChangePolicy {
object DontScroll : ScrollOnChangePolicy()
object ScrollToField : ScrollOnChangePolicy()
class ScrollToComponent(val component: JComponent) : ScrollOnChangePolicy()
}
fun wrapWithLeftIcon(config: IconConfig, item: JComponent): JComponent {
val (icon, iconGap) = config
val iconLabel = JLabel(icon)
return JPanel(CommentFieldWithIconLayout(iconGap - CollaborationToolsUIUtil.getFocusBorderInset()) {
item.takeIf { it.isVisible }?.minimumSize?.height ?: 0
}).apply {
isOpaque = false
add(CommentFieldWithIconLayout.ICON, iconLabel)
add(CommentFieldWithIconLayout.ITEM, item)
}
}
internal fun wrapWithLeftIcon(config: IconConfig, item: JComponent, minimalItemHeightCalculator: () -> Int): JComponent {
val (icon, iconGap) = config
val iconLabel = JLabel(icon)

View File

@@ -5,12 +5,14 @@ import com.intellij.collaboration.messages.CollaborationToolsBundle
import com.intellij.collaboration.ui.SingleValueModel
import com.intellij.collaboration.ui.codereview.timeline.thread.TimelineThreadCommentsPanel.Companion.FOLD_THRESHOLD
import com.intellij.icons.AllIcons
import com.intellij.openapi.actionSystem.CommonDataKeys
import com.intellij.openapi.actionSystem.DataSink
import com.intellij.openapi.actionSystem.UiDataProvider
import com.intellij.ui.components.ActionLink
import com.intellij.ui.components.panels.ListLayout
import com.intellij.util.ui.JBUI
import com.intellij.util.ui.UIUtil
import com.intellij.util.ui.components.BorderLayoutPanel
import java.awt.*
import java.awt.Component
import java.awt.event.ActionEvent
import javax.swing.JComponent
import javax.swing.JPanel
@@ -26,7 +28,7 @@ class TimelineThreadCommentsPanel<T>(
private val commentComponentFactory: (T) -> JComponent,
offset: Int = JBUI.scale(8),
private val foldButtonOffset: Int = 30
) : BorderLayoutPanel() {
) : BorderLayoutPanel(), UiDataProvider {
val foldModel = SingleValueModel(true)
private val collapsedCountModel: SingleValueModel<Int> = SingleValueModel(commentsModel.size - FOLD_THRESHOLD - 1)
@@ -58,7 +60,6 @@ class TimelineThreadCommentsPanel<T>(
init {
isOpaque = false
addToCenter(foldablePanel)
putClientProperty(UIUtil.HIDE_EDITOR_FROM_DATA_CONTEXT_PROPERTY, true)
commentsModel.addListDataListener(object : ListDataListener {
override fun intervalRemoved(e: ListDataEvent) {
@@ -94,6 +95,10 @@ class TimelineThreadCommentsPanel<T>(
updateFolding(foldModel.value)
}
override fun uiDataSnapshot(sink: DataSink) {
sink.setNull(CommonDataKeys.EDITOR)
}
private fun updateFolding(folded: Boolean) {
val shouldFold = folded && commentsModel.size > FOLD_THRESHOLD
unfoldButtonPanel.isVisible = shouldFold

View File

@@ -658,7 +658,6 @@ public final class SearchReplaceComponent extends EditorHeaderComponent implemen
innerTextComponent.putClientProperty(
TextComponentEmptyText.STATUS_VISIBLE_FUNCTION, (Predicate<JTextComponent>)(c -> c.getText().isEmpty() && c.isFocusOwner()));
innerTextComponent.putClientProperty(UIUtil.HIDE_EDITOR_FROM_DATA_CONTEXT_PROPERTY, Boolean.TRUE);
innerTextComponent.setBackground(UIUtil.getTextFieldBackground());
JComponent finalTextComponent = innerTextComponent;
innerTextComponent.addFocusListener(new FocusListener() {

View File

@@ -1129,7 +1129,12 @@ public class EditorTextField extends NonOpaquePanel implements EditorTextCompone
if (editor != null && editor.isRendererMode()) {
sink.set(PlatformDataKeys.COPY_PROVIDER, editor.getCopyProvider());
}
sink.set(CommonDataKeys.EDITOR, editor);
if (editor == null) {
sink.setNull(CommonDataKeys.EDITOR);
}
else {
sink.set(CommonDataKeys.EDITOR, editor);
}
}
public void setFileType(@NotNull FileType fileType) {

View File

@@ -15,7 +15,6 @@ import com.intellij.collaboration.ui.util.bindDisabledIn
import com.intellij.collaboration.ui.util.bindTextIn
import com.intellij.openapi.project.Project
import com.intellij.util.ui.InlineIconButton
import com.intellij.util.ui.UIUtil
import icons.CollaborationToolsIcons
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.ExperimentalCoroutinesApi
@@ -166,7 +165,6 @@ internal object GitLabNoteComponentFactory {
fun createTextPanel(project: Project, cs: CoroutineScope, textFlow: Flow<@Nls String>, baseUrl: URL): JComponent =
SimpleHtmlPane(baseUrl = baseUrl, addBrowserListener = false).apply {
putClientProperty(UIUtil.HIDE_EDITOR_FROM_DATA_CONTEXT_PROPERTY, true)
bindTextIn(cs, textFlow)
addGitLabHyperlinkListener(project)
}