Я делаю приложение Eclipse RCP/Jface и часто использую MessageDialog
.open...
для отображения сообщений пользователю.
Однако заголовок информационного диалога, например, всегда один и тот же. И предоставляемый объект оболочки также всегда является верхней оболочкой. Поскольку я хотел сохранить свой код DRY, я сделал несколько вспомогательных функций, которые получают только сообщение в качестве параметра. Для родительской оболочки я использовал PlatformUI.getWorkbench().getModalDialogShellProvider().getShell()
. В документации сказано, что он возвращает "оболочку..., которую можно использовать для получения наилучшего возможного родителя для модального диалога" Например:
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...
для определения себя родительской оболочкой для сообщения? И я что-то упускаю, если я всегда использую один и тот же способ для предоставления оболочки для окон сообщений?