如何过滤菜单

本文介绍如何在Eclipse中配置新建菜单仅在一級目录或特定文件夹内显示的方法,通过定义扩展点和属性测试器实现菜单项的条件启用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    开发中通常会碰到这种需求,比如一个“新建”菜单,只想要在项目的第一级或者指定文件夹才显示,这时就需要过滤菜单

    1. 首先需要添加‘新建’菜单的扩展点

    

<plugin>
   <extension
         point="org.eclipse.ui.newWizards">
     <category
           id="abide.web"
           name="%category.name">
     </category>
      <wizard
            category="abide.web"
            class="cn.com.test.HtmlWizard"
             
            icon="icons/icon/html.png"
            id="cn.com.test.HtmlWizard"
            name="新建">
      </wizard>
</extension>
<extension
         point="org.eclipse.ui.navigator.navigatorContent">
        
      <commonWizard
            menuGroupId="group.1.new"
            type="new"
            wizardId="cn.com.test.HtmlWizard">
         <enablement>
            <instanceof
                  value="org.eclipse.core.resources.IResource">
            </instanceof>
            <test
                  property="cn.com.test.ide.navigator.htmlFolder"
                  value="html">
            </test></enablement>
      </commonWizard>
 <extension
         point="org.eclipse.core.expressions.propertyTesters">
      <propertyTester
            class="cn.com.test.ide.navigator.propertyTester.ResourceTester"
            id="cn.com.test.ide.navigator.propertyTester"
            namespace="cn.com.agree.ide.navigator"
            properties="htmlFolder,cssFolder" 
            type="org.eclipse.core.resources.IContainer">
      </propertyTester>
</plugin>

对应的test类实现

public class ResourceTester extends PropertyTester {

    public ResourceTester() {
        
    }

    @Override
    public boolean test(Object receiver, String property, Object[] args,
            Object expectedValue) {
         if (property.equals("htmlFolder")) {
            if("html".equals(expectedValue)){
                if (WorkspaceUtil.isProject(receiver)) {
                    boolean mainFolder = WorkspaceUtil.isMainFolder(receiver);
                    boolean htmlFolder = WorkspaceUtil.isHtmlFolder(receiver); 
                    return mainFolder && htmlFolder;
                }
                
                
            } 
        return false;
    }

}
ResourceTester .java

 

  

转载于:https://www.cnblogs.com/yaolei0422/p/8696091.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值