added 'since 2.x notes to parameters'. User configurable help URL for
authorjprocter <jprocter@compbio.dundee.ac.uk>
Thu, 28 Jul 2011 10:03:33 +0000 (11:03 +0100)
committerjprocter <jprocter@compbio.dundee.ac.uk>
Thu, 28 Jul 2011 10:03:33 +0000 (11:03 +0100)
JalviewLite (JAL-864). resolvetocodebase parameter introduced to
allow pre-2.7 style codebase+relative URL resolution (JAL-359, JAL-786)

examples/appletParameters.html
src/jalview/appletgui/AlignFrame.java
src/jalview/bin/JalviewLite.java

index 3b2edfb..554419c 100644 (file)
           <tr><td>showbutton</td>
           <td>true</td>
           <td>Show the jalview button on the page. When false, JalviewLite will open immediately.</td>
-          </tr>\r          </tr>\r                 <tr><td>sortByTree</td>\r                <td>true or false (default is false)</td>\r              <td>automatically sort the associated alignment view by the tree when a new tree is opened.</td>\r               </tr>\r                  <tr>\r            <td>showTreeBootstraps</td><td>true or false (default is true)</td><td>show or hide branch bootstraps</td>\r                  </tr>\r  <tr><td>showTreeDistances</td><td>true or false (default is true)</td><td>show or hide branch lengths</td></tr>\r        <tr><td>showUnlinkedTreeNodes</td><td>true or false (default is false)</td><td>indicate if unassociated nodes should be highlighted in the tree view</td>\r      </tr>\r          <tr><td>heightScale</td>\r          <td>1.0 or greater</td>\r          <td>Adjust the height of each cell in the alignment grid relative to the height of a character in the alignment font.</td>\r          </tr>
-          <tr><td>widthScale</td>\r          <td>1.0 or greater</td>\r          <td>Adjust the width of each cell in the alignment grid relative to the width of a character in the alignment font.</td>\r          </tr>\r          <tr><td>centrecolumnlabels</td>\r          <td>true of false (default is false)</td>\r          <td>When true, text labels associated with a column in the alignment will be shown centered with respect to the column.</td>\r          <tr><td>showUnconserved</td>\r          <td>true of false (default is false)</td>\r          <td>When true, only gaps and symbols different to the consensus sequence for a column will be shown. Useful for visualizing alignments exhibiting low sequence variation, where it is important to highlight mutations.</td>\r          </tr>\r          <tr><td>upperCase</td>\r          <td><em>bold</em> or other value</td>\r          <td>Indicate a text style to apply to uppercase sequence symbols. Currently, only <strong>bold</strong> is supported.</td>\r          </tr>\r          <tr><td>showUnconserved</td>\r          <td>true of false (default is false)</td>\r          <td>When true, only gaps and symbols different to the consensus sequence for a column will be shown. Useful for visualizing alignments exhibiting low sequence variation, where it is important to highlight mutations.</td>\r          </tr>\r          \r          <tr><td>automaticScrolling</td>\r          <td>true of false (default is false)</td>\r          <td>When true, alignment panels will automatically scroll to show any regions of the alignment highlighted due to javascript events or when mousing over a position in an associated structure.</td>\r          </tr>\r          \r          <tr><td>showGroupConsensus</td>\r          <td>true of false (default is false)</td>\r          <td>When true, shows consensus annotation row for any groups on the alignment.</td>\r          </tr>\r          \r          <tr><td>showGroupConservation</td>\r          <td>true of false (default is false)</td>\r          <td>When true, shows amino-acid property conservation annotation row for any groups on the alignment.</td>\r          </tr>\r          <tr><td>showConsensusHistogram</td>\r          <td>true of false (default is true)</td>\r          <td>When true, shows the percentage occurence of the consensus symbol for each column as a histogram above the consensus sequence row.</td>\r          </tr>\r          <tr><td>showSequenceLogo</td>\r          <td>true of false (default is false)</td>\r          <td>When true, shows a sequence logo above the consensus sequence (overlaid above the Consensus Histogram, if visible, with symbols coloured using the alignment's default colourscheme).</td>\r          </tr>\r          <tr><td>oninit</td>\r          <td><em>after_init()</em></td>\r          <td>name of javascript function that will be called after the jalviewLite instance has completed its initialisation.</em></td>\r          </tr>\r          <tr><td>relaxedidmatch</td>\r          <td><em>true or false (default is false)</em></td>\r          <td>When true, use stem based matching to identify sequences that match features imported from a GFF or Jalview sequence features file, and for associating PDB data (passed on PDBfile parguments) with sequences (based on a given destination sequence ID).</td>\r          </tr>\r          <tr><td>alignpdbfiles</td>\r          <td><em>true or false (default is false)</em></td>\r          <td>When true, and jalviewLite is able to use jmol as a structure viewer, attempt to show a superposition of all structures loaded onto the alignment, superimposed using the aligned regions of corresponding sequences. [experimental]</td>\r          </tr>\r          <tr><td>externalstructureviewer</td>\r          <td><em>true or false (default is false)</em></td>\r          <td>re-route jmol colouring commands, selection and mouseover events to an external viewer using javascript callbacks. [experimental]</td>\r          </tr>\r          <tr><td>externalstructureviewer</td>\r          <td><em>true or false (default is false)</em></td>\r          <td>re-route jmol colouring commands, selection and mouseover events to an external viewer using javascript callbacks. [experimental]</td>\r          \r          </tr>\r          <tr><td>annotationcolour_max</td>\r          <td>colour name or RGB hex triplet (default is red)</td>\r          <td>Default colour used for maximum value when shading by annotation.</td>\r          </tr>\r          <tr><td>annotationcolour_min</td>\r          <td>colour name or RGB hex triplet (default is orange)</td>\r          <td>Default colour used for minimum value when shading by annotation.</td>\r          </tr>\r\r                  </table>
+          </tr>\r          </tr>\r                 <tr><td>sortByTree</td>\r                <td>true or false (default is false)</td>\r              <td>automatically sort the associated alignment view by the tree when a new tree is opened.</td>\r               </tr>\r                  <tr>\r            <td>showTreeBootstraps</td><td>true or false (default is true)</td><td>show or hide branch bootstraps</td>\r                  </tr>\r  <tr><td>showTreeDistances</td><td>true or false (default is true)</td><td>show or hide branch lengths</td></tr>\r        <tr><td>showUnlinkedTreeNodes</td><td>true or false (default is false)</td><td>indicate if unassociated nodes should be highlighted in the tree view</td>\r      </tr>\r          <tr><td>heightScale</td>\r          <td>1.0 or greater</td>\r          <td>Adjust the height of each cell in the alignment grid relative to the height of a character in the alignment font. (<em>since 2.5.1</em>)</td>\r          </tr>
+          <tr><td>widthScale</td>\r          <td>1.0 or greater</td>\r          <td>Adjust the width of each cell in the alignment grid relative to the width of a character in the alignment font. (<em>since 2.5.1</em>)</td>\r          </tr>\r          <tr><td>centrecolumnlabels</td>\r          <td>true of false (default is false)</td>\r          <td>When true, text labels associated with a column in the alignment will be shown centered with respect to the column. (<em>since 2.4</em>)</td>\r          <tr><td>showUnconserved</td>\r          <td>true of false (default is false)</td>\r          <td>When true, only gaps and symbols different to the consensus sequence for a column will be shown. Useful for visualizing alignments exhibiting low sequence variation, where it is important to highlight mutations. (<em>since 2.5</em>)</td>\r          </tr>\r          <tr><td>upperCase</td>\r          <td><em>bold</em> or other value</td>\r          <td>Indicate a text style to apply to uppercase sequence symbols. Currently, only <strong>bold</strong> is supported.</td>\r          </tr>\r          <tr><td>automaticScrolling</td>\r          <td>true of false (default is false)</td>\r          <td>When true, alignment panels will automatically scroll to show any regions of the alignment highlighted due to javascript events or when mousing over a position in an associated structure. (<em>since 2.6</em>)</td>\r          </tr>\r          \r          <tr><td>showGroupConsensus</td>\r          <td>true of false (default is false)</td>\r          <td>When true, shows consensus annotation row for any groups on the alignment. (<em>since 2.7</em>)</td>\r          </tr>\r          \r          <tr><td>showGroupConservation</td>\r          <td>true of false (default is false)</td>\r          <td>When true, shows amino-acid property conservation annotation row for any groups on the alignment. (<em>since 2.7</em>)</td>\r          </tr>\r          <tr><td>showConsensusHistogram</td>\r          <td>true of false (default is true)</td>\r          <td>When true, shows the percentage occurence of the consensus symbol for each column as a histogram above the consensus sequence row. (<em>since 2.7</em>)</td>\r          </tr>\r          <tr><td>showSequenceLogo</td>\r          <td>true of false (default is false)</td>\r          <td>When true, shows a sequence logo above the consensus sequence (overlaid above the Consensus Histogram, if visible, with symbols coloured using the alignment's default colourscheme). (<em>since 2.7</em>)</td>\r          </tr>\r          <tr><td>oninit</td>\r          <td><em>after_init()</em></td>\r          <td>name of javascript function that will be called after the jalviewLite instance has completed its initialisation. (<em>since 2.7</em>)</td>\r          </tr>\r          <tr><td>relaxedidmatch</td>\r          <td><em>true or false (default is false)</em></td>\r          <td>When true, use stem based matching to identify sequences that match features imported from a GFF or Jalview sequence features file, and for associating PDB data (passed on PDBfile parguments) with sequences (based on a given destination sequence ID). (<em>since 2.7</em>)</td>\r          </tr>\r          <tr><td>alignpdbfiles</td>\r          <td><em>true or false (default is false)</em></td>\r          <td>When true, and jalviewLite is able to use jmol as a structure viewer, attempt to show a superposition of all structures loaded onto the alignment, superimposed using the aligned regions of corresponding sequences. [experimental] (<em>since 2.7</em>)</td>\r          </tr>\r          <tr><td>externalstructureviewer</td>\r          <td><em>true or false (default is false)</em></td>\r          <td>re-route jmol colouring commands, selection and mouseover events to an external viewer using javascript callbacks. [experimental] (<em>since 2.7</em>)</td>\r          \r          </tr>\r          <tr><td>annotationcolour_max</td>\r          <td>colour name or RGB hex triplet (default is red)</td>\r          <td>Default colour used for maximum value when shading by annotation. (<em>since 2.7</em>)</td>\r          </tr>\r          <tr><td>annotationcolour_min</td>\r          <td>colour name or RGB hex triplet (default is orange)</td>\r          <td>Default colour used for minimum value when shading by annotation. (<em>since 2.7</em>)</td>\r          </tr>\r          <tr><td>jalviewhelpurl</td>\r          <td>absolute or relative url or javascript function prefixed by <em>javascript:</em> (default is http://www.jalview.org/help.html)</td>\r          <td>Optional parameter allowing modification of the default Jalview Help URL normally opened when JalviewLite's 'Help' menu item is selected. (<em>since 2.7</em>)</td>\r          </tr>\r          <tr><td>resolvetocodebase</td>\r          <td>True or False (False)</td>\r          <td>Set to true to re-instate pre-JalviewLite 2.7 behaviour where relative URLs were prepended with the applet 'codebase' rather than the current document base URL before resolution. (<em>since 2.7</em>)</td>\r          </tr>\r          \r                  </table>
         <p align="center">&nbsp;</p>
         <!-- InstanceEndEditable --></td>\r    </tr>\r  </table>\r</div>\r</body>\r<!-- InstanceEnd --></html>\r
\ No newline at end of file
index 80b01d0..8f8ac5a 100644 (file)
@@ -2574,7 +2574,7 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener,
   }\r
   protected void documentation_actionPerformed()\r
   {\r
-    showURL("http://www.jalview.org/help.html", "HELP");\r
+    alignPanel.av.applet.openJalviewHelpUrl();\r
   }\r
 \r
   protected void about_actionPerformed()\r
@@ -2645,45 +2645,7 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener,
     }\r
     else\r
     {\r
-      try\r
-      {\r
-        if (url.indexOf(":") == -1)\r
-        {\r
-          // TODO: verify (Bas Vroling bug) prepend codebase or server URL to\r
-          // form valid URL\r
-          // Should really use docbase, not codebase.\r
-          if (url.indexOf("/") == 0)\r
-          {\r
-            String codebase = viewport.applet.getCodeBase().toString();\r
-            url = codebase.substring(0, codebase.length()\r
-                    - viewport.applet.getCodeBase().getFile().length())\r
-                    + url;\r
-          }\r
-          else\r
-          {\r
-            url = viewport.applet.getCodeBase() + url;\r
-          }\r
-          System.out.println("Show url (prepended codebase): " + url);\r
-        }\r
-        else\r
-        {\r
-          System.out.println("Show url: " + url);\r
-        }\r
-        if (url.indexOf("javascript:") == 0)\r
-        {\r
-          // no target for the javascript context\r
-          viewport.applet.getAppletContext().showDocument(\r
-                  new java.net.URL(url));\r
-        }\r
-        else\r
-        {\r
-          viewport.applet.getAppletContext().showDocument(\r
-                  new java.net.URL(url), target);\r
-        }\r
-      } catch (Exception ex)\r
-      {\r
-        ex.printStackTrace();\r
-      }\r
+      viewport.applet.showURL(url, target);\r
     }\r
   }\r
 \r
