Bug 89625 [IDE] IDEWorkbenchWindowAdvisor refers to workbench internals for backdrop
3.1 M5 The code in IDEWorkbenchWindowAdvisor to provide the backdrop when all perspectives are closed refers to internal workbench classes: import org.eclipse.ui.internal.IWorkbenchGraphicConstants; import org.eclipse.ui.internal.WorkbenchImages; import org.eclipse.ui.internal.dialogs.SelectPerspectiveDialog; This should be done using only API.
bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/IDEWorkbenchWindowAdvisor.java
IWorkbenchWindowConfigurer configurer = getWindowConfigurer();
        IWorkbenchWindow window = configurer.getWindow();
        
        int index = getWorkbench().getWorkbenchWindowCount() - 1;
        AboutInfo[] welcomePerspectiveInfos = wbAdvisor.getWelcomePerspectiveInfos(); 
        if (index >= 0 && welcomePerspectiveInfos != null
                && index < welcomePerspectiveInfos.length) {
            
            IWorkbenchPage page = window.getActivePage();
            if (page == null) {
                IWorkbenchPage[] pages = window.getPages();
                if (pages != null && pages.length > 0)
                    page = pages[0];
            }
            
            String perspectiveId = welcomePerspectiveInfos[index].getWelcomePerspectiveId();
            if (page == null) {
                IAdaptable root = wbAdvisor.getDefaultPageInput();
                page = window.openPage(perspectiveId,
                        root);
            } else {
                IPerspectiveRegistry reg = getWorkbench()
                        .getPerspectiveRegistry();
                IPerspectiveDescriptor desc = reg
                        .findPerspectiveWithId(perspectiveId);
                if (desc != null) {
                    page.setPerspective(desc);
                }
            }