EclipseRCP开发(三)-如何去除顽固原生菜单项

去除new-project及other菜单

获取所有菜单项,筛选出new菜单,将new菜单清空,再重新从已注册的向导中添加所需菜单。记录之。

java 复制代码
if ("new".equals(ii.getId())) {
	MenuManager newMenu = (MenuManager) ii;
	// 清除现有的所有子项
	newMenu.removeAll();
	// 手动填充 New Wizard 项目
	fillNewWizardMenu(newMenu, window);
}


private void fillNewWizardMenu(MenuManager newMenu, IWorkbenchWindow window) {
		// 获取已注册的所有 New Wizard
		IWizardRegistry wizardRegistry = PlatformUI.getWorkbench().getNewWizardRegistry();
		IWizardCategory[] categories = wizardRegistry.getRootCategory().getCategories();
		// 遍历每个分类中的向导New4diacProjectWizard
		for (IWizardCategory category : categories) {
			//筛选自定义的导航类
			if(!category.getId().contains("xxxxx")) {
				continue;
			}
			for (IWizardDescriptor wizard : wizards) {
				if (wizard.getId().contains("xxxx")) {
					Action action = new Action(wizard.getLabel()) {
						@Override
						public void run() {
							try {
								// 打开向导
								IWizard newWizard = wizard.createWizard();
								WizardDialog wizardDialog = new WizardDialog(window.getShell(), newWizard);
								wizardDialog.open();
							} catch (Exception e) {
								e.printStackTrace();
							}
						}
					};
					// 设置向导的图标
					ImageDescriptor imageDescriptor = wizard.getImageDescriptor();
					if (imageDescriptor != null) {
						action.setImageDescriptor(imageDescriptor);
					}
					// 添加向导项到 New 菜单
					newMenu.add(action);
				}

			}
		}
	}
相关推荐
曹牧1 天前
Eclipse 批量文本替换
java·ide·eclipse
曹牧4 天前
Java:将 IntelliJ IDEA 项目迁移至 Eclipse
java·eclipse·intellij-idea
2601_963932987 天前
人流手术多少天做比较适合?最佳手术周期与术后修护科普指南
eclipse
HillVue7 天前
Token 叙事退潮,DAA 重新定义 AI 价值标准
java·人工智能·eclipse
qiuyi107 天前
CRM产品对比测评:励拓云CRM vs 励销云CRM,名字相近但定位迥异
人工智能·eclipse·制造·tornado
石像鬼₧魂石10 天前
贵州商会管理系统 —— 商协会数字化运营一站式平台
大数据·数据结构·物联网·eclipse·数据库架构
zhangjin112012 天前
Tomcat下载安装配置-eclipse版
eclipse·tomcat·firefox
渡我白衣12 天前
打印宏与socket模块设计
java·linux·开发语言·c++·ide·人工智能·eclipse
Xiangchu_14 天前
合肥新能源汽车崛起,本地硅胶件谁来供
python·算法·eclipse·sqlite·汽车·制造
Xiangchu_14 天前
安徽硅胶厂的转型困局:从家电到汽车,卡在哪
经验分享·python·阿里云·eclipse·汽车·制造