Example usage for com.intellij.openapi.wm ToolWindowEP getToolWindowFactory

List of usage examples for com.intellij.openapi.wm ToolWindowEP getToolWindowFactory

Introduction

In this page you can find the example usage for com.intellij.openapi.wm ToolWindowEP getToolWindowFactory.

Prototype

public ToolWindowFactory getToolWindowFactory() 

Source Link

Usage

From source file:org.jetbrains.plugins.groovy.mvc.MvcModuleStructureSynchronizer.java

License:Apache License

private void updateProjectViewVisibility() {
    StartupManager.getInstance(myProject).runWhenProjectIsInitialized(new DumbAwareRunnable() {
        @Override/*from w  w  w  .j ava 2 s .  co m*/
        public void run() {
            ApplicationManager.getApplication().invokeLater(new Runnable() {
                @Override
                public void run() {
                    if (myProject.isDisposed())
                        return;

                    for (ToolWindowEP ep : ToolWindowEP.EP_NAME.getExtensions()) {
                        if (MvcToolWindowDescriptor.class.isAssignableFrom(ep.getFactoryClass())) {
                            MvcToolWindowDescriptor descriptor = (MvcToolWindowDescriptor) ep
                                    .getToolWindowFactory();
                            String id = descriptor.getToolWindowId();
                            boolean shouldShow = MvcModuleStructureUtil.hasModulesWithSupport(myProject,
                                    descriptor.getFramework());

                            ToolWindowManager toolWindowManager = ToolWindowManager.getInstance(myProject);

                            ToolWindow toolWindow = toolWindowManager.getToolWindow(id);

                            if (shouldShow && toolWindow == null) {
                                toolWindow = toolWindowManager.registerToolWindow(id, true,
                                        ToolWindowAnchor.LEFT, myProject, true);
                                toolWindow.setIcon(descriptor.getFramework().getToolWindowIcon());
                                descriptor.createToolWindowContent(myProject, toolWindow);
                            } else if (!shouldShow && toolWindow != null) {
                                toolWindowManager.unregisterToolWindow(id);
                                Disposer.dispose(toolWindow.getContentManager());
                            }
                        }
                    }
                }
            });
        }
    });
}