Vaadin Button动作和MessageBox有2个动作要做

时间:2017-09-07 15:41:27

标签: java button calendar vaadin messagebox

我创建了一个删除按钮,用于删除数据库和日历中的数据。但我想使用MessageBox来确保这不是一个错误的选择。但是我无法在我的MessageBox.WithYesButton()中添加2个动作,所以你知道我该怎么做吗? 这是我的代码:

remove.addClickListener(new Button.ClickListener() {
            @Override
            public void buttonClick(Button.ClickEvent event) {
                for (CalendaringItem calendaringItem : calendaringList.getCalendarings()) {
                    MessageBox.createQuestion().withMessage("Do you want to delete this event ?").withYesButton(()
                            -> calendaringItem.delete(calendaringItem, name.getValue())).withNoButton().open();
                    //calendar.removeEvent(e);
                }
                window.close();
            }
        });

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

 MessageBox.createQuestion()
           .withMessage("Do you want to delete this event ?")
           .withYesButton( () -> {
               calendaringItem.delete(calendaringItem, name.getValue());
               //action
               //action2 ...
           })
           .withNoButton().open();

更重要的是,您不必声明新的ClickListener。你可以这样做:

remove.addClickListener(event -> {
    actionAfterButtonClick();
});