From 24a0e7a809c27e990a9cf4ae4fe0c73ccad13647 Mon Sep 17 00:00:00 2001 From: Kirill Likhodedov Date: Sun, 30 Oct 2016 12:47:28 +0300 Subject: [PATCH] Use recommended method instead of deprecated ProjectLevelVcsManager#add/removeVcsListener has been deprecated for a long time, but some usages were still not updated. --- .../com/intellij/openapi/vcs/ProjectLevelVcsManager.java | 2 ++ .../vcs-api/src/com/intellij/openapi/vcs/VcsListener.java | 4 ++-- .../openapi/vcs/changes/ChangeListManagerImpl.java | 8 ++++---- .../changes/committed/CommittedChangesViewManager.java | 3 +-- .../idea/svn/history/MergeInfoUpdatesListener.java | 5 +++-- 5 files changed, 12 insertions(+), 10 deletions(-) diff --git a/platform/vcs-api/src/com/intellij/openapi/vcs/ProjectLevelVcsManager.java b/platform/vcs-api/src/com/intellij/openapi/vcs/ProjectLevelVcsManager.java index 032ea0be76a9..b679df2d3f96 100644 --- a/platform/vcs-api/src/com/intellij/openapi/vcs/ProjectLevelVcsManager.java +++ b/platform/vcs-api/src/com/intellij/openapi/vcs/ProjectLevelVcsManager.java @@ -198,6 +198,7 @@ public abstract class ProjectLevelVcsManager { * @deprecated use {@link #VCS_CONFIGURATION_CHANGED} instead * @since 6.0 */ + @Deprecated public abstract void addVcsListener(VcsListener listener); /** @@ -207,6 +208,7 @@ public abstract class ProjectLevelVcsManager { * @deprecated use {@link #VCS_CONFIGURATION_CHANGED} instead * @since 6.0 */ + @Deprecated public abstract void removeVcsListener(VcsListener listener); /** diff --git a/platform/vcs-api/src/com/intellij/openapi/vcs/VcsListener.java b/platform/vcs-api/src/com/intellij/openapi/vcs/VcsListener.java index e8d3abbacb19..64fa6f38571d 100644 --- a/platform/vcs-api/src/com/intellij/openapi/vcs/VcsListener.java +++ b/platform/vcs-api/src/com/intellij/openapi/vcs/VcsListener.java @@ -25,9 +25,9 @@ package com.intellij.openapi.vcs; import java.util.EventListener; /** - * Allows to receive notifications about changes in VCS configuration for the project. + *

Allows to receive notifications about changes in VCS configuration for the project.

+ *

