El Graphical Editing Framework (GEF) es un proyecto de Eclipse que proporciona componentes de marco y de usuario final relacionados con aplicaciones gráficas. [ 1 ]
Historia
GEF se desarrolló inicialmente como parte de las herramientas electrónicas de IBM com.ibm.etools.gefy se incorporó a Eclipse en 2002 en la versión 2.0.0, que constaba entonces de dos componentes: Draw2d, un componente de visualización 2D basado en el Standard Widget Toolkit (SWT), y GEF (MVC), un marco de trabajo modelo-vista-controlador relacionado que se puede utilizar para implementar editores gráficos como parte de las aplicaciones de Eclipse Rich Client Platform (RCP). La primera versión en Eclipse fue GEF 2.1.0 en marzo de 2003. La siguiente versión principal, GEF 3.0.0, se lanzó en junio de 2004, proporcionando muchas características nuevas, como soporte para reglas y guías. Zest se añadió como un tercer componente del proyecto en 2007 en la versión 1.0.0 como parte de la versión GEF 3.4.0. Desde 2004, cuando se lanzó GEF 3.0.0, solo se han aplicado cambios compatibles a la interfaz de programación de aplicaciones (API) del marco de trabajo.
Desde 2010, el equipo del proyecto ha desarrollado una nueva revisión importante del marco de trabajo, paralelamente al mantenimiento de los componentes GEF 3.x. Se trata de un rediseño completo, mucho más modular, que utiliza JavaFX en lugar de SWT como marco de renderizado subyacente y que puede utilizarse independientemente de las aplicaciones Eclipse RCP. Conocido comúnmente como GEF4, sus componentes se lanzaron inicialmente en la versión 0.1.0 (con una API aún provisional) en junio de 2015, como parte de la versión GEF 3.10.0 (Mars). Los componentes GEF4 se publicarán en la versión 1.0.0 como parte de la versión GEF 4.0.0 (Neon) en junio de 2016.
GEF 3.x
GEF 3.x proporciona una tecnología de marco para implementar editores y vistas gráficas como parte de las aplicaciones de Eclipse Rich Client Platform (RCP) . Internamente, se descompone en tres componentes:
- Draw2d: un componente de visualización 2D basado en el Standard Widget Toolkit (SWT).
- GEF (MVC): un componente modelo-vista-controlador que se puede utilizar para implementar editores gráficos como parte de las aplicaciones Eclipse Rich Client Product (RCP).
- Zest: un conjunto de herramientas de visualización basado en grafos que se puede utilizar para crear vistas para la visualización de estructuras de datos tipo grafo como parte de las aplicaciones Eclipse RCP.
Si bien las aplicaciones gráficas se pueden crear directamente sobre los componentes de GEF 3.x, Draw2d y GEF (MVC) también son utilizados por el Graphical Modeling Framework (GMF) , que los combina con el Eclipse Modeling Framework (EMF) para crear el código tanto del modelo de datos como del editor gráfico.
Arquitectura
Los editores creados con GEF (MVC) constan de los siguientes componentes:
- El editor de diagramas incluye la paleta de herramientas.
- Figuras que representan gráficamente los elementos del modelo de datos subyacente.
- EditParts que coinciden con las figuras y sus respectivos elementos del modelo.
- Solicitar objetos para la entrada del usuario
- Los objetos EditPolicy evalúan las solicitudes y crean los objetos de comando correspondientes.
- Comandos que editan el modelo y proporcionan deshacer - rehacer
Uso de patrones de diseño
GEF hace un uso intensivo de patrones de diseño . Estos patrones suelen ser obligatorios en GEF y los desarrolladores deben comprenderlos.
- El patrón Modelo-Vista-Controlador ( MVC) es un patrón de diseño arquitectónico que divide una aplicación en partes separadas que se comunican entre sí de una manera específica. El objetivo es separar el modelo de datos (modelo), la interfaz gráfica de usuario (vista) y la lógica de negocio (controlador). GEF utiliza ampliamente el patrón MVC.
- Modelo: El modelo de datos puede generarse mediante EMF, ser implementado por el propio usuario o ya existir en el caso de un software heredado.
- Controlador: Los EditParts actúan como controladores. Normalmente, cada elemento del modelo tiene su EditPart correspondiente. Los EditParts pueden contener otros EditParts, lo que permite que los elementos del modelo también contengan otros elementos. Los EditParts también tienen una referencia a la figura que representa gráficamente el elemento del modelo. Finalmente, los EditParts evalúan las solicitudes y generan el comando apropiado para editar el modelo subyacente.
- Vista: Para cada elemento del modelo, incluidas las conexiones, se debe implementar una figura utilizando el entorno Draw2d. A menudo, la figura es un dibujo geométrico.
- Fábrica : Creación de modelos a partir de paletas, creación de EditParts y creación de figuras.
- Observador : Normalmente un controlador (EditPart) que escucha en el Modelo y la Vista.
- Comando : Para implementar las funciones Deshacer y Rehacer.
- Estrategia : EditParts puede instalar y eliminar EditPolicies de forma dinámica.
- Cadena de responsabilidad : Decidir qué EditPolicy debe gestionar una solicitud.
Mecanismo de solicitud y respuesta
Cualquier acción del usuario con el editor puede generar una solicitud. La naturaleza de la solicitud se determina por el contexto de invocación. Este contexto viene determinado por la parte del editor con la que interactúa el usuario y la herramienta activa. La herramienta puede ser cualquier elemento seleccionado en la paleta de herramientas. La solicitud se transfiere a la parte del editor seleccionada, que a su vez devuelve un comando.
Esto se logra mediante el mecanismo de cadena de responsabilidad sobre las políticas de edición. Las políticas de edición determinan si pueden gestionar la solicitud; de lo contrario, la pasan a la siguiente política de edición. El orden de declaración de las políticas de edición determina el orden en que se transmite la solicitud. La política de edición competente crea un comando. Este comando se devuelve a la herramienta que inició la solicitud. La ejecución del comando modifica el modelo (respuesta).
Referencias
- ↑ Web, Eclipse (31-01-2013). "Eclipse Graphical Editing Framework (GEF)" . projects.eclipse.org . Consultado el 12-01-2024 .
Enlaces externos
- Repositorio de código fuente de GEF
- Software de gráficos
- Eclipse (software)
