It seems to me like a simple warning dialog, so the getPopupDialog() could
work in this situation, or is there something else?
Ideally I'd like to show the user three buttons: Yes/No/Show Details.
Would it be an option to extend PopupDialog with a method like:
public abstract int showConfirmPopupDialog(Object message, String title,
String buttonLabels, int messageType);
where a buttonLabels element is the text to be shown on the buttons in order. The return value would be the selected button. Or driven to the extreme a complete clone of the TaskDialog API from Vista/Win 7: http://msdn.microsoft.com/en-us/library/bb756938.aspx
(I'd do the implementation myself if you like the idea.)
It is indeed an issue if we want to have a headless version, however in
this case we need to split them and put the gui as a plugin for example.
The issue with putting such guis in the main gui package, hence make them
available through the UIService is that if we want to disable a
functionality for some reason we won't be able to
simply remove its gui. On the other hand if it's in its own bundle then it
would be simple.
OK, sure. Then this falls into the topic of splitting the UIService into some "baseline" APIs for Popups etc. and the actual GUI (the Main Window, Plugin-Dialogs, etc.). I'll construct my implementation so that a subclass can easily overwrite the UI specific part and can still use the rest of the functionality.
PS: Don't hurry with the UI split-up. My remark above is only to help me understand things better.