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

import static java.util.Objects.nonNull;

import de.ivu.elect.business.stimmeingabe.entity.StimmeingabePlausiKonfiguration;
import de.ivu.elect.jee.faces.Messages;
import de.ivu.elect.jee.presentation.Icons;
import de.ivu.elect.jee.presentation.dynamictable.ColumnType;

public class StimmeingabePlausiKonfigurationFehlerartMitIconColumn extends AbstractStimmeingabePlausiKonfigurationColumn<StimmeingabePlausiKonfiguration> {

  private static final long serialVersionUID = 1L;

  private final Icons icons;

  public StimmeingabePlausiKonfigurationFehlerartMitIconColumn(Messages messages, Icons icons, AbstractStimmeingabePlausiKonfigurationColumn<StimmeingabePlausiKonfiguration> column) {
    super(column.getId(), messages, column.getHeaderKey(), ColumnType.ENUM, StimmeingabePlausiKonfiguration::getFehlerart);

    this.icons = icons;
  }

  @Override
  public boolean isIconPresent() {
    return true;
  }

  @Override
  public boolean isIconRendered(StimmeingabePlausiKonfiguration stimmeingabePlausiKonfiguration) {
    return nonNull(stimmeingabePlausiKonfiguration) && (stimmeingabePlausiKonfiguration.isFehlerartError() || stimmeingabePlausiKonfiguration.isFehlerartWarning());
  }

  @Override
  public String getIcon(StimmeingabePlausiKonfiguration stimmeingabePlausiKonfiguration) {
    if (nonNull(stimmeingabePlausiKonfiguration)) {
      if (stimmeingabePlausiKonfiguration.isFehlerartError()) {
        return icons.getIconAlert();
      }

      if (stimmeingabePlausiKonfiguration.isFehlerartWarning()) {
        return icons.getIconNotice();
      }
    }

    return super.getIcon(stimmeingabePlausiKonfiguration);
  }
}
