Refactor: Introduce JTextComponent.onTextChange() function
This commit is contained in:
+9
-7
@@ -25,9 +25,10 @@ import com.intellij.openapi.ui.DialogWrapper;
|
||||
import com.intellij.openapi.ui.TextFieldWithBrowseButton;
|
||||
import com.intellij.psi.*;
|
||||
import com.intellij.psi.search.GlobalSearchScope;
|
||||
import com.intellij.ui.DocumentAdapter;
|
||||
import kotlin.Unit;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.kotlin.idea.core.util.DescriptorMemberChooserObject;
|
||||
import org.jetbrains.kotlin.idea.util.UiUtilKt;
|
||||
import org.jetbrains.kotlin.psi.KtProperty;
|
||||
|
||||
import javax.swing.*;
|
||||
@@ -51,12 +52,13 @@ public abstract class AddFieldBreakpointDialog extends DialogWrapper {
|
||||
|
||||
@Override
|
||||
protected JComponent createCenterPanel() {
|
||||
myClassChooser.getTextField().getDocument().addDocumentListener(new DocumentAdapter() {
|
||||
@Override
|
||||
public void textChanged(DocumentEvent event) {
|
||||
updateUI();
|
||||
}
|
||||
});
|
||||
UiUtilKt.onTextChange(
|
||||
myClassChooser.getTextField(),
|
||||
(DocumentEvent e) -> {
|
||||
updateUI();
|
||||
return Unit.INSTANCE;
|
||||
}
|
||||
);
|
||||
|
||||
myClassChooser.addActionListener(new ActionListener() {
|
||||
@Override
|
||||
|
||||
@@ -19,11 +19,12 @@ package org.jetbrains.kotlin.idea.framework.ui;
|
||||
import com.intellij.openapi.fileChooser.FileChooserDescriptorFactory;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.ui.TextFieldWithBrowseButton;
|
||||
import com.intellij.ui.DocumentAdapter;
|
||||
import com.intellij.ui.JBColor;
|
||||
import com.intellij.util.EventDispatcher;
|
||||
import kotlin.Unit;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.jetbrains.kotlin.idea.util.UiUtilKt;
|
||||
|
||||
import javax.swing.*;
|
||||
import javax.swing.event.DocumentEvent;
|
||||
@@ -46,12 +47,13 @@ public class CopyIntoPanel {
|
||||
copyIntoField.addBrowseFolderListener(
|
||||
"Copy Into...", "Choose folder where files will be copied", project,
|
||||
FileChooserDescriptorFactory.createSingleFolderDescriptor());
|
||||
copyIntoField.getTextField().getDocument().addDocumentListener(new DocumentAdapter() {
|
||||
@Override
|
||||
protected void textChanged(DocumentEvent e) {
|
||||
updateComponents();
|
||||
}
|
||||
});
|
||||
UiUtilKt.onTextChange(
|
||||
copyIntoField.getTextField(),
|
||||
(DocumentEvent e) -> {
|
||||
updateComponents();
|
||||
return Unit.INSTANCE;
|
||||
}
|
||||
);
|
||||
|
||||
if (labelText != null) {
|
||||
String text = labelText.replace("&", "");
|
||||
|
||||
@@ -19,7 +19,6 @@ package org.jetbrains.kotlin.idea.facet
|
||||
import com.intellij.facet.ui.*
|
||||
import com.intellij.ide.actions.ShowSettingsUtilImpl
|
||||
import com.intellij.openapi.project.Project
|
||||
import com.intellij.ui.DocumentAdapter
|
||||
import com.intellij.ui.HoverHyperlinkLabel
|
||||
import com.intellij.util.ui.FormBuilder
|
||||
import com.intellij.util.ui.ThreeStateCheckBox
|
||||
@@ -29,10 +28,10 @@ import org.jetbrains.kotlin.config.TargetPlatformKind
|
||||
import org.jetbrains.kotlin.config.createCompilerArguments
|
||||
import org.jetbrains.kotlin.config.splitArgumentString
|
||||
import org.jetbrains.kotlin.idea.compiler.configuration.*
|
||||
import org.jetbrains.kotlin.idea.util.onTextChange
|
||||
import java.awt.BorderLayout
|
||||
import javax.swing.*
|
||||
import javax.swing.border.EmptyBorder
|
||||
import javax.swing.event.DocumentEvent
|
||||
import kotlin.reflect.full.findAnnotation
|
||||
|
||||
class KotlinFacetEditorGeneralTab(
|
||||
@@ -241,13 +240,7 @@ class KotlinFacetEditorGeneralTab(
|
||||
}
|
||||
|
||||
private fun JTextField.validateOnChange() {
|
||||
document.addDocumentListener(
|
||||
object : DocumentAdapter() {
|
||||
override fun textChanged(e: DocumentEvent) {
|
||||
doValidate()
|
||||
}
|
||||
}
|
||||
)
|
||||
onTextChange { doValidate() }
|
||||
}
|
||||
|
||||
private fun AbstractButton.validateOnChange() {
|
||||
|
||||
+2
-9
@@ -24,7 +24,6 @@ import com.intellij.refactoring.classMembers.MemberInfoChange
|
||||
import com.intellij.refactoring.extractSuperclass.JavaExtractSuperBaseDialog
|
||||
import com.intellij.refactoring.util.DocCommentPolicy
|
||||
import com.intellij.refactoring.util.RefactoringMessageUtil
|
||||
import com.intellij.ui.DocumentAdapter
|
||||
import com.intellij.ui.components.JBLabel
|
||||
import com.intellij.util.ui.FormBuilder
|
||||
import org.jetbrains.kotlin.asJava.toLightClass
|
||||
@@ -35,6 +34,7 @@ import org.jetbrains.kotlin.idea.refactoring.introduce.extractClass.ExtractSuper
|
||||
import org.jetbrains.kotlin.idea.refactoring.memberInfo.KotlinMemberInfo
|
||||
import org.jetbrains.kotlin.idea.refactoring.memberInfo.KotlinMemberSelectionPanel
|
||||
import org.jetbrains.kotlin.idea.refactoring.memberInfo.KotlinUsesAndInterfacesDependencyMemberInfoModel
|
||||
import org.jetbrains.kotlin.idea.util.onTextChange
|
||||
import org.jetbrains.kotlin.lexer.KtTokens
|
||||
import org.jetbrains.kotlin.psi.KtClassOrObject
|
||||
import org.jetbrains.kotlin.psi.KtNamedDeclaration
|
||||
@@ -42,7 +42,6 @@ import org.jetbrains.kotlin.psi.psiUtil.isIdentifier
|
||||
import org.jetbrains.kotlin.psi.psiUtil.quoteIfNeeded
|
||||
import java.awt.BorderLayout
|
||||
import javax.swing.*
|
||||
import javax.swing.event.DocumentEvent
|
||||
|
||||
abstract class KotlinExtractSuperDialogBase(
|
||||
protected val originalClass: KtClassOrObject,
|
||||
@@ -102,13 +101,7 @@ abstract class KotlinExtractSuperDialogBase(
|
||||
|
||||
override fun createExtractedSuperNameField(): JTextField {
|
||||
return super.createExtractedSuperNameField().apply {
|
||||
document.addDocumentListener(
|
||||
object : DocumentAdapter() {
|
||||
override fun textChanged(e: DocumentEvent?) {
|
||||
resetFileNameField()
|
||||
}
|
||||
}
|
||||
)
|
||||
onTextChange { resetFileNameField() }
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+2
-9
@@ -24,7 +24,6 @@ import com.intellij.psi.*
|
||||
import com.intellij.refactoring.RefactoringBundle
|
||||
import com.intellij.refactoring.copy.CopyFilesOrDirectoriesDialog
|
||||
import com.intellij.refactoring.util.CommonRefactoringUtil
|
||||
import com.intellij.ui.DocumentAdapter
|
||||
import com.intellij.ui.NonFocusableCheckBox
|
||||
import com.intellij.ui.RecentsManager
|
||||
import com.intellij.ui.TextFieldWithHistoryWithBrowseButton
|
||||
@@ -36,10 +35,10 @@ import org.jetbrains.kotlin.idea.core.packageMatchesDirectory
|
||||
import org.jetbrains.kotlin.idea.refactoring.isInJavaSourceRoot
|
||||
import org.jetbrains.kotlin.idea.util.application.executeCommand
|
||||
import org.jetbrains.kotlin.idea.util.application.runWriteAction
|
||||
import org.jetbrains.kotlin.idea.util.onTextChange
|
||||
import org.jetbrains.kotlin.psi.KtFile
|
||||
import java.io.File
|
||||
import javax.swing.JComponent
|
||||
import javax.swing.event.DocumentEvent
|
||||
|
||||
class KotlinAwareMoveFilesOrDirectoriesDialog(
|
||||
private val project: Project,
|
||||
@@ -88,13 +87,7 @@ class KotlinAwareMoveFilesOrDirectoriesDialog(
|
||||
TextComponentAccessor.TEXT_FIELD_WITH_HISTORY_WHOLE_TEXT)
|
||||
val textField = targetDirectoryField.childComponent.textEditor
|
||||
FileChooserFactory.getInstance().installFileCompletion(textField, descriptor, true, disposable)
|
||||
textField.document.addDocumentListener(
|
||||
object : DocumentAdapter() {
|
||||
override fun textChanged(e: DocumentEvent) {
|
||||
validateOKButton()
|
||||
}
|
||||
}
|
||||
)
|
||||
textField.onTextChange { validateOKButton() }
|
||||
targetDirectoryField.setTextFieldPreferredWidth(CopyFilesOrDirectoriesDialog.MAX_PATH_LENGTH)
|
||||
Disposer.register(disposable, targetDirectoryField)
|
||||
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
/*
|
||||
* Copyright 2010-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license
|
||||
* that can be found in the license/LICENSE.txt file.
|
||||
*/
|
||||
|
||||
package org.jetbrains.kotlin.idea.util
|
||||
|
||||
import com.intellij.ui.DocumentAdapter
|
||||
import javax.swing.event.DocumentEvent
|
||||
import javax.swing.text.JTextComponent
|
||||
|
||||
fun JTextComponent.onTextChange(action: (DocumentEvent) -> Unit) {
|
||||
document.addDocumentListener(
|
||||
object : DocumentAdapter() {
|
||||
override fun textChanged(e: DocumentEvent) {
|
||||
action(e)
|
||||
}
|
||||
}
|
||||
)
|
||||
}
|
||||
Reference in New Issue
Block a user