Use the {@link ProjectLevelVcsManager#VCS_CONFIGURATION_CHANGED} MessageBus topic to subscribe.

* - * @see ProjectLevelVcsManager#addVcsListener * @since 6.0 */ public interface VcsListener extends EventListener { diff --git a/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/ChangeListManagerImpl.java b/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/ChangeListManagerImpl.java index 13c89e8f9a89..fda0d5762b9b 100644 --- a/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/ChangeListManagerImpl.java +++ b/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/ChangeListManagerImpl.java @@ -63,6 +63,8 @@ import java.util.*; import java.util.concurrent.*; import java.util.concurrent.atomic.AtomicReference; +import static com.intellij.openapi.vcs.ProjectLevelVcsManager.*; + @State(name = "ChangeListManager", storages = @Storage(StoragePathMacros.WORKSPACE_FILE)) public class ChangeListManagerImpl extends ChangeListManagerEx implements ProjectComponent, ChangeListOwner, PersistentStateComponent { public static final Logger LOG = Logger.getInstance("#com.intellij.openapi.vcs.changes.ChangeListManagerImpl"); @@ -246,14 +248,14 @@ public class ChangeListManagerImpl extends ChangeListManagerEx implements Projec final ProjectLevelVcsManager vcsManager = ProjectLevelVcsManager.getInstance(myProject); if (ApplicationManager.getApplication().isUnitTestMode()) { myUpdater.initialized(); - vcsManager.addVcsListener(myVcsListener); + myProject.getMessageBus().connect().subscribe(VCS_CONFIGURATION_CHANGED, myVcsListener); } else { ((ProjectLevelVcsManagerImpl)vcsManager).addInitializationRequest( VcsInitObject.CHANGE_LIST_MANAGER, (DumbAwareRunnable)() -> { myUpdater.initialized(); broadcastStateAfterLoad(); - vcsManager.addVcsListener(myVcsListener); + myProject.getMessageBus().connect().subscribe(VCS_CONFIGURATION_CHANGED, myVcsListener); }); myConflictTracker.startTracking(); @@ -307,8 +309,6 @@ public class ChangeListManagerImpl extends ChangeListManagerEx implements Projec @Override public void projectClosed() { - ProjectLevelVcsManager.getInstance(myProject).removeVcsListener(myVcsListener); - synchronized (myDataLock) { myUpdateChangesProgressIndicator.cancel(); } diff --git a/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/committed/CommittedChangesViewManager.java b/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/committed/CommittedChangesViewManager.java index d33c9b63234b..e5880e6867fd 100644 --- a/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/committed/CommittedChangesViewManager.java +++ b/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/committed/CommittedChangesViewManager.java @@ -87,8 +87,8 @@ public class CommittedChangesViewManager implements ChangesViewContentProvider { } public JComponent initContent() { - myVcsManager.addVcsListener(myVcsListener); myConnection = myBus.connect(); + myConnection.subscribe(ProjectLevelVcsManager.VCS_CONFIGURATION_CHANGED, myVcsListener); myConnection.subscribe(CommittedChangesCache.COMMITTED_TOPIC, new MyCommittedChangesListener()); updateChangesContent(); myComponent.refreshChanges(true); @@ -96,7 +96,6 @@ public class CommittedChangesViewManager implements ChangesViewContentProvider { } public void disposeContent() { - myVcsManager.removeVcsListener(myVcsListener); myConnection.disconnect(); Disposer.dispose(myComponent); myComponent = null; diff --git a/plugins/svn4idea/src/org/jetbrains/idea/svn/history/MergeInfoUpdatesListener.java b/plugins/svn4idea/src/org/jetbrains/idea/svn/history/MergeInfoUpdatesListener.java index 5f05a263adcf..36fc1206b7bd 100644 --- a/plugins/svn4idea/src/org/jetbrains/idea/svn/history/MergeInfoUpdatesListener.java +++ b/plugins/svn4idea/src/org/jetbrains/idea/svn/history/MergeInfoUpdatesListener.java @@ -18,7 +18,6 @@ package org.jetbrains.idea.svn.history; import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.project.Project; import com.intellij.openapi.util.ZipperUpdater; -import com.intellij.openapi.vcs.ProjectLevelVcsManager; import com.intellij.openapi.vcs.VcsListener; import com.intellij.openapi.vcs.changes.committed.CommittedChangesTreeBrowser; import com.intellij.openapi.vcs.changes.committed.VcsConfigurationChangeListener; @@ -34,6 +33,8 @@ import org.jetbrains.idea.svn.mergeinfo.SvnMergeInfoCache; import java.util.ArrayList; import java.util.List; +import static com.intellij.openapi.vcs.ProjectLevelVcsManager.VCS_CONFIGURATION_CHANGED; + public class MergeInfoUpdatesListener { private final static int DELAY = 300; @@ -77,7 +78,7 @@ public class MergeInfoUpdatesListener { myConnection.subscribe(SvnVcs.ROOTS_RELOADED, reloadConsumer); - ProjectLevelVcsManager.getInstance(myProject).addVcsListener(new VcsListener() { + myConnection.subscribe(VCS_CONFIGURATION_CHANGED, new VcsListener() { public void directoryMappingChanged() { callReloadMergeInfo(); }