package de.ivu.elect.presentation.benutzerverwaltung;

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

import de.ivu.elect.business.benutzerverwaltung.entity.BenutzerParameter;
import de.ivu.elect.jee.presentation.dynamicform.FormBuilder;
import de.ivu.elect.presentation.benutzerverwaltung.form.BenutzerParameterViewFormBuilder;
import de.ivu.elect.presentation.hilfe.OnlineHilfeId;

@Named(AbstractBenutzerParameterEditView.COMPONENT_NAME)
@OnlineHilfeId(value = "489", mehrfachVergebenOk = true)
public class BenutzerParameterEditView extends AbstractBenutzerParameterEditView {

  private static final long serialVersionUID = 1L;

  @Inject
  private transient BenutzerParameterViewFormBuilder viewFormBuilder;

  public BenutzerParameterEditView() {
    super();
  }

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

  @Override
  public void addProperties(FormBuilder formBuilder, BenutzerParameter benutzerParameter) {
    viewFormBuilder.addProperties(formBuilder, benutzerParameter);
  }

  @Override
  public boolean isBtnSaveRendered() {
    return super.isBtnSaveRendered() && !isReadonlyParameter();
  }

  private boolean isReadonlyParameter() {
    return isEntitySet() && getEntity().getWertTyp().expectsWertIsReadonly();
  }

  @Override
  protected void callSave(BenutzerParameter entity) {
    super.callSave(entity);
    getPrincipal().resetEinstellungen();
  }
}
