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

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

import javax.inject.Inject;
import javax.inject.Named;

import de.ivu.elect.jee.presentation.menu.MenuEntry;
import de.ivu.elect.presentation.ui.AbstractPageMenuModelBuilder;

@Named(EntschaedigungPageMenu.COMPONENT_NAME)
public class EntschaedigungPageMenu extends AbstractPageMenuModelBuilder {

  private static final long serialVersionUID = 1L;

  public static final String COMPONENT_NAME = "entschaedigungPageMenu";

  @Inject
  private transient AuszahlungPageMenu auszahlungPageMenu;

  @Inject
  private transient EntschaedigungsartSearchMenu entschaedigungsartSearchMenu;

  @Inject
  private transient EntschaedigungStatusMenuItemEntry entschaedigungStatusMenuItemEntry;

  @Inject
  private transient EntschaedigungsartSearchMenuItemEntry entschaedigungsartSearchMenuItemEntry;

  @Inject
  private transient EntschaedigungsartCreateMenuItemEntry entschaedigungsartCreateMenuItemEntry;

  @Inject
  private transient EntschaedigungsartImportMenuItemEntry entschaedigungsartImportMenuItemEntry;

  @Inject
  private transient EntschaedigungsartExportMenuItemEntry entschaedigungsartExportMenuItemEntry;

  public EntschaedigungPageMenu() {
    super();
  }

  @Override
  public List<MenuEntry> getMenuEntriesSorted() {
    List<MenuEntry> result = new ArrayList<>();

    result.add(entschaedigungStatusMenuItemEntry);

    result.add(separator);
    result.addAll(auszahlungPageMenu.getMenuEntriesSorted());

    result.add(separator);
    result.add(entschaedigungsartSearchMenuItemEntry);

    if (entschaedigungsartSearchMenu.getMenuEntriesSorted().size() < 2) { // ELECT-9084
      result.add(entschaedigungsartCreateMenuItemEntry);
    }

    result.add(entschaedigungsartImportMenuItemEntry);
    result.add(entschaedigungsartExportMenuItemEntry);

    return result;
  }
}
