Package org.eclipse.ui.intro.config

## Class CustomizableIntroPart

- java.lang.Object
- - org.eclipse.core.commands.common.EventManager
  - - org.eclipse.ui.part.IntroPart
    - - org.eclipse.ui.intro.config.CustomizableIntroPart

All Implemented Interfaces:
  `EventListener`, `IAdaptable`, `IExecutableExtension`, `IRegistryChangeListener`, `IIntroPart`

    public final class CustomizableIntroPart
    extends IntroPart
    implements IRegistryChangeListener

A re-usable intro part that the Eclipse platform uses for its Out of the Box Experience. It is a customizable intro part where both its presentation, and its content can be customized based on a configuration. Both are contributed using the org.eclipse.ui.intro.config extension point. There are two presentations: an SWT browser based presentation, and a UI forms presentation. Based on the configuration, one is chosen on startup. If a Browser based presentation is selected, and the intro is being loaded on a platform that does not support the SWT Browser control, the default behavior is to degrade to UI forms presentation. Content displayed in this intro part can be static or dynamic. Static is html files, dynamic is markup in content files. Again, both of which can be specified using the above extension point.

Memento Support: This intro part tries to restore its previous state when possible. The state of the intro page is remembered, along with which standby content content part was opened. IStandbyContent parts are passed the Intro's memento shortly after construction, and are expected to restore there own state based on the memento. The customizable intro part handles there initial creation on load, and leaves restoring state to content part. Same with saving state. The memento is passed shortly before shutdown to enable storing of part specific data. Note: This class was made public for re-use, as-is, as a valid class for the `org.eclipse.ui.intro` extension point. It is not intended to be subclassed or used otherwise.

Since:
  3.0

### Field Summary

### Fields inherited from interface org.eclipse.ui.intro.IIntroPart

`PROP_TITLE`

### Constructor Summary

Constructors
`CustomizableIntroPart()`

### Method Summary

All Methods Instance Methods Concrete Methods
`void` `createPartControl​(Composite parent)` Creates the UI based on how the InroPart has been configured.
`void` `dispose()` The `IntroPart` implementation of this `IIntroPart` method disposes the title image loaded by `setInitializationData`.
`Control` `getControl()` Returns the primary control associated with this Intro part.
`void` `init​(IIntroSite site, IMemento memento)` The base implementation of this `IIntroPart`method ignores the memento and initializes the part in a fresh state.
`boolean` `internal_isFinishedLoading()`
`void` `registryChanged​(IRegistryChangeEvent event)` Support dynamic awarness.
`void` `saveState​(IMemento memento)` The base implementation of this `IIntroPart` method does nothing.
`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 class org.eclipse.ui.part.IntroPart

`addPropertyListener, firePropertyChange, getAdapter, getConfigurationElement, getDefaultImage, getIntroSite, getTitle, getTitleImage, removePropertyListener, setInitializationData, setSite, setTitle, setTitleImage`

### Methods inherited from class org.eclipse.core.commands.common.EventManager

`addListenerObject, clearListeners, getListeners, isListenerAttached, removeListenerObject`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Constructor Detail

#### CustomizableIntroPart

    public CustomizableIntroPart()

### Method Detail

#### init

    public void init​(IIntroSite site,
                     IMemento memento)
              throws PartInitException

Description copied from class: `IntroPart`
The base implementation of this `IIntroPart`method ignores the memento and initializes the part in a fresh state. Subclasses may extend to perform any state restoration, but must call the super method.

Specified by:
  `init` in interface `IIntroPart`
Overrides:
  `init` in class `IntroPart`
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

#### createPartControl

    public void createPartControl​(Composite parent)

Creates the UI based on how the InroPart has been configured.

Specified by:
  `createPartControl` in interface `IIntroPart`
Specified by:
  `createPartControl` in class `IntroPart`
Parameters:
  `parent` - the parent control
See Also:
  `IWorkbenchPart.createPartControl(org.eclipse.swt.widgets.Composite)`

#### standbyStateChanged

    public void standbyStateChanged​(boolean standby)

Description copied from interface: `IIntroPart`
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.

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

#### setFocus

    public void setFocus()

Description copied from interface: `IIntroPart`
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)`.

Specified by:
  `setFocus` in interface `IIntroPart`
Specified by:
  `setFocus` in class `IntroPart`

#### dispose

    public void dispose()

Description copied from class: `IntroPart`
The `IntroPart` implementation of this `IIntroPart` method disposes the title image loaded by `setInitializationData`. Subclasses may extend.

Specified by:
  `dispose` in interface `IIntroPart`
Overrides:
  `dispose` in class `IntroPart`

#### getControl

    public Control getControl()

Returns the primary control associated with this Intro part.

Returns:
  the SWT control which displays this Intro part's content, or `null` if this standby part's controls have not yet been created.

#### saveState

    public void saveState​(IMemento memento)

Description copied from class: `IntroPart`
The base implementation of this `IIntroPart` method does nothing. Subclasses may override.

Specified by:
  `saveState` in interface `IIntroPart`
Overrides:
  `saveState` in class `IntroPart`
Parameters:
  `memento` - a memento to receive the object state

#### registryChanged

    public void registryChanged​(IRegistryChangeEvent event)

Support dynamic awarness.

Specified by:
  `registryChanged` in interface `IRegistryChangeListener`
Parameters:
  `event` - the registry change event
See Also:
  `IRegistryChangeListener.registryChanged(org.eclipse.core.runtime.IRegistryChangeEvent)`

#### internal_isFinishedLoading

    public boolean internal_isFinishedLoading()