Н. Вьюкова
Генератор окон - Window Painter
Генератор окон NewEra - инструмент, который позволяет в графическом режиме создавать новые
классы окон и визуальных объектов. Под визуальным объектом понимается группа
взаимосвязанных органов управления окна, например, группа радиокнопок или супертаблица
(орган управления для взаимодействия с таблицами БД) в комплекте с управляющими
кнопками.
Разработчику предоставляется типичный для инструментов такого типа интерфейс - мышь, меню,
панель инструментов, окно редактирования атрибутов.
На пространство окна "наклеиваются" стандартные органы управления - разного рода кнопки,
выпадающие списки, тексты, поля ввода, графические элементы оформления; достаточно указать
мышью нужный орган на панели инструментов и место, куда его следует поместить. Для
группирования органов управления используются рамки (frame), они необходимы, в частности,
если нужно создать несколько групп радиокнопок.
В окне могут использоваться также визуальные объекты созданных ранее классов.
Атрибуты окна и его органов (цвет, шрифт, надпись и др.) задаются в окне редактирования
атрибутов.
Имеется также генератор многоуровневых меню, в котором определяется меню для текущего
окна.
Для взаимодействия с БД генератор окон предоставляет две разновидности органов управления,
называемых супертаблицами (SuperTable):
Informix поддерживает две разновидности BLOB-значений - TEXT и BYTE. Значения типа TEXT
отображаются в суперполях в виде текста, если они содержат только печатные символы. Значения
типа BYTE автоматически не отображаются. Суперполя для обоих типов имеют атрибут
blobEditor, в котором указывается имя внешней программы редактора.
Как само окно, так и его органы управления являются объектами, образованными от стандартных
оконных и визуальных классов NewEra. Для них предопределены множества стандартных событий
(табл. 1).
Примеры событий в объектах визуальных классов
Класс | Событие | Когда наступает |
---|---|---|
окно | start | при открытии окна |
многие органы | activate | при активации, например, управления окна щелчком мыши |
супертаблица | beforeRetrieve | перед началом выполнения выборки |
супертаблица | rowRetrieve | после выборки очередной строки |
Генератор сохраняет результат работы в виде программы, описывающей новый оконный или
визуальный класс. Эти классы могут использоваться в рамках одного или нескольких
приложений.
Генератор окон сохраняет описание сгенерированного оконного класса в виде нескольких файлов
(рис. 1):
< имя >.wif - файл с описанием структуры окна в формате WIF (Window Intermediate
Format). Этот файл может быть прочитан генератором окон для последующего
редактирования.
< имя >.4gh - заголовочный файл, содержит декларацию нового оконного класса.
< имя >.4gl - программный файл, содержит функции обработки событий в окне и его
органах, заданные программистом. В этом файле содержатся также определения дополнительных
или переопределенных функций оконного класса. Файлы 4gh и 4gl обрабатываются компилятором
и генератором приложений.
Если при формировании окна был задан атрибут "главное окно", то в 4gl-файл будет добавлена
головная функция MAIN. Она будет содержать оператор подключения к БД и вызов главного
окна. Таким образом, простое приложение, не требующее сложной обработки данных, может быть
целиком создано средствами визуального программирования.
< имярис.rs > - для каждого импортированного графического файла, использованного как
элемент оформления окна, создается файл ресурсов.
Рис. 1. Схема генерации и использования файлов с описаниями оконных и визуальных классов
По умолчанию вновь генерируемый оконный класс является наследником системного класса
ixWindow. Однако программист может указать в качестве базового и другой оконный класс,
созданный ранее. Например, если требуется, чтобы все окна приложения содержали логотип
фирмы, то достаточно сгенерировать оконный класс с желаемым графическим компонентом и
указывать этот класс в качестве базового для других окон приложения.
Соблюдая ряд правил, при помощи генератора окон можно создавать универсальные оконные
интерфейсы для приложений. В число стандартных библиотек NewEra входят две библиотеки
оконных и визуальных классов - для графических и для АЦ-терминалов. Таким образом, из одного
и того же исходного кода можно, используя при сборке ту или другую библиотеку, создать два
эквивалентных приложения, рассчитанных на разные типы мониторов.
Характеристика языка программирования NewEra
В отличие от языков скриптов, предлагаемых многими инструментальными системами, NewEra
представляет собой полномасштабный высокоуровневый объектно-ориентированный язык,
содержащий ряд встроенных средств для программирования доступа к базам данных и
графического пользовательского интерфейса. NewEra является развитием языка Informix-4gl,
поддерживая все его возможности за исключением операторов и встроенных функций для работы с
экранными формами и меню.
Программа на языке NewEra состоит из одного или нескольких файлов (модулей). Различаются
программные и заголовочные модули. Оператор INCLUDE "имя_файла" позволяет включить в
тело модуля текст другого файла. Имеется стандартный набор управляющих операторов.
Определены интерфейсы для вызовов С-функций из программ NewEra и функций NewEra из
программ на языке С.
Множество встроенных типов данных NewEra соответствует набору типов данных,
поддерживаемых СУБД Informix, и включает, в частности, типы данных для работы с большими
бинарными объектами.
NewEra автоматически выполняет все осмысленные преобразования типов при присваиваниях,
передаче параметров или возврате результатов функций.
Поддерживаются записи и многомерные массивы - два вида структурных необъектных типов,
унаследованных от языка Informix-4gl.
NewEra поддерживает два способа программирования доступа к базам данных:
Рис. 2. Приложение NewEra может взаимодействовать с СУБД Informix или с любой СУБД, доступной через интерфейс ODBC.
Генерация отчетов. NewEra предоставляет средства для описании структуры текстовых отчетов и
их генерации. Более современные, графические, средства создания отчетов имеются в системе
Informix-ViewPoint Pro, которая входит в комплект поставки NewEra (см. ниже).
Язык NewEra поддерживает основные возможности объектно-ориентированного
программирования, в частности, наследование и полиморфизм. В языке явно выделены и имеют
специальное синтаксическое оформление понятия "событие в объекте", "обработчик
события".
Объектная модель NewEra допускает более гибкий по сравнению, например, с С++, подход к
проектированию и применению классов, поскольку функциональность объектов может частично
определяться непосредственно в программах, использующих данный класс, причем,
индивидуально для каждого объекта.
Класс объектов NewEra характеризуется
CLASS music -- ИМЯ КЛАССА -- КОНСТАНТЫ: CONSTANT unknown SMALLINT=0 CONSTANT folk SMALLINT=1 CONSTANT classic SMALLINT=2 CONSTANT pop SMALLINT=4 CONSTANT hard_rock SMALLINT=8 -- ПЕРЕМЕННЫЕ: PUBLIC VARIABLE music_type SMALLINT PRIVATE VARIABLE music_title CHAR (32) -- название PRIVATE VARIABLE music_code BYTE -- внутреннее представление мелодии -- ФУНКЦИИ: -- инициализация нового объекта класса music: FUNCTION music (music_type SMALLINT: unknown, music_title CHAR(32): NULL) -- установка названия: FUNCTION set_title (title CHAR(32)) -- опрос названия: FUNCTION get_title () RETURNING CHAR(32) -- установка кода (внутреннего представления) мелодии: FUNCTION set_code (file_name CHAR(*)) -- СОБЫТИЯ: -- воспроизведение мелодии EVENT play () END CLASSОбъекты класса создаются при помощи операторов NEW и COPY, примеры:
VARIABLE my_melody MUSIC = NEW music(music::folk, "Калинка") VARIABLE your_melody MUSIC = COPY my_melodyДопускается определение нескольких различных функций-обработчиков для одного и того же события данного класса. Обработчики могут присваиваться индивидуальным объектам динамически.
Компиляторы
Продукт Informix-NewEra содержит два типа компиляторов и, соответственно, два способа сборки
приложений:
Генератор приложений
Генератор приложений (Application Builder) - графический инструмент для построения
приложений, состоящих из нескольких файлов. Разработчик описывает структуру приложений в
терминах проектов, программ, файлов. Проект может состоять из одной или нескольких
программ, каждая программа собирается из одного или нескольких исходных файлов (рис. 3).
Описания проектов сохраняются в системной базе данных.
Генератор позволяет собирать как интерпретируемый, так и выполняемый вариант приложения.
Выполняемое приложение создается в виде EXE-файла и, возможно, нескольких динамически
загружаемых библиотек (DLL).
Рис. 3. Структура проектов NewEra.
Отладчик
Символьный отладчик позволяет отлаживать в исходных кодах программы на языке NewEra.
Основные возможности:
Informix-ViewPoint Pro
Продукт Informix-ViewPoint Pro используется в двух качествах:
Административная подсистема Informix-ViewPoint Pro содержит инструменты, которые позволяют
в графическом режиме
Informix-ViewPoint Pro - это также инструмент для построения простейших приложений без какого
бы то ни было программирования. Приложения, создаваемые в ViewPoint Pro, состоят из окон 3-х
типов:
Суперпредставление, так же, как и представление (view), является описанием информационного
среза БД, но несет некоторую дополнительную структурную нагрузку, имеет наглядное внешнее
представление. При помощи ViewPoint Pro администратор строит серию суперпредставлений,
отражающих существенные информационные связи. На их основе прикладные специалисты, не
обладающие навыками программирования, могут при помощи средств разработки ViewPoint Pro
быстро создавать приложения, отвечающие их потребностям.
Генератор суперпредставлений ViewPoint Pro позволяет описывать их структуру не в терминах
операторов SQL SELECT, а в терминах связей между таблицами. Связь задается операцией
соединения столбцов двух таблиц с явным указанием типа: "один к одному", "один к 0 или к
одному", "один ко многим", "один к нулю или многим".
Фрагментация приложений
Поставляемая с Informix-NewEra библиотека классов прикладного сервера (Application Server Class
Library) предназначена для создания распределенных многозвенных приложений. В таком
приложении на машине-клиенте обслуживается только интерфейс с пользователем, а прикладная
бизнес-логика реализуется при помощи одной или нескольких серверных компонентов.
Предполагается, что поддержка серверных компонентов приложений NewEra будет обеспечена для
всех платформ, на которых могут работать серверы СУБД Informix.
В последующих версиях NewEra планируется реализация расширенного инструментария
распределенного программирования. В него войдут средства для автоматического создания
коммуникационного кода, обеспечивающего взаимодействие удаленных компонентов, а также
распределенный отладчик. При необходимости, фрагментация приложения может быть
переопределена без перепрограммирования содержательного кода, что чрезвычайно важно в
условиях постоянно изменяющихся потребностей.
Заключение
Informix-NewEra - продукт, находящийся в стадии интенсивного развития и становления. Сильной
стороной его, несомненно, является высокоуровневый объектно-ориентированный язык NewEra,
который составляет прочный фундамент всего инструментального комплекса. Планы
относительно усовершенствований, новых библиотек и инструментальных компонентов, которые,
согласно официальным техническим материалам компании, должны войти в ближайшие версии,
позволяют охарактеризовать Informix-NewEra как перспективный профессиональный
инструментарий