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