0
用例如下:我们有很多首选项页面,但根据登录的用户,只显示几个页面。我们使用活动绑定意识到:ActivityBinding不适用于偏好页面
<extension point="org.eclipse.ui.activities">
<activity id="org.acme.user.isAdmin" name="Admin Activity">
<enabledWhen>
<test property="org.acme.user.userName" value="ADMIN" />
</enabledWhen>
</activity>
<activityPatternBinding
activityId="org.acme.user.isAdmin"
isEqualityPattern="true"
pattern="org.acme.project/org.acme.project.MyPreferencePage">
</activityPatternBinding>
</extension>
<extension point="org.eclipse.core.expressions.propertyTesters">
<propertyTester
class="org.acme.user.UserTester"
id="org.acme.user.UserTester"
namespace="org.acme.user"
properties="userName"
type="java.lang.Object">
</propertyTester>
</extension>
有一对夫妇多,当然。现在,如果我们以其中一个用户身份登录,此设置可以正常工作。如果我们退出并重新登录,显示的首选项页面按照以下方式是:
- 如果第一个用户能够看到的页面,它的知名度是正确计算
- 如果第一个用户是不能看到的页面,第二个用户也不
因为属性测试仪做自己的工作,一切工作为第一次登录,我认为问题出在首选项对话框是如何创建的页面。事实上,下面一行将始终打印过的应用程序,过程中同样数量不管有多少页面可见:
System.out.println(PlatformUI.getWorkbench().getPreferenceManager().getRootSubNodes().length);
(我得到的,它不下去,因为有一个缓存页面,但是当活动绑定突然决定页面应该可见时,它应该去以上)。
有人可以阐明可能触发这些问题的原因,以及我们如何解决这些问题? (我们使用Eclipse 3.7)
看起来像从过滤器是从扩展点注册表(通过PreferencePageRegistryReader)读取页面时完成的,但没有设置响应稍后启用的活动的任何更改。 –
看起来这可能是(非常古老的)错误[65352](https://bugs.eclipse.org/bugs/show_bug.cgi?id=65352) –