На главную
 

  1. Преимущества в продуктивности jWB
2. Отладка в jWB3.2.1
3. Настройка производительности jWB
4. jWB - Создание Класса Разработки ( Development Class)
5. jWB - Создание тэгов DIRT
6. jWB - Deploying: Распространение проекта с одного сервера jWB Server на другой
7. Интернационализация в jWB
8. jWB - Интеграция c Visual Basic
9. jBASE Web Builder - VB и SQL
10. Создание Меню в jWB
11. Средства безопасности в jWB
12. Сеансы jWB и Безопасность
13. Последствия Блокировки (Locking) в web-приложениях
 

jWB - Создание Класса Разработки ( Development Class)

ВВЕДЕНИЕ

jBASE для Web Builders поставляется с богатым набором классов разработки, которые призваны удовлетворить потребности большинства пользователей в разработке web-сайтов с поддержкой транзакций. Однако для пользователей существует возможность, а иногда и необходимость, разработать свои собственные классы.

Такая функциональность позволяет пользователям приспособить IDE к своим собственным требованиям и предоставляет достаточную гибкость jWB, поддерживая необходимые изменения на уровне требований времени.

В этом документе поясняется, как пользователь может создавать эти новые классы и интегрировать их со средой разработки jBASE for Web Builders.

ОБЗОР

Классы разработки - jBASE for Web Builders development classes построены из процедуры разработки (development routine), обычно имеющей префикс 'syse', и процедуры исполнения (run time routine), обычно имеющей префикс 'syso', а также иконок Selected и Unselected.

Эти процедуры указывают, что будет показано во время редактирования, когда пользователь выбирает класс разработки и помещает его на страницу, и во время исполнения, когда страница отображается для пользователя.

Каждый класс также имеет определенный набор свойств, которые показаны в панели свойств (properties pane) при выборе этого конкретного объекта.

ПОСТРОЕНИЕ КЛАССА РАЗРАБОТКИ

Класс web-проектировщика позволит нам включение тэга 'Mail To', с помощью которого пользователь сможет отправлять почту - email по указанному адресу.

Стартуйте jWB, затем развернимте меню 'Configuration' и выберите 'Development Classes'. Будет показан список существующих классов разработки. Выберите режим добавления нового элемента 'Add a New Item' и затем при запросе введите 'usrmailto'. Откроется экран 'Editing Class' для нового класса.

В поле описания введите 'MAILTO anchor Tag'. В поле 'Run Time Routine' введите 'usromailto' и затем выберите кнопку после поля для того, чтобы открыть окно редактирования.

Эта процедура будет вызвана при отображении страницы, когда будет генерироваться html для объектов 'Mail To'.

Начинается html с символов '<a' - они указывают, что мы имеем дело с "анкерным" тэгом (anchor tag), т.е. с "якорем". Затем генерируется 'href' для целевого адреса email путем конкатенации текста 'mailto:', являющегося указанием тэга mail-to tag, со свойством 'Email Address' нашего объекта.

Затем процедура проверяет, заполнены ли другие поля свойств, и добавляет их к тэгу html там, где это нужно. Наконец, процедура вставляет содержимое свойства 'Text' и производит закрытие тэга с помощью '/a>'.

Вставьте в окно редактора следующую процедуру:

      SUB usromailto(html)
*--- включение блока common block
      INCLUDE sysbp syscommon
*--- начало тэга anchor tag
      html = \<a\
*--- устанавливаем ссылку href, если имеется
      IF sysobjrec<10,2> = "" THEN
      html := \ href=mailto:"javascript:void(0)"\
      END ELSE
      html := \ href='mailto:\:sysobjrec<10,2>:\'\
      END
*--- стиль - style
      IF sysobjrec<10,3> THEN
      html := \ style="\:sysobjrec<10,3>:\"\
      END
*--- класс - class
      IF sysobjrec<10,4> THEN
      html := \ class="\:sysobjrec<10,4>:\"\
      END
*--- вставляем событие фокуса - focus event
      IF sysobjrec<10,5> # "" THEN
      html := \ onfocus="\:sysobjrec<10,5>:\"\
      END
*--- вставляем событие изменения - change event
      IF sysobjrec<10,6> # "" THEN
      html := \ onchange="\:sysobjrec<10,6>:\"\
      END
