0
我需要爲所有視圖提供動態的彈出式菜單。我可以創建一個動態的彈出式菜單貢獻,但是我必須設置URI併爲特定視圖進行註冊。現在我試圖動態註冊菜單,當用戶選擇另一個視圖時:所有視圖的動態彈出式菜單
public class GlobalSelectionListener implements ISelectionListener {
HashSet<IWorkbenchPart> extended = new HashSet<IWorkbenchPart>();
@Override
public void selectionChanged(IWorkbenchPart part, ISelection selection) {
if (!extended.contains(part)) {
IWorkbenchPartSite wps = part.getSite();
if (wps == null)
return;
//creates popup menu for this part
MenuManager mgr = new MenuManager();
mgr.add(new DynamicMenu()); //DynamicMenu extends ContributionItem
wps.registerContextMenu("identifier." + mgr.hashCode(), mgr, wps.getSelectionProvider());
extended.add(part);
System.out.println(part + " menu extended");
}
}
}
但是這不起作用。沒有一個菜單項出現在彈出菜單中。我不知道,是否有可能這樣做。有沒有任何方法來動態添加任意視圖的彈出菜單?看起來,registerContextMenu()
方法做了別的。