Пример #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();
    }
  }
Пример #2
0
  private boolean validarVentana() {
    boolean validada = true;

    cambiarWarning(false);

    if (fieldNombre.getText().equals("")) {
      cambiarWarning(true);
      imagenWarning.setLayoutY(fieldNombre.getLayoutY());
      textoWarning.setLayoutY(fieldNombre.getLayoutY() + 6f);
      imagenWarning.setLayoutX(fieldNombre.getLayoutX() + fieldNombre.getPrefWidth() + 4f);
      textoWarning.setLayoutX(imagenWarning.getLayoutX() + 27f);
      textoWarning.setText("Campo obligatorio");
      validada = false;
      fieldNombre.requestFocus();
    }
    if ((validada == true)
        & (comboTipoAgua.getSelectionModel().getSelectedIndex() == -1)
        & (tipoVentana == TipoVentana.NUEVO)) {
      cambiarWarning(true);
      imagenWarning.setLayoutY(comboTipoAgua.getLayoutY());
      textoWarning.setLayoutY(comboTipoAgua.getLayoutY() + 6f);
      imagenWarning.setLayoutX(comboTipoAgua.getLayoutX() + comboTipoAgua.getPrefWidth() + 4f);
      textoWarning.setLayoutX(imagenWarning.getLayoutX() + 27f);
      textoWarning.setText("Seleccione un tipo de agua");
      validada = false;
      comboTipoAgua.requestFocus();
    }

    if (validada == true) {
      if (Utilidades.validarFlotante(fieldTemperaturaMinima.getText())) {
        if (Utilidades.validarFlotante(fieldTemperaturaMaxima.getText())) {
          if (Float.parseFloat(fieldTemperaturaMinima.getText())
              > Float.parseFloat(fieldTemperaturaMaxima.getText())) {

            Utilidades.MensajeError(
                "Error de Temperatura", "La temperatura máxima ingresada es menor a la mínima.");
            fieldTemperaturaMinima.requestFocus();
            validada = false;
          }
        } else {

          Utilidades.MensajeError(
              "Valor inválido", "El valor ingresado en temperatura máxima debe ser un número");
          fieldTemperaturaMaxima.requestFocus();
          validada = false;
        }
      } else {
        Utilidades.MensajeError(
            "Valor inválido", "El valor ingresado en temperatura mínima debe ser un número");
        fieldTemperaturaMinima.requestFocus();
        validada = false;
      }
    }

    if (validada == true) {
      if (Utilidades.validarFlotante(fieldGhMinimo.getText())) {
        if (Utilidades.validarFlotante(fieldGhMaximo.getText())) {
          if (Float.parseFloat(fieldGhMinimo.getText())
              > Float.parseFloat(fieldGhMaximo.getText())) {

            Utilidades.MensajeError(
                "Error en parametro Gh", "El valor de Gh máxima ingresada es menor al mínimo.");
            fieldGhMinimo.requestFocus();
            validada = false;
          }
        } else {

          Utilidades.MensajeError(
              "Valor inválido", "El valor de Gh máximo ingresado debe ser un número");
          fieldGhMaximo.requestFocus();
          validada = false;
        }
      } else {
        Utilidades.MensajeError(
            "Valor inválido", "El valor de Gh mínimo ingresado debe ser un número");
        fieldGhMinimo.requestFocus();
        validada = false;
      }
    }

    if (validada == true) {
      if (Utilidades.validarFlotante(fieldKhMinimo.getText())) {
        if (Utilidades.validarFlotante(fieldKhMaximo.getText())) {
          if (Float.parseFloat(fieldKhMinimo.getText())
              > Float.parseFloat(fieldKhMaximo.getText())) {

            Utilidades.MensajeError(
                "Error en parametro Kh", "El valor de Kh máxima ingresada es menor al mínimo.");
            fieldKhMinimo.requestFocus();
            validada = false;
          }
        } else {

          Utilidades.MensajeError(
              "Valor inválido", "El valor de Kh máximo ingresado debe ser un número");
          fieldKhMaximo.requestFocus();
          validada = false;
        }
      } else {
        Utilidades.MensajeError(
            "Valor inválido", "El valor de Kh mínimo ingresado debe ser un número");
        fieldKhMinimo.requestFocus();
        validada = false;
      }
    }

    if (validada == true) {
      if (Utilidades.validarFlotante(fieldPhMinimo.getText())) {
        if (Utilidades.validarFlotante(fieldPhMaximo.getText())) {
          if (Float.parseFloat(fieldPhMinimo.getText())
              > Float.parseFloat(fieldPhMaximo.getText())) {

            Utilidades.MensajeError(
                "Error en parametro Ph", "El valor de Ph máxima ingresada es menor al mínimo.");
            fieldPhMinimo.requestFocus();
            validada = false;
          }
        } else {

          Utilidades.MensajeError(
              "Valor inválido", "El valor de Ph máximo ingresado debe ser un número");
          fieldPhMaximo.requestFocus();
          validada = false;
        }
      } else {
        Utilidades.MensajeError(
            "Valor inválido", "El valor de Ph mínimo ingresado debe ser un número");
        fieldPhMinimo.requestFocus();
        validada = false;
      }
    }

    if (tipoVentana == TipoVentana.NUEVO) {
      if (Sistema.getSistema().especieExiste(fieldNombre.getText())) {
        cambiarWarning(true);
        imagenWarning.setLayoutY(fieldNombre.getLayoutY());
        textoWarning.setLayoutY(fieldNombre.getLayoutY() + 6f);
        imagenWarning.setLayoutX(fieldNombre.getLayoutX() + fieldNombre.getPrefWidth() + 4f);
        textoWarning.setLayoutX(imagenWarning.getLayoutX() + 27f);
        textoWarning.setText("Nombre ya utilizado");
        validada = false;
        Utilidades.MensajeError(
            "Nombre inválido", "El nombre de la especie ya se encuentra utilizado");
        fieldNombre.requestFocus();
      }
    }
    return validada;
  }