Платформа графического редактирования
Эта статья нуждается в дополнительных цитатах для проверки . ( январь 2024 г. ) |
Graphical Editing Framework (GEF) — это проект Eclipse , который предоставляет компоненты инфраструктуры и конечного пользователя, связанные с графическими приложениями. [ 1 ]
История
[ редактировать ]GEF изначально был разработан как часть etools IBM ( com.ibm.etools.gef
) и был добавлен в Eclipse в 2002 году в версии 2.0.0, состоящей тогда из двух компонентов: Draw2d, компонента 2D-визуализации, основанного на Standard Widget Toolkit (SWT) и GEF (MVC), связанной структуры модель-представление-контроллер, которая может использоваться для реализации графических редакторов как часть приложений Eclipse Rich Client Platform (RCP). Первым выпуском Eclipse была GEF 2.1.0 в марте 2003 года. Следующая основная версия, GEF 3.0.0, была выпущена в июне 2004 года и предоставляла множество новых функций, таких как поддержка правил и руководств. Zest был добавлен в качестве третьего компонента проекта в 2007 году в версии 1.0.0 как часть выпуска GEF 3.4.0. С 2004 года, когда был выпущен GEF 3.0.0, к интерфейсу прикладного программирования (API) платформы применялись только совместимые изменения.
Новая основная версия структуры была разработана командой проекта параллельно с поддержкой компонентов GEF 3.x с 2010 года. Это полная переработка, которая является гораздо более модульной, использует JavaFX вместо SWT в качестве базовой структуры рендеринга. и может использоваться также независимо от приложений Eclipse RCP. Его компоненты, обычно называемые GEF4, были первоначально выпущены в версии 0.1.0 (с предварительным API) в июне 2015 года как часть выпуска GEF 3.10.0 (Марс). Компоненты GEF4 будут опубликованы в версии 1.0.0 как часть версии GEF 4.0.0 (Neon) в июне 2016 года.
ГЭФ 3.x
[ редактировать ]GEF 3.x предоставляет технологию платформы для реализации графических редакторов и представлений как части приложений Eclipse Rich Client Platform (RCP) . Внутренне он разлагается на три компонента:
- Draw2d — компонент 2D-визуализации, основанный на стандартном наборе виджетов (SWT).
- GEF (MVC) — компонент модель-представление-контроллер, который можно использовать для реализации графических редакторов как части приложений Eclipse Rich Client Product (RCP).
- Zest — набор инструментов для визуализации на основе графов, который можно использовать для реализации представлений для визуализации графоподобных структур данных как часть приложений Eclipse RCP.
Хотя графические приложения могут быть созданы непосредственно поверх компонентов GEF 3.x, Draw2d и GEF (MVC) также используются в среде графического моделирования (GMF) , которая объединяет их с платформой моделирования Eclipse (EMF) для создания кода. как для модели данных, так и для графического редактора.
Архитектура
[ редактировать ]Редакторы, созданные с помощью GEF (MVC), состоят из следующих компонентов:
- Редактор диаграмм, включая палитру инструментов
- Рисунки, графически представляющие базовые элементы модели данных.
- EditParts, соответствующие фигурам и соответствующим элементам модели.
- Запросить объекты для ввода пользователя
- Объекты EditPolicy, которые оценивают запросы и создают соответствующие объекты команд.
- Объекты команд, которые редактируют модель и обеспечивают отмену - повтор.
Использование шаблона проектирования
[ редактировать ]GEF активно использует шаблоны проектирования . Эти шаблоны часто являются обязательными в соответствии с ГЭФ, и разработчики обязаны их понимать.
- Модель-Представление-Контроллер — это архитектурный шаблон проектирования, который делит приложение на отдельные части, которые взаимодействуют друг с другом определенным образом. Цель — разделить модель данных (модель), графический интерфейс пользователя (представление) и бизнес-логику (контроллер). GEF широко использует шаблон MVC.
- Модель: модель данных может быть либо сгенерирована с использованием EMF, либо реализована пользователем самостоятельно, либо она может уже существовать в случае устаревшего программного обеспечения.
- Контроллер: EditParts действуют как контроллеры. Обычно каждому элементу модели соответствует соответствующий EditPart. EditParts может содержать другие EditParts, тем самым сопоставляя элементы модели, содержащие другие элементы модели. EditParts также содержит ссылку на рисунок, графически представляющий элемент модели. Наконец, EditParts оценивает запросы и создает соответствующую команду для редактирования базовой модели.
- Представление: для каждого элемента модели, включая соединения, фигура должна быть реализована с использованием платформы Draw2d. Часто фигура представляет собой какой-нибудь геометрический рисунок.
- Фабрика : Создание моделей из палитры, создание EditParts и создание фигур.
- Наблюдатель : обычно контроллер (EditPart), прослушивающий модель и представление.
- Команда : для реализации функций отмены и повтора.
- Стратегия : EditParts может динамически устанавливать и удалять EditPolicies.
- Цепочка ответственности : решить, какая EditPolicy должна обрабатывать запрос.
Механизм запросов и ответов
[ редактировать ]Любое действие пользователя с редактором может сгенерировать запрос. Природа запроса понимается контекстом вызова. Контекст определяется EditPart, с которой взаимодействует пользователь, и активным инструментом. Инструментом может быть любой выбранный элемент в палитре инструментов. Запрос передается выбранной EditPart, которая, в свою очередь, возвращает команду.
Это достигается с помощью механизма цепочки ответственности в Editpolicies. Политики редактирования определяют, могут ли они обработать запрос, в противном случае они переходят к следующей политике редактирования. Порядок объявления политик редактирования определяет порядок передачи запроса. Способный editpolicy создает команду. Эта команда передается обратно инструменту, который инициировал «Запрос». Выполнение команды приводит к изменению модели (Ответ).
Ссылки
[ редактировать ]- ^ Сеть, Затмение (31 января 2013 г.). «Среда графического редактирования Eclipse (GEF)» . project.eclipse.org . Проверено 12 января 2024 г.