Я работаю с приложением 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...
, чтобы определить себя родительской оболочкой для сообщения? И я что-то упускаю, если всегда использую один и тот же способ для создания оболочки для окон сообщений?