Incorporando sistema de ajuda on-line em aplicações Java – Parte 03
Gerando a busca de conteúdo
A engine da busca de
conteúdo recupera tanto documentos quanto trechos específicos dos documentos em
resposta às consultas do usuário. A base de dados para busca é gerada a partir
da ferramenta jhindexer.jar sobre o
diretório de arquivos de informações HTML. Logo, todos os arquivos de
documentação devem ser salvos num diretório específico.
Neste exemplo, todos os arquivos .html
serão salvos em JH_HOME\javahelp\bin\html.
Para a geração da busca de conteúdo, o seguinte comando deve ser executado:
jhindexer html
onde o parâmetro html constitui o diretório onde a documentação de consulta
(arquivos .html) foi salva. Após a
execução do comando, a base de dados gerada será armazenada no diretório
JavaHelpSearch.
Para testar a busca sobre a base gerada, use a ferramenta jhsearch executando o
comando
jhsearch JavaHelpSearch
O comando retornará solicitando a palavra a ser buscada na base
initialized; enter query
Neste momento, deve ser informada uma palavra a ser pesquisada ou o
caracter . (ponto) para finalizar a busca.
Adicionando JavaHelp à aplicação
A aplicação de exemplo, que terá o JavaHelp incorporado, tem a seguinte
estrutura de pacotes:
O arquivo jhall.jar deve ser
adicionado ao classpath da aplicação.
O conteúdo do diretório JavaHelpSearch, gerado a partir da ferramenta jhindexer, deve ser copiado para o
pacote correpondente na aplicação (com.myapp.help.JavaHelpSearch).
A aplicação de exemplo é constituída de apenas duas entradas de menu. A
primeira entrada correspondendo às operações disponibilizadas pela aplicação, e
a segunda compondo a chamada ao tópico de ajuda. A tela é mostrada na Figura 01 e seu respectivo código na Listagem 05.
Listagem
05. Tela da aplicação.
Figura 01. Tela da aplicação com JavaHelp incorporado.
O código da Listagem 06 mostra como
o acionamento da JavaHelp é feito a partir da seleção do menu de ajuda da
aplicação. Como a aplicação utiliza a API Swing,
o evento é capturado e tratado pela implementação da interface ActionListener.
Listagem 06. Código que
implementa o tratamento do evento de seleção do menu de ajuda da aplicação.
Com essa estrutura construída, ao acionar a opção "Tópicos de Ajuda" no menu de Ajuda da aplicação, conforme Figura 01, o JavaHelp será acionado conforme exposto na Figura 02.
Figura
02. Sistema JavaHelp em ação
Considerações Finais
O sistema JavaHelp, em sua versão mais atual, não
possui internacionalização para Português (pt, pt_BR). Por este motivo, o label de busca, no navegador de pesquisa
de conteúdo, encontra-se em inglês - Find.
Outro detalhe a ser ressaltado é que, se os arquivos .html, referenciados no map.jhm,
não forem criados com a tag
A aplicação construída neste artigo incorporou a base de dados gerada para
busca de conteúdo do JavaHelp diretamente na sua estrutura de pacotes. Isso
porém, pode ser alterado empacotando-se essa base num arquivo .jar. Para isso, basta acessar o
diretório onde essa base está sendo gerada e executar o comando
jar -cf custom-javahelp.jar
Em seguida, basta adicionar o arquivo gerado ao classpath da aplicação.
Referências
Help
Systems - Design and Implementation (Greg Kearsley)
Disponível em:
http://java.sun.com/developer/technicalArticles/J2SE/Desktop/javahelp/
http://java.sun.com/javase/technologies/desktop/javahelp/faq.html#a
JavaHelp System User's Guide
JavaHelp 2.0 Specification Final Release