• 如何过滤菜单


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

        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

      

  • 相关阅读:
    PAT (Advanced Level) 1017. Queueing at Bank (25)
    PAT (Advanced Level) 1016. Phone Bills (25)
    1sting
    八皇后问题
    思维水题
    pigofzhou的巧克力棒
    喵哈哈村的代码传说 第四章 并查集
    简单容器应用
    Codefroces D2. Magic Powder
    喵哈哈村的种花魔法(线段树(区间更新,单点查询),前缀和(单点更新,区间查询))
  • 原文地址:https://www.cnblogs.com/yaolei0422/p/8696091.html
Copyright © 2020-2023  润新知