protected void commitBulkChanges() {
List<String> fields = new ArrayList<>();
for (Map.Entry<String, Field> fieldEntry : dataFields.entrySet()) {
Field field = fieldEntry.getValue();
if (isFieldChanged(field)) {
fields.add(managedFields.get(fieldEntry.getKey()).getFqn());
}
}
for (Map.Entry<String, Field> fieldEntry : dataFields.entrySet()) {
Field field = fieldEntry.getValue();
if (!field.isEnabled()) {
for (Entity item : items) {
ensureEmbeddedPropertyCreated(item, fieldEntry.getKey());
item.setValueEx(fieldEntry.getKey(), null);
}
} else if (isFieldChanged(field)) {
for (Entity item : items) {
ensureEmbeddedPropertyCreated(item, fieldEntry.getKey());
item.setValueEx(fieldEntry.getKey(), field.getValue());
}
}
}
Set<Entity> committed = dataSupplier.commit(new CommitContext(items));
Logger logger = LoggerFactory.getLogger(BulkEditorWindow.class);
logger.info("Applied bulk editing for {} entries of {}. Changed properties: {}",
committed.size(), metaClass, StringUtils.join(fields, ", "));
showNotification(formatMessage("bulk.successMessage", committed.size()), NotificationType.HUMANIZED);
close(COMMIT_ACTION_ID);
}