1

由于仍然没有从 RC-4 迁移到 RC-X 的手册,因此创建新项目或迁移旧项目并不容易。有谁知道如何显示 PopupView 来编辑某些内容并在完成活动或取消后在弹出类中再次关闭它?

不同的其他概念变化,如网格、item.writebean....我已经解决了。但是对于 Popup 找不到类似的解决方案。

提前感谢您的每一个提示。

4

3 回答 3

0

下面是第二个示例,我用它来打开一个包含列表框的对话框。从列表框中选择一个值后,我传输并以基础形式使用它:

    private void btEditL1_onClick(final ClickEvent<Button> event)
{
    //modal Dialog Mainclassification
    final HorizontalLayout horlayout=new HorizontalLayout();
    final VerticalLayout vertlayout=new VerticalLayout();
    final Notification MyL1Selection=new Notification();//
    final Button btnAbbruch=new Button();
    final ComboBox<TfinGroup> cBL1Liste = new ComboBox<>();

    btnAbbruch.setText("Abbruch");
    vertlayout.add(new Label("Bitte wählen Sie eine Klasse?"));
    horlayout.add(cBL1Liste);
    horlayout.add(btnAbbruch);
    vertlayout.add(horlayout);

    cBL1Liste.setDataProvider(DataProvider.ofCollection(TfinGroupDAO.INSTANCE.findMainGroups()));
    cBL1Liste.setItemLabelGenerator(ItemLabelGeneratorFactory
        .NonNull(v -> CaptionUtils.resolveCaption(v, "{%id}, {%groupName}")));




    cBL1Liste.addValueChangeListener(evtChangeSelektion ->
    {
        this.logger.info("Es wurde ein Wert aus der Liste selektiert: "+ evtChangeSelektion.getValue().getId());
        // muss zu cB2 übergeben werden und in Textfeld         nrL1Id
        this.nrL1Id.setValue((double)evtChangeSelektion.getValue().getId());
        MyL1Selection.close();

    });

    btnAbbruch.addClickListener(evtclose->
    {
        this.logger.info("Abbrechen geklickt");
        MyL1Selection.close();
    });


    vertlayout.add(horlayout);
    horlayout.add(btnAbbruch);

    MyL1Selection.add(vertlayout);
    MyL1Selection.setPosition(Position.MIDDLE);
    MyL1Selection.addThemeVariants(NotificationVariant.LUMO_PRIMARY);
    MyL1Selection.open();
    this.btnEditL2.setVisible(true);

}
于 2020-05-04T15:15:49.293 回答
0

我在 rapidclipse X 应用程序中有一个删除确认对话框。也许您可以使用以下示例来满足您的要求。对不起德语对话,没有更深入的解释:

    private void btnDelete_onClick(final ClickEvent<Button> event)
{
    final HorizontalLayout horlayout=new HorizontalLayout();
    final VerticalLayout vertlayout=new VerticalLayout();
    final Notification myDelRequest=new Notification();//
    final Button btnAbbr=new Button();

    this.logger.info("Der Datensatz mit der ID soll gelöscht werden: " + this.nrDmvId.getValue().toString());

    if(this.nrDmvId.getValue() != null && this.nrDmvId.getValue() > 0)
    {

        btnAbbr.addClickListener(evtclose->
        {
            this.logger.info("Der Datensatz mit der ID wurde nicht gelöscht: " + this.nrDmvId.getValue().toString());
            myDelRequest.close();
        });

        btnAbbr.setText("Abbrechen");
        final Button btnDelConf=new Button();
        btnDelConf.addClickListener(evtDelete -> {

            try {

                if(this.binder.validate().isOk())
                {
                    final boolean confirm = new OkmDbMetadataValueDAO().removeById(this.nrDmvId.getValue().longValue());
                    this.logger.info("Der Datensatz mit der ID ist gelöscht: " + this.nrDmvId.getValue().toString()+ ", Rückgabe= "+ Boolean.toString(confirm));

                    this.btnDelete.setVisible(false);
                    this.btnSave.setVisible(false);
                    this.fiRegalplatz.setVisible(false);
                    this.fiposition.setVisible(false);
                    this.fiKurzBez.setVisible(false);
                    this.fiBeschreibung.setVisible(false);
                    this.frmRegale.setVisible(false);

                }
            }
            catch(final Exception e)
            {
                e.printStackTrace();
            }


            myDelRequest.close();

        });


        btnDelConf.setText("Daten löschen");
        vertlayout.add(new Label("Wollen Sie den Datensatz wirklich löschen?"));
        vertlayout.add(horlayout);
        horlayout.add(btnAbbr);
        horlayout.add(btnDelConf);

        myDelRequest.add(vertlayout);
        myDelRequest.setPosition(Position.MIDDLE);
        myDelRequest.addThemeVariants(NotificationVariant.LUMO_PRIMARY);
        myDelRequest.open();
    }

}
于 2020-05-04T15:08:44.940 回答
0

我要做的是创建一个继承自 Dialog 的新 GUI 元素。然后可以使用 GUI-Builder 设计此视图。然后要显示对话框,您所要做的就是创建一个新实例,然后在其上调用open()方法。

示例: new EditPopup(myBean).open(); <- EditPopup 继承自 Dialog

关闭对话框就像调用this.close();一样简单。

希望这可以帮助 :)

于 2020-02-13T12:31:20.667 回答