From 8e7f6a2db49453073373acb74e309e920f18046b Mon Sep 17 00:00:00 2001 From: "Dmitry.Krasilschikov" Date: Wed, 23 Jan 2019 18:40:03 +0200 Subject: [PATCH] IDEA-200666 remove `RecentlyChangedPlacesListener` in favor of `RecentPlacesListener` --- .../ide/actions/RecentLocationManager.java | 26 +++++--------- .../impl/IdeDocumentHistoryImpl.java | 34 +++++++------------ 2 files changed, 20 insertions(+), 40 deletions(-) diff --git a/platform/platform-impl/src/com/intellij/ide/actions/RecentLocationManager.java b/platform/platform-impl/src/com/intellij/ide/actions/RecentLocationManager.java index b0f2df908612..8c1751d930cf 100644 --- a/platform/platform-impl/src/com/intellij/ide/actions/RecentLocationManager.java +++ b/platform/platform-impl/src/com/intellij/ide/actions/RecentLocationManager.java @@ -54,7 +54,6 @@ public class RecentLocationManager implements ProjectComponent { public void projectOpened() { MessageBusConnection connection = myProject.getMessageBus().connect(); - subscribeChangedPlaces(connection); subscribeRecentPlaces(connection); subscribeOnExternalChange(connection); } @@ -96,29 +95,20 @@ public class RecentLocationManager implements ProjectComponent { } private void subscribeRecentPlaces(@NotNull MessageBusConnection connection) { - connection.subscribe(IdeDocumentHistoryImpl.RecentlyVisitedPlacesListener.TOPIC, new IdeDocumentHistoryImpl.RecentlyVisitedPlacesListener() { + connection.subscribe(IdeDocumentHistoryImpl.RecentPlacesListener.TOPIC, new IdeDocumentHistoryImpl.RecentPlacesListener() { @Override - public void recentPlaceAdded(@NotNull PlaceInfo changePlace) { - update(changePlace, myProject, myRecentItems); + public void recentPlaceAdded(@NotNull PlaceInfo changePlace, boolean isChanged) { + update(changePlace, myProject, getItems(isChanged)); } @Override - public void recentPlaceRemoved(@NotNull PlaceInfo changePlace) { - removePlace(changePlace, myRecentItems); - } - }); - } - - private void subscribeChangedPlaces(@NotNull MessageBusConnection connection) { - connection.subscribe(IdeDocumentHistoryImpl.RecentlyChangedPlacesListener.TOPIC, new IdeDocumentHistoryImpl.RecentlyChangedPlacesListener() { - @Override - public void changedPlaceAdded(@NotNull PlaceInfo changePlace) { - update(changePlace, myProject, myChangedItems); + public void recentPlaceRemoved(@NotNull PlaceInfo changePlace, boolean isChanged) { + removePlace(changePlace, getItems(isChanged)); } - @Override - public void changedPlaceRemoved(@NotNull PlaceInfo changePlace) { - removePlace(changePlace, myChangedItems); + @NotNull + public Map getItems(boolean isChanged) { + return isChanged ? myChangedItems : myRecentItems; } }); } diff --git a/platform/platform-impl/src/com/intellij/openapi/fileEditor/impl/IdeDocumentHistoryImpl.java b/platform/platform-impl/src/com/intellij/openapi/fileEditor/impl/IdeDocumentHistoryImpl.java index 2a63e90016b7..4b9a1c4e54f3 100644 --- a/platform/platform-impl/src/com/intellij/openapi/fileEditor/impl/IdeDocumentHistoryImpl.java +++ b/platform/platform-impl/src/com/intellij/openapi/fileEditor/impl/IdeDocumentHistoryImpl.java @@ -226,7 +226,7 @@ public class IdeDocumentHistoryImpl extends IdeDocumentHistory implements Dispos if (!myBackInProgress) { if (!myRegisteredBackPlaceInLastGroup) { myRegisteredBackPlaceInLastGroup = true; - putLastOrMerge(myBackPlaces, myCommandStartPlace, BACK_QUEUE_LIMIT); + putLastOrMerge(myCommandStartPlace, BACK_QUEUE_LIMIT, false); } if (!myForwardInProgress) { myForwardPlaces.clear(); @@ -270,7 +270,7 @@ public class IdeDocumentHistoryImpl extends IdeDocumentHistory implements Dispos myRecentlyChangedFiles.register(placeInfo.getFile()); - putLastOrMerge(myChangePlaces, placeInfo, CHANGE_QUEUE_LIMIT); + putLastOrMerge(placeInfo, CHANGE_QUEUE_LIMIT, true); myCurrentIndex = myChangePlaces.size(); } @@ -478,19 +478,20 @@ public class IdeDocumentHistoryImpl extends IdeDocumentHistory implements Dispos return new PlaceInfo(file, state, fileProvider.getEditorTypeId(), editorManager.getCurrentWindow()); } - private void putLastOrMerge(@NotNull LinkedList list, @NotNull PlaceInfo next, int limit) { + private void putLastOrMerge(@NotNull PlaceInfo next, int limit, boolean isChanged) { + LinkedList list = isChanged ? myChangePlaces : myBackPlaces; MessageBus messageBus = myProject.getMessageBus(); - RecentlyVisitedPlacesListener listener = messageBus.syncPublisher(RecentlyVisitedPlacesListener.TOPIC); + RecentPlacesListener listener = messageBus.syncPublisher(RecentPlacesListener.TOPIC); if (!list.isEmpty()) { PlaceInfo prev = list.getLast(); if (isSame(prev, next)) { PlaceInfo removed = list.removeLast(); - listener.recentPlaceRemoved(removed); + listener.recentPlaceRemoved(removed, isChanged); } } list.add(next); - listener.recentPlaceAdded(next); + listener.recentPlaceAdded(next, isChanged); if (list.size() > limit) { list.removeFirst(); } @@ -570,24 +571,13 @@ public class IdeDocumentHistoryImpl extends IdeDocumentHistory implements Dispos } /** - * {@link RecentlyChangedPlacesListener} listens recently changed place adding and removing events. + * {@link RecentPlacesListener} listens recently viewed or changed place adding and removing events. */ - public interface RecentlyChangedPlacesListener { - Topic TOPIC = Topic.create("RecentlyChangedPlacesListener", RecentlyChangedPlacesListener.class); + public interface RecentPlacesListener { + Topic TOPIC = Topic.create("RecentPlacesListener", RecentPlacesListener.class); - void changedPlaceAdded(@NotNull PlaceInfo changePlace); + void recentPlaceAdded(@NotNull PlaceInfo changePlace, boolean isChanged); - void changedPlaceRemoved(@NotNull PlaceInfo changePlace); - } - - /** - * {@link RecentlyVisitedPlacesListener} listens recently viewed place adding and removing events. - */ - public interface RecentlyVisitedPlacesListener { - Topic TOPIC = Topic.create("RecentlyVisitedPlacesListener", RecentlyVisitedPlacesListener.class); - - void recentPlaceAdded(@NotNull PlaceInfo changePlace); - - void recentPlaceRemoved(@NotNull PlaceInfo changePlace); + void recentPlaceRemoved(@NotNull PlaceInfo changePlace, boolean isChanged); } }