package de.ivu.elect.presentation.gebietsbaum.tree;

import java.io.Serializable;
import java.util.function.Supplier;

import javax.enterprise.context.RequestScoped;
import javax.inject.Inject;

import de.ivu.elect.business.gebietsbaum.entity.Gebiet;
import de.ivu.elect.jee.presentation.Icons;

@RequestScoped
public class GebietsbaumDynamicIconResolver implements Serializable {

  private static final long serialVersionUID = 1L;

  @Inject
  protected transient Icons icons;

  public boolean isDynamicIcon(Supplier<Gebiet> gebiet) {
    return false;
  }

  public String getDynamischesIcon(String icon, Supplier<Gebiet> gebiet) {
    return icons.getIconStatus(getProzent(gebiet));
  }

  /**
   * @return Zahl zwischen 0 und 1 für prozentualen Status
   */
  protected Double getProzent(Supplier<Gebiet> gebiet) {
    return null;
  }

  protected Double getProzent(Long anzahlSoll, Long anzahlIst) {
    return Icons.getProzent(anzahlSoll, anzahlIst);
  }

  public String getDynamischenTitle(String title, Supplier<Gebiet> gebiet) {
    return title;
  }

  public String getDynamischenNameNummerFormatiert(String nameNummerFormatiert, Supplier<Gebiet> gebiet) {
    return nameNummerFormatiert;
  }
}
