JAL-1807 Bob's JalviewJS prototype first commit
[jalviewjs.git] / site / j2s / jalview / analysis / AlignmentAnnotationUtils.js
1 Clazz.declarePackage ("jalview.analysis");\r
2 Clazz.load (null, "jalview.analysis.AlignmentAnnotationUtils", ["java.util.ArrayList", "$.Arrays", "$.BitSet", "$.Collections", "$.HashMap"], function () {\r
3 c$ = Clazz.declareType (jalview.analysis, "AlignmentAnnotationUtils");\r
4 c$.getShownHiddenTypes = Clazz.defineMethod (c$, "getShownHiddenTypes", \r
5 function (shownTypes, hiddenTypes, annotations, forSequences) {\r
6 var visibleGraphGroups = jalview.analysis.AlignmentAnnotationUtils.getVisibleLineGraphGroups (annotations);\r
7 var groupLabels =  new java.util.HashMap ();\r
8 var addedToShown =  new java.util.ArrayList ();\r
9 var addedToHidden =  new java.util.ArrayList ();\r
10 for (var aa, $aa = annotations.iterator (); $aa.hasNext () && ((aa = $aa.next ()) || true);) {\r
11 if (aa.annotations == null) {\r
12 continue;\r
13 }if (forSequences != null && (aa.sequenceRef != null && forSequences.contains (aa.sequenceRef))) {\r
14 var calcId = aa.getCalcId ();\r
15 var labelAsList =  new java.util.ArrayList ();\r
16 var displayLabel = aa.label;\r
17 labelAsList.add (displayLabel);\r
18 if (aa.graph == 2 && aa.graphGroup > -1) {\r
19 if (!groupLabels.containsKey (calcId)) {\r
20 groupLabels.put (calcId,  new java.util.HashMap ());\r
21 }var groupLabelsForCalcId = groupLabels.get (calcId);\r
22 if (groupLabelsForCalcId.containsKey (new Integer (aa.graphGroup))) {\r
23 if (!groupLabelsForCalcId.get (new Integer (aa.graphGroup)).contains (displayLabel)) {\r
24 groupLabelsForCalcId.get (new Integer (aa.graphGroup)).add (displayLabel);\r
25 }} else {\r
26 groupLabelsForCalcId.put (new Integer (aa.graphGroup), labelAsList);\r
27 }} else {\r
28 var rememberAs = calcId + "!" + displayLabel;\r
29 if (aa.visible && !addedToShown.contains (rememberAs)) {\r
30 if (!shownTypes.containsKey (calcId)) {\r
31 shownTypes.put (calcId,  new java.util.ArrayList ());\r
32 }shownTypes.get (calcId).add (labelAsList);\r
33 addedToShown.add (rememberAs);\r
34 } else {\r
35 if (!aa.visible && !addedToHidden.contains (rememberAs)) {\r
36 if (!hiddenTypes.containsKey (calcId)) {\r
37 hiddenTypes.put (calcId,  new java.util.ArrayList ());\r
38 }hiddenTypes.get (calcId).add (labelAsList);\r
39 addedToHidden.add (rememberAs);\r
40 }}}}}\r
41 for (var calcId, $calcId = groupLabels.keySet ().iterator (); $calcId.hasNext () && ((calcId = $calcId.next ()) || true);) {\r
42 for (var group, $group = groupLabels.get (calcId).keySet ().iterator (); $group.hasNext () && ((group = $group.next ()) || true);) {\r
43 var groupLabel = groupLabels.get (calcId).get (new Integer (group));\r
44 java.util.Collections.sort (groupLabel);\r
45 if (visibleGraphGroups.get (group)) {\r
46 if (!shownTypes.containsKey (calcId)) {\r
47 shownTypes.put (calcId,  new java.util.ArrayList ());\r
48 }if (!shownTypes.get (calcId).contains (groupLabel)) {\r
49 shownTypes.get (calcId).add (groupLabel);\r
50 }} else {\r
51 if (!hiddenTypes.containsKey (calcId)) {\r
52 hiddenTypes.put (calcId,  new java.util.ArrayList ());\r
53 }if (!hiddenTypes.get (calcId).contains (groupLabel)) {\r
54 hiddenTypes.get (calcId).add (groupLabel);\r
55 }}}\r
56 }\r
57 }, "java.util.Map,java.util.Map,java.util.List,java.util.List");\r
58 c$.getVisibleLineGraphGroups = Clazz.defineMethod (c$, "getVisibleLineGraphGroups", \r
59 function (annotations) {\r
60 var result =  new java.util.BitSet ();\r
61 for (var ann, $ann = annotations.iterator (); $ann.hasNext () && ((ann = $ann.next ()) || true);) {\r
62 if (ann.graph == 2 && ann.visible) {\r
63 var gg = ann.graphGroup;\r
64 if (gg > -1) {\r
65 result.set (gg);\r
66 }}}\r
67 return result;\r
68 }, "java.util.List");\r
69 c$.asList = Clazz.defineMethod (c$, "asList", \r
70 function (anns) {\r
71 return (anns == null ? java.util.Collections.emptyList () : java.util.Arrays.asList (anns));\r
72 }, "~A");\r
73 });\r