我想在File>中添加一些我的向导通过将org.eclipse.ui.newWizards扩展点添加到plugin.xml文件中,我的RCP应用程序的新菜单。
<extension point="org.eclipse.ui.newWizards">
<category
id="com.my.testapp.ui.objects"
name="Objects"/>
<wizard
category="com.my.testapp.ui.objects"
class="com.my.testapp.ui.wizard.create.COWizard"
icon="icons/co.gif"
id="com.my.testapp.ui.wizard.co"
name="Configure Object"
preferredPerspectives="com.my.testapp.ui.perspective"/>
</wizard>
</extension>
默认文件&gt;新&gt;除配置对象向导的“我的对象”文件夹之外的其他菜单还包含具有以下向导的“常规”文件夹:“文件”,“文件夹”,“项目”和“无标题文本文件”。在我的应用程序中,这些向导没有意义我想摆脱它们。怎么做?
答案 0 :(得分:7)
提供here的解决方案(感谢@bananeweizen和@stracka)删除默认导入向导也可以应用于此问题。
因此,解决方案是将以下代码添加到postWindowOpen()
类的ApplicationWorkbenchWindowAdvisor
方法,以便从文件&gt;中删除默认的“常规”类别。新&gt;其他菜单。
AbstractExtensionWizardRegistry wizardRegistry = (AbstractExtensionWizardRegistry)PlatformUI.getWorkbench().getNewWizardRegistry();
IWizardCategory[] categories = PlatformUI.getWorkbench().getNewWizardRegistry().getRootCategory().getCategories();
for(IWizardDescriptor wizard : getAllWizards(categories)){
if(wizard.getCategory().getId().matches("org.eclipse.ui.Basic")){
WorkbenchWizardElement wizardElement = (WorkbenchWizardElement) wizard;
wizardRegistry.removeExtension(wizardElement.getConfigurationElement().getDeclaringExtension(), new Object[]{wizardElement});
}
}
答案 1 :(得分:1)
虽然this question要求隐藏一些“导入”向导(而不是“新建”向导),但解决方案也应该适用于您的问题。
如果您正在搜索更多详细信息,请注意该机制的扩展点称为活动,但引用它的Eclipse术语是功能。
答案 2 :(得分:0)
您是否尝试删除相关的操作集?我从来没有删除你所指的项目,但是我删除了默认的“搜索”操作,“注释”操作和“导航”操作等内容,因为我通常不支持这些功能。应用
一旦你弄清楚这些操作所包含的软件包,通常需要进行一些研究和挖掘,你可以将它们隐藏在 ApplicationWorkbenchWindowAdvisor的 postWindowOpen()方法中强>班,像这样:
public void postWindowOpen() {
// remove unwanted UI contributions that eclipse makes by default
IWorkbenchWindow[] windows = PlatformUI.getWorkbench().getWorkbenchWindows();
for (int i = 0; i < windows.length; ++i) {
IWorkbenchPage page = windows[i].getActivePage();
if (page != null) {
// hide 'Search' commands
page.hideActionSet("org.eclipse.search.searchActionSet");
// hide 'Annotation' commands
page.hideActionSet("org.eclipse.ui.edit.text.actionSet.annotationNavigation");
// hide 'Forward/Back' type navigation commands
page.hideActionSet("org.eclipse.ui.edit.text.actionSet.navigation");
}
}
}