Примечание: Эта информация предназначена для разработчиков, которым нужно, чтобы связать контекстно-зависимую справку (help по теме) для платформы Oracle для ваших API приложений.
Тип: Контекстно-зависимая справка API и поддержка файлов позволяет вызывать встроенные функции вместо того, чтобы создавать функции для отображения из тем.
Справка Oracle поддерживает контекстно-зависимую справку, но ваш разработчик должен писать и настраивать код, чтобы сделать её работоспособной.
Рабочий пример приложения Java с контекстно-зависимой справкой, представленным ниже. Чтобы выполнить этот пример:
1. Убедитесь, что у вас есть справка Oracle для компонентов Java и Sun Java 2 SDK или более поздней версии.
2. Скопируйте и вставьте код, вызвав файл: CSHDemo.java
3. Скомпилируйте заново (e.g., javac CSHDemo.java)
4. Запустите JAVA-аплет (e.g., java .cSHDemo ). Помошник Оракл должен иметь опцию fully-qualified к helpset файлу. Например, если вы создаёте Oracle Help helpset с именем «sample.hs» и сохраните это в «C:\myFiles,» команда для запуска вашего helpset файла будет с тем же путём) java CSHDemo C:\myFiles\Sample.hs (helpset)
Пример Интерактивного Справочника Помощи на Java Application
/*********************************************************************************
* Oracle Help Context Sensitive Help Пример приложения
*
* Это приложение предназначено как пример для вывода нескольких
* пунктов помощи (находящихся в контексте) Oracle Help.
*
* ИСПОЛЬЗОВАНИЕ: CSHSample <полный путь до helpset файла>
*
*********************************************************************************/
import oracle.help.Help;
import oracle.help.CSHManager;
import oracle.help.library.Book;
import oracle.help.library.helpset.HelpSet;
import oracle.help.navigator.Navigator;
import java.awt.*;
import java.awt.event.*;
import java.net.URL;
public class CSHSample extends Frame implements ActionListener
{
private Help helpObj;
private Book bookObj;
private CSHManager contextManager;
private MenuItem exitMenu;
private MenuItem contentsMenu;
private MenuItem searchMenu;
private MenuItem indexMenu;
// Константа отправленная TopicIDs из map-файла для Helpset передаётся
// в командной линии.
public static final String LABEL = «what_is_a_label_htm»;
public static final String FIELD = «what_is_a_text_field_htm»;
public static void main(String[] args)
{
if (args.length != 1) {
System.err.println(«Usage: CSHSample <full path to helpset file>»);
System.exit(1);
}
Book bookObj = null;
String filename = args[0];
// Допустимые имена файлов должны быть такие: «file:/[<drive>:/]dir/<helpset_file>»
// например: «file:/c:/myPath/myHelp.hs»
if (filename.charAt(0) == ‘/’)
filename = «file:» + filename;
else
filename = «file:/» + filename;
try {
bookObj = (Book) new HelpSet(new URL(filename));
}
catch (Exception e) {
System.err.println(«CSHSample Error: » + e.getMessage());
System.exit(1);
}
CSHSample sampApp = new CSHSample(bookObj);
sampApp.setVisible(true);
}
// Класс Constructor
public CSHSample(Book bookObj)
{
super(«CSH Sample Application»);
setResizable(false);
setSize(300, 200);
// Создаём Help объект
try {
helpObj = new Help(false, false);
contextManager = new CSHManager(helpObj);
contextManager.addBook(bookObj, true);
}
catch (Exception e) {
System.err.println(«CSHSample:: Failed While Creating Help object»);
e.printStackTrace();
System.exit(1);
}
/********************************************************************
* Добавляем UI Компоненты
*******************************************************************/
MenuBar menubar = new MenuBar();
Menu filemenu = new Menu(«File»);
exitMenu = new MenuItem(«Exit»);
filemenu.add(exitMenu);
exitMenu.addActionListener(this);
menubar.add(filemenu);
Menu helpmenu = new Menu(«Help»);
contentsMenu = new MenuItem(«Help Contents»);
contentsMenu.addActionListener(this);
helpmenu.add(contentsMenu);
indexMenu = new MenuItem(«Topic Index»);
indexMenu.addActionListener(this);
helpmenu.add(indexMenu);
searchMenu = new MenuItem(«Full Text Search»);
searchMenu.addActionListener(this);
helpmenu.add(searchMenu);
menubar.add(helpmenu);
setMenuBar(menubar);
Panel mainPanel = new Panel();
add(mainPanel, BorderLayout.CENTER);
// Добавляем название
Label label = new Label(«Country:», Label.LEFT);
mainPanel.add(label);
// Устанавливаем help для компоненты. TopicID = LABEL
// Передаём компоненту help c привязкой через TopicID в CSHManager объект
contextManager.addComponent(label, LABEL, true, true);
// ДобавляемTextField (текстовое поле)
TextField field = new TextField(15);
mainPanel.add(field);
//Установка значения для поиска. TopicID = FIELD
// Передача компоненты привязанной к TopicID в CSHManager объект
contextManager.addComponent(field, FIELD, true, true);
/********************************************************************
* Конец: Добавления UI Компоненты
*******************************************************************/
addWindowListener(
new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
setVisible(false);
System.exit(0);
}
}
);
}
public void actionPerformed(ActionEvent e)
{
Object source = e.getSource();
if (source == exitMenu) {
setVisible(false);
System.exit(0);
}
else if (source == contentsMenu) {
// Показать Help; отобразить содержимое
Navigator[] navs = contextManager.getAllNavigators();
if (navs != null)
contextManager.showNavigatorWindow(navs[0]);
}
else if (source == indexMenu) {
//Показать Help; Отобразить найденные темы
Navigator[] navs = contextManager.getAllNavigators();
if (navs != null)
contextManager.showNavigatorWindow(navs[1]);
}
else if (source == searchMenu) {
// Показать Help; Отобразить строку поиска
Navigator[] navs = contextManager.getAllNavigators();
if (navs != null)
contextManager.showNavigatorWindow(navs[2]);
}
}
}
Примечание: Справка Oracle использует тему с идентификаторами (map-файл), чтобы сделать контекстно-зависимая справку вызова. Вы можете изменить тему ID путем редактирования тега META непосредственно в вашем файле.