package fr.lteconsulting.hexa.client.ui.dialog;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.HTML;
import com.google.gwt.user.client.ui.HorizontalPanel;
import com.google.gwt.user.client.ui.VerticalPanel;
import fr.lteconsulting.hexa.client.ui.UiBuilder;
import fr.lteconsulting.hexa.client.ui.dialog.DialogBoxBuilder.DialogBox;
public class ConfirmationBox
{
public interface Callback
{
void onConfirmedBox();
}
public static void ask( final Callback callback )
{
ask( "You are about to execute an action, do you confirm ?", callback );
}
public static void ask( String message, final Callback callback )
{
ask( "Confirmation", message, callback );
}
public static void ask( String title, String message, final Callback callback )
{
Button yes = new Button( "Yes" );
Button no = new Button( "No" );
HorizontalPanel buttonBar = UiBuilder.addIn( new HorizontalPanel(), yes, no );
final DialogBox db = DialogBoxBuilder.create( title, UiBuilder.addIn( new VerticalPanel(), new HTML( message ), buttonBar ) );
no.addClickHandler( new ClickHandler()
{
@Override
public void onClick( ClickEvent event )
{
db.hide();
}
} );
yes.addClickHandler( new ClickHandler()
{
@Override
public void onClick( ClickEvent event )
{
db.hide();
callback.onConfirmedBox();
}
} );
db.show( false );
}
}