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

import static org.apache.commons.lang3.StringUtils.trimToEmpty;

import de.ivu.elect.business.gebietsbaum.entity.Gebiet;
import de.ivu.elect.business.gebietsbaum.entity.NlGebiet;
import de.ivu.elect.business.gebietsbaum.entity.NlGebietKorrekturenStimmeingabenStatus;
import de.ivu.elect.business.security.Customer;
import de.ivu.elect.jee.faces.Messages;
import de.ivu.elect.jee.presentation.dynamictable.ColumnType;

public class NlWasGebietKorrekturenStimmeingabenStatusColumn extends AbstractGebietColumn<Gebiet> {

  private static final long serialVersionUID = 1L;

  public NlWasGebietKorrekturenStimmeingabenStatusColumn(Messages messages, Customer customer) {
    super("Nl-Was-Gebiet-Korrekturen-Stimmeingaben-Status-Column", messages, "nl.gebiet.korrekturen.stimmeingaben.status.header", ColumnType.STRING, gebiet -> {
      if (NlGebietKorrekturenStimmeingabenStatus.isRelevant(gebiet, customer)) {
        NlGebietKorrekturenStimmeingabenStatus korrekturenStimmeingabenStatus = new NlGebiet(gebiet).getKorrekturenStimmeingabenStatus();

        return trimToEmpty(korrekturenStimmeingabenStatus.getIconGebietsbaum(messages) + " " + messages.lokalisiere(korrekturenStimmeingabenStatus));
      }

      return messages.lokalisiere(NlGebietKorrekturenStimmeingabenStatus.UNBEKANNT);
    });
  }
}
