如何过滤菜单

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

    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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Vue 2中实现动态菜单权限控制可以通过以下步骤进行: 1. 定义菜单数据结构:创建一个包含菜单项的数据结构,可以使用对象数组或者树形结构。 2. 获取用户权限:从后端或者其他途径获取当前用户的权限信息。 3. 根据权限过滤菜单:根据用户权限,遍历菜单数据结构,过滤掉用户没有权限的菜单项。 4. 渲染动态菜单:使用Vue的条件渲染指令(v-if或v-show)根据菜单项是否有权限来显示或隐藏对应的菜单项。 以下是一个示例代码片段,展示了如何在Vue 2中实现动态菜单权限控制: ```html <template> <div> <ul> <li v-for="item in menu" :key="item.id" v-if="hasPermission(item)"> {{ item.name }} </li> </ul> </div> </template> <script> export default { data() { return { menu: [ { id: 1, name: 'Home', permission: 'home' }, { id: 2, name: 'About', permission: 'about' }, { id: 3, name: 'Contact', permission: 'contact' }, ], userPermissions: ['home', 'contact'], // 假设当前用户拥有的权限 }; }, methods: { hasPermission(item) { return this.userPermissions.includes(item.permission); }, }, }; </script> ``` 在上述示例中,`menu`数组包含了所有的菜单项,每个菜单项都有一个`permission`属性表示该菜单项的权限。`userPermissions`数组表示当前用户拥有的权限。 通过`v-for`遍历`menu`数组,使用`v-if`指令结合`hasPermission`方法判断当前用户是否有权限访问该菜单项,只有有权限的菜单项才会被渲染出来。 需要注意的是,这只是一个简单的示例,实际应用中可能需要更复杂的权限管理方案。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值