01: package org.dbbrowser.help;
02:
03: import infrastructure.logging.Log;
04: import javax.help.HelpSet;
05: import javax.help.HelpBroker;
06: import javax.help.CSH;
07: import javax.swing.*;
08: import java.net.URL;
09: import java.awt.event.ActionListener;
10: import java.awt.*;
11:
12: /**
13: * Sets up help classes and context sensitive help
14: */
15: public class HelpManager {
16: private static HelpManager helpManager = new HelpManager();
17: private HelpSet helpSet = null;
18: private HelpBroker helpBroker = null;
19:
20: /**
21: * Private constructer as it is a singleton
22: */
23: private HelpManager() {
24: initializeHelpManager();
25: }
26:
27: /**
28: * Returns the singleton HelpManager
29: * @return
30: */
31: public static HelpManager getInstance() {
32: return helpManager;
33: }
34:
35: /**
36: * Setup ContextSensitiveHelp (CSH)
37: * @param trigger
38: * @param target
39: * @param targetInJavaHelpSet
40: */
41: public void registerCSH(AbstractButton trigger, Component target,
42: String targetInJavaHelpSet) {
43: helpBroker.enableHelpKey(target, targetInJavaHelpSet, helpSet,
44: "javax.help.SecondaryWindow", "");
45: helpBroker.enableHelp(target, targetInJavaHelpSet, helpSet);
46: trigger.addActionListener(new CSH.DisplayHelpAfterTracking(
47: helpBroker));
48: }
49:
50: /**
51: * Returns the ActionListener for 'Help' button
52: * @return
53: */
54: public ActionListener getActionListenerForHelpEvents() {
55: return new CSH.DisplayHelpFromSource(helpBroker);
56: }
57:
58: /**
59: * Sets up the help manager
60: */
61: private void initializeHelpManager() {
62: Log.getInstance().infoMessage("Starting java help...",
63: this .getClass().getName());
64:
65: //Find the HelpSet file and create the HelpSet object:
66: String helpHS = "DBBrowser.hs";
67: ClassLoader cl = this .getClass().getClassLoader();
68: try {
69: URL hsURL = HelpSet.findHelpSet(cl, helpHS);
70: helpSet = new HelpSet(cl, hsURL);
71: helpBroker = helpSet.createHelpBroker();
72: } catch (Exception ee) {
73: // Say what the exception really is
74: Log.getInstance().infoMessage("HelpSet " + ee.getMessage(),
75: this .getClass().getName());
76: Log.getInstance().infoMessage(
77: "HelpSet " + helpHS + " not found",
78: this.getClass().getName());
79: }
80: }
81: }
|