package de.ivu.elect.presentation.wahl.action;

import java.util.ArrayList;
import java.util.List;

import javax.enterprise.inject.Specializes;
import javax.inject.Inject;

import de.ivu.elect.business.wahl.entity.Wahl;
import de.ivu.elect.jee.presentation.action.ActionEntry;

/**
 *  on 26.07.2016.
 */
@Specializes
public class CommonWahlActionMenu extends WahlActionMenu {

  private static final long serialVersionUID = 1;

  @Inject
  protected transient WahlZurBearbeitungAuswaehlenAction wahlZurBearbeitungAuswaehlenAction;

  @Inject
  protected transient WahlSperrenAction wahlSperrenAction;

  @Inject
  protected transient WahlEntsperrenAction wahlEntsperrenAction;

  @Inject
  protected transient WahlArchivierenAction wahlArchivierenAction;

  @Inject
  protected transient WahlEntarchivierenAction wahlEntarchivierenAction;

  @Override
  protected List<ActionEntry<Wahl>> getActionEntriesSorted() {
    List<ActionEntry<Wahl>> result = new ArrayList<>(super.getActionEntriesSorted());

    result.add(0, wahlZurBearbeitungAuswaehlenAction);
    result.add(result.indexOf(wahlEditAction)+1, wahlSperrenAction);
    result.add(result.indexOf(wahlSperrenAction)+1, wahlEntsperrenAction);
    result.add(result.indexOf(wahlEntsperrenAction)+1, wahlArchivierenAction);
    result.add(result.indexOf(wahlArchivierenAction)+1, wahlEntarchivierenAction);
    return result;
  }
}
