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

			}
		}
	}
相关推荐
期货资管源码18 小时前
期货资管分仓软件开发/平台搭建经验分享
经验分享·算法·eclipse·区块链
曹牧21 小时前
Eclipse:大小写转换的快捷键
eclipse
杂家1 天前
Hudi集成Flink
大数据·flink·eclipse
开开心心_Every2 天前
免费进销存管理软件:云端本地双部署
java·游戏·微信·eclipse·pdf·excel·语音识别
Tinachen883 天前
YonBIP旗舰版本地开发环境搭建教程
java·开发语言·oracle·eclipse·前端框架
浩子智控3 天前
电子产品设计企业知识管理
运维·服务器·eclipse·系统安全·硬件工程
spencer_tseng4 天前
Cannot open Eclipse Marketplace
eclipse
絔宝5 天前
Eclipse配置 Maven 国内镜像
java·eclipse·maven
YJlio6 天前
PsPing 学习笔记(14.6):直方图视图——可视化延迟分布与抖动
开发语言·笔记·python·学习·eclipse·pdf·github
wa的一声哭了8 天前
内积空间 正交与正交系
java·c++·线性代数·算法·矩阵·eclipse·云计算