package org.jetbrains.plugins.clojure.config; import com.intellij.facet.Facet; import com.intellij.facet.FacetManager; import com.intellij.facet.FacetManagerAdapter; import com.intellij.openapi.module.Module; import com.intellij.openapi.module.ModuleComponent; import com.intellij.util.messages.MessageBusConnection; import org.jetbrains.annotations.NotNull; /** * @author ilyas */ public class ClojureFacetListener extends FacetManagerAdapter implements ModuleComponent { private MessageBusConnection myConnection; private Module myModule; public ClojureFacetListener(Module module) { myModule = module; } public void initComponent() { myConnection = myModule.getMessageBus().connect(); myConnection.subscribe(FacetManager.FACETS_TOPIC, new FacetManagerAdapter() { public void facetAdded(@NotNull final Facet facet) { } public void facetRemoved(@NotNull Facet facet) { } }); } public void disposeComponent() { myConnection.disconnect(); } @NotNull public String getComponentName() { return "ClojureFacetListener"; } public void projectOpened() { // called when myProject is opened } public void projectClosed() { // called when myProject is being closed } public void moduleAdded() { // Invoked when the module corresponding to this component instance has been completely // loaded and added to the myProject. } }