Ejemplo n.º 1
0
  @FXML
  void guardar() {

    if (validarVentana()) {
      if (tipoVentana == TipoVentana.NUEVO) {
        Especie nuevaEspecie = new Especie();

        List<Parametro> parametrosEspecie = new ArrayList<Parametro>();

        Parametro gh = new Parametro();
        gh.setNombre("GH");
        gh.setMinimo(Float.parseFloat(fieldGhMinimo.getText()));
        gh.setMaximo(Float.parseFloat(fieldGhMaximo.getText()));

        Parametro kh = new Parametro();
        kh.setNombre("KH");
        kh.setMinimo(Float.parseFloat(fieldKhMinimo.getText()));
        kh.setMaximo(Float.parseFloat(fieldKhMaximo.getText()));

        Parametro ph = new Parametro();
        ph.setNombre("PH");
        ph.setMinimo(Float.parseFloat(fieldPhMinimo.getText()));
        ph.setMaximo(Float.parseFloat(fieldPhMaximo.getText()));

        Parametro temperatura = new Parametro();
        temperatura.setNombre("TEMPERATURA");
        temperatura.setMinimo(Float.parseFloat(fieldTemperaturaMinima.getText()));
        temperatura.setMaximo(Float.parseFloat(fieldTemperaturaMaxima.getText()));

        parametrosEspecie.add(gh);
        parametrosEspecie.add(kh);
        parametrosEspecie.add(ph);
        parametrosEspecie.add(temperatura);

        nuevaEspecie.setParametros(parametrosEspecie);

        if (listAlimentosEspecie.getItems().size() > 0) {
          for (int i = 0; i < listAlimentosEspecie.getItems().size(); i++) {
            Alimento alimento =
                Sistema.getSistema().buscarAlimento(listAlimentosEspecie.getItems().get(i));
            nuevaEspecie.getAlimentos().add(alimento);
          }
        }

        nuevaEspecie.setNombre(fieldNombre.getText());
        nuevaEspecie.setCantidad(Integer.parseInt(fieldCantidad.getText()));
        nuevaEspecie.setDescripcion(textAreaDescripcion.getText());
        nuevaEspecie.setTipoAgua(
            comboTipoAgua.getItems().get(comboTipoAgua.getSelectionModel().getSelectedIndex()));

        Session session = HibernateUtil.getSessionFactory().getCurrentSession();
        session.beginTransaction();
        session.save(gh);
        session.save(kh);
        session.save(ph);
        session.save(temperatura);

        session.save(nuevaEspecie);
        session.getTransaction().commit();
        Utilidades.guardarEvento(
            principal.getUsuarioActivo().getNombre(),
            Utilidades.eventosUsuario.get(TipoEventoUsuario.CREAR_ESPECIE)
                + nuevaEspecie.getNombre());

      } else if (tipoVentana == TipoVentana.EDITAR) {
        Session session = HibernateUtil.getSessionFactory().getCurrentSession();
        session.beginTransaction();

        Especie especie =
            (Especie)
                session.get(
                    Especie.class,
                    Sistema.getSistema()
                        .buscarEspecie(tablaEspecie.getItems().get(indiceSeleccionado).getNombre())
                        .getIdEspecie());

        especie.setNombre(fieldNombre.getText());
        especie.setCantidad(Integer.parseInt(fieldCantidad.getText()));
        especie.setDescripcion(textAreaDescripcion.getText());
        especie.getParametros().get(0).setMaximo(Float.parseFloat(fieldGhMaximo.getText()));
        especie.getParametros().get(0).setMinimo(Float.parseFloat(fieldGhMinimo.getText()));
        especie.getParametros().get(1).setMaximo(Float.parseFloat(fieldKhMaximo.getText()));
        especie.getParametros().get(1).setMinimo(Float.parseFloat(fieldKhMinimo.getText()));
        especie.getParametros().get(2).setMaximo(Float.parseFloat(fieldPhMaximo.getText()));
        especie.getParametros().get(2).setMinimo(Float.parseFloat(fieldPhMinimo.getText()));
        especie
            .getParametros()
            .get(3)
            .setMaximo(Float.parseFloat(fieldTemperaturaMaxima.getText()));
        especie
            .getParametros()
            .get(3)
            .setMinimo(Float.parseFloat(fieldTemperaturaMinima.getText()));
        especie.getAlimentos().clear();
        for (int i = 0; i < listAlimentosEspecie.getItems().size(); i++) {
          especie
              .getAlimentos()
              .add(Sistema.getSistema().buscarAlimento(listAlimentosEspecie.getItems().get(i)));
        }
        especie.calcularTotal();
        session.update(especie);

        session.getTransaction().commit();
        Utilidades.guardarEvento(
            principal.getUsuarioActivo().getNombre(),
            Utilidades.eventosUsuario.get(TipoEventoUsuario.MODIFICAR_ESPECIE)
                + especie.getNombre());
      }

      HibernateUtil.traerDatosBase();
      principal.getEspeciesObservables().clear();
      principal.setEspeciesObservables(
          Sistema.getSistema().pasarArrayEspecieAProperty(Sistema.getSistema().getEspecies()));
      tablaEspecie.getItems().clear();
      tablaEspecie.setItems(principal.getEspeciesObservables());
      salir();
    }
  }