package com.constellio.app.ui.framework.components.contextmenu;
import static com.constellio.app.ui.i18n.i18n.$;
import org.vaadin.dialogs.ConfirmDialog;
import org.vaadin.peter.contextmenu.ContextMenu.ContextMenuItemClickEvent;
import com.constellio.app.ui.framework.buttons.ConfirmDialogButton;
import com.constellio.app.ui.framework.buttons.ConfirmDialogButton.DialogMode;
public abstract class ConfirmDialogContextMenuItemClickListener implements BaseContextMenuItemClickListener {
private DialogMode dialogMode;
public ConfirmDialogContextMenuItemClickListener() {
this(null);
}
public ConfirmDialogContextMenuItemClickListener(DialogMode dialogMode) {
this.dialogMode = dialogMode;
}
@Override
public void contextMenuItemClicked(ContextMenuItemClickEvent event) {
ConfirmDialogButton.showDialog(
dialogMode,
getConfirmDialogTitle(),
getConfirmDialogMessage(),
getConfirmDialogOKCaption(),
getConfirmDialogCancelCaption(),
new ConfirmDialog.Listener() {
public void onClose(ConfirmDialog dialog) {
if (dialog.isConfirmed()) {
confirmButtonClick(dialog);
} else {
dialogClosedWitoutConfirm(dialog);
}
}
});
}
protected String getConfirmDialogTitle() {
return $("ConfirmDialog.title");
}
protected String getConfirmDialogOKCaption() {
return $("ConfirmDialog.yes");
}
protected String getConfirmDialogCancelCaption() {
return $("ConfirmDialog.no");
}
protected void dialogClosedWitoutConfirm(ConfirmDialog dialog) {
}
protected abstract String getConfirmDialogMessage();
protected abstract void confirmButtonClick(ConfirmDialog dialog);
}