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);
				}

			}
		}
	}
相关推荐
杜清卿2 天前
如何配置环境变量HADOOP_HOMEM、AVEN_HOME?不配置会怎么样
大数据·hadoop·eclipse
睎zyl2 天前
如何配置HADOOP_HOME环境变量
大数据·hadoop·eclipse
向哆哆4 天前
Java 开发工具:从 Eclipse 到 IntelliJ IDEA 的进化之路
java·eclipse·intellij-idea
helloworld工程师7 天前
【微服务】SpringBoot整合LangChain4j 操作AI大模型实战详解
java·eclipse·tomcat·maven
煤灰僧10 天前
mysql创建表格、导入数据、导出到eclipse
数据库·mysql·eclipse
SofterICer11 天前
Eclipse Leshan 常见问题解答 (FAQ) 笔记
java·笔记·eclipse
开开心心就好11 天前
解决 PDF 难题:批量处理、文档清理与自由拆分合并
java·学习·eclipse·pdf·word·excel·生活
多多*11 天前
2024第十五届蓝桥杯大赛软件赛省赛Java大学B组 报数游戏 类斐波那契循环数 分布式队列 食堂 最优分组 星际旅行 LITS游戏 拼十字
java·linux·stm32·单片机·嵌入式硬件·spring·eclipse
VX_CXsjNo113 天前
免费送源码:Java+SSM+Android Studio 基于Android Studio游戏搜索app的设计与实现 计算机毕业设计原创定制
java·spring boot·spring·游戏·eclipse·android studio·android-studio
DKPT13 天前
Eclipse,MyEclipse,IDEA,Vscode这些编译器和JDK的相爱相杀
java·eclipse·编辑器·intellij-idea·myeclipse