Package org.eclipse.ui.menus
Class AbstractContributionFactory
- java.lang.Object
-
- org.eclipse.ui.menus.AbstractContributionFactory
-
- Direct Known Subclasses:
ExtensionContributionFactory
public abstract class AbstractContributionFactory extends Object
ContributionFactories are used by the IMenuService to populate ContributionManagers. IncreateContributionItems(IServiceLocator, IContributionRoot)
you fill in the additions List withIContributionItem
to be inserted at this factory's location. For example:AbstractContributionFactory contributions = new AbstractContributionFactory( "menu:org.eclipse.ui.tests.api.MenuTestHarness?after=additions") { public void createContributionItems(IMenuService menuService, List additions) { CommandContributionItem item = new CommandContributionItem("org.eclipse.ui.tests.menus.helloWorld", "org.eclipse.ui.tests.commands.enabledHelloWorld", null, null, "Say Hello", null); additions.add(item); item = new CommandContributionItem("org.eclipse.ui.tests.menus.refresh", "org.eclipse.ui.tests.commands.refreshView", null, null, "Refresh", null); menuService.registerVisibleWhen(item, new MyActiveContextExpression("org.eclipse.ui.tests.myview.context")); additions.add(item); } public void releaseContributionItems(IMenuService menuService, List items) { // we have nothing to do } }; IMenuService service = (IMenuService) PlatformUI.getWorkbench().getService(IMenuService.class); service.addContributionFactory(contributions);
Clients who are providing factories via the
org.eclipse.ui.menus
extension point should subclassExtensionContributionFactory
instead.Only the abstract methods may be implemented.
- Since:
- 3.3
- See Also:
IMenuService
,MenuManager
,ToolBarManager
-
-
Constructor Summary
Constructors Constructor Description AbstractContributionFactory(String location, String namespace)
The contribution factories must be instantiated with their location, which which specifies the contributions insertion location.
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description abstract void
createContributionItems(IServiceLocator serviceLocator, IContributionRoot additions)
This factory should create the IContributionItems that it wants to contribute, and add them to the additions list.String
getLocation()
Return the location as a String.String
getNamespace()
Return the namespace for this cache.
-
-
-
Constructor Detail
-
AbstractContributionFactory
public AbstractContributionFactory(String location, String namespace)
The contribution factories must be instantiated with their location, which which specifies the contributions insertion location.- Parameters:
location
- the addition location in Menu API URI format. It must not benull
.namespace
- the namespace for this contribution. May benull
.- See Also:
getNamespace()
-
-
Method Detail
-
getLocation
public String getLocation()
Return the location as a String.- Returns:
- the location - never
null
.
-
createContributionItems
public abstract void createContributionItems(IServiceLocator serviceLocator, IContributionRoot additions)
This factory should create the IContributionItems that it wants to contribute, and add them to the additions list. The menu service will call this method at the appropriate time. It should always return new instances of its contributions in the additions list.This method is not meant to be called by clients. It will be called by the menu service at the appropriate time.
- Parameters:
serviceLocator
- a service locator that may be used in the construction of items created by this factoryadditions
- AIContributionRoot
supplied by the framework. It will never benull
.- See Also:
CommandContributionItem
,MenuManager
-
getNamespace
public String getNamespace()
Return the namespace for this cache. This corresponds to the plug-in that is contributing this factory.- Returns:
- the namespace the namespace of this factory
-
-