Eclipse supports the dynamic creation of menus and toolbars using the menuContribution extension point. The class attribute of menuContribution specifies the Java Class to be used for dynamic creation. The custom java class must extend ExtensionContributionFactory
Following example adds Exit toolbar button
public class ToolbarProvider extends ExtensionContributionFactory
{
public ToolbarProvider()
{
}
@Override
public void createContributionItems( IServiceLocator serviceLocator, IContributionRoot additions )
{
ToolBarContributionItem toolbar = new ToolBarContributionItem( );
additions.addContributionItem( toolbar, null );
CommandContributionItemParameter p = new CommandContributionItemParameter( serviceLocator, "", "org.eclipse.ui.file.exit",
SWT.PUSH );
p.label = "Exit";
p.icon = Activator.getImageDescriptor( "icons/alt_window_16.gif" );
CommandContributionItem item = new CommandContributionItem( p );
item.setVisible( true );
toolbar.getToolBarManager().add( item );
}
}
Similarly to add a menu the object of CommandContributionItem can be used if locationURI points to a menu.