zoukankan      html  css  js  c++  java
  • 如何过滤菜单

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

        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

      

  • 相关阅读:
    ASP.NET MVC自定义Module记录管道事件执行顺序
    Pro ASP.NET MVC 5 Platform-第三章 ASP.NET 生命周期
    C#基础-反射
    C#7语法快速参考-第一章 Hello World
    两张趣图助你理解 HTTP 状态码!
    dev listbox使用
    aspose导出数据
    dev chart使用
    linq多个条件
    json返回数据多个是数组,单个就不是处理方案
  • 原文地址:https://www.cnblogs.com/yaolei0422/p/8696091.html
Copyright © 2011-2022 走看看