Package org.eclipse.ui.menus

# Interface IContributionRoot

public interface IContributionRoot
Instances of this interface represent a position in the contribution hierarchy into which `AbstractContributionFactory` instances may insert elements. Instances of this interface are provided by the platform and this interface should NOT be implemented by clients.

Since:
  3.3

## Method Summary

Modifier and Type
Method
Description
`void`
`addContributionItem(IContributionItem item, Expression visibleWhen)`
Adds a given contribution item with provided visibility expression and kill-switch filtering as a direct child of this container.
`void`
`registerVisibilityForChild(IContributionItem item, Expression visibleWhen)`
Registers visibilty for arbitrary `IContributionItem` instances that are NOT direct children of this container.

## Method Details

### addContributionItem

void addContributionItem(IContributionItem item, Expression visibleWhen)
Adds a given contribution item with provided visibility expression and kill-switch filtering as a direct child of this container. This should be called for all top-level elements created in `AbstractContributionFactory.createContributionItems(org.eclipse.ui.services.IServiceLocator, IContributionRoot)`

Parameters:
  `item` - the item to add
  `visibleWhen` - the visibility expression. May be `null`.

### registerVisibilityForChild

void registerVisibilityForChild(IContributionItem item, Expression visibleWhen)
Registers visibilty for arbitrary `IContributionItem` instances that are NOT direct children of this container. Ie: children of a `IContributionManager` that has been previously registered with a call to {`addContributionItem(IContributionItem, Expression)`.

Parameters:
  `item` - the item for which to register a visibility clause
  `visibleWhen` - the visibility expression. May be `null` in which case this method is a no-op.