Subclassed EditSignatureBalloon from Disposable to pass it to addDocumentListener().
This commit is contained in:
@@ -18,6 +18,7 @@ package org.jetbrains.jet.plugin.codeInsight.ktSignature;
|
|||||||
|
|
||||||
import com.intellij.codeInsight.ExternalAnnotationsManager;
|
import com.intellij.codeInsight.ExternalAnnotationsManager;
|
||||||
import com.intellij.codeInsight.navigation.NavigationUtil;
|
import com.intellij.codeInsight.navigation.NavigationUtil;
|
||||||
|
import com.intellij.openapi.Disposable;
|
||||||
import com.intellij.openapi.application.Result;
|
import com.intellij.openapi.application.Result;
|
||||||
import com.intellij.openapi.command.WriteCommandAction;
|
import com.intellij.openapi.command.WriteCommandAction;
|
||||||
import com.intellij.openapi.editor.Document;
|
import com.intellij.openapi.editor.Document;
|
||||||
@@ -36,6 +37,7 @@ import com.intellij.openapi.ui.popup.Balloon;
|
|||||||
import com.intellij.openapi.ui.popup.JBPopupAdapter;
|
import com.intellij.openapi.ui.popup.JBPopupAdapter;
|
||||||
import com.intellij.openapi.ui.popup.JBPopupFactory;
|
import com.intellij.openapi.ui.popup.JBPopupFactory;
|
||||||
import com.intellij.openapi.ui.popup.LightweightWindowEvent;
|
import com.intellij.openapi.ui.popup.LightweightWindowEvent;
|
||||||
|
import com.intellij.openapi.util.Disposer;
|
||||||
import com.intellij.openapi.vfs.VirtualFile;
|
import com.intellij.openapi.vfs.VirtualFile;
|
||||||
import com.intellij.openapi.wm.IdeFocusManager;
|
import com.intellij.openapi.wm.IdeFocusManager;
|
||||||
import com.intellij.psi.*;
|
import com.intellij.psi.*;
|
||||||
@@ -60,8 +62,7 @@ import static org.jetbrains.jet.plugin.codeInsight.ktSignature.KotlinSignatureUt
|
|||||||
* @author Evgeny Gerashchenko
|
* @author Evgeny Gerashchenko
|
||||||
* @since 10.08.12
|
* @since 10.08.12
|
||||||
*/
|
*/
|
||||||
@SuppressWarnings("SSBasedInspection")
|
class EditSignatureBalloon implements Disposable {
|
||||||
class EditSignatureBalloon {
|
|
||||||
private final Editor editor;
|
private final Editor editor;
|
||||||
private final PsiMethod method;
|
private final PsiMethod method;
|
||||||
private final Project project;
|
private final Project project;
|
||||||
@@ -90,7 +91,7 @@ class EditSignatureBalloon {
|
|||||||
balloon.addListener(new JBPopupAdapter() {
|
balloon.addListener(new JBPopupAdapter() {
|
||||||
@Override
|
@Override
|
||||||
public void onClosed(LightweightWindowEvent event) {
|
public void onClosed(LightweightWindowEvent event) {
|
||||||
dispose();
|
Disposer.dispose(EditSignatureBalloon.this);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
return balloon;
|
return balloon;
|
||||||
@@ -104,7 +105,6 @@ class EditSignatureBalloon {
|
|||||||
final Document document = FileDocumentManager.getInstance().getDocument(virtualFile);
|
final Document document = FileDocumentManager.getInstance().getDocument(virtualFile);
|
||||||
assert document != null;
|
assert document != null;
|
||||||
|
|
||||||
// TODO unregister listener
|
|
||||||
document.addDocumentListener(new DocumentAdapter() {
|
document.addDocumentListener(new DocumentAdapter() {
|
||||||
@Override
|
@Override
|
||||||
public void documentChanged(DocumentEvent event) {
|
public void documentChanged(DocumentEvent event) {
|
||||||
@@ -121,7 +121,7 @@ class EditSignatureBalloon {
|
|||||||
});
|
});
|
||||||
psiDocManager.commitDocument(document);
|
psiDocManager.commitDocument(document);
|
||||||
}
|
}
|
||||||
});
|
}, this);
|
||||||
|
|
||||||
Editor editor = editorFactory.createEditor(document, project, JetFileType.INSTANCE, !editable);
|
Editor editor = editorFactory.createEditor(document, project, JetFileType.INSTANCE, !editable);
|
||||||
EditorSettings settings = editor.getSettings();
|
EditorSettings settings = editor.getSettings();
|
||||||
@@ -161,7 +161,8 @@ class EditSignatureBalloon {
|
|||||||
IdeFocusManager.getInstance(editor.getProject()).requestFocus(editor.getContentComponent(), false);
|
IdeFocusManager.getInstance(editor.getProject()).requestFocus(editor.getContentComponent(), false);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void dispose() {
|
@Override
|
||||||
|
public void dispose() {
|
||||||
EditorFactory editorFactory = EditorFactory.getInstance();
|
EditorFactory editorFactory = EditorFactory.getInstance();
|
||||||
assert editorFactory != null;
|
assert editorFactory != null;
|
||||||
editorFactory.releaseEditor(editor);
|
editorFactory.releaseEditor(editor);
|
||||||
|
|||||||
Reference in New Issue
Block a user