package jetbrains.mps.ide.make.actions; /*Generated by MPS */ import com.intellij.openapi.project.Project; import com.intellij.openapi.wm.StatusBar; import jetbrains.mps.plugins.custom.BaseCustomProjectPlugin; import com.intellij.openapi.wm.WindowManager; import com.intellij.openapi.util.Disposer; import jetbrains.mps.internal.collections.runtime.Sequence; import com.intellij.openapi.project.ProjectManager; import jetbrains.mps.internal.collections.runtime.ISelector; public class TransientModelsNotification { private final Project myProject; private StatusBar myStatusBar; private TransientModelsWidget myWidget; public TransientModelsNotification(Project project) { myProject = project; } public void projectOpened() { BaseCustomProjectPlugin.HACK_PROJECT_COMPONENT_STATE.set(myProject, this); myStatusBar = WindowManager.getInstance().getStatusBar(myProject); myWidget = new TransientModelsWidget(myStatusBar); myStatusBar.addWidget(myWidget); myWidget.update(); TransientModelBallonDisplayer displayer = new TransientModelBallonDisplayer(myProject, myWidget); Disposer.register(myWidget, displayer); displayer.init(); } public void projectClosed() { BaseCustomProjectPlugin.HACK_PROJECT_COMPONENT_STATE.set(myProject, null); myStatusBar.removeWidget(myWidget.ID()); Disposer.dispose(myWidget); } public static void updateWidgets() { for (TransientModelsWidget widget : Sequence.fromIterable(Sequence.fromArray(ProjectManager.getInstance().getOpenProjects())).select(new ISelector<Project, TransientModelsWidget>() { public TransientModelsWidget select(Project it) { return ((TransientModelsNotification) BaseCustomProjectPlugin.HACK_PROJECT_COMPONENT_STATE.get(it)).myWidget; } })) { widget.update(); } } }