Главная > Java сниппеты > Создание HelpSet с помощью программы JavaHelp(tm)

Тема Зацепин
268

Java-разработчик 🧩
235
2 минуты

Создание HelpSet с помощью программы JavaHelp(tm)

1 Введение 2 Пример для демонстрации 3 Индексный файл и файл содержания 4 Проверка результата 5 Ссылки

Добавлено : 23 Dec 2008, 16:46

Содержание

Введение

Программа JavaHelp дает вам возможность добавить систему оперативной помощи к любой системе с Java Runtime Environment (JRE). При помощи JavaHelp вы можете встроить оперативную документацию в ваши клиентские программы. Это можно сделать для апплетов и приложений. Кроме того, можно использовать JavaHelp либо с компонентами JavaBeans(tm), либо в качестве автономной системы помощи для сторонних систем.

Начать работу с JavaHelp легко. Просто зайдите на страницу http://java.sun.com/products/javahelp/download_binary.html. Вы можете загрузить либо пользовательскую версию с JRE, либо версию, ориентированную на разработчиков (в виде Zip-архива или самораспаковывающейся программы). В загрузочном пакете находится также "Руководство пользователя по JavaHelp". Просматривая это руководство, вы увидите систему JavaHelp в действии.

После запуска основанной на Swing системы помощи для JavaHelp на экране отображается информация в нескольких областях просмотра. Среди этих областей - содержание, индекс тем и система поиска. Эти три системы вместе называются HelpSet и могут включать в себя несколько файлов тем. Естественно, работа по созданию файлов тем помощи и навигационных файлов, связывание темы помощи с файлом, содержащим необходимую информацию, остается за вами. Файлы тем имеют формат HTML, а навигационные файлы форматируются в XML. Хотя вы можете использовать программные средства сторонних производителей для автоматизации создания необходимых файлов. Например, программа RoboHELP генерирует необходимые файлы в формате JavaHelp. Список программ, поддерживающих формат программы JavaHelp, находится на странице http://java.sun.com/products/javahelp/industry.html.

Пример для демонстрации

Для демонстрации системы JavaHelp в действии давайте создадим HelpSet "Hello, JavaHelp". Для этого необходимо настроить специальную схему каталогов. Это поможет не смешивать файлы HelpSet с другими. Навигационные файлы располагаются в каталоге верхнего уровня, а файлы тем и изображений - в подкаталогах.

Сначала создайте каталог с именем help. В нем создайте каталог Hello.

В каталоге Hello создайте подкаталоги для хранения реальных файлов помощи. Для демонстрации "Hello, JavaHelp" создайте один каталог First и второй - Last.

После создания структуры каталогов можно начать создание навигационных файлов и файлов помощи. Структура каталогов выглядит так:

+ help + Hello + First + Last

DTD для главного файла HelpSet находится на странице http://java.sun.com/products/javahelp/helpset_1_0.dtd. В этом файле создаются записи для элементов карты, а также оглавление и индекс. Нет ничего сложного в названиях файлов. Необходимо только, чтобы файл HelpSet заканчивался расширением .hs. Ниже приведен в качестве примера файл HelpSet - hello.hs; карта находится в файле Map.jhm, содержание - в toc.xml, а индекс - в index.xml. Создайте файл hello.hs в каталоге help.

xmlversion='1.0'encoding='ISO-8859-1'?>DOCTYPE helpset PUBLIC "-//Sun Microsystems Inc.//DTD JavaHelp HelpSet Version 1.0//EN" "http://java.sun.com/products/javahelp/helpset_1_0.dtd">version="1.0"></span><span>Hello, JavaHelp</span><span>location="Map.jhm"/>overviewTOCTOCjavax.help.TOCViewtoc.xmlIndexIndexjavax.help.IndexViewindex.xml

Для файла карты необходимо создать отображение ID на файлы, например, следующим образом:

target="one"url="Hello/First/one.htm"/>

Проверьте, что месторасположение файлов помощи задано относительно HelpSet. Вы можете жестко запрограммировать полные пути, но как только вы переместите JAR, все пути станут неправильными. Естественно, эти пути могут быть полными URL на ресурсы в Web. Если вы имеете один файл помощи в основном каталоге (overview.htm) и по два файла помощи в каждом из каталогов First и Least, ваш XML-файл карты отображения может выглядеть следующим образом. Создайте этот файл Map.jhm в основном каталоге.

