GraphvizView: Inicio de subproyecto - segonzal/jEdit-CC4401 GitHub Wiki

Subgrupo

Compuesto por:

Objetivo

Change request

"Agregar a jEdit un plugin que permita visualización de grafos de Graphviz."

Bosquejo del resultado buscado

En jEdit se puede escribir código de Graphviz, y debe ser posible visualizar qué va resultando.

Requisitos

Listado de requisitos

  1. A medida que se escribe un código de Graphviz en jEdit, debe poder verse el grafo en construcción.
  2. La imagen debe verse en un panel anclado, dentro de jEdit.
  3. El plugin debe poder configurarse, de modo que se pueda especificar la ubicación del comando dot en el sistema.
  4. Plugin debe funcionar tanto en Windows como en Linux.

Clasificación de requisitos

  1. Requisito de Usuario.
  2. Requisito de Sistema. Requisito Funcional.
  3. Requisito de Sistema. Requisito Funcional.
  4. Requisito de Sistema. Requisito No funcional: de confiabilidad (debe funcionar bien en los dos ambientes indicados).

Concept location

Los términos más relevantes del change request son: plugin y Graphviz.

El último versa sobre una funcionalidad completamente nueva, por lo que - de manera clara - no existe referencia alguna en el código de jEdit. El primero sí es una funcionalidad disponible, y documentada en la jEdit Users guide.

A continuación se muestran algunas citas útiles, y algunos comentarios.

jEdit also provides a dockable window API, which allows plugin windows derived from the JComponent class to be docked into views or shown in top-level frames, at the user's request (véase Chapter 17).

Para una interfaz anclada se debe utilizar la clase JComponent .

Such a class is known as a plugin core class and must extend jEdit's abstract EditPlugin class (véase Chapter 18).

El core de un plugin de jEdit debe descender de la clase abstracta EditPlugin. En particular, examinando el código de algunos plugins, también pueden extender a la clase EBPlugin (véase jEdit API Documentation), que es subclase directa de EditPlugin.

Impact analysis

El impacto - en cuanto a modificación de código - es virtualmente nulo, porque los plugins justamente apuntan a la posibilidad de agregar nuevas funcionalidades sin necesidad de hacerle una "cirugía" a jEdit.

El principal cambio que habría en la jerarquía de clases, es la adhesión de una clase (un nuevo provider) que ofrecerá un nuevo servicio a jEdit. Éste proveedor, descenderá directa o indirectamente de EditPlugin (comportamiento polimórfico).

⚠️ **GitHub.com Fallback** ⚠️