Clover icon

Coverage Report

  1. Project Clover database Thu Aug 13 2020 12:04:21 BST
  2. Package jalview.gui

File Help.java

 

Coverage histogram

../../img/srcFileCovDistChart2.png
50% of files have more coverage

Code metrics

4
20
6
2
153
77
10
0.5
3.33
3
1.67

Classes

Class Line # Actions
Help 40 16 7
0.00%
Help.HelpId 49 4 3
0.7142857371.4%
 

Contributing tests

This file is covered by 1 test. .

Source view

1    /*
2    * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
3    * Copyright (C) $$Year-Rel$$ The Jalview Authors
4    *
5    * This file is part of Jalview.
6    *
7    * Jalview is free software: you can redistribute it and/or
8    * modify it under the terms of the GNU General Public License
9    * as published by the Free Software Foundation, either version 3
10    * of the License, or (at your option) any later version.
11    *
12    * Jalview is distributed in the hope that it will be useful, but
13    * WITHOUT ANY WARRANTY; without even the implied warranty
14    * of MERCHANTABILITY or FITNESS FOR A PARTICULAR
15    * PURPOSE. See the GNU General Public License for more details.
16    *
17    * You should have received a copy of the GNU General Public License
18    * along with Jalview. If not, see <http://www.gnu.org/licenses/>.
19    * The Jalview Authors are detailed in the 'AUTHORS' file.
20    */
21    package jalview.gui;
22   
23    import jalview.util.BrowserLauncher;
24    import jalview.util.Platform;
25   
26    import java.awt.Point;
27    import java.io.IOException;
28    import java.net.URL;
29   
30    import javax.help.BadIDException;
31    import javax.help.HelpBroker;
32    import javax.help.HelpSet;
33    import javax.help.HelpSetException;
34   
35    /**
36    * Utility class to show the help documentation window
37    *
38    * @author gmcarstairs
39    */
 
40    public class Help
41    {
42    private static final String HELP_PAGE_ROOT = "http://www.jalview.org/help/";
43   
44    /**
45    * Defines selected help targets with links to inbuilt (Java) help page target,
46    * and externally hosted help page. Will need to be maintained manually if help
47    * pages are reorganised in future.
48    */
 
49    public enum HelpId
50    {
51    Home("home", "help.html"), SequenceFeatureSettings("seqfeatures.settings", "html/features/featuresettings.html"),
52    StructureViewer("viewingpdbs", "html/features/viewingpdbs.html"), PdbFts("pdbfts", "html/features/pdbsequencefetcher.html#pdbfts"),
53    UniprotFts("uniprotfts", "html/features/uniprotsequencefetcher.html#uniprotfts");
54   
55    private String id;
56   
57    private String path;
58   
 
59  5 toggle private HelpId(String hepLoc, String htmlPath)
60    {
61  5 this.id = hepLoc;
62  5 this.path = htmlPath;
63    }
64   
 
65  5 toggle String getId()
66    {
67  5 return this.id;
68    }
69   
 
70  0 toggle String getPath()
71    {
72  0 return this.path;
73    }
74    }
75   
76    private static HelpBroker hb;
77   
78    /**
79    * Not instantiable
80    */
 
81  0 toggle private Help()
82    {
83   
84    }
85   
86    /**
87    * Shows the help window, at the entry specified by the given helpId
88    *
89    * @param id
90    *
91    * @throws HelpSetException
92    */
 
93  0 toggle public static void showHelpWindow(HelpId id) throws HelpSetException
94    {
95  0 if (Platform.isJS())
96    {
97  0 try
98    {
99  0 BrowserLauncher.openURL(HELP_PAGE_ROOT + id.getPath());
100    } catch (IOException e)
101    {
102    }
103    }
104    else
105    /**
106    * Java only
107    *
108    * @j2sIgnore
109    */
110    {
111   
112  0 ClassLoader cl = Desktop.class.getClassLoader();
113  0 URL url = HelpSet.findHelpSet(cl, "help/help"); // $NON-NLS-$
114  0 HelpSet hs = new HelpSet(cl, url);
115   
116  0 if (hb == null)
117    {
118    /*
119    * create help broker first time (only)
120    */
121  0 hb = hs.createHelpBroker();
122    }
123   
124  0 try
125    {
126  0 hb.setCurrentID(id.getId());
127    } catch (BadIDException bad)
128    {
129  0 System.out.println("Bad help link: " + id.getId()
130    + ": must match a target in help.jhm");
131  0 throw bad;
132    }
133   
134    /*
135    * set Help visible - at its current location if it is already shown,
136    * else at a location as determined by the window manager
137    */
138  0 Point p = hb.getLocation();
139  0 hb.setLocation(p);
140  0 hb.setDisplayed(true);
141    }
142    }
143   
144    /**
145    * Show the Help window at the root entry
146    *
147    * @throws HelpSetException
148    */
 
149  0 toggle public static void showHelpWindow() throws HelpSetException
150    {
151  0 showHelpWindow(HelpId.Home);
152    }
153    }