自定义组件中的确认对话框加载项



我确实下载了ConfirmDialog插件。现在,我正在尝试在我的自定义组件中创建一个确认,但我想这不适用于这个 ui。

public class Customer extends CustomComponent implements Button.ClickListener{
    private Button btnSave;
    private VerticalLayout vLayout;
    public Customer(){
        vLayout = new VerticalLayout();
        setCompositionRoot(vLayout);
        btnSave = new Button("Save");
        btnSave.addClickListener(this);
        vLayout.addComponent(btnSave);
    }
    @Override
    public void buttonClick(ClickEvent event) {
        if(event.getButton() == btnSave){
            save();    
        } 
    }
    /** save informations if ConfirmDialog return true */
    private void save(){
        ConfirmDialog.show(this, "Please Confirm:", "Are you really sure?",
            "I am", "Not quite", new ConfirmDialog.Listener() {
                public void onClose(ConfirmDialog dialog) {
                    if (dialog.isConfirmed()) {
                        System.out.println(dialog.isConfirmed());
                    } else {
                        System.out.println(dialog.isConfirmed());                       }
                }
            });
    }
}

当我创建确认对话框并将我的自定义组件传递为 Ui(this) 不接受时。我尝试通过空,但不起作用。

问题就解决了。我确实使用了UI.getCurrent()并且工作。

/** save informations if ConfirmDialog return true */
private void save(){
    ConfirmDialog.show(UI.getCurrent(), "Please Confirm:", "Are you really sure?",
        "I am", "Not quite", new ConfirmDialog.Listener() {
            public void onClose(ConfirmDialog dialog) {
                if (dialog.isConfirmed()) {
                    System.out.println(dialog.isConfirmed());
                } else {
                    System.out.println(dialog.isConfirmed());                       }
            }
        });
}

最新更新