Hello,
I’m using Cuba 7.2.13.
I’m trying to close all the open screens with default close action from main screen using below code.
Collection<Screen> openScreens = screens.getOpenedScreens().getWorkAreaScreens();
AtomicInteger failedScreenCount = new AtomicInteger();
AtomicInteger closedScreenCount = new AtomicInteger();
while(openScreens.size() > 0 && failedScreenCount.get() == 0) {
Iterator<Screen> iterator = openScreens.iterator();
while (iterator.hasNext()) {
Screen screen = iterator.next();
Component uiComponent = screen.getWindow()
.unwrapComposition(Component.class);
if (uiComponent.isAttached()) {
OperationResult result = screen.closeWithDefaultAction();
if (result != OperationResult.success()) {
screen.addAfterCloseListener(afterCloseEvent -> {
closedScreenCount.getAndIncrement();
if(failedScreenCount.get() == closedScreenCount.get())
validateScreens(selectedEntity);
});
failedScreenCount.getAndIncrement();
}
iterator.remove();
}
}
}
If user has any unsaved edit in any of the screen there is a popup with Save, Don’t Save and Cancel button as below.
My requirement is to have only Save and Don’t save (Remove cancel button ) while closing screen through this code.
Please guide me how to get this done.
Thanks & Regards,
Hari