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