1 17 package org.columba.core.help; 18 19 import java.awt.Component ; 20 import java.awt.event.ActionEvent ; 21 import java.awt.event.ActionListener ; 22 import java.net.URL ; 23 import java.util.Locale ; 24 25 import javax.help.HelpBroker; 26 import javax.help.HelpSet; 27 import javax.help.JHelp; 28 import javax.help.TextHelpModel; 29 import javax.swing.JFrame ; 30 import javax.swing.JMenu ; 31 import javax.swing.JMenuBar ; 32 import javax.swing.JMenuItem ; 33 import javax.swing.JOptionPane ; 34 35 import org.columba.core.gui.frame.FrameManager; 36 37 43 public class HelpManager { 44 private static HelpManager instance; 45 46 final static String helpsetName = "jhelpset"; 48 49 private JHelp jh = null; 50 51 private HelpSet hs = null; 52 53 private HelpBroker hb = null; 54 55 private JFrame frame; 56 57 61 private HelpManager() { 62 ClassLoader loader = getClass().getClassLoader(); 63 URL url = HelpSet.findHelpSet(loader, helpsetName, "", Locale 64 .getDefault()); 65 66 if (url == null) { 67 url = HelpSet.findHelpSet(loader, helpsetName, ".hs", Locale 68 .getDefault()); 69 70 if (url == null) { 71 JOptionPane.showMessageDialog(FrameManager.getInstance() 73 .getActiveFrame(), "HelpSet not found", 74 "Error", JOptionPane.ERROR_MESSAGE); 75 76 return; 77 } 78 } 79 80 try { 81 hs = new HelpSet(loader, url); 82 } catch (Exception ee) { 83 JOptionPane.showMessageDialog(FrameManager.getInstance() 84 .getActiveFrame(), "HelpSet not found", "Error", 85 JOptionPane.ERROR_MESSAGE); 86 87 return; 88 } 89 90 hb = hs.createHelpBroker(); 94 95 } 96 97 100 public void openHelpFrame() { 101 102 jh = new JHelp(hs); 103 104 TextHelpModel m = jh.getModel(); 105 HelpSet hs = m.getHelpSet(); 106 String title = hs.getTitle(); 107 108 if (title == null || title.equals("")) { 109 title = "Unnamed HelpSet"; } 111 112 frame = new JFrame (title); 113 frame.getContentPane().add(jh); 114 JMenuBar menuBar = new JMenuBar (); 115 JMenuItem mi; 116 JMenu file = (JMenu ) menuBar.add(new JMenu ("File")); 117 file.setMnemonic('F'); 118 119 mi = (JMenuItem ) file.add(new JMenuItem ("Exit")); 120 mi.setMnemonic('x'); 121 mi.addActionListener(new ActionListener () { 122 public void actionPerformed(ActionEvent e) { 123 frame.setVisible(false); 124 } 125 }); 126 127 frame.setJMenuBar(menuBar); 130 frame.pack(); 131 frame.setExtendedState(JFrame.MAXIMIZED_BOTH); 132 133 frame.setVisible(true); 134 } 135 136 139 public HelpBroker getHelpBroker() { 140 return hb; 141 } 142 143 153 public void enableHelpOnButton(Component c, String helpID) { 154 getHelpBroker().enableHelpOnButton(c, helpID, hs); 155 } 156 157 160 public void enableHelpKey(Component c, String helpID) { 161 getHelpBroker().enableHelpKey(c, helpID, hs); 162 } 163 164 167 public static HelpManager getInstance() { 168 if (instance == null) { 169 instance = new HelpManager(); 170 } 171 172 return instance; 173 } 174 } 175 | Popular Tags |