Полуавтоматическое построение приложений и форм |
![]() |
Ускоренное создание графических интерфейсов | |||
В проект ALES входят несколько библиотек (ADMGUI, ADMEdit, AAF), которые:
Библиотека AAF (Abstract Application Framework) содержит интерфейсы и абстрактные классы шаблона Model-View-Controller (а также некоторой модификации шаблона Builder) для приложений в целом – как однодокументных приложений (Single Document Interface, SDI), так и приложений с возможностью одновременного редактирования нескольких документов произвольной природы (Multiple Document Interface, MDI). В эту библиотеку входят конкретные реализации частей шаблона MVC: есть реализации model через фреймворк ADM; реализации controller и builder – через набор команд (шаблон Command); реализаации view (для графического интерфейса) – через библиотеку Swing. Также имеются зависимые от Swing средства для работы с ресурсами приложения (строками, иконками), много готовых ресурсов и команд (для однодокументного и для многодокументного интерфейса). Особенностью данной библиотеки является не только ее гибкость в смысле простоты замены любых частей приложения, но и ее законченность в смысле построения полностью готовых приложений (включающих работоспособные меню и панель инструментов, а также функционал по работе с документами, настройками внешнего вида, справкой, отслеживанием изменений данных и т.д.). Меню и панель инструментов в библиотеке AAF (как и некоторые редакторы полей в библиотеке ADMEdit, см. ниже) строятся с помощью независимой библиотеки AGUI, расширяющей функциональность Swing (AGUI здесь не описывается ввиду отсуствия в ней оригинальных идей, отличающих ее от библиотек других разработчиков). Библиотека ADMEdit предназначена для редактирования объектов и содержит:
Эти части упрощают работу с редакторами объектов, соотвественно, с «внешней» и «внутренней» точек зрения. В обе части входят интерфейсы, реализации интерфейсов и дополнительные классы для графического интерфейса на базе Swing, а также реализация моделей и контроллеров через фреймворк ADM. Аналогично библиотеке AAF, библиотеку ADMEdit можно очень гибко настроить на особенности любого приложения, однако ее использование в режиме «по умолчанию» очень просто – в частности, по умолчанию формы редактирования объектов строятся автоматически исключительно по тем скудным метаданным, которые обеспечивает интерфейс объекта ADM. Библиотека ADMGUI, в отличие от ADMEdit, не добавляет существенно нового функционала к Swing-компонентам (точнее, добавляет, но лишь за счет используемой библиотеки AGUI, содержащей расширенный функционал не только для вышеупомянутых меню и панелей инструментов, но и для деревьев, списков, таблиц). Однако ADMGUI похожа на ADMEdit (на пункт 1) тем, что содержит фреймворк (т.е. интерфейсы с несколькими реализациями) для некоторых однотипных частей приложения. Рассматриваемые в ADMGUI части приложения предназначены для выбора пользователем объектов (а не для их редактирования, как в AAF). За счет единого интерфейса для списков, раскрывающихся списков, деревьев и даже таблиц разработчик конкретного приложения может в любой момент изменить реализацию компонента выбора, без многочисленных изменений в остальном коде. Библиотека не только исправляет Swing в указанном смысле (в Swing нет подобной абстракции), но и предлагает разработчику гораздо более удобные высокоуровневые события (события выделения, переименования и «открытия» объектов, заимствованные из библиотеки ADM), которые в типичных приложениях позволяют полностью забыть об обращениях к AWT/Swing API, Кроме того ADMGUI содержит классы моделей, расширяющие объекты фреймворка ADM для автоматического отображения их имен и иконок в компонентах выбора.
|
|||
LAST_UPDATED2 |