*/
public abstract class AbstractCdmDetailElement<T> extends AbstractCdmFormElement implements ICdmDetailElement<T>, Observer {
- private static final EnumSet<CRUD> UPDATE = EnumSet.of(CRUD.UPDATE);
-
private T entity;
private boolean irrelevant;
+ private EnumSet<CRUD> requiredCrud = null;
+
/**
* <p>
* Constructor for AbstractCdmDetailElement.
@Override
public void setEntity(T entity) {
this.entity = entity;
+ if(StoreUtil.getCdmEntity(getEntity()).getCreatedBy() == null) {
+ // new entity, not yet persisted to the database
+ requiredCrud = EnumSet.of(CRUD.CREATE);
+ } else {
+ requiredCrud = EnumSet.of(CRUD.UPDATE);
+ }
updateContent();
}
protected void updateControlStates(){
- setEnabled(getEntity() != null && CdmStore.currentAuthentiationHasPermission(StoreUtil.getCdmEntity(getEntity()), UPDATE));
+ setEnabled(getEntity() != null && CdmStore.currentAuthentiationHasPermission(StoreUtil.getCdmEntity(getEntity()), requiredCrud));
}
}