X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FHelp.java;h=8829be919fdbf204a83b19cca147ed389b6a32ff;hb=1ef93cb2817f75699773f049b8d25e5b509c2830;hp=810fc92f3c476655bc9919bfdfca61221c7076ac;hpb=1a04478ca5d5fa6bae27f8e7220df5b57fe1c698;p=jalview.git diff --git a/src/jalview/gui/Help.java b/src/jalview/gui/Help.java index 810fc92..8829be9 100644 --- a/src/jalview/gui/Help.java +++ b/src/jalview/gui/Help.java @@ -28,6 +28,9 @@ import javax.help.HelpBroker; import javax.help.HelpSet; import javax.help.HelpSetException; +import jalview.util.BrowserLauncher; +import jalview.util.Platform; + /** * Utility class to show the help documentation window * @@ -35,24 +38,42 @@ import javax.help.HelpSetException; */ public class Help { + private static final String HELP_PAGE_ROOT = "http://www.jalview.org/help/"; + + /** + * Defines selected help targets with links to inbuilt (Java) help page + * target, and externally hosted help page. Will need to be maintained + * manually if help pages are reorganised in future. + */ public enum HelpId { - Home("home"), SequenceFeatureSettings("seqfeatures.settings"), - StructureViewer("viewingpdbs"), PdbFts("pdbfts"), - UniprotFts("uniprotfts"); + Home("home", "help.html"), + SequenceFeatureSettings("seqfeatures.settings", + "html/features/featuresettings.html"), + StructureViewer("viewingpdbs", "html/features/viewingpdbs.html"), + PdbFts("pdbfts", "html/features/pdbsequencefetcher.html#pdbfts"), + UniprotFts("uniprotfts", + "html/features/uniprotsequencefetcher.html#uniprotfts"); private String id; - private HelpId(String loc) + private String path; + + private HelpId(String hepLoc, String htmlPath) { - this.id = loc; + this.id = hepLoc; + this.path = htmlPath; } - @Override - public String toString() + String getId() { return this.id; } + + String getPath() + { + return this.path; + } } private static HelpBroker hb; @@ -74,35 +95,57 @@ public class Help */ public static void showHelpWindow(HelpId id) throws HelpSetException { - ClassLoader cl = Desktop.class.getClassLoader(); - URL url = HelpSet.findHelpSet(cl, "help/help"); // $NON-NLS-$ - HelpSet hs = new HelpSet(cl, url); - - if (hb == null) + if (Platform.isJS()) { /* - * create help broker first time (only) - */ - hb = hs.createHelpBroker(); + try + { + */ + BrowserLauncher.openURL(HELP_PAGE_ROOT + id.getPath()); + /* + } catch (IOException e) + { + } + */ } - - try - { - hb.setCurrentID(id.toString()); - } catch (BadIDException bad) + else + /** + * Java only + * + * @j2sIgnore + */ { - System.out.println("Bad help link: " + id.toString() - + ": must match a target in help.jhm"); - throw bad; - } - /* - * set Help visible - at its current location if it is already shown, - * else at a location as determined by the window manager - */ - Point p = hb.getLocation(); - hb.setLocation(p); - hb.setDisplayed(true); + ClassLoader cl = Desktop.class.getClassLoader(); + URL url = HelpSet.findHelpSet(cl, "help/help"); // $NON-NLS-$ + HelpSet hs = new HelpSet(cl, url); + + if (hb == null) + { + /* + * create help broker first time (only) + */ + hb = hs.createHelpBroker(); + } + + try + { + hb.setCurrentID(id.getId()); + } catch (BadIDException bad) + { + jalview.bin.Console.outPrintln("Bad help link: " + id.getId() + + ": must match a target in help.jhm"); + throw bad; + } + + /* + * set Help visible - at its current location if it is already shown, + * else at a location as determined by the window manager + */ + Point p = hb.getLocation(); + hb.setLocation(p); + hb.setDisplayed(true); + } } /**