/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package entities;

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

import javax.faces.bean.ManagedBean;
import javax.faces.bean.ApplicationScoped;

@ManagedBean(name = "control")
@ApplicationScoped
public class Control {

  private List<Nachricht> nachrichten;

  //@Resource(name="nachricht")
  //private Nachricht n;
  public Control() {
    nachrichten = new ArrayList<Nachricht>();
  }

  public String neueNachricht() {  //könnte auch direkt in action stehen
    return "./neueNachricht.xhtml";
  }

  public String nachrichtLesen() {  //könnte auch direkt in action stehen
    return "./nachrichtLesen.xhtml";
  }

  public String zumStart(Nachricht n) {
    reset(n);
    return "./index.xhtml";
  }

  public String uebernehmen(Nachricht n) {
    System.out.println("uebernehme " + n);
    nachrichten.add(new Nachricht(n.getCode1(), n.getCode2(), n.getNachricht(), n.getAnzahl()));
    System.out.println("Nachrichten: " + nachrichten);
    reset(n);
    return "eintragErfolgreich.xhtml";
  }

  private void reset(Nachricht n) {
    n.setAnzahl(0);
    n.setCode1("");
    n.setCode2("");
    n.setNachricht("");
  }

  public String abfragen(Nachricht n) {
    String ausgabe = "Treffen um 730 in KN2";
    if (n.getCode1() != null && n.getCode2() != null) {
      if (n.getCode1().equals("x") && n.getCode2().equals("x")) {
        for (Nachricht na : nachrichten) {
          System.out.println(na);
        }
      }
      Nachricht erg = null;
      for (Nachricht na : nachrichten) {
        if (n.getCode1().equals(na.getCode1()) && n.getCode2().equals(na.getCode2()) && na.getAnzahl() > 0) {
          erg = na;
        }
      }
      if (erg != null) {
        erg.setAnzahl(erg.getAnzahl() - 1);
        ausgabe = erg.getNachricht();
      }
    }
    n.setNachricht(ausgabe);
    return "./ergebnis.xhtml";
  }

  public List<Nachricht> getNachrichten() {
    return nachrichten;
  }

  public void setNachrichten(List<Nachricht> nachrichten) {
    this.nachrichten = nachrichten;
  }
}
