mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
IDEA-200666 remove RecentlyChangedPlacesListener in favor of RecentPlacesListener
This commit is contained in:
@@ -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;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
+12
-22
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user