Bug 167893 [Workbench] [RCP]Create an org.eclipse.ui.ide.application plug-in
M4 We have many situations where people want to use our resource based APIs but cannot due to a required dependency on the IDE application. Likewise we have code in the IDE that would like to use other plug-in but cannot due to a circular dependency (specifically the Common Navigator requires the resource parts of the IDE so we can't use it in the IDE without the circular dependency). Looking at the code in IDE the vast majority of it could be moved to a resources based plug-in with only a small amount left in IDE to support the IDE application and the Resource Perspective. This would allow 1) RCP apps to use our views like the Problems View with thier own application. Right now many are forced to subclass our (internal) application class to get this to work. 2) The resource navigator to rely only on the new org,eclipse.ui.workbench.resources plug-in thereby allowing the IDE to refer to it.
bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/ResourcePerspective.java
layout.addShowViewShortcut(IPageLayout.ID_TASK_LIST);
        layout.addActionSet(IPageLayout.ID_NAVIGATE_ACTION_SET);
    }
    /**
     * Defines the initial layout for a page.  
     * @param layout The layout we are filling
     */
    public void defineLayout(IPageLayout layout) {
        
        String editorArea = layout.getEditorArea();
        
        IFolderLayout topLeft = layout.createFolder(
                "topLeft", IPageLayout.LEFT, (float) 0.26, editorArea);
        topLeft.addView(IPageLayout.ID_RES_NAV);
        topLeft.addPlaceholder(IPageLayout.ID_BOOKMARKS);
        
        IFolderLayout bottomLeft = layout.createFolder(
                "bottomLeft", IPageLayout.BOTTOM, (float) 0.50,
                "topLeft");
        bottomLeft.addView(IPageLayout.ID_OUTLINE);
        
		IFolderLayout bottomRight = layout.createFolder(
                "bottomRight", IPageLayout.BOTTOM, (float) 0.66,
                editorArea);
		
		bottomRight.addView(IPageLayout.ID_TASK_LIST);
		
    }
}