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

import javax.annotation.Nullable;

import de.ivu.elect.business.gebietsbaum.boundary.GebietsarteigenschaftExtendedDAO;
import de.ivu.elect.business.gebietsbaum.entity.Gebietsarteigenschaft;
import de.ivu.elect.business.gebietsbaum.entity.GebietsarteigenschaftConstants;
import de.ivu.elect.jee.faces.Messages;
import de.ivu.elect.jee.presentation.dynamictable.ColumnType;

public class GebietsarteigenschaftGebietsartColumn extends AbstractGebietsarteigenschaftColumn<Gebietsarteigenschaft> {

  private static final long serialVersionUID = 1L;

  private final GebietsarteigenschaftExtendedDAO gebietsarteigenschaftExtendedDAO;

  public GebietsarteigenschaftGebietsartColumn(Messages messages, GebietsarteigenschaftExtendedDAO gebietsarteigenschaftExtendedDAO) {
    super("gebietsart", messages, GebietsarteigenschaftConstants.MESSAGE_KEY_GEBIETSART_ID_EINZAHL, ColumnType.STRING, null);

    this.gebietsarteigenschaftExtendedDAO = gebietsarteigenschaftExtendedDAO;
  }

  @Override
  public Object getValue(Gebietsarteigenschaft gebietsarteigenschaft) {
    return gebietsarteigenschaftExtendedDAO.attach(gebietsarteigenschaft).getGebietsart().getTitelWennLeerName();
  }

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

  @Override
  public boolean isIconRendered(Gebietsarteigenschaft entity) {
    return super.isIconRendered(entity) || entity != null;
  }

  @Nullable
  @Override
  public String getIcon(Gebietsarteigenschaft entity) {
    return gebietsarteigenschaftExtendedDAO.attach(entity).getGebietsart().getIcon().getIcon();
  }
}
