Полуавтоматическое построение приложений и форм Печать
Ускоренное создание графических интерфейсов

В проект ALES входят несколько библиотек (ADMGUI, ADMEdit, AAF), которые:

  • существенно ускоряют разработку вычислительных программ со стандарным графическим интерфейсом (в т.ч. по сравнению с библиотекой AGUI, упрощающей использование Swing-компонентов, но не конкретизирующей модель данных),
  • однако не слишком фиксируют структуру интерфейса и механизм работы с данными (как это делает высокоровневая библиотека ALab - "каркас" для создания "лабоподобных" приложений).

Библиотека 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 предназначена для редактирования объектов и содержит:

  1. Нетипичную разновидность шаблона Model-View-Controller, адаптированную для редакторов объектов (в т.ч. объектов со сложными полями), точнее – для взаимодействия редакторов с остальным приложением.
  2. Классы для построения форм (наборов редактируемых пользователем полей), в т.ч. их применения для построения редакторов пункта 1.

Эти части упрощают работу с редакторами объектов, соотвественно, с «внешней» и «внутренней» точек зрения. В обе части входят интерфейсы, реализации интерфейсов и дополнительные классы для графического интерфейса на базе Swing, а также реализация моделей и контроллеров через фреймворк ADM. Аналогично библиотеке AAF, библиотеку ADMEdit можно очень гибко настроить на особенности любого приложения, однако ее использование в режиме «по умолчанию» очень просто – в частности, по умолчанию формы редактирования объектов строятся автоматически исключительно по тем скудным метаданным, которые обеспечивает интерфейс объекта ADM.

Библиотека ADMGUI, в отличие от ADMEdit, не добавляет существенно нового функционала к Swing-компонентам (точнее, добавляет, но лишь за счет используемой библиотеки AGUI, содержащей расширенный функционал не только для вышеупомянутых меню и панелей инструментов, но и для деревьев, списков, таблиц). Однако ADMGUI похожа на ADMEdit (на пункт 1) тем, что содержит фреймворк (т.е. интерфейсы с несколькими реализациями) для некоторых однотипных частей приложения. Рассматриваемые в ADMGUI части приложения предназначены для выбора пользователем объектов (а не для их редактирования, как в AAF). За счет единого интерфейса для списков, раскрывающихся списков, деревьев и даже таблиц разработчик конкретного приложения может в любой момент изменить реализацию компонента выбора, без многочисленных изменений в остальном коде. Библиотека не только исправляет Swing в указанном смысле (в Swing нет подобной абстракции), но и предлагает разработчику гораздо более удобные высокоуровневые события (события выделения, переименования и «открытия» объектов, заимствованные из библиотеки ADM), которые в типичных приложениях позволяют полностью забыть об обращениях к AWT/Swing API, Кроме того ADMGUI содержит классы моделей, расширяющие объекты фреймворка ADM для автоматического отображения их имен и иконок в компонентах выбора.

 

LAST_UPDATED2
 
Joomla Templates by Joomlashack