2016-08-31 9 views
0

这可能是一个奇怪的问题,但是..我怎么能从代码中知道'激活新事件'属性值,使得错误日志视图弹出时有错误显示?我正在RCP应用程序中工作。错误日志视图 - 在RCP中新事件的属性值上激活

我试图用这个

IPreferenceStore store = new ScopedPreferenceStore(InstanceScope.INSTANCE, "org.eclipse.ui.views.log"); 
Boolean activateOnNewEvents = store.getBoolean("activate"); 

即使这样:

Preferences preferences = InstanceScope.INSTANCE.getNode("org.eclipse.ui.logs.view.prefs"); 
Boolean activateOnNewEvents = preferences.getBoolean("activate", true); 

但问题是,当我关闭我只得到正确的值,然后重新打开Eclipse中/的产品。如果我从错误日志视图右侧顶部菜单(从UI)更改值,我的代码仍会返回旧值直到重新启动,所以我只在eclipse/rcp关闭时猜测,新属性值存储在首选项中。

编辑:

所以我想通了,从“org.eclipse.ui.logs.view.prefs”此偏好值不获取正确的信息。当用户更改错误日志菜单中的“激活新事件”值时,它不会更新。所以问题是: 如何确定用户何时点击“在新事件上激活”并检查/取消选中此值?

回答

0

这两个代码片段只是给你当前的设置,并且如果首选项已更改,则不会更新。

对于IPreferenceStore方法,您可以使用addPropertyChangeListener调用来向首选项存储区添加侦听程序,只要首选项发生更改就会调用该首选项存储区。

IPropertyChangeListener您可以检查关键你有兴趣在不断变化:

public void propertyChange(PropertyChangeEvent event) { 
    String key = event.getProperty(); 

    if (key.equals(""activate"") { 
     // TODO get the new value from the preference store 
    } 
} 
+0

谢谢你的答案,我想这一点,分配一个PropertyChange,我想通了,从优先值不当用户选中/取消选中“在新evets上激活”时更改。我也编辑了我的帖子。所以问题是: 如何确定用户何时点击“在新事件上激活”并检查/取消选中此值? – IoanaC

+0

如果您的意思是错误日志视图菜单中的菜单项,我不认为有任何方法来设置它,因为它存储在属于视图的纪念品中,并且没有用于更改它们的API。 –

+0

好的,谢谢!这是我想知道的,如果有任何方法的话 – IoanaC