
package de.ivu.elect.presentation.gruppe.table;

import de.ivu.elect.business.gruppe.entity.Gruppe;
import de.ivu.elect.business.wahl.entity.Wahl;
import de.ivu.elect.jee.faces.Messages;
import de.ivu.elect.jee.presentation.dynamictable.ColumnType;

public class GruppeNameKennwortColumn extends AbstractGruppeColumn<Gruppe> {

  private static final long serialVersionUID = 1L;

  public GruppeNameKennwortColumn(Messages messages, Wahl wahl) {
    super("Gruppe-NameKennwort", messages, resolveHeaderMsgKey(wahl), ColumnType.STRING, Gruppe::getName);
  }

  // Cf. GruppeViewFormBuilder#addNamenProperty.
  private static String resolveHeaderMsgKey(Wahl wahl) {
    // NOTE ELECT-352, 'Name' der Gruppe heißt bei einem Einzelbewerber 'Kennwort'!
    String result = "gruppe.search.name.column.header";

    if (wahl!=null && wahl.isWahlMitReferendengebieten()) {
      result += ".referendum";
    }

    return result;
  }
}
