Defining an intro config

org.eclipse.ui.intro.config describes the id of the intro config that is to show our content, and the name of the XML file that contains the specific definition for the intro content. It is expected that only one intro config should be defined for a given CustomizableIntroPart. (Only the first intro config found can be shown in a CustomizableIntroPart.)

   <extension   
         id="intro"
         point="org.eclipse.ui.intro.config">
      <config
            introId="org.eclipse.platform.intro"
            id="org.eclipse.platform.introConfig"
            content="$nl$/introContent.xml">
         <presentation
               home-page-id="root"
               standby-page-id="standby">
            <implementation
                  ws="win32"
                  style="css/shared.css"
                  kind="html"
                  os="win32">
            </implementation>
            <implementation
                  kind="swt">
            </implementation>
         </presentation>
      </config>
   </extension>  
The path for the file is relative to the plug-in's directory. (Note the use of the $nl$ variable in the directory name, which means the file will be located in a directory specific to the national language of the target environment.)

The config extension allows you to specify both the content and the presentation of the content. While the content element focuses on defining pages, the presentation element describes presentation-related attributes that describe how pages will be shown. The page id for the intro home page (in full mode) must be specified, and the standby page id (in standby mode) is optional. The home page is the page that is shown when the product is first started. A presentation can specify one or more implementations for showing the pages. Implementations are specified per platform and windowing system, allowing you to take advantage of platform-specific features for showing page content. For example, the windows platform has a robust HTML browser widget, so an HTML-based implementation is used for intro content. Other platforms without this capability use an SWT-based implementation that maps page descriptions to an SWT-based form. An implementation that does not specify either a windowing system or operating system will be considered the generic implementation; to ensure an intro is shown on all platforms, it is important to define such an implementation. The workbench will first look for an implementation that matches the current operating system and windowing system. If one cannot be found, it will choose the generic implementation. Most of these details are handled at the product configuration level, so we won't discuss them any further here.