2.2.2.1.3 Разработка графических редакторов
Разработка графических редакторов происходит при использовании технологии GEF (Graphical Editing Framework, графическая платформа редактирования) [37]. Платформа включает в себя общие архитектурные принципы построения текстовых редакторов и соответствующую библиотеку. Для установки правил расположения графических компонентов и непосредственного их отображения на SWT-холсте [38] GEF использует библиотеку Draw2D [39]. Поверх Draw2D GEF добавляет мощные функциональные возможности управления данными графического редактора.
В качестве архитектурной модели построения редакторов на базе платформы GEF предусматривается архитектура MVC (Model-View-Controller, Модель-Представление-Контролер) [40]. Общая архитектурная схема редактора, построенная на базе платформы GEF, представлена на рисунке 2.4.
Рисунок 2.4 - Архитектурная схема графического редактора на базе
платформы GEF
Согласно схеме, данные для графического представления и редактирования представляют собой модель согласно архитектуре MVC. Модель оповещает свое представление (фигуры) о происходящих в ней изменениях, при этом сами изменения, то есть непосредственное редактирование модели выполняется контролером через команды. Команда инкапсулирует набор действий по элементарному изменению модели, а также набор действий по отмене этого изменения (если того потребует пользователь). Набор выполненных команд хранится в стеке команд библиотекой GEF, однако при отмене команды платформа лишь сдвигает указатель на предыдущую команду, так чтобы до появления от пользователя новых команд можно было вернуть отмененные изменения.
Пользователь непосредственно работает с графическим SWT-холстом, на котором отображаются фигуры, а также может посылать события через элементы управления, меню и за счет использования специальных сочетаний клавиш. События, происходящие на SWT-холсте отправляются инструментам, остальные - действиям (actions) Eclipse. Задача инструментов и действий заключается в формировании команд. Для этого инструменты определяют список графических объектов, для которых необходимо сформировать команду, и делегируют создание команды контролерам установленных объектов. В свою очередь, контролеры могут делегировать функции создания команды своим политикам. Смысл существования политик заключается в инкапсуляции кода по созданию одинаковых команды в одном классе, который можно использовать из разных контролеров. Широкий набор готовых политик, позволяющий выполнить основные команды (например, выделение компонентов, перетаскивание, удаление, установка точек сцепления стрелок и так далее), входит в библиотеку GEF. Также в библиотеку GEF входит набор инструментов, задача которых установить некоторый режим редактирования, в зависимости от которого на одни и те же события от пользователя могут генерироваться различные команды (например, инструмент рисования стрелок и инструмент выделения при пользовательском щелчке мыши приводят к исполнению различных команд).
Согласно предлагаемой GEF архитектуре были разработаны модели двух графических редакторов, приведенные в нотации UML на рисунках 2.5 и 2.6.
Рисунок 2.5 - Редактируемая общая модель данных графического редактора диаграммы задач
Рисунок 2.6 - Редактируемая общая модель данных графического редактора схемы оборудования
Структура контролеров с точностью повторяет структуру моделей редакторов.
- Введение
- 1 Анализ предметной области
- 1.1 Постановка задачи
- 1.2 Обзор аналогов
- 2 Программная документация
- 2.1 Техническое задание на программное обеспечение
- 2.1.1 Назначение разработки
- 2.1.2 Терминология
- 2.1.3 Требования к функциональным характеристикам
- 2.1.4 Требования к надежности
- 2.1.5 Требования к составу и параметрам технических средств
- 2.1.6 Требования к информационной и программной совместимости
- 2.1.7 Требования к результатам работы
- 2.1.7.1 Требования к комплектации решения
- 2.1.7.2 Требования к документации
- 2.1.8 Перечень работ по этапам
- 2.2 Пояснительная записка
- 2.2.1 Назначение и область применения
- 2.2.2 Описание разработанной технологии создания программ для распределенных микроконтроллерных систем
- 2.2.2.1 Схема оборудования
- 2.2.2.2 Недостатки диаграммы Бара для проектирования микроконтроллерных программ управления
- 2.2.2.3 Концепции диаграммы задач
- 2.2.2.4 Семантика отображаемых на диаграмме задач связей
- 2.2.2.5 Синхронные и асинхронные вызовы функций задач
- 2.2.2.6 Синхронный вызов функции пакета
- 2.2.2.7 События и подписки
- 2.2.2.8 Текстовый язык
- 2.2.2 Технические характеристики
- 2.2.2.1 Описание структуры программной системы
- 2.2.2.1.1 Платформа разработки
- 2.2.2.1.2 Подсистема редактирования
- 2.2.2.1.3 Разработка графических редакторов
- 2.2.2.1.4 Разработка текстового редактора
- 2.2.2.1.5 Описание языка
- 2.2.2.1.6 Семантический анализ пользовательской программы
- 2.2.2.1.7 Генерация кода на целевом языке
- 2.2.2.1.8 Генерация кода редактора текстового языка
- 2.2.2.1.9 Проектирование отладчика
- 2.2.2.1.10 Регистрация конфигурации запуска
- 2.2.2.1.11 Модель отладки
- 2.2.2.1.12 Виртуальная машина
- 2.2.2.1.13 Моделирование
- 2.2.2.1.14 Концепция параметризированных сигналов
- 2.2.2.1.15 Функциональное моделирование блоков устройств
- 2.2.3 Ожидаемые технико-экономические показатели
- 2.3 Описание программы
- 2.3.1 Описание логической структуры
- 2.3.1.2 Типичный поток событий в графическом редакторе
- 2.3.2 Входные и выходные данные
- 2.3.3 Используемые технические средства
- 2.4 Программа и методика испытаний
- 2.4.1 Программа испытаний
- 2.4.2 Методика испытаний
- 3 Руководство пользователя
- 3.2 Условия выполнения программного комплекса
- 3.3 Установка программы
- 3.4 Текстовый редактор
- 3.5 Графический редактор
- 4 Акт испытаний программного продукта
- 5 Экономическая часть
- Заключение
- Список использованных источников