Extending the Content of an Intro Config

Plug-ins can contribute intro content to a page defined elsewhere. However, the defining page must define an anchor attribute that acts as a location placeholder for new content. The SDK overview page defines two anchors for adding JDT and PDE related elements on the overview page.

   <group id="page-content">
      <text style-id="page-title" id="page-title">OVERVIEW</text>
      <text style-id="page-description" id="page-description">Eclipse is a kind of universal tool platform - an open extensible IDE for anything and nothing in particular. It provides a feature-rich development environment that allows the developer to efficiently create tools that integrate seamlessly into the Eclipse Platform.</text>
      <group id="overview-links">
         <link label="Workbench basics" url="http://org.eclipse.ui.intro/showHelpTopic?id=/org.eclipse.platform.doc.user/concepts/concepts-2.htm" id="basics">
            <text>Learn about basic Eclipse workbench concepts</text>
         </link>
         <anchor id="jdtAnchor"/>
         <anchor id="pdeAnchor"/>
      </group>
   </group>

These anchors can be referenced by plug-ins that add content to the page. Content is added using the org.eclipse.ui.intro.configExtension extension. In addition to extending page content, this extension point also allows one to contribute standby content parts and custom actions.

To extend an existing intro config, you can use the configExtension element. In this element, you specify the configId of the intro config being extended and the content file that describes the new content.

   <extension
         point="org.eclipse.ui.intro.configExtension">
      <configExtension
            configId="org.eclipse.platform.introConfig"
            content="$nl$/overviewExtensionContent.xml"/>  
            ...
   </extension>

The format of the content file is similar to that of the intro config content, except that it must contain an extensionContent element that defines the path to the anchor where the extension content should be inserted.

   <introContent>
      <extensionContent
            alt-style="css/swt.properties"
            style="css/overview.css"
            path="overview/page-content/overview-links/jdtAnchor">
         <link label="Java development" url="http://org.eclipse.ui.intro/showHelpTopic?id=/org.eclipse.jdt.doc.user/gettingStarted/qs-BasicTutorial.htm" id="java">
            <text>Get familiar with developing Java programs using Eclipse</text>
         </link>
      </extensionContent>
   </introContent>
After contributing custom content to an intro's predefined anchor points, a given product can bind itself to that intro using the org.eclipse.ui.intro discussed above. When the product is run, the intro that was extended will be shown with the additional content. This allows the product to have its own branding and other product-specific information, while reusing a closely related product's intro along with key content of its own.

A given intro could also selectively include pieces of a related product's intro. In this case, the product could define its own intro and intro config, and then reference important elements defined in another intro's config using an include in the content file. This mechanism is valuable in situations where related products are built on top of one another and it is necessary to introduce users to key concepts in the higher level products.