
package de.ivu.elect.presentation.gebietsbaum;

import java.util.List;

import de.ivu.elect.business.gebietsbaum.entity.EntityMitGebietVeraenderbar;
import de.ivu.elect.business.gebietsbaum.entity.Gebiet;
import de.ivu.elect.business.gebietsbaum.entity.GebietConstants;
import de.ivu.elect.presentation.AbstractEntitySelectOneMenuProperty;

public class GebietSearchProperty extends AbstractEntitySelectOneMenuProperty<Gebiet> {

  private final EntityMitGebietVeraenderbar entityMitGebietVeraenderbar;

  private final GebietNummerFormatter gebietNummerFormatter;

  public GebietSearchProperty(EntityMitGebietVeraenderbar entityMitGebietVeraenderbar, List<Gebiet> gebiete, boolean hasNoSelectionItem,
      GebietNummerFormatter gebietNummerFormatter) {
    super(gebiete, hasNoSelectionItem);

    this.entityMitGebietVeraenderbar = entityMitGebietVeraenderbar;
    this.gebietNummerFormatter = gebietNummerFormatter;
  }

  @Override
  public Gebiet getValue() {
    return entityMitGebietVeraenderbar.getGebiet();
  }

  @Override
  public void setValue(Gebiet value) {
    entityMitGebietVeraenderbar.setGebiet(value);
  }

  @Override
  public String getItemLabel(Gebiet item) {
    return gebietNummerFormatter.getNameMitNummer(item);
  }

  @Override
  protected String getMessageKeyEntityEinzahl() {
    return GebietConstants.MESSAGE_KEY_ENTITY_EINZAHL;
  }
}
