コード例 #1
0
  /** Eliminar un nodo del grafoNoDirigido. */
  @FXML
  protected void botonEliminar() {
    if (scene == null) {
      initializeGrafo();
    }

    // Mostrar el codigo
    String tipo = getTipoString();
    String codigoTexto =
        new Scanner(
                getClass()
                    .getResourceAsStream(
                        "/cl/cromer/estructuras/code/grafo" + tipo + "/eliminarNodo"))
            .useDelimiter("\\Z")
            .next();
    codigoGrafo.setText(codigoTexto);

    if (valorGrafo.getText() != null && !valorGrafo.getText().trim().equals("")) {
      try {
        int i;
        for (i = 0; i < 5; i++) {
          if (grafoNodos[i] != null
              && grafoNodos[i].getValue() == Integer.valueOf(valorGrafo.getText())) {
            break;
          }
        }

        if (i != 5) {
          boolean exito = false;
          if (grafoTipos.getTipo() == Grafo.Tipos.NO_DIRIGIDO) {
            exito = noDirigido.removeNode(grafoNodos[i]);
          } else {
            for (int j = 0; j < dirigido.size(); j++) {
              Grafo.Vertex<GrafoNodo> vertex = dirigido.getVertex(j);
              if (vertex.getData().getValue() == Integer.valueOf(valorGrafo.getText())) {
                exito = dirigido.removeVertex(vertex);
                break;
              }
            }
          }
          if (exito) {
            grafoNodos[i] = null;
            valorGrafo.setText("");
            generarGrafico();
          } else {
            Main.mostrarError(resourceBundle.getString("grafoNoNodo"), resourceBundle);
          }
        } else {
          Main.mostrarError(resourceBundle.getString("grafoNoNodo"), resourceBundle);
        }
      } catch (NumberFormatException exception) {
        // El error no es fatal, sigue
        Main.mostrarError(resourceBundle.getString("grafoNoNumero"), resourceBundle);
      }
    } else {
      Main.mostrarError(resourceBundle.getString("grafoNoNumero"), resourceBundle);
    }
  }