xmlversion='1.0'encoding='ISO-8859-1'?>DOCTYPE map PUBLIC "-//Sun Microsystems Inc.//DTD JavaHelp Map Version 1.0//EN" "http://java.sun.com/products/javahelp/map_1_0.dtd">version="1.0">target="overview"url="Hello/overview.htm"/>target="one"url="Hello/First/one.htm"/>target="two"url="Hello/First/two.htm"/>target="three"url="Hello/Last/three.htm"/>target="four"url="Hello/Last/four.htm"/>

Индексный файл и файл содержания

Теперь о файле содержания и индексном файле. Они обеспечивают альтернативное средство работы с различными файлами помощи. Они также описываются в XML-файлах.

Для файла содержания каждое задание из карты отображается в текст, появляющийся в содержании. Создайте следующий файл toc.xml в основном каталоге.

xmlversion='1.0'encoding='ISO-8859-1'?>DOCTYPE toc PUBLIC "-//Sun Microsystems Inc.//DTD JavaHelp TOC Version 1.0//EN" "http://java.sun.com/products/javahelp/toc_1_0.dtd">version="1.0">image="toplevelfolder"target="overview"text="Hello, JavaHelp">text="First Stuff">target="one"text="The One"/>target="two"text="The Second"/>text="Last Stuff">target="three"text="What's Third?"/>target="four"text="The End"/>

Индекс - это еще один способ представления данных. При создании файла index.xml вы должны упорядочить термины в той последовательности, в которой хотите их отобразить. Просто создайте XML-файл с набором иерархических элементов . В каждом элементе запишите значение атрибута текста и значение атрибута задания. Значение атрибута для текста указывает, что отображается для пользователя в индексе. Значение атрибута задания указывает, какой раздел помощи отобразить. Создайте в основном каталоге следующий файл index.xml.

xmlversion='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">version="1.0">text="The First?">target="one"text="I'm One"/>target="two"text="I'm Second"/>text="The Last?">target="three"text="We're Third!"/>target="four"text="We're Last"/>target="overview"text="Overview!!!"/>

В файле карты отображения упоминается пять HTML-файлов:

Hello/overview.htm Hello/First/one.htm Hello/First/two.htm Hello/Last/three.htm Hello/Last/four.htm

Следовательно, вы должны создать их. Создайте эти файлы в соответствующих подкаталогах или каталоге Hello. Попробуйте создать файлы с какой-либо интересной информацией, например, запишите несколько предложений обзорной информации в файле overview.htm. Полная структура каталога теперь будет выглядеть следующим образом:

+ help hello.hs index.xml Map.jhm toc.xml + Hello overview.htm + First one.htm two.htm + Last three.htm four.htm

Проверка результата

Для проверки правильности проделанных действий запустите программу hsviewer, поставляющуюся с JavaHelp, и загрузите файл hello.hs. Программа hsviewer находится в подкаталоге demos/bin (Unix) или demos\bin (Windows) каталога с установленным пакетом JavaHelp. Например, в Unix перейдите в подкаталог demos/bin и введите:

hsviewer -helpset hello.hs -classpath path

Замените "path" на путь к hello.hs HelpSet.

После запуска hsviewer нажмите на кнопку Browse и найдите файл hello.hs. Затем нажмите на кнопку Display для активизации файла помощи. Поскольку hello.hs содержит два тега , вы обнаружите две закладки с левой стороны: одна для содержания, вторая для индекса. В правой части отобразится HTML-файл, соответствующий выбранному слева элементу.

Вы можете также добавить закладку поиска. Для этого запустите программу jhindexer и добавьте еще один элемент в HelpSet. Введите следующую команду jhindexer в каталоге с файлом hello.hs.

jhindexer Hello

Если команда отсутствует в вашей переменной path, необходимо ввести полный путь к jhindexer. Эта программа находится в подкаталоге javahelp/bin (Unix) или javahelp\bin (Windows) вашего каталога с установленным пакетом JavaHelp.

Ниже приведен тег , который вы должны добавить в hello.hs. JavaHelpSearch - это имя каталога, используемого для сохраняемых вспомогательных файлов индекса.

SearchWord Searchjavax.help.SearchViewengine="com.sun.java.help.search.DefaultSearchEngine"> JavaHelpSearch 

Ссылки

