Eclipse Platform
Release 3.3

org.eclipse.ui.menus
Class AbstractContributionFactory

java.lang.Object
  extended byorg.eclipse.ui.menus.AbstractContributionFactory

public abstract class AbstractContributionFactory
extends Object

ContributionFactories are used by the IMenuService to populate ContributionManagers. In createContributionItems(IServiceLocator, IContributionRoot) you fill in the additions List with IContributionItem 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);
 

Only the abstract methods may be implemented.

Since:
3.3
See Also:
IMenuService, MenuManager, ToolBarManager

Constructor Summary
AbstractContributionFactory(String location, String namespace)
          The contribution factories must be instantiated with their location, which which specifies the contributions insertion location.
 
Method Summary
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.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

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 be null.
namespace - the namespace for this contribution. May be null.
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 factory
additions - A IContributionRoot supplied by the framework. It will never be null.
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

Eclipse Platform
Release 3.3

Guidelines for using Eclipse APIs.

Copyright (c) IBM Corp. and others 2000, 2007. All rights reserved.