Más ficheros de JavaHelp

De ChuWiki

Viene de Ficheros de configuracion de JavaHelp

Para ampliar la funcionalidad de nuestra ayuda, con un índice y una búsqueda, podemos poner más ficheros de configuración de JavaHelp en nuestra aplicación.

Indice en JavaHelp[editar]

Podemos añadir un índice a nuestra ayuda. Al hacerlo, en la ventana, junto a la tabla de contenidos, aparecerá otra pestaña con el índice, de forma que podemos alternar entre una y otra.

Para el índice necesitamos, cómo no, un fichero de extensión .xml con el índice. Simplemente vamos poniendo en él los distintos elementos de nuestro índice y el fichero .html que se debe mostrar cuando pulsamos un elemento de ese índice. Por supuesto, el fichero html se referencia con la clave que le dimos en el fichero mapa.jhm

El contenido del fichero indice.xml puede ser similar a este

<?xml version='1.0' encoding='ISO-8859-1'  ?>
<!DOCTYPE index
  PUBLIC "-//Sun Microsystems Inc.//DTD JavaHelp Index Version 1.0//EN"
         "http://java.sun.com/products/javahelp/index_1_0.dtd">

<index version="1.0">
    <indexitem text="Cascar un huevo" target="cascar"/>
    <indexitem text="Freir un huevo" target="freir"/>
    <indexitem text="La sarten" target="sarten"/>
</index>

La primera parte del fichero es la normal de un fichero .xml. Luego, bajo el tag index, vamos colocando los items de nuestro índice con el tag indexitem. Cada uno de ellos lleva el text que se va a mostrar, junto a la clave target del fichero .html que se debe mostrar. Dichas claves las asignamos en el fichero mapa.jhm anteriormente.

Para que esto se muestre en la ventana, en nuestro fichero ayuda.hs, fichero principal de la ayuda, debemos añadir otro grupo más view. Puede ser como esto

  ...
  <view>
    <name>Indice</name>
    <label>El indice</label>
    <type>javax.help.IndexView</type>
    <data>indice.xml</data>
  </view>
  ...

Se indica el nombre de esta pestaña por medio de la etiqueta name, lo que debe mostrar el tooltip en la pestaña por medio de la etiqueta label. El tipo de pestaña que es por medio de la etiqueta type y debemos poner javax.help.IndexView para que JavaHelp reconozca que es una pestaña índice. También se pone por medio de la etiqueta data el fichero que contiene el índice, nuestro indice.xml creado antes.


Búsqueda en JavaHelp[editar]

También podemos poner la típica pestaña de búsqueda que tienen todas las ayudas. Aquí el tema es algo más complejo. En vez de añadir un fichero de configuración, tenemos que añadir una pequeña base de datos de búsqueda. Para ello, debemos usar una utilidad, llamada jhindexer, que viene con JavaHelp. Si tenemos la versión 2.0, viene en el directorio

path_java_help/jh2.0/javahelp/bin/jhindexer.jar

Esta utilidad nos crea la base de datos que necesitamos. Para hacerlo, nos vamos al directorio "ayuda", donde hemos puesto todos nuestros ficheros de ayuda, y escribimos

$ cd path_proyecto/ayuda
$ java -jar path_java_help/jh2.0/javahelp/bin/jhindexer.jar .

Hemos puesto como parámetro de jhindexer un punto, para indicar que debe indexar los ficheros del directorio actual. Si todo va bien, la aplicación generará un directorio JavaHelpSearch, que es donde habrá dejado nuestra base de datos de búsquedas. Si más adelante modificamos, borramos o añadimos ficheros de ayuda .html, deberemos ejecutar de nuevo el comando, para reconstruir la base de datos.

Una vez que tenemos la base de datos, en nuestro fichero ayuda.hs, debemos añadir otra nueva view

   ...
    <view>
    <name>Buscar</name>
    <label>Buscar</label>
    <type>javax.help.SearchView</type>
    <data engine="com.sun.java.help.search.DefaultSearchEngine">
      JavaHelpSearch
    </data>
  </view>
   ...

Nuevamente, el tag name indica el nombre de nuestra pestaña, el tag label indica el tooltip para esta pestaña. El tag type indica qué tiene la pestaña, en nuestro caso un javax.help.SearchView, que es la pestaña de búsqueda. Luego, con data, indicamos qué algoritmo de búsqueda vamos a usar -el de defecto de JavaHelp, que es com.sun.java.help.search.DefaultSearchEngine-, junto con el nombre del directorio que tiene nuestra pequeña base de datos de búsqueda, JavaHelpSearch.

Una vez hecho esto, nuestra ventana de ayuda mostrará una pestaña de búsqueda. Escribiendo algo en la caja de búsqueda, buscará dicha palabra por todos nuestros ficheros .html.