Creazione di un nuovo gestore dell'interfaccia utente

La creazione di un gestore dell'interfaccia utente prevede due fasi di base:


Fase 1. Registrazione delle informazioni sul gestore dell'interfaccia utente mediante un file XML nella directory \plugins\eGuide

Una volta avviato, il server eGuide esegue la ricerca dei file XML nella directory \plugins\eGuide. I file presenti in questa directory determinano i gestori dell'interfaccia utente disponibili nell'utility di amministrazione di eGuide. È pertanto possibile creare nuovi gestori dell'interfaccia utente o modificare quelli esistenti aggiungendo ulteriori file nella directory o apportando modifiche a quelli già presenti in essa. Tali file possono avere un nome qualsiasi, ma devono essere associati all'estensione .XML.

In genere, è necessario definire il gestore dell'interfaccia utente, un ID, un nome e una descrizione, nonché specificare l'associazione alla chiave modello o alla sintassi di attributo. A tal fine, è necessario utilizzare i tag attribute-name (nome attributo) o syntax-name (nome sintassi).

È anche possibile specificare i client che possono utilizzare il gestore. Mediante l'utility di amministrazione di eGuide è possibile indicare con facilità se il gestore è in grado di eseguire diversi dispositivi. Se si desidera, è anche possibile specificare i tag abilitato per multi-valued (valore multiplo), abilitato per single-valued (valore singolo), abilitato per read-write (lettura-scrittura) e abilitato read-only (sola lettura).

È anche necessario definire il nome della classe per il gestore dati. I gestori dati consentono di modificare il modo in cui le informazioni vengono recuperate e memorizzate mediante le classi Java. È possibile ad esempio eseguire un'interrogazione su un database distinto per recuperare alcune informazioni. Tuttavia, nella maggior parte dei casi viene specificato il gestore dati di default, come nell'esempio riportato di seguito.

Utilizzare la seguente definizione di gestore come un esempio di dati per la creazione di un gestore User Type. Tali esempi sono disponibili nel documento Customuihandler.XML presente nella cartella \eGuide\WEB-INF\plugins\eGuide. Per l'esecuzione dei comandi in tali righe, è necessario rimuovere i relativi commenti e riavviare 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>

Una volta definite le stesse informazioni nel file XML, è necessario riavviare il server eGuide. A questo punto, è possibile passare al gestore dell'interfaccia utente personalizzato e selezionarlo. Tuttavia, al momento della visualizzazione del gestore nel client, si riceverà un messaggio di avviso per l'attributo associato. Per completare il processo, eseguire la fase 2.


Fase 2. Definizione del funzionamento del gestore dell'interfaccia utente nel file UIHandlers.XSL

Per definire la modalità di visualizzazione e/o modifica delle informazioni, è possibile utilizzare HTML, JavaScript, CSS e altri linguaggi per browser.

Per l'esempio in questione, rimuovere i commenti del seguente codice xsl dal file UIHandlers.xsl presente nella directory 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>

NOTA:  per applicare tali modifiche in un sistema attualmente in esecuzione, è necessario riavviare il server o abilitare il debug XML nell'utility di amministrazione di eGuide, mediante le impostazioni Generazione rapporti - Debug. Il debug XML consente di disabilitare la memorizzazione nella cache dei modelli e scrivere l'output XML di eGuide sulla schermata della console e nei file di log. L'uso di tale opzione provoca tuttavia un rallentamento del server, al fine di consentire l'esecuzione di tali funzioni.

A questo punto, è possibile selezionare il gestore dell'interfaccia utente per l'attributo EMPLOYEETYPE o un qualsiasi attributo con la chiave modello mappata a EMPLOYEETYPE.