
package de.ivu.elect.presentation.search.menu;

import de.ivu.elect.business.search.entity.BenutzerSuchparameter;
import de.ivu.elect.jee.faces.FacesContextUtil;
import de.ivu.elect.presentation.ViewHavingSuchparameterSpeicherbar;

public abstract class AbstractBenutzerSuchparameterAuswaehlenMenuItemEntry extends AbstractBenutzerSuchparameterMenuItemEntry {

  private static final long serialVersionUID = 1L;

  private BenutzerSuchparameter benutzerSuchparameter;

  public AbstractBenutzerSuchparameterAuswaehlenMenuItemEntry() {
    super();
  }

  @Override
  public boolean isRendered() {
    return benutzerSuchparameter != null;
  }

  @Override
  protected boolean isDisabledInternal() {
    return benutzerSuchparameter == null;
  }

  public void setBenutzerSuchparameter(BenutzerSuchparameter benutzerSuchparameter) {
    this.benutzerSuchparameter = benutzerSuchparameter;
  }

  @Override
  public String getTargetViewId() {
    return null; // doAction
  }

  @Override
  public String doAction() {
    if (benutzerSuchparameter != null) {
      ViewHavingSuchparameterSpeicherbar view = getCurrentView();

      if (view != null) {
        view.initSuchparameterState(benutzerSuchparameter);

        // TODO es ist nicht notwendig, die ganze Seite neuzuladen...
      }
    }

    return FacesContextUtil.getCurrentViewId();
  }

  @Override
  protected String getLabel() {
    if (benutzerSuchparameter == null) {
      return "";
    }

    return getMessage(getLabelKey(), benutzerSuchparameter.getName());
  }

  @Override
  public String getLabelKey() {
    return "benutzer.suchvorlage.auswaehlen.menu.item.label";
  }

  @Override
  public String getIcon() {
    return getIcons().getIconRepeat();
  }

  public static class BenutzerSuchparameterAuswaehlenMenuItemEntry01 extends AbstractBenutzerSuchparameterAuswaehlenMenuItemEntry {

    private static final long serialVersionUID = 1L;
  }

  public static class BenutzerSuchparameterAuswaehlenMenuItemEntry02 extends AbstractBenutzerSuchparameterAuswaehlenMenuItemEntry {

    private static final long serialVersionUID = 1L;
  }

  public static class BenutzerSuchparameterAuswaehlenMenuItemEntry03 extends AbstractBenutzerSuchparameterAuswaehlenMenuItemEntry {

    private static final long serialVersionUID = 1L;
  }

  public static class BenutzerSuchparameterAuswaehlenMenuItemEntry04 extends AbstractBenutzerSuchparameterAuswaehlenMenuItemEntry {

    private static final long serialVersionUID = 1L;
  }

  public static class BenutzerSuchparameterAuswaehlenMenuItemEntry05 extends AbstractBenutzerSuchparameterAuswaehlenMenuItemEntry {

    private static final long serialVersionUID = 1L;
  }

  public static class BenutzerSuchparameterAuswaehlenMenuItemEntry06 extends AbstractBenutzerSuchparameterAuswaehlenMenuItemEntry {

    private static final long serialVersionUID = 1L;
  }

  public static class BenutzerSuchparameterAuswaehlenMenuItemEntry07 extends AbstractBenutzerSuchparameterAuswaehlenMenuItemEntry {

    private static final long serialVersionUID = 1L;
  }

  public static class BenutzerSuchparameterAuswaehlenMenuItemEntry08 extends AbstractBenutzerSuchparameterAuswaehlenMenuItemEntry {

    private static final long serialVersionUID = 1L;
  }

  public static class BenutzerSuchparameterAuswaehlenMenuItemEntry09 extends AbstractBenutzerSuchparameterAuswaehlenMenuItemEntry {

    private static final long serialVersionUID = 1L;
  }

  public static class BenutzerSuchparameterAuswaehlenMenuItemEntry10 extends AbstractBenutzerSuchparameterAuswaehlenMenuItemEntry {

    private static final long serialVersionUID = 1L;
  }
}
