IDEA-200666 remove RecentlyChangedPlacesListener in favor of RecentPlacesListener

This commit is contained in:
Dmitry.Krasilschikov
2019-01-23 18:51:31 +02:00
parent b2e1beb1cd
commit 8e7f6a2db4
2 changed files with 20 additions and 40 deletions
@@ -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<PlaceInfo, PlaceInfoPersistentItem> getItems(boolean isChanged) {
return isChanged ? myChangedItems : myRecentItems;
}
});
}
@@ -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<PlaceInfo> list, @NotNull PlaceInfo next, int limit) {
private void putLastOrMerge(@NotNull PlaceInfo next, int limit, boolean isChanged) {
LinkedList<PlaceInfo> 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<RecentlyChangedPlacesListener> TOPIC = Topic.create("RecentlyChangedPlacesListener", RecentlyChangedPlacesListener.class);
public interface RecentPlacesListener {
Topic<RecentPlacesListener> 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<RecentlyVisitedPlacesListener> TOPIC = Topic.create("RecentlyVisitedPlacesListener", RecentlyVisitedPlacesListener.class);
void recentPlaceAdded(@NotNull PlaceInfo changePlace);
void recentPlaceRemoved(@NotNull PlaceInfo changePlace);
void recentPlaceRemoved(@NotNull PlaceInfo changePlace, boolean isChanged);
}
}