由于仍然没有从 RC-4 迁移到 RC-X 的手册,因此创建新项目或迁移旧项目并不容易。有谁知道如何显示 PopupView 来编辑某些内容并在完成活动或取消后在弹出类中再次关闭它?
不同的其他概念变化,如网格、item.writebean....我已经解决了。但是对于 Popup 找不到类似的解决方案。
提前感谢您的每一个提示。
由于仍然没有从 RC-4 迁移到 RC-X 的手册,因此创建新项目或迁移旧项目并不容易。有谁知道如何显示 PopupView 来编辑某些内容并在完成活动或取消后在弹出类中再次关闭它?
不同的其他概念变化,如网格、item.writebean....我已经解决了。但是对于 Popup 找不到类似的解决方案。
提前感谢您的每一个提示。
下面是第二个示例,我用它来打开一个包含列表框的对话框。从列表框中选择一个值后,我传输并以基础形式使用它:
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);
}
我在 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();
}
}
我要做的是创建一个继承自 Dialog 的新 GUI 元素。然后可以使用 GUI-Builder 设计此视图。然后要显示对话框,您所要做的就是创建一个新实例,然后在其上调用open()方法。
示例: new EditPopup(myBean).open(); <- EditPopup 继承自 Dialog
关闭对话框就像调用this.close();一样简单。
希望这可以帮助 :)