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

import javax.enterprise.inject.Specializes;

import de.ivu.elect.business.gebietsbaum.entity.Gebiet;
import de.ivu.elect.business.gebietsbaum.entity.NlGebiet;
import de.ivu.elect.jee.faces.Messages;


import static org.apache.commons.lang3.StringUtils.isNotBlank;

@Specializes
public class NlGebietsbaumTreeNodeIconResolver extends GebietsbaumTreeNodeIconResolver {

  private static final long serialVersionUID = 1L;

  public NlGebietsbaumTreeNodeIconResolver() {
    super();
  }

  @Override
  public String getIcon(Gebiet gebiet) {
    NlGebiet nlGebiet = new NlGebiet(gebiet);
    if (nlGebiet.isBriefwahlgebietAusland()) {
      return "fa fa-globe"; // ELECTVAPP-1312
    }
    return super.getIcon(gebiet);
  }

  @Override // Cf. NlGebietGebietsartNameMitIconColumn#getValue!!!
  public String getTitle(Gebiet gebiet, Messages messages) {
    String result = super.getTitle(gebiet, messages);

    if (gebiet != null && isNotBlank(result)) {
      NlGebiet nlGebiet = new NlGebiet(gebiet);

      if (nlGebiet.isBriefwahlgebietGemeinde()) {
        return messages.getMessageForMessageKey("briefwahlbezirk.gebietsart.format", result);
      }

      if (nlGebiet.isBriefwahlgebietAusland()) {
        return messages.getMessageForMessageKey("briefwahlbezirk.ausland.gebietsart.format", result);
      }
    }

    return result;
  }


}
