Как записать сообщение в строку состояния из класса обработчика в программировании Eclipse RCP - PullRequest
2 голосов
/ 26 июля 2010

Мне нужно изменить сообщение в строке состояния из класса обработчика.Прочитав учебник по RCP и FAQ по затмению, я наконец-то сделал что-то вроде этого:

HandlerUtil.getActiveWorkbenchWindow(event).getActivePage().findView(AView.ID).getViewSite().getActionBars().getStatusLineManager().setMessage( "Ha, I'm finished");

Что за длинная цепочка вызовов!

Правильно ли я делаю это?Благодарю.

1 Ответ

5 голосов
/ 26 июля 2010

С темы Я вижу на форумах, что выглядит правильно.

Будьте осторожны, если у вас есть асинхронная обратная связь для вставки в эту строку состояния.
См. эту тему , например.

UIJob job = new UIJob() {
    public IStatus run(IProgressMonitor monitor) {
    //do the long running work here

    Runnable results = new Runnable() {
        public void run(){
              // update UI elements here;
             getViewSite().getActionBars().getStatusLineManager().
               setMessage("End Pasting");
       }
    };
    display.asyncExec(results);
    }
};
job.schedule();

(Примечание: это может быть не ваш случай, но я добавляю этот фрагмент кода только для информации)

...