use of com.intellij.util.messages.MessageBusConnection in project intellij-community by JetBrains.
the class ScopeTreeViewPanel method initListeners.
public void initListeners() {
final MessageBusConnection connection = myProject.getMessageBus().connect(this);
connection.subscribe(ProjectTopics.PROJECT_ROOTS, new MyModuleRootListener());
PsiManager.getInstance(myProject).addPsiTreeChangeListener(myPsiTreeChangeAdapter);
WolfTheProblemSolver.getInstance(myProject).addProblemListener(myProblemListener);
ChangeListManager.getInstance(myProject).addChangeListListener(myChangesListListener);
FileStatusManager.getInstance(myProject).addFileStatusListener(myFileStatusListener, myProject);
}
use of com.intellij.util.messages.MessageBusConnection in project intellij-community by JetBrains.
the class AutoScrollFromSourceHandler method install.
public void install() {
final MessageBusConnection connection = myProject.getMessageBus().connect(myProject);
connection.subscribe(FileEditorManagerListener.FILE_EDITOR_MANAGER, new FileEditorManagerListener() {
@Override
public void selectionChanged(@NotNull FileEditorManagerEvent event) {
final FileEditor editor = event.getNewEditor();
if (editor != null && myComponent.isShowing() && isAutoScrollEnabled()) {
myAlarm.cancelAllRequests();
myAlarm.addRequest(() -> selectElementFromEditor(editor), getAlarmDelay(), getModalityState());
}
}
});
}
use of com.intellij.util.messages.MessageBusConnection in project intellij-plugins by JetBrains.
the class JavaFxHtmlPanel method subscribeForGrayscaleSetting.
private void subscribeForGrayscaleSetting() {
MessageBusConnection settingsConnection = ApplicationManager.getApplication().getMessageBus().connect(this);
MarkdownApplicationSettings.SettingsChangedListener settingsChangedListener = new MarkdownApplicationSettings.SettingsChangedListener() {
@Override
public void onSettingsChange(@NotNull final MarkdownApplicationSettings settings) {
runInPlatformWhenAvailable(() -> {
if (myWebView != null) {
updateFontSmoothingType(myWebView, settings.getMarkdownPreviewSettings().isUseGrayscaleRendering());
}
});
}
};
settingsConnection.subscribe(MarkdownApplicationSettings.SettingsChangedListener.TOPIC, settingsChangedListener);
}
use of com.intellij.util.messages.MessageBusConnection in project intellij-plugins by JetBrains.
the class OsmorcPostStartupActivity method runActivity.
@Override
public void runActivity(@NotNull Project project) {
if (project.isDefault()) {
return;
}
MessageBusConnection connection = project.getMessageBus().connect();
connection.subscribe(FacetManager.FACETS_TOPIC, new FacetManagerAdapter() {
@Override
public void facetAdded(@NotNull Facet facet) {
handleFacetChange(facet, project);
}
@Override
public void facetConfigurationChanged(@NotNull Facet facet) {
handleFacetChange(facet, project);
}
});
connection.subscribe(ProjectManager.TOPIC, new ProjectManagerListener() {
@Override
public void projectClosing(Project project) {
for (Module module : ModuleManager.getInstance(project).getModules()) {
AdditionalJARContentsWatcherManager.getInstance(module).cleanup();
}
}
});
}
use of com.intellij.util.messages.MessageBusConnection in project intellij-plugins by JetBrains.
the class DesignerApplicationManager method attachProjectAndModuleListeners.
void attachProjectAndModuleListeners(Disposable parentDisposable) {
MessageBusConnection connection = ApplicationManager.getApplication().getMessageBus().connect(parentDisposable);
connection.subscribe(ProjectManager.TOPIC, new ProjectManagerListener() {
@Override
public void projectClosed(Project project) {
if (isApplicationClosed()) {
return;
}
Client client = Client.getInstance();
if (client.getRegisteredProjects().contains(project)) {
client.closeProject(project);
}
}
});
// unregistered module is more complicated - we cannot just remove all document factories which belong to project as in case of close project
// we must remove all document factories belong to module and all dependents (dependent may be from another module, so, we process moduleRemoved synchronous
// one by one)
connection.subscribe(ProjectTopics.MODULES, new ModuleListener() {
@Override
public void moduleRemoved(@NotNull Project project, @NotNull Module module) {
Client client = Client.getInstance();
if (!client.isModuleRegistered(module)) {
return;
}
if (unregisterTaskQueueProcessor == null) {
unregisterTaskQueueProcessor = new QueueProcessor<>(module1 -> {
boolean hasError = true;
final ActionCallback callback;
initialRenderQueue.suspend();
try {
callback = Client.getInstance().unregisterModule(module1);
hasError = false;
} finally {
if (hasError) {
initialRenderQueue.resume();
}
}
callback.doWhenProcessed(() -> initialRenderQueue.resume());
});
}
unregisterTaskQueueProcessor.add(module);
}
});
}
Aggregations