GraphvizView: Inicio de subproyecto - segonzal/jEdit-CC4401 GitHub Wiki
Compuesto por:
"Agregar a jEdit un plugin que permita visualización de grafos de Graphviz."
En jEdit se puede escribir código de Graphviz, y debe ser posible visualizar qué va resultando.
- A medida que se escribe un código de Graphviz en jEdit, debe poder verse el grafo en construcción.
- La imagen debe verse en un panel anclado, dentro de jEdit.
- El plugin debe poder configurarse, de modo que se pueda especificar la ubicación del comando
dot
en el sistema. - Plugin debe funcionar tanto en Windows como en Linux.
- Requisito de Usuario.
- Requisito de Sistema. Requisito Funcional.
- Requisito de Sistema. Requisito Funcional.
- Requisito de Sistema. Requisito No funcional: de confiabilidad (debe funcionar bien en los dos ambientes indicados).
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
.
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).