index 9a4d9e2..08229d6 100644 (file)
@@ -53,6 +53,7 @@ import java.awt.event.WindowAdapter;
 import java.awt.event.WindowEvent;\r
 import java.io.BufferedReader;\r
 import java.io.InputStreamReader;\r
+import java.net.URL;\r
 import java.util.Hashtable;\r
 import java.util.StringTokenizer;\r
 import java.util.Vector;\r
@@ -2271,6 +2272,70 @@ public class JalviewLite extends Applet implements StructureSelectionManagerProv
 \r
   }\r
 \r
+  public void openJalviewHelpUrl()\r
+  {\r
+    String helpUrl=getParameter("jalviewhelpurl");\r
+    if (helpUrl==null || helpUrl.trim().length()<5)\r
+    {\r
+      helpUrl="http://www.jalview.org/help.html";\r
+    }\r
+    showURL(helpUrl, "HELP");    \r
+  }\r
+  \r
+\r
+  /**\r
+   * open a URL in the browser - resolving it according to relative refs and coping with javascript: protocol if necessary.\r
+   * @param url\r
+   * @param target\r
+   */\r
+  public void showURL(String url, String target)\r
+  {\r
+    try\r
+    {\r
+      if (url.indexOf(":") == -1)\r
+      {\r
+        // TODO: verify (Bas Vroling bug) prepend codebase or server URL to\r
+        // form valid URL\r
+        // Should really use docbase, not codebase.\r
+        URL base = getDefaultParameter("resolvetocodebase", false) ? getDocumentBase() : getCodeBase();\r
+        String codebase = base.toString();\r
+        if (url.indexOf("/") == 0)\r
+        {\r
+          url = codebase.substring(0, codebase.length()\r
+                  - base.getFile().length())\r
+                  + url;\r
+        }\r
+        else\r
+        {\r
+          url = base + url;\r
+        }\r
+        if (debug) {\r
+          System.err.println("Show url (prepended "+codebase+" - toggle resolvetocodebase if code/docbase resolution is wrong): " + url);\r
+        }\r
+      }\r
+      else\r
+      {\r
+        if (debug) {\r
+          System.err.println("Show url: " + url);\r
+        }\r
+      }\r
+      if (url.indexOf("javascript:") == 0)\r
+      {\r
+        // no target for the javascript context\r
+        getAppletContext().showDocument(\r
+                new java.net.URL(url));\r
+      }\r
+      else\r
+      {\r
+        getAppletContext().showDocument(\r
+                new java.net.URL(url), target);\r
+      }\r
+    } catch (Exception ex)\r
+    {\r
+      ex.printStackTrace();\r
+    }\r
+  }\r
+\r
   /**\r
    * bind structures in a viewer to any matching sequences in an alignFrame (use\r
    * sequenceIds to limit scope of search to specific sequences)\r