
package de.ivu.elect.presentation.wahlvorschlag.form;

import java.util.List;

import de.ivu.elect.business.wahlvorschlag.entity.Liste;
import de.ivu.elect.business.wahlvorschlag.entity.ListeConstants;
import de.ivu.elect.jee.presentation.dynamicform.AbstractSelectManyStringAutoCompleteProperty;

public class ListeListenverbindungEingereichtAutoCompleteProperty extends AbstractSelectManyStringAutoCompleteProperty {

  private static final String UNKNOW_OPTION_SUFFIX_LABEL_MSG_KEY = "ListeListenverbindungEingereichtAutoCompleteProperty.suffix.fuer.nicht.vorgeschlagenen.wert";

  private final Liste liste;

  public ListeListenverbindungEingereichtAutoCompleteProperty(Liste liste,
      ListeListenverbindungEingereichtAutoCompleteOptionsProvider optionsProvider) {
    super(optionsProvider, UNKNOW_OPTION_SUFFIX_LABEL_MSG_KEY);

    this.liste = liste;

    optionsProvider.setGebiet(this.liste.getGebiet());
  }

  @Override
  public boolean getDefaultRequired() {
    return !ListeConstants.LISTENVERBINDUNG_EINGEREICHT_NULLABLE;
  }

  @Override
  protected String getDefaultLabelMsgKey() {
    return ListeConstants.MESSAGE_KEY_LISTENVERBINDUNG_EINGEREICHT_EINZAHL;
  }

  @Override
  public int getMaxQueryLength() {
    return ListeConstants.LISTENVERBINDUNG_EINGEREICHT_MAX_LENGTH;
  }

  @Override
  public int getMinQueryLength() {
    return 2;
  }

  @Override
  protected List<String> getValueInternal() {
    return liste.getListenverbindungEingreichtAsList();
  }

  @Override
  protected void setValueInternal(List<String> selection) {
    liste.setListenverbindungEingreichtFromList(selection);
  }
}
