diff --git a/platform/usageView/src/com/intellij/usages/UsageModelTracker.java b/platform/usageView/src/com/intellij/usages/UsageModelTracker.java index cbe37b6aec9d..84ac830497e2 100644 --- a/platform/usageView/src/com/intellij/usages/UsageModelTracker.java +++ b/platform/usageView/src/com/intellij/usages/UsageModelTracker.java @@ -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 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) { diff --git a/platform/usageView/src/com/intellij/usages/impl/UsageViewImpl.java b/platform/usageView/src/com/intellij/usages/impl/UsageViewImpl.java index 22ecc990aacb..ebc911ba5f30 100644 --- a/platform/usageView/src/com/intellij/usages/impl/UsageViewImpl.java +++ b/platform/usageView/src/com/intellij/usages/impl/UsageViewImpl.java @@ -135,7 +135,6 @@ public class UsageViewImpl implements UsageView, UsageModelTracker.UsageModelTra @NotNull UsageViewPresentation presentation, @NotNull UsageTarget[] targets, Factory 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();