Создание нового обработчика пользовательского интерфейса

Для создания собственного обработчика пользовательского интерфейса нужно выполнить два основных действия:


Действие 1. Зарегистрировать информацию обработчика пользовательского интерфейса с помощью файла XML в каталоге \plugins\eGuide

При запуске сервера eGuide в каталоге \plugins\eGuide выполняется поиск файлов XML. Файлы, расположенные в этом каталоге, определяют, какие обработчики пользовательского интерфейса будут доступны в утилите администрирования eGuide. Поэтому можно создавать и изменять существующие обработчики пользовательского интерфейса за счет добавления и изменения файлов в этом каталоге. Файл может иметь любое имя, но обязательно должен иметь расширение .XML.

Нужно определить обработчик пользовательского интерфейса, ИД, имя и описание. Может также потребоваться указание ассоциации с ключом шаблона или синтаксисом атрибута. Это можно сделать с помощью тегов имени атрибута или имени синтаксиса.

Можно также указать, каким клиентам разрешено использовать данный обработчик. Утилита администрирования eGuide позволяет легко определить, способен ли обработчик обслуживать различные устройства. При необходимости можно также указать, будет ли обработчик иметь возможность обслуживания многозначных или однозначных параметров, будет ли он предназначен только для чтения или для чтения и записи.

Кроме этого, потребуется определить имя класса обработчика данных. Обработчики данных позволяют изменять способ получения и хранения информации с помощью классов Java. Например, существует возможность подачи запроса в совершенно отдельную базу данных для получения необходимой информации. Однако чаще всего приходится указывать обработчик данных по умолчанию, как это описано в примере ниже.

Используйте следующее определение обработчика в качестве примера для создания обработчика пользовательского типа. Имейте в виду, что эти примеры можно найти в документе Customuihandler.XML, расположенном в папке \eGuide\WEB-INF\plugins\eGuide. Чтобы запустить обработчик, требуется только убрать из строк символы комментариев и перезапустить eGuide:

<!-- ATTRIBUTE : User Type Selector --> 
<ui-attribute-handler>
<id>SVUserType</id>
<attribute-name>USERTYPE</attribute-name>
<class-name>com.novell.eguide.handler.LabeledURIDataHandler</class-name>

<client>browser</client>
<client>pocket</client>

<multi-valued-enabled/>
<single-valued-enabled/>
<read-write-enabled/>
<read-only-enabled/>

<display-name-key>User Type Selector</display-name-key>
<resource-properties-file>eguideresources</resource-properties-file>
</ui-attribute-handler>

После определения такой же информации в файле XML потребуется перезапустить сервер eGuide. Теперь можно приступать к выбору требуемого обработчика пользовательского интерфейса. Однако при просмотре обработчика с помощью клиента появится предупреждение относительно ассоциированного атрибута. Для завершения процесса необходимо выполнить действие 2.


Действие 2. Определение поведения обработчика пользовательского интерфейса в файле UIHandlers.XSL

Такие ориентированные на навигатор языки, как HTML, JavaScript, CSS и другие позволяют определять способ отображения и/или редактирования информации.

В данном примере нужно удалить символы комментарием из файла UIHandlers.xsl, расположенного в каталоге eGuide\WEB-INF\templates\xsl\default\browser:

<!-- SV Employee Type --> 
<xsl:when test="@uihandler='SVEmployeeType'">
<tr>
<xsl:call-template name="LabelTD"/>
<xsl:choose>
<xsl:when test="edit='true'">
<td class="ValueText">
<input type="hidden" name="{name}" id="{name}">
<xsl:attribute name="value"><![CDATA[<undefined><nochange></nochange></undefined>]]></xsl:attribute>
</input>
<select size="1" class="inputTextBox" name="_SV_CTRL_{name}" value="{value}" onchange="updateSvXml('document.forms[0]._SV_CTRL_{name}')">
<option value="Contract"><xsl:if test="value = 'Contract'"><xsl:attribute name="selected">true</xsl:attribute></xsl:if>Contract</option>
<option value="Full Time"><xsl:if test="value = 'Full Time'"><xsl:attribute name="selected">true</xsl:attribute></xsl:if>Full Time</option>
<option value="Internship"><xsl:if test="value = 'Internship'"><xsl:attribute name="selected">true</xsl:attribute></xsl:if>Internship</option>
<option value="Part Time"><xsl:if test="value = 'Part Time'"><xsl:attribute name="selected">true</xsl:attribute></xsl:if>Part Time</option>
<option value=""><xsl:if test="value = ''"><xsl:attribute name="selected">true</xsl:attribute></xsl:if>(None)</option>
</select>
</td>
</xsl:when>
<xsl:otherwise>
<xsl:call-template name="MSV_GenericTextShowTD"/>
</xsl:otherwise>
</xsl:choose>
</tr>
</xsl:when>

ПРИМЕЧАНИЕ:  для того, чтобы все изменения вступили в силу на функционирующей системе, необходимо перезапустить сервер или разрешить отладку XML с помощью утилиты администрирования eGuide с параметрами "Отчет" - "Отладка". Отладка XML используется по двум причинам: для отключения кэширования шаблонов и для того, чтобы вывод XML eGuide регистрировался как на экране консоли, так и в файлах журнала. С другой стороны, выполнение этих двух функций приводит к замедлению работы сервера.

Теперь можно выбрать обработчик пользовательского интерфейса для атрибута EMPLOYEETYPE (тип сотрудника) или для любого другого атрибута, для которого ключом шаблона назначен EMPLOYEETYPE (тип сотрудника).