
package de.ivu.elect.presentation.entschaedigung;

import javax.inject.Inject;
import javax.inject.Named;

import de.ivu.elect.business.entschaedigung.entity.Entschaedigungsart;
import de.ivu.elect.business.entschaedigung.entity.EntschaedigungsartConstants;
import de.ivu.elect.jee.presentation.dynamicform.FormBuilder;
import de.ivu.elect.presentation.entschaedigung.form.EntschaedigungsartViewFormBuilder;
import de.ivu.elect.presentation.hilfe.OnlineHilfeId;

@OnlineHilfeId("589")
@Named(AbstractEntschaedigungsartEditNoScopeView.COMPONENT_NAME)
public class EntschaedigungsartEditView extends AbstractEntschaedigungsartEditView {

  private static final long serialVersionUID = 1L;

  @Inject
  private transient EntschaedigungsartViewFormBuilder entschaedigungsartViewFormBuilder;

  public EntschaedigungsartEditView() {
    super();
  }

  @Override
  protected boolean isGebietBearbeitenRechtPruefen() {
    return false;
  }

  public String getPageTitle() {
    return getMessage("entity.edit.page.title", getMessage(getEntityMsgKey()));
  }

  public String getPageHeader() {
    return getMessage("entity.edit.page.header", getMessage(getEntityMsgKey()));
  }

  private String getEntityMsgKey() {
    if (isEntitySet()) {
      String msgKey = "Entschaedigungsart." + getEntity().getKriteriumPersonendatenArt();

      if (getMessages().isMessageKeyVorhanden(msgKey)) {
        return msgKey;
      }
    }

    return EntschaedigungsartConstants.MESSAGE_KEY_ENTITY_EINZAHL;
  }

  @Override
  public void addProperties(FormBuilder formBuilder, Entschaedigungsart entschaedigungsart) {
    if (!entschaedigungsartViewFormBuilder.isBearbeitbar(entschaedigungsart)) {
      addWarningMessage("entschaedigungsart.edit.entity.readonly.message");
    }

    entschaedigungsartViewFormBuilder.addProperties(formBuilder, entschaedigungsart, false);
  }
}
