Почему статические методы MessageDialog jface не затмевают себя родительской оболочкой? - PullRequest
1 голос
/ 25 августа 2011

Я работаю с приложением Eclipse RCP / Jface и часто использую методы MessageDialog.open..., чтобы показывать сообщения пользователю.

Однако заголовок информационного диалога, например, всегда одинаков. И предоставленный объект оболочки всегда является верхней оболочкой. Поскольку я хотел сохранить свой код DRY , я сделал несколько вспомогательных функций, которые получают только сообщение в качестве параметра. Для родительской оболочки я использовал PlatformUI.getWorkbench().getModalDialogShellProvider().getShell(). В документации говорится, что она возвращает «оболочку ..., которую можно использовать для получения наилучшего возможного родительского контроля для модального диалога» Eg.:

class Helper {
  public static void openInformation(String message) {
      MessageDialog.open(MessageDialog.INFORMATION, 
          PlatformUI.getWorkbench().getModalDialogShellProvider().getShell(),
          Activator.translate("some.bundle.path.information"), message, SWT.NONE);
  }
}

Мой вопрос: почему они не сделали методы MessageDialog.open..., чтобы определить себя родительской оболочкой для сообщения? И я что-то упускаю, если всегда использую один и тот же способ для создания оболочки для окон сообщений?

Ответы [ 2 ]

0 голосов
/ 08 февраля 2012

Если вы проверите JavaDoc, вы увидите, что оболочка может даже быть нулевой.Я считаю, что оболочка используется только для центрирования диалога (относительно оболочки).

0 голосов
/ 26 августа 2011

Мои два цента,

Возможно, ваше приложение открыло более одной Windows Workbench.Таким образом, передавая оболочку окна, она может помочь решить, какое окно будет модальным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...