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) {
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);
26 groupLabelsForCalcId.put (new Integer (aa.graphGroup), labelAsList);
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);
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);
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);
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);
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;
69 c$.asList = Clazz.defineMethod (c$, "asList",
71 return (anns == null ? java.util.Collections.emptyList () : java.util.Arrays.asList (anns));