*--- вставляем событие blur event
      IF sysobjrec<10,7> # "" THEN
      html := \ onblur="\:sysobjrec<10,7>:\"\
      END
*--- добавляем текст (выбирая language в account
      captiontext = ""
      IF sysobjrec<10,1> # "" THEN
*------ set default position for field statement in case
      where no multi-language
      pos=1
*------ check if this user has a non-default language specified
      IF sysuserrec<23> # "" THEN
*--------- check if the language id is stored numerically or as text
      IF NUM(sysuserrec<23>) THEN
      pos = sysuserrec<23>
      END ELSE
      LOCATE(sysuserrec<23>,sysparms,22;pos) ELSE pos = 0
      END
*--------- increment location due to first item being default       english text
      pos+=1
      END
      captiontext = FIELD(sysobjrec<10,1>,CHAR(129),pos)
*------ if text is blank then default to english text
      IF captiontext = "" THEN
      captiontext = FIELD(sysobjrec<10,1>,CHAR(129),1)
      END
      END
      html := \>\:captiontext:\</a>\
*--- thats it
      RETURN

Сохраните и скомпилируйте процедуру - Update и Compile.

В полях 'Unselected Icon' и 'Selected Icon' введите маршрут (path) к тем иконкам, которые вы намерены использовать. Они появятся в инструментальной линейке - jWB toolbar в верхней части экрана.

Затем введите 'usremailto' в поле 'Edit Routine', потом выберите кнопку после поля, чтобы открыть окно редактирования.

Эта процедура будет определять, что произойдет во время процесса редактирования - например, когда пользователь добавляет объект такого типа в страницу или когда выполняет щелчок по существующему объекту 'Mail To'.

Все, что будет отобразится на экране, будет либо содержимым свойства 'Text', если было введено какое-то значение, либо по умолчанию 'Selected Icon'.

Процедура также добавляет к объекту событие 'onclick' - так что когда пользователь выполнит щелчок на конкретном объекте, соответствующие свойства будут отображены в панели 'Properties Pane'.

Вставьте в окно редактирования следующую процедуру:

      SUB usremailto(html)
*--- включение блока common block
      INCLUDE sysbp syscommon
*--- открытие файлов
      CALL sysopen("sysclasses",sysclasses,errhtml)
*--- генерация html
      html = ""
      alttxt = sysobjrec<10,1>
*--- если текст пустой
      IF sysobjrec<10,1> = "" THEN
*------ получаем иконку по умолчанию из файла классов
      READ clsrec FROM sysclasses,sysobjrec<1> THEN
      img = clsrec<3,1>
      IF INDEX(img,"{{",1) > 0 THEN
      CALL sysftn(img)
      END
      html := \<img src="\:img:\"\
      END
*------ вставляем скрипт
      html := \ onclick="ObjLaunch('usrmailto','\:syshidden<1>:\','EDIT')"\
      html := \ alt="\:alttxt:\" style="cursor:hand"\
      html := \ border=0 align=top>\
      END ELSE
*------ перемещение к properties on click
      leadin = \<span onclick="ObjLaunch('usrmailto','\
      leadin := syshidden<1>:\','EDIT')" style="cursor:hand"\
*------ и к заголовку - title
      titletext=""
      leadin := \ title="\:titletext:\">\
      html=leadin:\<font color=#0000FF><u>\
      :FIELD(sysobjrec<10,1>,CHAR(129),1)[1,50]:\</u></font></span>\
      END
*--- выполняем возврат с html
      RETURN

Сохраните и скомпилируйте процедуру - Update и Compile.


Четыре флажка (check boxes) определяют, где компонент появится внутри jWB. Дополнительные переключатели класса - page, menu и table sub class отражают, будет ли класс появляться в инструментальной линейке (toolbox) при редактировании страницы - page, меню - menu или таблицы - table. Отдельный флажок (check box) указывает, что класс будет появляться в главном меню разработчика - main jWB development menu. Отметьте флажок 'Stand Alone', и затем введите следующие свойства.

Наконец, выберите кнопку 'Update Class', и теперь новый класс разработчика - development class будет создан.


| НАЗАД | ДАЛЕЕ | НАЧАЛО СТРАНИЦЫ | НА ГЛАВНУЮ |
 
    | E-Mail | Версия сайта 2003 г. | Контакты | Web Builder | СУБД jBASE | СУБД UniVerse | Миграции из Pick | Data Warehousing |