Deprecate method to add PSI tree change listener without parent disposable, specify parent disposable whenever possible

GitOrigin-RevId: f72ffbb4a0f71662aa1cca0f3c84b49b4df9cf2f
This commit is contained in:
Dmitry Jemerov
2020-05-07 16:30:40 +00:00
committed by intellij-monorepo-bot
parent 3cb13616e8
commit 2a759fa868
10 changed files with 23 additions and 18 deletions
@@ -82,7 +82,9 @@ public abstract class PsiManager extends UserDataHolderBase {
* Adds a listener for receiving notifications about all changes in the PSI tree of the project.
*
* @param listener the listener instance.
* @deprecated Please use the overload with specified parent disposable
*/
@Deprecated
public abstract void addPsiTreeChangeListener(@NotNull PsiTreeChangeListener listener);
/**
@@ -73,7 +73,7 @@ public abstract class PsiDocumentManagerBase extends PsiDocumentManager implemen
myPsiManager = PsiManager.getInstance(project);
myDocumentCommitProcessor = ApplicationManager.getApplication().getService(DocumentCommitProcessor.class);
mySynchronizer = new PsiToDocumentSynchronizer(this, project.getMessageBus());
myPsiManager.addPsiTreeChangeListener(mySynchronizer);
myPsiManager.addPsiTreeChangeListener(mySynchronizer, this);
}
@Override
@@ -6,6 +6,7 @@ import com.intellij.ide.util.treeView.AbstractTreeNode;
import com.intellij.ide.util.treeView.AbstractTreeStructure;
import com.intellij.ide.util.treeView.IndexComparator;
import com.intellij.ide.util.treeView.NodeDescriptor;
import com.intellij.openapi.Disposable;
import com.intellij.openapi.application.ApplicationManager;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.vfs.VirtualFile;
@@ -24,7 +25,7 @@ import java.util.concurrent.TimeUnit;
/**
* @author Eugene Belyaev
*/
public abstract class AbstractListBuilder {
public abstract class AbstractListBuilder implements Disposable {
protected final Project myProject;
protected final JList myList;
protected final Model myModel;
@@ -252,6 +253,7 @@ public abstract class AbstractListBuilder {
protected abstract List<AbstractTreeNode<?>> getAllAcceptableNodes(Object[] childElements, VirtualFile file);
@Override
public void dispose() {
myIsDisposed = true;
}
@@ -26,6 +26,7 @@ import com.intellij.openapi.application.ModalityState;
import com.intellij.openapi.diagnostic.Logger;
import com.intellij.openapi.module.Module;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.util.Disposer;
import com.intellij.openapi.util.SystemInfo;
import com.intellij.openapi.wm.IdeFocusManager;
import com.intellij.openapi.wm.ToolWindowManager;
@@ -410,7 +411,7 @@ public class CommanderPanel extends JPanel {
public final void dispose() {
if (myBuilder != null) {
myBuilder.dispose();
Disposer.dispose(myBuilder);
myBuilder = null;
}
myProject = null;
@@ -42,7 +42,7 @@ public class ProjectListBuilder extends AbstractListBuilder {
myUpdateAlarm = new Alarm(Alarm.ThreadToUse.SWING_THREAD, myProject);
myPsiTreeChangeListener = new MyPsiTreeChangeListener();
PsiManager.getInstance(myProject).addPsiTreeChangeListener(myPsiTreeChangeListener);
PsiManager.getInstance(myProject).addPsiTreeChangeListener(myPsiTreeChangeListener, this);
myFileStatusListener = new MyFileStatusListener();
FileStatusManager.getInstance(myProject).addFileStatusListener(myFileStatusListener);
myCopyPasteListener = new MyCopyPasteListener();
@@ -88,7 +88,6 @@ public class ProjectListBuilder extends AbstractListBuilder {
@Override
public void dispose() {
super.dispose();
PsiManager.getInstance(myProject).removePsiTreeChangeListener(myPsiTreeChangeListener);
FileStatusManager.getInstance(myProject).removeFileStatusListener(myFileStatusListener);
CopyPasteManager.getInstance().removeContentChangedListener(myCopyPasteListener);
}
@@ -29,8 +29,6 @@ import com.intellij.openapi.editor.colors.CodeInsightColors;
import com.intellij.openapi.editor.colors.EditorColorsManager;
import com.intellij.openapi.editor.markup.EffectType;
import com.intellij.openapi.editor.markup.TextAttributes;
import com.intellij.openapi.extensions.ExtensionPointListener;
import com.intellij.openapi.extensions.PluginDescriptor;
import com.intellij.openapi.fileTypes.StdFileTypes;
import com.intellij.openapi.ide.CopyPasteManager;
import com.intellij.openapi.module.Module;
@@ -66,7 +64,6 @@ import com.intellij.util.ui.update.MergingUpdateQueue;
import com.intellij.util.ui.update.UiNotifyConnector;
import com.intellij.util.ui.update.Update;
import org.jetbrains.annotations.ApiStatus;
import kotlin.Unit;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@@ -173,7 +170,7 @@ public class ScopeTreeViewPanel extends JPanel implements Disposable {
public void initListeners() {
final MessageBusConnection connection = myProject.getMessageBus().connect(this);
connection.subscribe(ProjectTopics.PROJECT_ROOTS, new MyModuleRootListener());
PsiManager.getInstance(myProject).addPsiTreeChangeListener(myPsiTreeChangeAdapter);
PsiManager.getInstance(myProject).addPsiTreeChangeListener(myPsiTreeChangeAdapter, this);
connection.subscribe(ProblemListener.TOPIC, new MyProblemListener());
FileStatusManager.getInstance(myProject).addFileStatusListener(myFileStatusListener, this);
}
@@ -181,7 +178,6 @@ public class ScopeTreeViewPanel extends JPanel implements Disposable {
@Override
public void dispose() {
FileTreeModelBuilder.clearCaches(myProject);
PsiManager.getInstance(myProject).removePsiTreeChangeListener(myPsiTreeChangeAdapter);
}
public void selectNode(final PsiElement element, final PsiFileSystemItem file, final boolean requestFocus) {
@@ -15,7 +15,6 @@ import com.intellij.openapi.editor.Document;
import com.intellij.openapi.editor.highlighter.EditorHighlighter;
import com.intellij.openapi.module.Module;
import com.intellij.openapi.module.ModuleUtilCore;
import com.intellij.openapi.project.DumbService;
import com.intellij.openapi.project.IndexNotReadyException;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.roots.ModuleRootManager;
@@ -94,7 +93,7 @@ public abstract class TodoTreeBuilder implements Disposable {
PsiManager psiManager = PsiManager.getInstance(myProject);
mySearchHelper = PsiTodoSearchHelper.SERVICE.getInstance(myProject);
psiManager.addPsiTreeChangeListener(new MyPsiTreeChangeListener());
psiManager.addPsiTreeChangeListener(new MyPsiTreeChangeListener(), this);
myFileStatusListener = new MyFileStatusListener();
@@ -3,6 +3,7 @@ package com.intellij.lang.properties;
import com.intellij.lang.properties.editor.ResourceBundleAsVirtualFile;
import com.intellij.lang.properties.psi.PropertiesFile;
import com.intellij.openapi.Disposable;
import com.intellij.openapi.application.ReadAction;
import com.intellij.openapi.components.PersistentStateComponent;
import com.intellij.openapi.components.ServiceManager;
@@ -28,7 +29,7 @@ import java.util.Set;
* @author Dmitry Batkovich
*/
@State(name = "ResourceBundleManager", storages = @Storage("resourceBundles.xml"))
public final class ResourceBundleManager implements PersistentStateComponent<ResourceBundleManagerState> {
public final class ResourceBundleManager implements PersistentStateComponent<ResourceBundleManagerState>, Disposable {
private final static Logger LOG = Logger.getInstance(ResourceBundleManager.class);
private ResourceBundleManagerState myState = new ResourceBundleManagerState();
@@ -157,7 +158,11 @@ public final class ResourceBundleManager implements PersistentStateComponent<Res
}
}
}
});
}, this);
}
@Override
public void dispose() {
}
public static ResourceBundleManager getInstance(final Project project) {
@@ -87,7 +87,7 @@ import java.util.*;
* @author Anton Katilin
* @author Vladimir Kondratyev
*/
public final class GuiEditor extends JPanel implements DesignerEditorPanelFacade, DataProvider, ModuleProvider {
public final class GuiEditor extends JPanel implements DesignerEditorPanelFacade, DataProvider, ModuleProvider, Disposable {
private static final Logger LOG = Logger.getInstance(GuiEditor.class);
private final Project myProject;
@@ -337,7 +337,7 @@ public final class GuiEditor extends JPanel implements DesignerEditorPanelFacade
// PSI listener to restart error highlighter
myPsiTreeChangeListener = new MyPsiTreeChangeListener();
PsiManager.getInstance(getProject()).addPsiTreeChangeListener(myPsiTreeChangeListener);
PsiManager.getInstance(getProject()).addPsiTreeChangeListener(myPsiTreeChangeListener, this);
myQuickFixManager = new QuickFixManagerImpl(this, myGlassLayer, myScrollPane.getViewport());
@@ -378,6 +378,7 @@ public final class GuiEditor extends JPanel implements DesignerEditorPanelFacade
return mySelectionState;
}
@Override
public void dispose() {
ApplicationManager.getApplication().assertIsDispatchThread();
@@ -390,7 +391,6 @@ public final class GuiEditor extends JPanel implements DesignerEditorPanelFacade
}
myDocument.removeDocumentListener(myDocumentListener);
PsiManager.getInstance(getProject()).removePsiTreeChangeListener(myPsiTreeChangeListener);
if (!ApplicationManager.getApplication().isUnitTestMode()) {
DesignerToolWindowManager.getInstance(myProject).dispose(this);
@@ -26,6 +26,7 @@ import com.intellij.openapi.module.Module;
import com.intellij.openapi.module.ModuleUtilCore;
import com.intellij.openapi.project.PossiblyDumbAware;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.util.Disposer;
import com.intellij.openapi.util.UserDataHolderBase;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.testFramework.LightVirtualFile;
@@ -67,7 +68,7 @@ public final class UIFormEditor extends UserDataHolderBase implements FileEditor
@Override
public void dispose() {
myEditor.dispose();
Disposer.dispose(myEditor);
}
@Override