JAL-1807 includes ?j2sdebug flag and DebugJS._(msg)
[jalviewjs.git] / bin / jalview / appletgui / PaintRefresher.js
1 Clazz.declarePackage ("jalview.appletgui");
2 Clazz.load (null, "jalview.appletgui.PaintRefresher", ["jalview.appletgui.AlignmentPanel", "java.util.Hashtable", "$.Vector"], function () {
3 c$ = Clazz.declareType (jalview.appletgui, "PaintRefresher");
4 c$.Register = Clazz.defineMethod (c$, "Register", 
5 function (comp, seqSetId) {
6 if (jalview.appletgui.PaintRefresher.components == null) {
7 jalview.appletgui.PaintRefresher.components =  new java.util.Hashtable ();
8 }if (jalview.appletgui.PaintRefresher.components.containsKey (seqSetId)) {
9 var comps = jalview.appletgui.PaintRefresher.components.get (seqSetId);
10 if (!comps.contains (comp)) {
11 comps.addElement (comp);
12 }} else {
13 var vcoms =  new java.util.Vector ();
14 vcoms.addElement (comp);
15 jalview.appletgui.PaintRefresher.components.put (seqSetId, vcoms);
16 }}, "java.awt.Component,~S");
17 c$.RemoveComponent = Clazz.defineMethod (c$, "RemoveComponent", 
18 function (comp) {
19 if (jalview.appletgui.PaintRefresher.components == null) {
20 return;
21 }var en = jalview.appletgui.PaintRefresher.components.keys ();
22 while (en.hasMoreElements ()) {
23 var id = en.nextElement ().toString ();
24 var comps = jalview.appletgui.PaintRefresher.components.get (id);
25 comps.removeElement (comp);
26 if (comps.size () == 0) {
27 jalview.appletgui.PaintRefresher.components.remove (id);
28 }}
29 }, "java.awt.Component");
30 c$.Refresh = Clazz.defineMethod (c$, "Refresh", 
31 function (source, id) {
32 jalview.appletgui.PaintRefresher.Refresh (source, id, false, false);
33 }, "java.awt.Component,~S");
34 c$.Refresh = Clazz.defineMethod (c$, "Refresh", 
35 function (source, id, alignmentChanged, validateSequences) {
36 if (jalview.appletgui.PaintRefresher.components == null) {
37 return;
38 }var comp;
39 var comps = jalview.appletgui.PaintRefresher.components.get (id);
40 if (comps == null) {
41 return;
42 }var e = comps.elements ();
43 while (e.hasMoreElements ()) {
44 comp = e.nextElement ();
45 if (comp === source) {
46 continue;
47 }if (!comp.isValid ()) {
48 comps.removeElement (comp);
49 } else if (validateSequences && Clazz.instanceOf (comp, jalview.appletgui.AlignmentPanel) && Clazz.instanceOf (source, jalview.appletgui.AlignmentPanel)) {
50 jalview.appletgui.PaintRefresher.validateSequences ((source).av.getAlignment (), (comp).av.getAlignment ());
51 }if (Clazz.instanceOf (comp, jalview.appletgui.AlignmentPanel) && alignmentChanged) {
52 (comp).alignmentChanged ();
53 }comp.repaint ();
54 }
55 }, "java.awt.Component,~S,~B,~B");
56 c$.validateSequences = Clazz.defineMethod (c$, "validateSequences", 
57 function (source, comp) {
58 var a1;
59 if (source.getHiddenSequences ().getSize () > 0) {
60 a1 = source.getHiddenSequences ().getFullAlignment ().getSequencesArray ();
61 } else {
62 a1 = source.getSequencesArray ();
63 }var a2;
64 if (comp.getHiddenSequences ().getSize () > 0) {
65 a2 = comp.getHiddenSequences ().getFullAlignment ().getSequencesArray ();
66 } else {
67 a2 = comp.getSequencesArray ();
68 }var i;
69 var iSize = a1.length;
70 var j;
71 var jSize = a2.length;
72 if (iSize == jSize) {
73 return;
74 }var exists = false;
75 for (i = 0; i < iSize; i++) {
76 exists = false;
77 for (j = 0; j < jSize; j++) {
78 if (a2[j] === a1[i]) {
79 exists = true;
80 break;
81 }}
82 if (!exists) {
83 if (i < comp.getHeight ()) {
84 var alsq;
85 {
86 alsq.add (i, a1[i]);
87 }} else {
88 comp.addSequence (a1[i]);
89 }if (comp.getHiddenSequences ().getSize () > 0) {
90 a2 = comp.getHiddenSequences ().getFullAlignment ().getSequencesArray ();
91 } else {
92 a2 = comp.getSequencesArray ();
93 }jSize = a2.length;
94 }}
95 iSize = a1.length;
96 jSize = a2.length;
97 for (j = 0; j < jSize; j++) {
98 exists = false;
99 for (i = 0; i < iSize; i++) {
100 if (a2[j] === a1[i]) {
101 exists = true;
102 break;
103 }}
104 if (!exists) {
105 comp.deleteSequence (a2[j]);
106 }}
107 }, "jalview.datamodel.AlignmentI,jalview.datamodel.AlignmentI");
108 c$.getAssociatedPanels = Clazz.defineMethod (c$, "getAssociatedPanels", 
109 function (id) {
110 var comps = jalview.appletgui.PaintRefresher.components.get (id);
111 var tmp =  new java.util.Vector ();
112 var i;
113 var iSize = comps.size ();
114 for (i = 0; i < iSize; i++) {
115 if (Clazz.instanceOf (comps.elementAt (i), jalview.appletgui.AlignmentPanel)) {
116 tmp.addElement (comps.elementAt (i));
117 }}
118 var result =  new Array (tmp.size ());
119 for (var ix = 0; ix < result.length; ix++) {
120 result[ix] = tmp.elementAt (ix);
121 }
122 return result;
123 }, "~S");
124 Clazz.defineStatics (c$,
125 "components", null);
126 });