When (2) line commented then (1) line getEditedEntityLoader().load()
works fine and both log messages from onClientChangedEvent method appear in the log.
When (1) line commented then (2) line do nothing and only first log message from onClientChangedEvent method appear in the log. No any errors.
Other (additional) loaders of the screen loads good.
Problem only with getEditedEntityLoader().
@Component("test_ClientEventListener")
public class ClientEventListener {
private final UiEventPublisher uiEventPublisher;
public ClientEventListener(UiEventPublisher uiEventPublisher) {
this.uiEventPublisher = uiEventPublisher;
}
@TransactionalEventListener
public void onClientChangedAfterCommit(EntityChangedEvent<Client> event) {
uiEventPublisher.publishEvent(new ClientChangedEvent(event.getSource()));
}
}
@UiController("test_Client.edit")
@UiDescriptor("client-edit.xml")
@EditedEntityContainer("clientDc")
public class ClientEdit extends StandardEditor<Client> {
private static final Logger log = LoggerFactory.getLogger(ClientEdit.class);
@Autowired
private DataManager dataManager;
@Autowired
private TimeSource timeSource;
@Subscribe("backgroundSaveBtn")
public void onBackgroundSaveBtnClick(Button.ClickEvent event) {
var client = dataManager.load(Client.class).id(getEditedEntity().getId()).one();
client.setFirstName(timeSource.now().toString());
dataManager.save(client);
getEditedEntityLoader().load(); // (1)
}
@EventListener
private void onClientChangedEvent(ClientChangedEvent event) {
log.debug("ClientChangedEvent listener started");
getEditedEntityLoader().load(); // (2)
log.debug("ClientChangedEvent listener finished");
}
}
``