Incorporando sistema de ajuda on-line em aplicações Java – Parte 01
Sistemas de Ajuda
Sistemas de Ajuda (SA) são aquisições relativamente
recentes dos projetos de software. Até 1975, sistemas que apresentassem esse
tipo de funcionalidade eram raros. Atualmente, porém, a disponibilização de um
SA é tida como componente essencial para um bom projeto de software.
Nesse sentido, um SA se encarrega das responsabilidades de prover, de forma
intuitiva, informações que facilitem aos usuários navegar, pesquisar e aprender
a utilizar o sistema do qual a ajuda é parte integrante.
A consideração primária relativa ao projeto de um SA é se este será dinâmico ou
estático. Sistemas de ajuda dinâmicos variam a ajuda oferecida baseando-se
tanto na localização do usuário dentro da aplicação, quanto de suas ações
prévias sobre a mesma. Em contrapartida, os sistemas de ajuda estáticos não
levam em conta essas duas variáveis ao interagir com o usuário. Funcionam como
um guia de referência online onde os termos de entrada são determinados previamente.
Quando a ajuda é requisitada, o usuário tem a oportunidade de obter
esclarecimento do termo desejado, ou selecionar um termo de uma lista provida.
Este artigo se dedicará a analisar um sistema de ajuda estático.
Tecnologia JavaHelp
JavaHelp é tanto uma API quanto um sistema extensível e independente de
plataforma para implementação da ajuda ao usuário em aplicações e geração de
documentação online. É escrito em Java e, portanto, roda em qualquer plataforma
ou browser com suporte ao JRE. Baseado em Swing, o JavaHelp provê uma interface
padrão que habilita tanto desenvolvedores quanto autores a adicionarem uma
ajuda online em suas aplicações.
O sistema JavaHelp é flexível para prover ajuda online em diferentes cenários:
- Aplicações (applet e standalone)
- Componentes JavaBeans
- Applets em páginas HTML
- Aplicações Web.
Diversos aspectos distinguem o JavaHelp de outros sistemas de ajuda baseados em
Java. São alguns deles:
- Navegadores de Help: Tabela de
conteúdo (TOC) articulada, dando suporte à expansão e sintetização de tópicos,
número ilimtados de níveis hierárquicos e full-text
search flexível e configurável.
- Compressão: Pode ser comprimido e
encapsulado em um único arquivo .jar.
- Extensibilidade e Personalização:
A API do JavaHelp pode ser usada para personalizações ou extensões da interface
com o usuário e de suas funcionalidades.
- Atualizações dinâmicas: permite
que um sistema de ajuda online seja dinamicamente atualizado após a
geração de uma release.
- Internacionalizável: dá suporte à
internacionalização (I18N).
Diante dessa capacidade do JavaHelp em prover sistemas de ajuda para aplicações
em geral, o objetivo deste artigo será o de apresentar um passo-a-passo de como
este sistema pode ser incorporado em uma aplicação standalone de exemplo.
O Sistema JavaHelp
O sistema JavaHelp, implementação de referência da Sun MicroSystems,
encontra-se na versão 2.0_05 e pode ser baixado pelo endereço http://java.sun.com/products/javahelp.
Seu desenvolvimento e evolução continua sendo sustentado pela própria Sun, a
qual se mantém aberta e flexível a contribuições externas.
Assumindo-se que a descompactação do arquivo zipado foi feita no diretório C:\ do Windows, o JavaHelp estará
disponível em C:\jh2.0 (JH_HOME). Algumas bibliotecas e
ferramentas são:
Dessa forma, a criação do helpset consiste numa seqüência de passos:
1. Criação das páginas HTML (tópicos)
2. Criação do arquivo helpset propriamente dito
3. Criação do arquivo de mapeamentos
4. Criação da tabela de conteúdo do help
5. Criação do índice conteúdo do help
6. Criação da base de dados para a funcionalidade de full-text search
Esses passos básicos possibilitam a geração de um sistema de ajuda ao usuário. Vale destacar que os passos 5 e 6 são necessários somente se as funcionalidade de índice de palavras e busca de conteúdo (full-text search) forem requeridas como parte integrante do sistema de ajuda.