RapidClipse X - PopupView - PullRequest
       44

RapidClipse X - PopupView

0 голосов
/ 11 февраля 2020

Поскольку до сих пор нет руководства по переходу с R C -4 на R C -X, создать новые проекты или перенести старые не так просто. Кто-нибудь знает, как показать PopupView для редактирования чего-либо и снова закрыть его во всплывающем классе после завершения действий или при отмене?

различные другие концептуальные изменения, такие как grid, item.writebean .... Я уже решил. Но для Popup не могу найти подобное решение.

Заранее благодарим за каждый намек.

Ответы [ 3 ]

0 голосов
/ 04 мая 2020

У меня есть диалоговое окно подтверждения удаления в приложении quickclipse 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();
    }

}
0 голосов
/ 04 мая 2020

Ниже вы найдете второй пример, который я использую, чтобы открыть диалог со списком в нем. После выбора значения из списка я передаю и использую его в базовой форме:

    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);

}
0 голосов
/ 13 февраля 2020

Что я хотел бы сделать, это создать новый GUI -элемент, который наследуется от диалога. Этот вид затем может быть разработан с помощью GUI -Builder. Чтобы затем показать диалоговое окно, все, что вам нужно сделать, это создать новый экземпляр , а затем вызвать для него метод open () .

Пример: new EditPopup (myBean) .open (); <- EditPopup наследует от Dialog </p>

Чтобы закрыть диалоговое окно, достаточно просто вызвать this.close ();

Надеюсь, это поможет:)

...