目的:在程序运行时动态生成各菜单子项。
实现思路:通过menuContribution的class属性类实现。
步骤:
1、在org.eclipse.ui.menus中定义一个menuContribution项,同时通过locationURI设置此menuContribution的依附对象。
2、实现menuContribution项的class类。
注意此类必须继承自ExtensionContributionFactory类。
实现实例:
package de.vogella.rcp.commands.runtimecommands;
import org.eclipse.swt.SWT;
import org.eclipse.ui.menus.CommandContributionItem;
import org.eclipse.ui.menus.CommandContributionItemParameter;
import org.eclipse.ui.menus.ExtensionContributionFactory;
import org.eclipse.ui.menus.IContributionRoot;
import org.eclipse.ui.services.IServiceLocator;
public class DefineCommands extends ExtensionContributionFactory {
@Override
public void createContributionItems(IServiceLocator serviceLocator,
IContributionRoot additions) {
CommandContributionItemParameter p = new CommandContributionItemParameter(serviceLocator, "",
"org.eclipse.ui.file.exit",
SWT.PUSH);
p.label = "Exit the application";
p.icon = Activator.getImageDescriptor("icons/alt_window_16.gif");
CommandContributionItem item = new CommandContributionItem(p);
item.setVisible(true);
additions.addContributionItem(item, null);
}
}
参考资料:
1、Eclipse Commands Advanced - Tutorial