I'm a GWT and Java newbie trying to figure out how to create a synchronous (modal) dialog in GWT, but I'm having difficulty. The DialogBox class has a flag that says:
modal - true if keyboard and mouse events for widgets not contained by the dialog should be ignored
But that doesn't make the dialog synchronous.
I read one suggestion that said that I need to place the code that processes the dialog's data entered by the user inside the OK button handler. I don't like that because it makes the dialog responsible for displaying the data and processing it too. This results in a poor "Separation of Concerns" and violates the "Single Responsibility Principle" of good design.
I placed the code I want to execute in the OK button handler and now want to have my GWT dialog used in two places in my code. In one case, the user's data from the dialog is added to a table when the OK button is pressed. In the other case, the data in the table is modified when the OK button is pressed. If I could create a truly synchronous dialog, I could handle the OK button outside the dialog when it returns from execution and easily reused the dialog.
If forced to use my current asynchronous model, I'll need to pass in additional data as described here. This seems like a lot of work for such a common task. Did I miss something? Are there other options?