/**
   * Construye la cadena de atributos visuales para un estado en particular
   *
   * @param e El estado que vamos a dibujar
   * @param marcado Si es true, significa que está marcado y tiene un color especial
   * @return
   */
  private String getColorEstado(Estado e, boolean marcado) {

    String style = "[";
    // Características gráficas de cada estado
    String shape = e.isEstadofinal() ? "shape=doublecircle" : "shape=circle";

    style += shape;

    /**
     * Estilos Especiales.
     *
     * <p>Definen los estilos para estados finales e iniciales. Si el nodo está marcado, define los
     * atributos de un nodo marcado.
     */
    String coloresp = marcado ? "color=green4" : "color=blue4";
    String fillcolor = marcado ? "style=filled,fillcolor=green" : "style=filled,fillcolor=blue";
    String fontcolor = marcado ? "fontcolor=white" : "fontcolor=white";
    String label = e.isEstadoinicial() ? ",label=inicio" : "";

    if (e.isEstadofinal() || e.isEstadoinicial() || marcado) {
      style += "," + fillcolor + "," + coloresp + "," + fontcolor + label;
    }

    return style + "];";
  }