mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
IDEA-200666 return immutable views of "back/changed" placed; rename listeners
This commit is contained in:
@@ -96,9 +96,9 @@ public class RecentLocationManager implements ProjectComponent {
|
||||
}
|
||||
|
||||
private void subscribeRecentPlaces(@NotNull MessageBusConnection connection) {
|
||||
connection.subscribe(IdeDocumentHistoryImpl.RecentPlacesListener.TOPIC, new IdeDocumentHistoryImpl.RecentPlacesListener() {
|
||||
connection.subscribe(IdeDocumentHistoryImpl.RecentlyVisitedPlacesListener.TOPIC, new IdeDocumentHistoryImpl.RecentlyVisitedPlacesListener() {
|
||||
@Override
|
||||
public void recentPlacePushed(@NotNull PlaceInfo changePlace) {
|
||||
public void recentPlaceAdded(@NotNull PlaceInfo changePlace) {
|
||||
update(changePlace, myProject, myRecentItems);
|
||||
}
|
||||
|
||||
@@ -110,9 +110,9 @@ public class RecentLocationManager implements ProjectComponent {
|
||||
}
|
||||
|
||||
private void subscribeChangedPlaces(@NotNull MessageBusConnection connection) {
|
||||
connection.subscribe(IdeDocumentHistoryImpl.ChangePlacesListener.TOPIC, new IdeDocumentHistoryImpl.ChangePlacesListener() {
|
||||
connection.subscribe(IdeDocumentHistoryImpl.RecentlyChangedPlacesListener.TOPIC, new IdeDocumentHistoryImpl.RecentlyChangedPlacesListener() {
|
||||
@Override
|
||||
public void changedPlacePushed(@NotNull PlaceInfo changePlace) {
|
||||
public void changedPlaceAdded(@NotNull PlaceInfo changePlace) {
|
||||
update(changePlace, myProject, myChangedItems);
|
||||
}
|
||||
|
||||
|
||||
+18
-10
@@ -37,6 +37,7 @@ import com.intellij.openapi.vfs.newvfs.events.VFileEvent;
|
||||
import com.intellij.openapi.wm.ToolWindowManager;
|
||||
import com.intellij.psi.ExternalChangeAction;
|
||||
import com.intellij.testFramework.LightVirtualFile;
|
||||
import com.intellij.util.containers.ContainerUtil;
|
||||
import com.intellij.util.messages.MessageBus;
|
||||
import com.intellij.util.messages.MessageBusConnection;
|
||||
import com.intellij.util.messages.Topic;
|
||||
@@ -383,7 +384,7 @@ public class IdeDocumentHistoryImpl extends IdeDocumentHistory implements Dispos
|
||||
|
||||
@Override
|
||||
public List<PlaceInfo> getChangePlaces() {
|
||||
return myChangePlaces;
|
||||
return ContainerUtil.immutableList(myChangePlaces);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -479,16 +480,17 @@ public class IdeDocumentHistoryImpl extends IdeDocumentHistory implements Dispos
|
||||
|
||||
private void putLastOrMerge(@NotNull LinkedList<PlaceInfo> list, @NotNull PlaceInfo next, int limit) {
|
||||
MessageBus messageBus = myProject.getMessageBus();
|
||||
RecentlyVisitedPlacesListener listener = messageBus.syncPublisher(RecentlyVisitedPlacesListener.TOPIC);
|
||||
if (!list.isEmpty()) {
|
||||
PlaceInfo prev = list.getLast();
|
||||
if (isSame(prev, next)) {
|
||||
PlaceInfo removed = list.removeLast();
|
||||
messageBus.syncPublisher(RecentPlacesListener.TOPIC).recentPlaceRemoved(removed);
|
||||
listener.recentPlaceRemoved(removed);
|
||||
}
|
||||
}
|
||||
|
||||
list.add(next);
|
||||
messageBus.syncPublisher(RecentPlacesListener.TOPIC).recentPlacePushed(next);
|
||||
listener.recentPlaceAdded(next);
|
||||
if (list.size() > limit) {
|
||||
list.removeFirst();
|
||||
}
|
||||
@@ -545,7 +547,7 @@ public class IdeDocumentHistoryImpl extends IdeDocumentHistory implements Dispos
|
||||
@Override
|
||||
@NotNull
|
||||
public List<PlaceInfo> getBackPlaces() {
|
||||
return myBackPlaces;
|
||||
return ContainerUtil.immutableList(myBackPlaces);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -567,18 +569,24 @@ public class IdeDocumentHistoryImpl extends IdeDocumentHistory implements Dispos
|
||||
return false;
|
||||
}
|
||||
|
||||
public interface ChangePlacesListener {
|
||||
Topic<ChangePlacesListener> TOPIC = Topic.create("ChangePlacesListener", ChangePlacesListener.class);
|
||||
/**
|
||||
* {@link RecentlyChangedPlacesListener} listens recently changed place adding and removing events.
|
||||
*/
|
||||
public interface RecentlyChangedPlacesListener {
|
||||
Topic<RecentlyChangedPlacesListener> TOPIC = Topic.create("RecentlyChangedPlacesListener", RecentlyChangedPlacesListener.class);
|
||||
|
||||
void changedPlacePushed(@NotNull PlaceInfo changePlace);
|
||||
void changedPlaceAdded(@NotNull PlaceInfo changePlace);
|
||||
|
||||
void changedPlaceRemoved(@NotNull PlaceInfo changePlace);
|
||||
}
|
||||
|
||||
public interface RecentPlacesListener {
|
||||
Topic<RecentPlacesListener> TOPIC = Topic.create("RecentPlacesListener", RecentPlacesListener.class);
|
||||
/**
|
||||
* {@link RecentlyVisitedPlacesListener} listens recently viewed place adding and removing events.
|
||||
*/
|
||||
public interface RecentlyVisitedPlacesListener {
|
||||
Topic<RecentlyVisitedPlacesListener> TOPIC = Topic.create("RecentlyVisitedPlacesListener", RecentlyVisitedPlacesListener.class);
|
||||
|
||||
void recentPlacePushed(@NotNull PlaceInfo changePlace);
|
||||
void recentPlaceAdded(@NotNull PlaceInfo changePlace);
|
||||
|
||||
void recentPlaceRemoved(@NotNull PlaceInfo changePlace);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user