From 322feef738acfa03b91d55ecb0c93a3a49c6836c Mon Sep 17 00:00:00 2001 From: "Alexander.Kass" Date: Thu, 21 Oct 2021 09:56:48 +0300 Subject: [PATCH] ETF: forbid overriding addNotify GitOrigin-RevId: 1eb44107f75972d540809261ba7d888e652076ad --- .../lang/regexp/intention/CheckRegExpForm.java | 12 ++++-------- .../util/xml/ui/PsiClassTableCellEditor.java | 8 +++++--- .../src/com/intellij/ui/EditorTextField.java | 11 +++++++++++ .../plugins/xpathView/ui/ExpressionCellEditor.java | 11 ++++++----- 4 files changed, 26 insertions(+), 16 deletions(-) diff --git a/RegExpSupport/src/org/intellij/lang/regexp/intention/CheckRegExpForm.java b/RegExpSupport/src/org/intellij/lang/regexp/intention/CheckRegExpForm.java index e02c7f2c6a7e..c5fb7359877c 100644 --- a/RegExpSupport/src/org/intellij/lang/regexp/intention/CheckRegExpForm.java +++ b/RegExpSupport/src/org/intellij/lang/regexp/intention/CheckRegExpForm.java @@ -99,11 +99,9 @@ public final class CheckRegExpForm { private Disposable disposable; @Override - public void addNotify() { - super.addNotify(); + protected void onEditorAdded(@NotNull Editor editor) { + super.onEditorAdded(editor); disposable = PluginManager.getInstance().createDisposable(CheckRegExpForm.class); - final Editor editor = getEditor(); - assert editor != null : "editor should not be null after it has been added to a container"; editor.getCaretModel().addCaretListener(new CaretListener() { @Override @@ -153,11 +151,9 @@ public final class CheckRegExpForm { private Disposable disposable; @Override - public void addNotify() { - super.addNotify(); + protected void onEditorAdded(@NotNull Editor editor) { + super.onEditorAdded(editor); disposable = PluginManager.getInstance().createDisposable(CheckRegExpForm.class); - final Editor editor = getEditor(); - assert editor != null : "editor should not be null after it has been added to a container"; editor.getCaretModel().addCaretListener(new CaretListener() { @Override diff --git a/java/java-impl/src/com/intellij/util/xml/ui/PsiClassTableCellEditor.java b/java/java-impl/src/com/intellij/util/xml/ui/PsiClassTableCellEditor.java index 2d0f5a09d73a..3894a7311d07 100644 --- a/java/java-impl/src/com/intellij/util/xml/ui/PsiClassTableCellEditor.java +++ b/java/java-impl/src/com/intellij/util/xml/ui/PsiClassTableCellEditor.java @@ -20,6 +20,7 @@ import com.intellij.ide.util.TreeClassChooser; import com.intellij.ide.util.TreeClassChooserFactory; import com.intellij.java.JavaBundle; import com.intellij.openapi.editor.Document; +import com.intellij.openapi.editor.Editor; import com.intellij.openapi.project.Project; import com.intellij.openapi.ui.FixedSizeButton; import com.intellij.openapi.util.Conditions; @@ -29,6 +30,7 @@ import com.intellij.psi.search.GlobalSearchScope; import com.intellij.ui.EditorTextField; import com.intellij.ui.JavaReferenceEditorUtil; import com.intellij.util.ui.AbstractTableCellEditor; +import org.jetbrains.annotations.NotNull; import javax.swing.*; import java.awt.*; @@ -75,9 +77,9 @@ public class PsiClassTableCellEditor extends AbstractTableCellEditor { } @Override - public void addNotify() { - super.addNotify(); - final JComponent editorComponent = getEditor().getContentComponent(); + protected void onEditorAdded(@NotNull Editor editor) { + super.onEditorAdded(editor); + final JComponent editorComponent = editor.getContentComponent(); editorComponent.getInputMap().put(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0), "ENTER"); editorComponent.getActionMap().put("ENTER", new AbstractAction() { @Override diff --git a/platform/platform-impl/src/com/intellij/ui/EditorTextField.java b/platform/platform-impl/src/com/intellij/ui/EditorTextField.java index a3cab7f9cf60..5c974f749266 100644 --- a/platform/platform-impl/src/com/intellij/ui/EditorTextField.java +++ b/platform/platform-impl/src/com/intellij/ui/EditorTextField.java @@ -384,6 +384,10 @@ public class EditorTextField extends NonOpaquePanel implements EditorTextCompone return super.isFocusOwner(); } + protected void onEditorAdded(@NotNull Editor editor) { + + } + private void initEditor() { Disposable uiDisposable = PlatformDataKeys.UI_DISPOSABLE.getData(DataManager.getInstance().getDataContext(this)); if (uiDisposable != null) { @@ -421,6 +425,7 @@ public class EditorTextField extends NonOpaquePanel implements EditorTextCompone boolean isFocused = isFocusOwner(); initEditorInner(); + onEditorAdded(myEditor); if (myNextFocusable != null) { myEditor.getContentComponent().setNextFocusableComponent(myNextFocusable); @@ -825,6 +830,12 @@ public class EditorTextField extends NonOpaquePanel implements EditorTextCompone return true; } + //use addSettingsProvider or onEditorAdded + @Override + public final void addNotify() { + super.addNotify(); + } + @Override public void requestFocus() { if (myEditor != null) { diff --git a/plugins/xpath/xpath-view/src/org/intellij/plugins/xpathView/ui/ExpressionCellEditor.java b/plugins/xpath/xpath-view/src/org/intellij/plugins/xpathView/ui/ExpressionCellEditor.java index 9138ff7026c9..d244522d3311 100644 --- a/plugins/xpath/xpath-view/src/org/intellij/plugins/xpathView/ui/ExpressionCellEditor.java +++ b/plugins/xpath/xpath-view/src/org/intellij/plugins/xpathView/ui/ExpressionCellEditor.java @@ -21,6 +21,7 @@ import com.intellij.openapi.project.Project; import com.intellij.openapi.wm.IdeFocusManager; import com.intellij.psi.PsiDocumentManager; import com.intellij.ui.EditorTextField; +import org.jetbrains.annotations.NotNull; import javax.swing.*; import javax.swing.table.TableCellEditor; @@ -50,12 +51,12 @@ public class ExpressionCellEditor extends AbstractCellEditor implements TableCel } @Override - public void addNotify() { - super.addNotify(); + protected void onEditorAdded(@NotNull Editor editor) { + super.onEditorAdded(editor); Runnable runnable = () -> { - final Editor editor = getEditor(); - if (editor != null) { - IdeFocusManager.getGlobalInstance().doWhenFocusSettlesDown(() -> IdeFocusManager.getGlobalInstance().requestFocus(editor.getContentComponent(), true)); + final Editor e = getEditor(); + if (e != null) { + IdeFocusManager.getGlobalInstance().doWhenFocusSettlesDown(() -> IdeFocusManager.getGlobalInstance().requestFocus(e.getContentComponent(), true)); } }; SwingUtilities.invokeLater(runnable);