
package de.ivu.elect.presentation.personenpruefung;

import javax.inject.Inject;

import de.ivu.elect.business.person.entity.Personendaten;
import de.ivu.elect.business.personenpruefung.entity.PersonenKonfliktArt;
import de.ivu.elect.jee.presentation.dynamicform.AdvancedDynaFormModel;
import de.ivu.elect.jee.presentation.dynamicform.FormBuilder;
import de.ivu.elect.presentation.hilfe.OnlineHilfeId;
import de.ivu.elect.presentation.person.form.PersonendatenViewFormBuilder;

@OnlineHilfeId("600")
public abstract class AbstractPersonenKonfliktKontoverbindungMehrfachAngegebenAufloesenView extends AbstractPersonenKonfliktAufloesenView {

  private static final long serialVersionUID = 1L;

  public static final String COMPONENT_NAME = "personenKonfliktKontoverbindungMehrfachAngegebenAufloesenView";

  public static final String VIEW_ID = "/personenpruefung/personen-konflikt-kontoverbindung-mehrfach-angegeben-aufloesen.xhtml";

  @Inject
  private transient PersonendatenViewFormBuilder personendatenViewFormBuilder;

  private AdvancedDynaFormModel model;

  public AbstractPersonenKonfliktKontoverbindungMehrfachAngegebenAufloesenView() {
    super();
  }

  @Override
  public String getViewId() {
    return VIEW_ID;
  }

  @Override
  public PersonenKonfliktArt getExpectedKonfliktArt() {
    return PersonenKonfliktArt.KONTOVERBINDUNG_MEHRFACH_ANGEGEBEN;
  }

  public String getPersonendatenHeader() {
    return konfliktMeta.getPersonendatenEinzahlMessage();
  }

  public AdvancedDynaFormModel getPersonendatenModel() {
    if (model == null) {
      FormBuilder formBuilder = new FormBuilder();

      Personendaten personendaten = getPersonendaten();

      personendatenViewFormBuilder.addBasicPersonendatenProperties(formBuilder, personendaten, true);
      personendatenViewFormBuilder.addDefaultKontoverbindungProperties(formBuilder, personendaten, personendaten.getKontoverbindung(), true);

      model = formBuilder.createModel();
    }

    return model;
  }

  @Override
  public boolean isBtnMarkPersonendatenInvalidRendered() {
    return false;
  }

  @Override
  protected String getMarkPersonendatenValidMsgKey() {
    return "personen.konflikt.kontoverbindung.mehrfach.angegeben.aufloesen.action";
  }
}