Дополнительная информация о сравнении с шаблоном и регулярных выражениях находится в статье "Регулярные выражения и язык программирования Java" (http://java.sun.com/jdc/technicalArticles/releases/1.4regex/).

Еще от автора

Применение WeakHashmap для списков слушателей

В статье от 11мая 1999 года Reference Objects были описаны основные идеи применения ссылочных объектов, но не приводилось детального описания. Данная статья позволит вам получить больше сведений, касающихся данной темы. В основном ссылочные объекты применяются для косвенных ссылок на память необходимую объектам. Ссылочные объекты хранятся в очереди (класс ReferenceQueue), в которой отслеживается доступность ссылочных объектов. Исходя из типа ссылочного объекта, сборщик мусора может освобождать память даже тогда, когда обычные ссылки не могут быть освобождены.

Заставки в Mustang

Согласно определению, данному в Wikipedia, заставка - это компьютерный термин, обозначающий рисунок, появляющийся во время загрузки программы или операционной системы. Заставка для пользователя является визуальным отображением инициализации программы. До выхода версии Java SE 6 (кодовое название Mustang) единственной возможностью применения заставки было создание окна, во время запуска метода main, и размещение в нем картинки. Хотя данный способ и работал, но он требовал полной инициализации исполняемой Java среды до появления окна заставки. При инициализации загружались библиотеки AWT и Swing, таким образом, появление заставки задерживалось. В Mustang появился новый аргумент командной строки, значительно облегчающий использование заставок. Этот способ позволяет выводить заставку значительно быстрее до запуска исполняемой Java среды. Окончательное добавление данной функциональности находится на рассмотрении в JCP.

Совмещение изображений

1 Введение 2 Правила визуализации и пример 3 Совмещение изображений в оперативной памяти 4 Постепенное исчезновение изображения 5 Ссылки и дополнительная информация

Еще по теме

Применение WeakHashmap для списков слушателей

В статье от 11мая 1999 года Reference Objects были описаны основные идеи применения ссылочных объектов, но не приводилось детального описания. Данная статья позволит вам получить больше сведений, касающихся данной темы. В основном ссылочные объекты применяются для косвенных ссылок на память необходимую объектам. Ссылочные объекты хранятся в очереди (класс ReferenceQueue), в которой отслеживается доступность ссылочных объектов. Исходя из типа ссылочного объекта, сборщик мусора может освобождать память даже тогда, когда обычные ссылки не могут быть освобождены.

Заставки в Mustang

Согласно определению, данному в Wikipedia, заставка - это компьютерный термин, обозначающий рисунок, появляющийся во время загрузки программы или операционной системы. Заставка для пользователя является визуальным отображением инициализации программы. До выхода версии Java SE 6 (кодовое название Mustang) единственной возможностью применения заставки было создание окна, во время запуска метода main, и размещение в нем картинки. Хотя данный способ и работал, но он требовал полной инициализации исполняемой Java среды до появления окна заставки. При инициализации загружались библиотеки AWT и Swing, таким образом, появление заставки задерживалось. В Mustang появился новый аргумент командной строки, значительно облегчающий использование заставок. Этот способ позволяет выводить заставку значительно быстрее до запуска исполняемой Java среды. Окончательное добавление данной функциональности находится на рассмотрении в JCP.

Использование потоков

1 Введение 2 Работа с выражениями типа Boolean 3 Класс JoptionPane 4 Приложение-счетчик 5 Ссылки

Перехват необрабатываемых исключений

В статье от 16 марта 2004 года Best Practices in Exception Handling были описаны приемы обработки исключений. В данной статье вы изучите новый способ обработки исключений при помощи класса UncaughtExceptionHandler добавленного в J2SE 5.0.

Использование класса LinkedHashMap

1 Введение 2 Сортировка хэш-таблицы 3 Копирование таблицы 4 Сохранение порядка доступа к элементам 5 Ссылки

Сказ про кодировки и java

С кодировками в java плохо. Т.е., наоборот, все идеально хорошо: внутреннее представление строк – Utf16-BE (и поддержка Unicode была с самых первых дней). Все возможные функции умеют преобразовывать строку из маленького регистра в большой, проверять является ли данный символ буквой или цифрой, выполнять поиск в строке (в том числе с регулярными выражениями) и прочее и прочее. Для этих операций не нужно использовать какие-то посторонние библиотеки вроде привычных для php mbstring или iconv. Как говорится, поддержка многоязычных тестов “есть в коробке”. Так откуда берутся проблемы? Проблемы возникают, как только строки текста пытаются “выбраться” из jvm (операции вывода текста различным потребителям) или наоборот пытаются в эту самую jvm “залезть” (операция чтения данных от некоторого поставщика).