/*
   * Observer dei pacchetti
   * */
  @Override
  public void addPack(Pacchetto pacchetto) {
    accessoCatalogoView.addPack(pacchetto);

    accessoCatalogoView.buildOfferte();

    //        accessoCatalogoView.deleteOffFromList(pacchetto);

  }
  /*
   *
   *   Listener dell'immagine con la lente d'ingrandimento , serve a mostrare le informazioni complete relative
   *   a quell'offerta
   * */
  public void visualizzaOffertePernotto(MouseEvent event) {

    ImageView o = (ImageView) event.getSource();

    //
    // accessoCatalogoView.mostraOfferta(accessoCatalogoModel.findOff(o.getId(),TipoOfferta.OffertaPernotto));
    accessoCatalogoView.mostraOfferta(
        DAOFactory.getDAOFactory(TipoOfferta.OffertaPernotto).getOffertaDAO().findOff(o.getId()));
  }
  public void radioPern(ActionEvent event) {

    RadioButton o = (RadioButton) event.getSource();
    //        offertaPernotto = (OffertaPernotto)
    // accessoCatalogoModel.findOff(o.getId(),TipoOfferta.OffertaPernotto);
    offertaPernotto =
        (OffertaPernotto)
            DAOFactory.getDAOFactory(TipoOfferta.OffertaPernotto)
                .getOffertaDAO()
                .findOff(o.getId());
    accessoCatalogoView.setEffect(2, offertaPernotto.getCittà());
  }
  /*
   *
   * Listener del pulsante "Aggiungi pacchetto" ,preleva le offerte relative alle checkbox selezionate
   *
   * e istanzia il AggregazioneOfferteControl che mostrerà il necessario per l'aggregazione delle offerte
   *
   * */
  public void addPack(ActionEvent event) {
    accessoCatalogoView.setEffect(0, null);
    for (CheckBox checkBox : checkBoxes)
      if (checkBox.isSelected()) {
        offertaEvento.add(
            (OffertaEvento)
                DAOFactory.getDAOFactory(TipoOfferta.OffertaEvento)
                    .getOffertaDAO()
                    .findOff(checkBox.getId()));
      }

    accessoCatalogoView.showCheckBox(false);

    aggregazioneOfferteControl =
        new AggregazioneOfferteControl(offertaPernotto, offertaTrasporto, offertaEvento, this);

    try {
      aggregazioneOfferteControl.start(new Stage());
    } catch (Exception e) {
      e.printStackTrace();
    }
  }
  /*
   * Observer delle offerte
   * */
  @Override
  public void addOfferta(Object offerta) {

    accessoCatalogoView.addOff(offerta);
  }
  public void okButton(ActionEvent event) {
    ((Node) (event.getSource())).getScene().getWindow().hide();
    accessoCatalogoView.setEffect(0, null);

    accessoCatalogoView.showCheckBox(false);
  }
 @Override
 public void upPack(Pacchetto pacchetto) {
   accessoCatalogoView.upPack(pacchetto);
 }
 @Override
 public void delPack(int id) {
   accessoCatalogoView.delPack(id);
 }