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

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

Introduction

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

Prototype

@Nullable
    public Class<? extends ToolWindowFactory> getFactoryClass() 

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/*  ww w . j a va  2s .c om*/
        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());
                            }
                        }
                    }
                }
            });
        }
    });
}