2009-03-10 3 views
2

Я открываю редактор с одного щелчка по экрану. Теперь, когда пользователю загружаются загрузки редактора и элементы управления, я хочу отобразить диалоговое окно предупреждения пользователю на основе определенных значений, присутствующих в редакторе.Eclipse RCP: Как показать диалоговое окно сообщения после загрузки редактора?

Я попытался установить диалог предупреждения в конце метода createPartControl редактора. Диалог появляется при двойном нажатии на экран в соответствии с требуемой функциональностью. Но проблема в том, что при появлении диалога элементы управления в редакторе еще не видны. Только когда я закрываю диалог, отображаются элементы управления редактором.

Я хочу, чтобы это произошло наоборот. т. е. редактор сначала отображается, а затем появляется диалоговое окно с предупреждением. Какие изменения я должен сделать для достижения этого эффекта?

ответ

8

Вы можете назвать это MessageDialog в асинхронном режиме, чтобы выйти из редактора возможность завершить себя, как это было предложено в this message.

показать диалоговое окно предупреждения в asyncExec() runnable гарантирует, что инициализация редактора будет происходить в правильной последовательности.

Итак, что-то вроде (не проверено), этот код может сделать трюк:

getSite().getShell().getDisplay().asyncExec 
    (new Runnable() { 
     public void run() { 
      MessageDialog.openWarning(getSite().getShell(),"wrong","no) 
     } 
    }); 
} 

Некоторые другие примеры в этом MapEditor классе, где MessageDialog отображается через asyncExec, который ждет результата:

PlatformGIS.syncInDisplayThread

+0

да, сэр. прекрасно работает. хорошо продумано! –

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

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