如何从某种资源类型隐藏属性页面

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何从某种资源类型隐藏属性页面相关的知识,希望对你有一定的参考价值。

我的应用程序项目包含不同类型的资源。对于某些IFolder并非项目中的所有文件夹,我需要在右键单击属性上设置属性页。我的问题是,即使属性测试器返回false,也会显示所有文件夹的此页面。

plugin.xml中

<extension
     point="org.eclipse.ui.propertyPages">
  <page
        class="com.my.ui.properties.PropertiesPage"
        id="com.my.ui.properties.Properties"
        name="page">
     <enabledWhen>
        <adapt
              type="org.eclipse.core.resources.IFolder">
           <test
                 property="com.my.ui.propertyTester.supperFolder">
           </test>
        </adapt></enabledWhen>
 </page>

 <extension
     point="org.eclipse.core.expressions.propertyTesters">
  <propertyTester
        class="com.my.ui.properties.FolderTester"
        id="com.my.ui.propertyTester"
        namespace="com.my.ui.propertyTester"
        properties="supperFolder"
        type="org.eclipse.core.resources.IResource">
  </propertyTester>

public class FolderTester extends PropertyTester {

@Override
public boolean test(Object receiver, String property, Object[] args, Object expectedValue) {
    if ("supperFolder".equals(property) && receiver instanceof IFolder) {
        IFolder folder = (IFolder) receiver;
        if (IWResourceManager.getInstance().isIWResource(folder)) {
            ..
            ..
                return true;
            }
        }
    }
    return false;
}

那我错过了什么?

答案

经过几个小时的调试,我终于找到了错误,我填写好像我需要分享它,万一有人有同样的问题...所以...在属性测试器扩展点,测试人员“id”和“命名空间”有相同的价值,那是在创造某种冲突。

以上是关于如何从某种资源类型隐藏属性页面的主要内容,如果未能解决你的问题,请参考以下文章

从 Apollo 缓存中读取特定类型的所有片段

“未捕获的类型错误:无法在 Websocket Angular JS 上读取未定义的属性‘延迟’”

Spring Boot如何在属性文件中隐藏密码

从dom中隐藏输入值属性

如何使用导航从其他片段隐藏主机活动中的视图

如何从主要活动中替换片段