org.eclipse.emf.facet.util.ui.internal.exported.dialog
Interface IDialogCallbackWithPreCommit<T1,T2,D>

Type Parameters:
T1 - the type of the result for the first dialog
T2 - the type of the result for the pre-commit dialog
D - the type of the pre-commit dialog

public interface IDialogCallbackWithPreCommit<T1,T2,D>

A callback used to return a dialog's result asynchronously. This interface makes it possible to open a second "pre-commit" dialog when the user commits their selection in the first dialog. This second dialog is given the opportunity to open before the first dialog closes. This can be useful to ask the user for confirmation for example.

The second dialog should either:


Method Summary
 void committed(T1 result, T2 precommitResult)
          The user confirmed their choice in the pre-commit dialog.
 D openPrecommitDialog(T1 result, IDialogCallback<T2> precommitCallback)
          The user committed their selection in the first dialog.
 

Method Detail

committed

void committed(T1 result,
               T2 precommitResult)
The user confirmed their choice in the pre-commit dialog.

Parameters:
result - the result of the first dialog
precommitResult - the result of the pre-commit dialog

openPrecommitDialog

D openPrecommitDialog(T1 result,
                      IDialogCallback<T2> precommitCallback)
The user committed their selection in the first dialog. This method is called to let you open a second "pre-commit" dialog, that can prompt the user for confirmation.

Parameters:
result - the result from the first dialog
precommitCallback - you must call committed on this callback if the user confirms their choice in the second (pre-commit) dialog, and pass the result of the pre-commit dialog. Or do nothing if the user chose to cancel. If you return null from this method, you mustn't call IDialogCallback.committed(Object) or the commit will be done twice
Returns:
the pre-commit dialog (for unit tests), or null if no pre-commit callback is needed