protected boolean doNotReloadEditedEntity() { if (isEntityModifiedInParentContext()) { InstanceContainer<T> container = getEditedEntityContainer(); if (getEntityStates().isLoadedWithView(entityToEdit, container.getView())) { return true; } } return false; }
protected boolean isEntityModifiedRecursive(Entity entity, DataContext dataContext, HashSet<Object> visited) { if (visited.contains(entity)) { return false; } visited.add(entity); if (dataContext.isModified(entity) || dataContext.isRemoved(entity)) return true; for (MetaProperty property : entity.getMetaClass().getProperties()) { if (property.getRange().isClass()) { if (getEntityStates().isLoaded(entity, property.getName())) { Object value = entity.getValue(property.getName()); if (value != null) { if (value instanceof Collection) { for (Object item : ((Collection) value)) { if (isEntityModifiedRecursive((Entity) item, dataContext, visited)) { return true; } } } else { if (isEntityModifiedRecursive((Entity) value, dataContext, visited)) { return true; } } } } } } return false; }
if (getEntityStates().isNew(entityToEdit) || doNotReloadEditedEntity()) { T mergedEntity = getScreenData().getDataContext().merge(entityToEdit); && getEntityStates().isNew(entityToEdit) && mergedEntity instanceof BaseGenericIdEntity) { tools.initDefaultAttributeValues((BaseGenericIdEntity) mergedEntity, mergedEntity.getMetaClass());
Security security = getBeanLocator().get(Security.class); if (!getEntityStates().isNew(entityToEdit) && security.isEntityOpPermitted(container.getEntityMetaClass(), EntityOp.UPDATE)) { this.readOnly = false;