move PsiModificationTracker topic to its own interface

This commit is contained in:
Dmitry Jemerov
2011-09-09 12:22:09 +02:00
parent 930098b0d7
commit 171706631e
6 changed files with 7 additions and 10 deletions
@@ -15,7 +15,6 @@
*/
package com.intellij.psi.impl;
import com.intellij.ProjectTopics;
import com.intellij.openapi.Disposable;
import com.intellij.openapi.application.ApplicationManager;
import com.intellij.openapi.application.ReadActionProcessor;
@@ -119,7 +118,7 @@ public class JavaPsiFacadeImpl extends JavaPsiFacadeEx implements Disposable {
final PsiModificationTrackerImpl modificationTracker = (PsiModificationTrackerImpl)psiManager.getModificationTracker();
psiManager.addTreeChangePreprocessor(new JavaCodeBlockModificationListener(modificationTracker));
bus.connect().subscribe(ProjectTopics.MODIFICATION_TRACKER, new PsiModificationTracker.Listener() {
bus.connect().subscribe(PsiModificationTracker.TOPIC, new PsiModificationTracker.Listener() {
private long lastTimeSeen = -1L;
public void modificationCountChanged() {
@@ -17,6 +17,7 @@ package com.intellij.psi.util;
import com.intellij.openapi.util.Key;
import com.intellij.openapi.util.ModificationTracker;
import com.intellij.util.messages.Topic;
public interface PsiModificationTracker extends ModificationTracker {
/**
@@ -37,6 +38,8 @@ public interface PsiModificationTracker extends ModificationTracker {
*/
Key JAVA_STRUCTURE_MODIFICATION_COUNT = Key.create("JAVA_STRUCTURE_MODIFICATION_COUNT");
Topic<Listener> TOPIC = new Topic<Listener>("modification tracker", Listener.class, Topic.BroadcastDirection.TO_PARENT);
/**
* Tracks any PSI modification.
* @return current counter value.
@@ -21,13 +21,11 @@ package com.intellij;
import com.intellij.openapi.project.ModuleListener;
import com.intellij.openapi.roots.ModuleRootListener;
import com.intellij.psi.util.PsiModificationTracker;
import com.intellij.util.messages.Topic;
public class ProjectTopics {
public static final Topic<ModuleRootListener> PROJECT_ROOTS = new Topic<ModuleRootListener>("project root changes", ModuleRootListener.class);
public static final Topic<ModuleListener> MODULES = new Topic<ModuleListener>("modules added or removed from project", ModuleListener.class);
public static final Topic<PsiModificationTracker.Listener> MODIFICATION_TRACKER = new Topic<PsiModificationTracker.Listener>("modification tracker", PsiModificationTracker.Listener.class, Topic.BroadcastDirection.TO_PARENT);
private ProjectTopics() {
}
@@ -15,7 +15,6 @@
*/
package com.intellij.psi.impl;
import com.intellij.ProjectTopics;
import com.intellij.openapi.application.ApplicationManager;
import com.intellij.openapi.project.DumbService;
import com.intellij.openapi.project.Project;
@@ -37,7 +36,7 @@ public class PsiModificationTrackerImpl implements PsiModificationTracker, PsiTr
public PsiModificationTrackerImpl(Project project) {
final MessageBus bus = project.getMessageBus();
myPublisher = bus.syncPublisher(ProjectTopics.MODIFICATION_TRACKER);
myPublisher = bus.syncPublisher(TOPIC);
bus.connect().subscribe(DumbService.DUMB_MODE, new DumbService.DumbModeListener() {
public void enteredDumbMode() {
@@ -15,7 +15,6 @@
*/
package com.intellij.semantic;
import com.intellij.ProjectTopics;
import com.intellij.lang.ASTNode;
import com.intellij.openapi.application.ApplicationManager;
import com.intellij.openapi.project.Project;
@@ -69,7 +68,7 @@ public class SemServiceImpl extends SemService{
public SemServiceImpl(Project project, PsiManager psiManager) {
myProject = project;
final MessageBusConnection connection = project.getMessageBus().connect();
connection.subscribe(ProjectTopics.MODIFICATION_TRACKER, new PsiModificationTracker.Listener() {
connection.subscribe(PsiModificationTracker.TOPIC, new PsiModificationTracker.Listener() {
public void modificationCountChanged() {
if (!isInsideAtomicChange()) {
clearCache();
@@ -16,7 +16,6 @@
package org.jetbrains.plugins.groovy.mvc.projectView;
import com.intellij.ProjectTopics;
import com.intellij.ide.util.EditorHelper;
import com.intellij.openapi.application.ModalityState;
import com.intellij.openapi.editor.Editor;
@@ -98,7 +97,7 @@ public class MvcProjectViewPane extends AbstractProjectViewPSIPane implements Id
}
};
project.getMessageBus().connect(this).subscribe(ProjectTopics.MODIFICATION_TRACKER, new PsiModificationTracker.Listener() {
project.getMessageBus().connect(this).subscribe(PsiModificationTracker.TOPIC, new PsiModificationTracker.Listener() {
public void modificationCountChanged() {
if (getTree() != null && getTreeBuilder() != null) {
updateFromRoot(true);