ConfirmDialog
A versatile confirmation dialog for Vaadin
Ever needed a present a confirmation dialog in a Vaadin application?
Here is a way to do that nicely. The ConfirmDialog add-on introduces a configurable way of requesting user confirmation for a button click or just before some important operation.
Defaults like size calculation, keyboard bindings and styling are all there, but of course you can provide your own. Take a look at the demo application for sample code and use cases.
Supports both two-way (yes,no) and three-way (yes,no,cancel) confirmation. The three-way support was added in version 2.1.x. If you only need a "monolog box", please use the Vaadin's own showNotification method.
This is a server-side-only component, so no need to recompile the widgetset.
Sample code
ConfirmDialog.show(win, "Please Confirm:", "Are you really sure?", "I am", "Not quite", new ConfirmDialog.Listener() { public void onClose(ConfirmDialog dialog) { if (dialog.isConfirmed()) { // Confirmed to continue feedback(dialog.isConfirmed()); } else { // User did not confirm feedback(dialog.isConfirmed()); } } });
// Customization via the factory. This makes all subsequent dialog // calls to use this application-wide. ConfirmDialog.Factory df = new DefaultConfirmDialogFactory() { // We change the default order of the buttons @Override public ConfirmDialog create(String caption, String message, String okCaption, String cancelCaption) { ConfirmDialog d = super.create(caption, message, okCaption, cancelCaption); // Find the buttons and change the order Button ok = d.getOkButton(); HorizontalLayout buttons = (HorizontalLayout) ok.getParent(); buttons.removeComponent(ok); buttons.addComponent(ok, 1); buttons.setComponentAlignment(ok, Alignment.MIDDLE_RIGHT); // Change the default Button cancel = d.getCancelButton(); cancel.setStyleName(Reindeer.BUTTON_DEFAULT); ok.removeStyleName(Reindeer.BUTTON_DEFAULT); cancel.focus(); return d; } }; ConfirmDialog.setFactory(df); // Now we can confirm the standard way ConfirmDialog.show(getMainWindow(), "Really delete all?", new ConfirmDialog.Listener() { public void onClose(ConfirmDialog dialog) { if (dialog.isConfirmed()) { // Confirmed to continue feedback(dialog.isConfirmed()); } else { // User did not confirm feedback(dialog.isConfirmed()); } } });
Links
Compatibility
Was this helpful? Need more help?
Leave a comment or a question below. You can also join
the chat on Discord or
ask questions on StackOverflow.
Version
- Added API for getting/setting buttons and fixed regression in 3.1.2.
- Fixed extra margin issues. Thanks @BrunoEberhard
- Fixed long message wrap in Valo. Thanks @knoobie
- Released
- 2017-06-13
- Maturity
- CERTIFIED
- License
- Apache License 2.0
Compatibility
- Framework
- Vaadin 8.0+
- Vaadin 6.3+ in 1.2.1
- Vaadin 7.0+ in 2.0.5
- Browser
- Internet Explorer
- Internet Explorer
- Internet Explorer
- Firefox
- Opera
- Google Chrome
- Internet Explorer
- iOS Browser
- Android Browser
- Internet Explorer
- Microsoft Edge
ConfirmDialog - Vaadin Add-on Directory
A versatile confirmation dialog for VaadinIssue Tracker
Source Code
Author Homepage
Online Demo
ConfirmDialog version 1.2.1
null
ConfirmDialog version 2.0.5
Small fixes, added debug IDs. Packaged source code and Javadoc.
ConfirmDialog version 2.1.3
Escape as window close by github.com/lightoze
ConfirmDialog version 3.2.0
- Added API for getting/setting buttons and fixed regression in 3.1.2.
- Fixed extra margin issues. Thanks @BrunoEberhard
- Fixed long message wrap in Valo. Thanks @knoobie