3 import java.util.HashMap;
7 * Collection of all known applet tags from JalviewLite
12 @SuppressWarnings("serial")
13 public class AppletParams extends HashMap<String, String>
16 private final static String[] params = { "alignpdbfiles",
17 "ANNOTATIONCOLOUR_MAX", "ANNOTATIONCOLOUR_MIN", "annotations",
18 "APPLICATION_URL", "automaticScrolling", "centrecolumnlabels",
19 "debug", "defaultColour", "defaultColourNuc", "defaultColourProt",
20 "embedded", "enableSplitFrame", "externalstructureviewer", "features",
21 "file", "file2", "format", "heightScale", "hidefeaturegroups",
22 "jalviewhelpurl", "jnetfile", "jpredfile", "label", "linkLabel_",
23 "linkLabel_1", "linkURL_", "nojmol", "normaliseLogo",
24 "normaliseSequenceLogo", "oninit", "PDBFILE", "PDBSEQ",
25 "relaxedidmatch", "resolvetocodebase", "RGB", "scaleProteinAsCdna",
26 "scoreFile", "separator", "sequence", "showAnnotation", "showbutton",
27 "showConsensus", "showConsensusHistogram", "showConservation",
28 "showfeaturegroups", "showFeatureSettings", "showFullId",
29 "showGroupConsensus", "showGroupConservation", "showOccupancy",
30 "showQuality", "showSequenceLogo", "showTreeBootstraps",
31 "showTreeDistances", "showUnconserved", "showUnlinkedTreeNodes",
32 "sortBy", "sortByTree", "tree", "treeFile", "upperCase",
33 "userDefinedColour", "widthScale", "windowHeight", "windowWidth",
36 public AppletParams(Map<String, String> info)
38 for (int i = params.length; --i >= 0;)
40 put(params[i], info.get(params[i]));
44 public String getParam(String param, String def)
46 String val = get(param);
47 return (val != null ? val : def);
51 // code="jalview.bin.JalviewLite" width="140" height="35"
52 // archive="jalviewApplet.jar,JmolApplet-14.6.4_2016.10.26.jar,java-json.jar,json_simple-1.1.jar">
53 // <param name="permissions" value="sandbox"/>
54 // <param name="file" value="uniref50.fa"/>
55 // <param name="treeFile" value="ferredoxin.nw"/>
56 // <param name="userDefinedColour" value="C=yellow; R,K,H=FF5555;
58 // <param name="sortByTree" value="True"/>
59 // <param name="showSequenceLogo" value="true"/>
60 // <param name="showGroupConsensus" value="true"/>
61 // <param name="showFullId" value="false"/>
62 // <param name="linkLabel_1" value="Uniprot"/>
63 // <param name="linkUrl_1"
64 // value="http://www.uniprot.org/uniprot/$SEQUENCE_ID$"/>
65 // <param name="linkLabel_2" value="EMBL-EBI Search"/>
66 // <param name="linkUrl_2"
67 // value="http://www.ebi.ac.uk/ebisearch/search.ebi?db=allebi&query=$SEQUENCE_ID$"/>
68 // <param name="APPLICATION_URL"
69 // value="http://www.jalview.org/services/launchApp"/>
72 public AppletParams(String outerHTML)
74 String[] tokens = outerHTML.split("<param");
75 outerHTML = tokens[0];
76 String code = getAttr(outerHTML, "code");
77 if (!code.equals("jalview.bin.JalviewLite"))
81 for (int i = tokens.length; --i > 0;)
83 String param = tokens[i];
84 String key = getAttr(param, "name");
87 String value = getAttr(param, "value");
88 System.out.println("AppletParams " + key + " = \"" + value + "\"");
92 put("_width", getAttr(outerHTML, "width"));
93 put("_height", getAttr(outerHTML, "height"));
94 put("_id", getAttr(outerHTML, "id"));
95 put("_name", getAttr(outerHTML, "name"));
96 put("_archive", getAttr(outerHTML, "archive"));
101 * Crude applet innerHTML parser
107 private String getAttr(String tag, String attr)
109 int pt = tag.indexOf(attr + "=\"");
113 .println("AppletParams did not read " + attr + " in " + tag);
116 // <param name="sortByTree" value="True"/>
117 int pt1 = pt + attr.length() + 2;
118 int pt2 = tag.indexOf("\"", pt1);
119 return (pt < 0 ? null : tag.substring(pt1, pt2));
122 public static void main(String[] args)
124 new AppletParams("<applet\r\n"
125 + " code=\"jalview.bin.JalviewLite\" width=\"140\" height=\"35\"\r\n"
126 + " archive=\"jalviewApplet.jar,JmolApplet-14.6.4_2016.10.26.jar,java-json.jar,json_simple-1.1.jar\"> \r\n"
127 + " <param name=\"permissions\" value=\"sandbox\"/>\r\n"
128 + " <param name=\"file\" value=\"uniref50.fa\"/>\r\n"
129 + " <param name=\"treeFile\" value=\"ferredoxin.nw\"/>\r\n"
130 + " <param name=\"userDefinedColour\" value=\"C=yellow; R,K,H=FF5555; D,E=5555FF\"/>\r\n"
131 + " <param name=\"sortByTree\" value=\"True\"/>\r\n"
132 + " <param name=\"showSequenceLogo\" value=\"true\"/>\r\n"
133 + " <param name=\"showGroupConsensus\" value=\"true\"/>\r\n"
134 + " <param name=\"showFullId\" value=\"false\"/>\r\n"
135 + " <param name=\"linkLabel_1\" value=\"Uniprot\"/>\r\n"
136 + " <param name=\"linkUrl_1\" value=\"http://www.uniprot.org/uniprot/$SEQUENCE_ID$\"/>\r\n"
137 + " <param name=\"linkLabel_2\" value=\"EMBL-EBI Search\"/>\r\n"
138 + " <param name=\"linkUrl_2\" value=\"http://www.ebi.ac.uk/ebisearch/search.ebi?db=allebi&query=$SEQUENCE_ID$\"/>\r\n"
139 + " <param name=\"APPLICATION_URL\" value=\"http://www.jalview.org/services/launchApp\"/>\r\n"