org.eclipse.ui.intro

## Interface IIntroPart

All Superinterfaces:
  IAdaptable

All Known Implementing Classes:
  CustomizableIntroPart, IntroPart

    public interface IIntroPart
    extends IAdaptable

The intro part is a visual component within the workbench responsible for introducing the product to new users. The intro part is typically shown the first time a product is started up.

The intro part implementation is contributed to the workbench via the `org.eclipse.ui.intro` extension point. There can be several intro part implementations, and associations between intro part implementations and products. The workbench will only make use of the intro part implementation for the current product (as given by `Platform.getProduct()`. There is at most one intro part instance in the entire workbench, and it resides in exactly one workbench window at a time.

This interface in not intended to be directly implemented. Rather, clients providing a intro part implementation should subclass `IntroPart`.

Since:
  3.0
See Also:
  `IIntroManager.showIntro(org.eclipse.ui.IWorkbenchWindow, boolean)`
Restriction:
  This interface is not intended to be implemented by clients.

### Field Summary

Fields
`static int` `PROP_TITLE` The property id for `getTitleImage` and `getTitle`.

### Method Summary

All Methods Instance Methods Abstract Methods
`void` `addPropertyListener(IPropertyListener listener)` Adds a listener for changes to properties of this intro part.
`void` `createPartControl(Composite parent)` Creates the SWT controls for this intro part.
`void` `dispose()` Disposes of this intro part.
`IIntroSite` `getIntroSite()` Returns the site for this intro part.
`String` `getTitle()` Returns the title of this intro part.
`Image` `getTitleImage()` Returns the title image of this intro part.
`void` `init(IIntroSite site, IMemento memento)` Initializes this intro part with the given intro site.
`void` `removePropertyListener(IPropertyListener listener)` Removes the given property listener from this intro part.
`void` `saveState(IMemento memento)` Saves the object state within a memento.
`void` `setFocus()` Asks this part to take focus within the workbench.
`void` `standbyStateChanged(boolean standby)` Sets the standby state of this intro part.

### Methods inherited from interface org.eclipse.core.runtime.IAdaptable

`getAdapter`

### Field Detail

#### PROP_TITLE

    static final int PROP_TITLE

The property id for `getTitleImage` and `getTitle`.

Since:
  3.2 this property now covers changes to `getTitle` in addition to `getTitleImage`
See Also:
  Constant Field Values

### Method Detail

#### getIntroSite

    IIntroSite getIntroSite()

Returns the site for this intro part.

Returns:
  the intro site

#### init

    void init(IIntroSite site,
              IMemento memento)
       throws PartInitException

Initializes this intro part with the given intro site. A memento is passed to the part which contains a snapshot of the part state from a previous session. Where possible, the part should try to recreate that state.

This method is automatically called by the workbench shortly after part construction. It marks the start of the intro's lifecycle. Clients must not call this method.

Parameters:
  `site` - the intro site
  `memento` - the intro part state or `null` if there is no previous saved state
Throws:
  `PartInitException` - if this part was not initialized successfully

#### standbyStateChanged

    void standbyStateChanged(boolean standby)

Sets the standby state of this intro part. An intro part should render itself differently in the full and standby modes. In standby mode, the part should be partially visible to the user but otherwise allow them to work. In full mode, the part should be fully visible and be the center of the user's attention.

This method is automatically called by the workbench at appropriate times. Clients must not call this method directly (call `IIntroManager.setIntroStandby(IIntroPart, boolean)` instead.

Parameters:
  `standby` - `true` to put this part in its partially visible standy mode, and `false` to make it fully visible

#### saveState

    void saveState(IMemento memento)

Saves the object state within a memento.

This method is automatically called by the workbench at appropriate times. Clients must not call this method directly.

Parameters:
  `memento` - a memento to receive the object state

#### addPropertyListener

    void addPropertyListener(IPropertyListener listener)

Adds a listener for changes to properties of this intro part. Has no effect if an identical listener is already registered.

The properties ids are as follows:

- `IIntroPart.PROP_TITLE`

Parameters:
  `listener` - a property listener

#### createPartControl

    void createPartControl(Composite parent)

Creates the SWT controls for this intro part.

Clients should not call this method (the workbench calls this method when it needs to, which may be never).

For implementors this is a multi-step process:

1. Create one or more controls within the parent.
2. Set the parent layout as needed.
3. Register any global actions with the `IActionService`.
4. Register any popup menus with the `IActionService`.
5. Register a selection provider with the `ISelectionService` (optional).

Parameters:
  `parent` - the parent control

#### dispose

    void dispose()

Disposes of this intro part.

This is the last method called on the `IIntroPart`. At this point the part controls (if they were ever created) have been disposed as part of an SWT composite. There is no guarantee that createPartControl() has been called, so the part controls may never have been created.

Within this method a part may release any resources, fonts, images, etc. held by this part. It is also very important to deregister all listeners from the workbench.

Clients should not call this method (the workbench calls this method at appropriate times).

#### getTitleImage

    Image getTitleImage()

Returns the title image of this intro part. If this value changes the part must fire a property listener event with `PROP_TITLE`.

The title image is usually used to populate the title bar of this part's visual container. Since this image is managed by the part itself, callers must not dispose the returned image.

Returns:
  the title image

#### getTitle

    String getTitle()

Returns the title of this intro part. If this value changes the part must fire a property listener event with `PROP_TITLE`.

The title is used to populate the title bar of this part's visual container.

Returns:
  the intro part title (not `null`)
Since:
  3.2

#### removePropertyListener

    void removePropertyListener(IPropertyListener listener)

Removes the given property listener from this intro part. Has no effect if an identical listener is not registered.

Parameters:
  `listener` - a property listener

#### setFocus

    void setFocus()

Asks this part to take focus within the workbench.

Clients should not call this method (the workbench calls this method at appropriate times). To have the workbench activate a part, use `IIntroManager.showIntro(IWorkbenchWindow, boolean)`.