This commit is contained in:
Alexey Kudravtsev
2009-11-23 14:38:03 +03:00
parent 6d362901d5
commit 41131f282e
2 changed files with 5 additions and 12 deletions
@@ -17,7 +17,6 @@ package com.intellij.usages;
import com.intellij.openapi.Disposable;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.util.Disposer;
import com.intellij.psi.*;
import com.intellij.util.containers.ContainerUtil;
@@ -27,18 +26,14 @@ import java.util.List;
* @author max
*/
public class UsageModelTracker implements Disposable {
private final PsiTreeChangeListener myPsiListener;
public interface UsageModelTrackerListener {
void modelChanged(boolean isPropertyChange);
}
private final Project myProject;
private final List<UsageModelTrackerListener> myListeners = ContainerUtil.createEmptyCOWList();
public UsageModelTracker(Project project, Disposable parentDisposable) {
myProject = project;
myPsiListener = new PsiTreeChangeAdapter() {
public UsageModelTracker(Project project) {
final PsiTreeChangeListener myPsiListener = new PsiTreeChangeAdapter() {
public void childAdded(PsiTreeChangeEvent event) {
doFire(event, false);
}
@@ -63,8 +58,7 @@ public class UsageModelTracker implements Disposable {
doFire(event, true);
}
};
PsiManager.getInstance(project).addPsiTreeChangeListener(myPsiListener);
Disposer.register(parentDisposable, this);
PsiManager.getInstance(project).addPsiTreeChangeListener(myPsiListener, this);
}
private void doFire(final PsiTreeChangeEvent event, boolean propertyChange) {
@@ -76,7 +70,6 @@ public class UsageModelTracker implements Disposable {
}
public void dispose() {
PsiManager.getInstance(myProject).removePsiTreeChangeListener(myPsiListener);
}
public void addListener(UsageModelTrackerListener listener) {
@@ -135,7 +135,6 @@ public class UsageViewImpl implements UsageView, UsageModelTracker.UsageModelTra
@NotNull UsageViewPresentation presentation,
@NotNull UsageTarget[] targets,
Factory<UsageSearcher> usageSearcherFactory) {
myPresentation = presentation;
myTargets = targets;
myUsageSearcherFactory = usageSearcherFactory;
@@ -159,7 +158,8 @@ public class UsageViewImpl implements UsageView, UsageModelTracker.UsageModelTra
}
};
myRootPanel = new MyPanel(myTree);
myModelTracker = new UsageModelTracker(project, this);
myModelTracker = new UsageModelTracker(project);
Disposer.register(this, myModelTracker);
myModel = new UsageViewTreeModelBuilder(myPresentation, targets);
myRoot = (GroupNode)myModel.getRoot();