2016-08-31 5 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/rcp будет закрыто, новое значение свойства сохраняется в настройках ,

EDIT:

Так я понял, что это значение предпочтения от «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, и я понял, что значение от предпочтений не изменено, когда пользователь проверяет/отменяет «активировать новые вызовы». Я также редактировал свой пост. Итак, вопрос: Как я могу определить, когда пользователь нажимает «Активировать на новые события» и проверяет/отменяет это значение? – IoanaC

+0

Если вы имеете в виду пункт меню в меню просмотра журнала ошибок, я не думаю, что есть какой-либо способ установить это, поскольку он хранится в памяти, принадлежащей представлению, и API для их изменения отсутствует. –

+0

ладно, спасибо! это то, что я хотел знать, :) если есть какой-либо способ – IoanaC

 Смежные вопросы

  • Нет связанных вопросов^_^