This commit is contained in:
Alexey Kudravtsev
2013-10-01 14:54:44 +04:00
parent 0f3c17d2ad
commit 217ecd5060
2 changed files with 12 additions and 10 deletions
@@ -1,5 +1,5 @@
/*
* Copyright 2000-2009 JetBrains s.r.o.
* Copyright 2000-2013 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -53,6 +53,7 @@ public class InlineToAnonymousClassHandler extends JavaInlineActionHandler {
return element instanceof PsiMethod || element instanceof PsiClass;
}
@Override
public boolean canInlineElement(final PsiElement element) {
if (element.getLanguage() != StdLanguages.JAVA) return false;
if (element instanceof PsiMethod) {
@@ -74,6 +75,7 @@ public class InlineToAnonymousClassHandler extends JavaInlineActionHandler {
@Override
public void run() {
ApplicationManager.getApplication().runReadAction(new Runnable() {
@Override
public void run() {
inheritors.addAll(ClassInheritorsSearch.search(element).findAll());
}
@@ -98,6 +100,7 @@ public class InlineToAnonymousClassHandler extends JavaInlineActionHandler {
return false;
}
@Override
public void inlineElement(final Project project, final Editor editor, final PsiElement psiElement) {
final PsiClass psiClass = psiElement instanceof PsiMethod ? ((PsiMethod) psiElement).getContainingClass() : (PsiClass) psiElement;
PsiCall callToInline = findCallToInline(editor);
@@ -365,6 +368,7 @@ public class InlineToAnonymousClassHandler extends JavaInlineActionHandler {
myPsiElement = psiElement;
}
@Override
public boolean process(final PsiReference psiReference) {
if (PsiTreeUtil.isAncestor(myPsiElement, psiReference.getElement(), false)) {
return true;
@@ -44,10 +44,9 @@ import org.jetbrains.annotations.TestOnly;
import java.util.*;
public class TemplateManagerImpl extends TemplateManager implements ProjectComponent {
public class TemplateManagerImpl extends TemplateManager implements ProjectComponent, Disposable {
protected Project myProject;
private boolean myTemplateTesting;
private final List<Disposable> myDisposables = new ArrayList<Disposable>();
private static final Key<TemplateState> TEMPLATE_STATE_KEY = Key.create("TEMPLATE_STATE_KEY");
@@ -57,10 +56,10 @@ public class TemplateManagerImpl extends TemplateManager implements ProjectCompo
@Override
public void disposeComponent() {
for (Disposable disposable : myDisposables) {
Disposer.dispose(disposable);
}
myDisposables.clear();
}
@Override
public void dispose() {
}
@Override
@@ -107,9 +106,8 @@ public class TemplateManagerImpl extends TemplateManager implements ProjectCompo
});
}
private void disposeState(final TemplateState tState) {
private static void disposeState(final TemplateState tState) {
Disposer.dispose(tState);
myDisposables.remove(tState);
}
@Override
@@ -138,7 +136,7 @@ public class TemplateManagerImpl extends TemplateManager implements ProjectCompo
private TemplateState initTemplateState(final Editor editor) {
clearTemplateState(editor);
TemplateState state = new TemplateState(myProject, editor);
myDisposables.add(state);
Disposer.register(this, state);
editor.putUserData(TEMPLATE_STATE_KEY, state);
return state;
}