JAL-1807 Bob's JalviewJS prototype first commit
[jalviewjs.git] / site / j2s / jalview / appletgui / AnnotationLabels.js
1 Clazz.declarePackage ("jalview.appletgui");\r
2 Clazz.load (["awt2swing.Panel", "java.awt.event.ActionListener", "$.MouseListener", "$.MouseMotionListener"], "jalview.appletgui.AnnotationLabels", ["awt2swing.Checkbox", "$.CheckboxMenuItem", "$.Frame", "$.MenuItem", "$.PopupMenu", "jalview.analysis.AlignmentUtils", "jalview.appletgui.AlignFrame", "$.CutAndPasteTransfer", "$.EditNameDialog", "$.PaintRefresher", "$.Tooltip", "jalview.bin.JalviewLite", "jalview.datamodel.AlignmentAnnotation", "$.SequenceGroup", "jalview.util.MessageManager", "$.ParseHtmlBodyAndLinks", "java.awt.Color", "$.Dimension", "$.FlowLayout", "java.awt.event.ItemListener", "java.lang.StringBuffer", "java.util.Arrays", "$.Collections", "$.Vector"], function () {\r
3 c$ = Clazz.decorateAsClass (function () {\r
4 this.image = null;\r
5 this.active = false;\r
6 this.ap = null;\r
7 this.av = null;\r
8 this.resizing = false;\r
9 this.oldY = 0;\r
10 this.mouseX = 0;\r
11 this.scrollOffset = 0;\r
12 this.selectedRow = -1;\r
13 this.tooltip = null;\r
14 this.hasHiddenRows = false;\r
15 this.resizePanel = false;\r
16 this.dragEvent = null;\r
17 this.dragCancelled = false;\r
18 Clazz.instantialize (this, arguments);\r
19 }, jalview.appletgui, "AnnotationLabels", awt2swing.Panel, [java.awt.event.ActionListener, java.awt.event.MouseListener, java.awt.event.MouseMotionListener]);\r
20 Clazz.makeConstructor (c$, \r
21 function (ap) {\r
22 Clazz.superConstructor (this, jalview.appletgui.AnnotationLabels, []);\r
23 this.ap = ap;\r
24 this.av = ap.av;\r
25 this.setLayout (null);\r
26 this.addMouseListener (this);\r
27 this.addMouseMotionListener (this);\r
28 }, "jalview.appletgui.AlignmentPanel");\r
29 Clazz.makeConstructor (c$, \r
30 function (av) {\r
31 Clazz.superConstructor (this, jalview.appletgui.AnnotationLabels, []);\r
32 this.av = av;\r
33 }, "jalview.appletgui.AlignViewport");\r
34 Clazz.defineMethod (c$, "setScrollOffset", \r
35 function (y, repaint) {\r
36 this.scrollOffset = y;\r
37 if (repaint) {\r
38 this.repaint ();\r
39 }}, "~N,~B");\r
40 Clazz.defineMethod (c$, "getSelectedRow", \r
41 function (y) {\r
42 var row = -2;\r
43 var aa = this.ap.av.getAlignment ().getAlignmentAnnotation ();\r
44 if (aa == null) {\r
45 return row;\r
46 }var height = 0;\r
47 for (var i = 0; i < aa.length; i++) {\r
48 row = -1;\r
49 if (!aa[i].visible) {\r
50 continue;\r
51 }height += aa[i].height;\r
52 if (y < height) {\r
53 row = i;\r
54 break;\r
55 }}\r
56 return row;\r
57 }, "~N");\r
58 Clazz.overrideMethod (c$, "actionPerformed", \r
59 function (evt) {\r
60 var aa = this.av.getAlignment ().getAlignmentAnnotation ();\r
61 if (evt.getActionCommand ().equals (jalview.appletgui.AnnotationLabels.ADDNEW)) {\r
62 var newAnnotation =  new jalview.datamodel.AlignmentAnnotation ("", null,  new Array (this.ap.av.getAlignment ().getWidth ()));\r
63 if (!this.editLabelDescription (newAnnotation)) {\r
64 return;\r
65 }this.ap.av.getAlignment ().addAnnotation (newAnnotation);\r
66 this.ap.av.getAlignment ().setAnnotationIndex (newAnnotation, 0);\r
67 } else if (evt.getActionCommand ().equals (jalview.appletgui.AnnotationLabels.EDITNAME)) {\r
68 this.editLabelDescription (aa[this.selectedRow]);\r
69 } else if (evt.getActionCommand ().equals (jalview.appletgui.AnnotationLabels.HIDE)) {\r
70 aa[this.selectedRow].visible = false;\r
71 } else if (evt.getActionCommand ().equals (jalview.appletgui.AnnotationLabels.SHOWALL)) {\r
72 for (var i = 0; i < aa.length; i++) {\r
73 aa[i].visible = (aa[i].annotations == null) ? false : true;\r
74 }\r
75 } else if (evt.getActionCommand ().equals (jalview.appletgui.AnnotationLabels.OUTPUT_TEXT)) {\r
76 var cap =  new jalview.appletgui.CutAndPasteTransfer (false, this.ap.alignFrame);\r
77 var frame =  new awt2swing.Frame ();\r
78 frame.add (cap);\r
79 jalview.bin.JalviewLite.addFrame (frame, this.ap.alignFrame.getTitle () + " - " + aa[this.selectedRow].label, 500, 100);\r
80 cap.setText (aa[this.selectedRow].toString ());\r
81 } else if (evt.getActionCommand ().equals (jalview.appletgui.AnnotationLabels.COPYCONS_SEQ)) {\r
82 var cons = this.av.getConsensusSeq ();\r
83 if (cons != null) {\r
84 this.copy_annotseqtoclipboard (cons);\r
85 }}this.refresh ();\r
86 }, "java.awt.event.ActionEvent");\r
87 Clazz.defineMethod (c$, "refresh", \r
88 function () {\r
89 this.ap.annotationPanel.adjustPanelHeight ();\r
90 this.setSize (this.getSize ().width, this.ap.annotationPanel.getSize ().height);\r
91 this.ap.validate ();\r
92 this.ap.paintAlignment (true);\r
93 });\r
94 Clazz.defineMethod (c$, "editLabelDescription", \r
95 function (annotation) {\r
96 var padGaps =  new awt2swing.Checkbox ("Fill Empty Gaps With \"" + this.ap.av.getGapCharacter () + "\"", annotation.padGaps);\r
97 var dialog =  new jalview.appletgui.EditNameDialog (annotation.label, annotation.description, "      Annotation Label", "Annotation Description", this.ap.alignFrame, "Edit Annotation Name / Description", 500, 180, false);\r
98 var empty =  new awt2swing.Panel ( new java.awt.FlowLayout ());\r
99 empty.add (padGaps);\r
100 dialog.add (empty);\r
101 dialog.pack ();\r
102 dialog.setVisible (true);\r
103 if (dialog.accept) {\r
104 annotation.label = dialog.getName ();\r
105 annotation.description = dialog.getDescription ();\r
106 annotation.setPadGaps (padGaps.getState (), this.av.getGapCharacter ());\r
107 this.repaint ();\r
108 return true;\r
109 } else {\r
110 return false;\r
111 }}, "jalview.datamodel.AlignmentAnnotation");\r
112 Clazz.overrideMethod (c$, "mouseMoved", \r
113 function (evt) {\r
114 this.resizePanel = evt.getY () < 10 && evt.getX () < 14;\r
115 var row = this.getSelectedRow (evt.getY () + this.scrollOffset);\r
116 if (row > -1) {\r
117 var phb =  new jalview.util.ParseHtmlBodyAndLinks (this.av.getAlignment ().getAlignmentAnnotation ()[row].getDescription (true), true, "\n");\r
118 if (this.tooltip == null) {\r
119 this.tooltip =  new jalview.appletgui.Tooltip (phb.getNonHtmlContent (), this);\r
120 } else {\r
121 this.tooltip.setTip (phb.getNonHtmlContent ());\r
122 }} else if (this.tooltip != null) {\r
123 this.tooltip.setTip ("");\r
124 }}, "java.awt.event.MouseEvent");\r
125 Clazz.defineMethod (c$, "cancelDrag", \r
126 function () {\r
127 this.dragEvent = null;\r
128 this.dragCancelled = true;\r
129 });\r
130 Clazz.overrideMethod (c$, "mouseDragged", \r
131 function (evt) {\r
132 if (this.dragCancelled) {\r
133 return;\r
134 };this.dragEvent = evt;\r
135 if (this.resizePanel) {\r
136 var d = this.ap.annotationPanelHolder.getSize ();\r
137 var e = this.ap.annotationSpaceFillerHolder.getSize ();\r
138 var f = this.ap.seqPanelHolder.getSize ();\r
139 var dif = evt.getY () - this.oldY;\r
140 dif /= this.ap.av.getCharHeight ();\r
141 dif *= this.ap.av.getCharHeight ();\r
142 if ((d.height - dif) > 20 && (f.height + dif) > 20) {\r
143 this.ap.annotationPanel.setSize (d.width, d.height - dif);\r
144 this.setSize ( new java.awt.Dimension (e.width, d.height - dif));\r
145 this.ap.annotationSpaceFillerHolder.setSize ( new java.awt.Dimension (e.width, d.height - dif));\r
146 this.ap.annotationPanelHolder.setSize ( new java.awt.Dimension (d.width, d.height - dif));\r
147 this.ap.apvscroll.setValues (this.ap.apvscroll.getValue (), d.height - dif, 0, this.av.calcPanelHeight ());\r
148 f.height += dif;\r
149 this.ap.seqPanelHolder.setPreferredSize (f);\r
150 this.ap.setScrollValues (this.av.getStartRes (), this.av.getStartSeq ());\r
151 this.ap.validate ();\r
152 this.ap.addNotify ();\r
153 }} else {\r
154 var diff;\r
155 if ((diff = 6 - evt.getY ()) > 0) {\r
156 this.ap.apvscroll.setValue (this.ap.apvscroll.getValue () - diff);\r
157 this.ap.adjustmentValueChanged (null);\r
158 } else if ((0 < (diff = 6 - this.ap.annotationSpaceFillerHolder.getSize ().height + evt.getY ()))) {\r
159 this.ap.apvscroll.setValue (this.ap.apvscroll.getValue () + diff);\r
160 this.ap.adjustmentValueChanged (null);\r
161 }this.repaint ();\r
162 }}, "java.awt.event.MouseEvent");\r
163 Clazz.overrideMethod (c$, "mouseClicked", \r
164 function (evt) {\r
165 }, "java.awt.event.MouseEvent");\r
166 Clazz.overrideMethod (c$, "mouseReleased", \r
167 function (evt) {\r
168 if (!this.resizePanel && !this.dragCancelled) {\r
169 var start = this.selectedRow;\r
170 var end = this.getSelectedRow (evt.getY () + this.scrollOffset);\r
171 if (start > -1 && start != end) {\r
172 var startAA = this.ap.av.getAlignment ().getAlignmentAnnotation ()[start];\r
173 if (end == -1) {\r
174 end = this.ap.av.getAlignment ().getAlignmentAnnotation ().length - 1;\r
175 }var endAA = this.ap.av.getAlignment ().getAlignmentAnnotation ()[end];\r
176 this.ap.av.getAlignment ().getAlignmentAnnotation ()[end] = startAA;\r
177 this.ap.av.getAlignment ().getAlignmentAnnotation ()[start] = endAA;\r
178 }}this.resizePanel = false;\r
179 this.dragEvent = null;\r
180 this.dragCancelled = false;\r
181 this.repaint ();\r
182 this.ap.annotationPanel.repaint ();\r
183 }, "java.awt.event.MouseEvent");\r
184 Clazz.overrideMethod (c$, "mouseEntered", \r
185 function (evt) {\r
186 if (evt.getY () < 10 && evt.getX () < 14) {\r
187 this.resizePanel = true;\r
188 this.repaint ();\r
189 }}, "java.awt.event.MouseEvent");\r
190 Clazz.overrideMethod (c$, "mouseExited", \r
191 function (evt) {\r
192 this.dragCancelled = false;\r
193 if (this.dragEvent == null) {\r
194 this.resizePanel = false;\r
195 } else {\r
196 if (!this.resizePanel) {\r
197 this.dragEvent = null;\r
198 }}this.repaint ();\r
199 }, "java.awt.event.MouseEvent");\r
200 Clazz.overrideMethod (c$, "mousePressed", \r
201 function (evt) {\r
202 this.oldY = evt.getY ();\r
203 if (this.resizePanel) {\r
204 return;\r
205 }this.dragCancelled = false;\r
206 this.selectedRow = this.getSelectedRow (evt.getY () + this.scrollOffset);\r
207 var aa = this.ap.av.getAlignment ().getAlignmentAnnotation ();\r
208 if ((evt.getModifiers () & 4) == 4) {\r
209 var popup =  new awt2swing.PopupMenu (jalview.util.MessageManager.getString ("label.annotations"));\r
210 var item =  new awt2swing.MenuItem (jalview.appletgui.AnnotationLabels.ADDNEW);\r
211 item.addActionListener (this);\r
212 popup.add (item);\r
213 if (this.selectedRow < 0) {\r
214 if (this.hasHiddenRows) {\r
215 item =  new awt2swing.MenuItem (jalview.appletgui.AnnotationLabels.SHOWALL);\r
216 item.addActionListener (this);\r
217 popup.add (item);\r
218 }this.add (popup);\r
219 popup.show (this, evt.getX (), evt.getY ());\r
220 return;\r
221 }item =  new awt2swing.MenuItem (jalview.appletgui.AnnotationLabels.EDITNAME);\r
222 item.addActionListener (this);\r
223 popup.add (item);\r
224 item =  new awt2swing.MenuItem (jalview.appletgui.AnnotationLabels.HIDE);\r
225 item.addActionListener (this);\r
226 popup.add (item);\r
227 if (this.selectedRow < aa.length) {\r
228 if (aa[this.selectedRow].sequenceRef != null) {\r
229 var label = aa[this.selectedRow].label;\r
230 var hideType =  new awt2swing.MenuItem (jalview.util.MessageManager.getString ("label.hide_all") + " " + label);\r
231 hideType.addActionListener (((Clazz.isClassDefined ("jalview.appletgui.AnnotationLabels$1") ? 0 : jalview.appletgui.AnnotationLabels.$AnnotationLabels$1$ ()), Clazz.innerTypeInstance (jalview.appletgui.AnnotationLabels$1, this, Clazz.cloneFinals ("label", label))));\r
232 popup.add (hideType);\r
233 }}if (this.hasHiddenRows) {\r
234 item =  new awt2swing.MenuItem (jalview.appletgui.AnnotationLabels.SHOWALL);\r
235 item.addActionListener (this);\r
236 popup.add (item);\r
237 }this.add (popup);\r
238 item =  new awt2swing.MenuItem (jalview.appletgui.AnnotationLabels.OUTPUT_TEXT);\r
239 item.addActionListener (this);\r
240 popup.add (item);\r
241 if (this.selectedRow < aa.length) {\r
242 if (aa[this.selectedRow].autoCalculated) {\r
243 if (aa[this.selectedRow].label.indexOf ("Consensus") > -1) {\r
244 popup.addSeparator ();\r
245 var cbmi =  new awt2swing.CheckboxMenuItem (jalview.util.MessageManager.getString ("label.ignore_gaps_consensus"), (aa[this.selectedRow].groupRef != null) ? aa[this.selectedRow].groupRef.getIgnoreGapsConsensus () : this.ap.av.isIgnoreGapsConsensus ());\r
246 var aaa = aa[this.selectedRow];\r
247 cbmi.addItemListener (((Clazz.isClassDefined ("jalview.appletgui.AnnotationLabels$2") ? 0 : jalview.appletgui.AnnotationLabels.$AnnotationLabels$2$ ()), Clazz.innerTypeInstance (jalview.appletgui.AnnotationLabels$2, this, Clazz.cloneFinals ("aaa", aaa, "cbmi", cbmi))));\r
248 popup.add (cbmi);\r
249 if (aaa.groupRef != null) {\r
250 var chist =  new awt2swing.CheckboxMenuItem (jalview.util.MessageManager.getString ("label.show_group_histogram"), aa[this.selectedRow].groupRef.isShowConsensusHistogram ());\r
251 chist.addItemListener (((Clazz.isClassDefined ("jalview.appletgui.AnnotationLabels$3") ? 0 : jalview.appletgui.AnnotationLabels.$AnnotationLabels$3$ ()), Clazz.innerTypeInstance (jalview.appletgui.AnnotationLabels$3, this, Clazz.cloneFinals ("aaa", aaa, "chist", chist))));\r
252 popup.add (chist);\r
253 var cprofl =  new awt2swing.CheckboxMenuItem (jalview.util.MessageManager.getString ("label.show_group_logo"), aa[this.selectedRow].groupRef.isShowSequenceLogo ());\r
254 cprofl.addItemListener (((Clazz.isClassDefined ("jalview.appletgui.AnnotationLabels$4") ? 0 : jalview.appletgui.AnnotationLabels.$AnnotationLabels$4$ ()), Clazz.innerTypeInstance (jalview.appletgui.AnnotationLabels$4, this, Clazz.cloneFinals ("aaa", aaa, "cprofl", cprofl))));\r
255 popup.add (cprofl);\r
256 var cprofn =  new awt2swing.CheckboxMenuItem (jalview.util.MessageManager.getString ("label.normalise_group_logo"), aa[this.selectedRow].groupRef.isNormaliseSequenceLogo ());\r
257 cprofn.addItemListener (((Clazz.isClassDefined ("jalview.appletgui.AnnotationLabels$5") ? 0 : jalview.appletgui.AnnotationLabels.$AnnotationLabels$5$ ()), Clazz.innerTypeInstance (jalview.appletgui.AnnotationLabels$5, this, Clazz.cloneFinals ("aaa", aaa, "cprofn", cprofn))));\r
258 popup.add (cprofn);\r
259 } else {\r
260 var chist =  new awt2swing.CheckboxMenuItem (jalview.util.MessageManager.getString ("label.show_histogram"), this.av.isShowConsensusHistogram ());\r
261 chist.addItemListener (((Clazz.isClassDefined ("jalview.appletgui.AnnotationLabels$6") ? 0 : jalview.appletgui.AnnotationLabels.$AnnotationLabels$6$ ()), Clazz.innerTypeInstance (jalview.appletgui.AnnotationLabels$6, this, Clazz.cloneFinals ("chist", chist))));\r
262 popup.add (chist);\r
263 var cprof =  new awt2swing.CheckboxMenuItem (jalview.util.MessageManager.getString ("label.show_logo"), this.av.isShowSequenceLogo ());\r
264 cprof.addItemListener (((Clazz.isClassDefined ("jalview.appletgui.AnnotationLabels$7") ? 0 : jalview.appletgui.AnnotationLabels.$AnnotationLabels$7$ ()), Clazz.innerTypeInstance (jalview.appletgui.AnnotationLabels$7, this, Clazz.cloneFinals ("cprof", cprof))));\r
265 popup.add (cprof);\r
266 var cprofn =  new awt2swing.CheckboxMenuItem (jalview.util.MessageManager.getString ("label.normalise_logo"), this.av.isNormaliseSequenceLogo ());\r
267 cprofn.addItemListener (((Clazz.isClassDefined ("jalview.appletgui.AnnotationLabels$8") ? 0 : jalview.appletgui.AnnotationLabels.$AnnotationLabels$8$ ()), Clazz.innerTypeInstance (jalview.appletgui.AnnotationLabels$8, this, Clazz.cloneFinals ("cprofn", cprofn))));\r
268 popup.add (cprofn);\r
269 }item =  new awt2swing.MenuItem (jalview.appletgui.AnnotationLabels.COPYCONS_SEQ);\r
270 item.addActionListener (this);\r
271 popup.add (item);\r
272 }}}popup.show (this, evt.getX (), evt.getY ());\r
273 } else {\r
274 if (this.selectedRow > -1 && this.selectedRow < aa.length) {\r
275 if (aa[this.selectedRow].groupRef != null) {\r
276 if (evt.getClickCount () >= 2) {\r
277 this.ap.seqPanel.ap.idPanel.highlightSearchResults (null);\r
278 this.ap.av.setSelectionGroup (aa[this.selectedRow].groupRef);\r
279 this.ap.av.sendSelection ();\r
280 this.ap.paintAlignment (false);\r
281 jalview.appletgui.PaintRefresher.Refresh (this.ap, this.ap.av.getSequenceSetId ());\r
282 } else {\r
283 this.ap.seqPanel.ap.idPanel.highlightSearchResults (aa[this.selectedRow].groupRef.getSequences (null));\r
284 }return;\r
285 } else if (aa[this.selectedRow].sequenceRef != null) {\r
286 if (evt.getClickCount () == 1) {\r
287 this.ap.seqPanel.ap.idPanel.highlightSearchResults (java.util.Arrays.asList ( Clazz.newArray (-1, [aa[this.selectedRow].sequenceRef])));\r
288 } else if (evt.getClickCount () >= 2) {\r
289 this.ap.seqPanel.ap.idPanel.highlightSearchResults (null);\r
290 var sg = this.ap.av.getSelectionGroup ();\r
291 if (sg != null) {\r
292 if (!(evt.isControlDown () || evt.isShiftDown ())) {\r
293 sg =  new jalview.datamodel.SequenceGroup (sg);\r
294 sg.clear ();\r
295 sg.addSequence (aa[this.selectedRow].sequenceRef, false);\r
296 } else {\r
297 if (evt.isControlDown ()) {\r
298 sg.addOrRemove (aa[this.selectedRow].sequenceRef, true);\r
299 } else {\r
300 sg.addSequence (aa[this.selectedRow].sequenceRef, true);\r
301 }}} else {\r
302 sg =  new jalview.datamodel.SequenceGroup ();\r
303 sg.setStartRes (0);\r
304 sg.setEndRes (this.ap.av.getAlignment ().getWidth () - 1);\r
305 sg.addSequence (aa[this.selectedRow].sequenceRef, false);\r
306 }this.ap.av.setSelectionGroup (sg);\r
307 this.ap.paintAlignment (false);\r
308 jalview.appletgui.PaintRefresher.Refresh (this.ap, this.ap.av.getSequenceSetId ());\r
309 this.ap.av.sendSelection ();\r
310 }}}}}, "java.awt.event.MouseEvent");\r
311 Clazz.defineMethod (c$, "copy_annotseqtoclipboard", \r
312 function (sq) {\r
313 if (sq == null || sq.getLength () < 1) {\r
314 return;\r
315 }jalview.appletgui.AlignFrame.copiedSequences =  new StringBuffer ();\r
316 jalview.appletgui.AlignFrame.copiedSequences.append (sq.getName () + "\t" + sq.getStart () + "\t" + sq.getEnd () + "\t" + sq.getSequenceAsString () + "\n");\r
317 if (this.av.hasHiddenColumns ()) {\r
318 jalview.appletgui.AlignFrame.copiedHiddenColumns =  new java.util.Vector ();\r
319 for (var region, $region = this.av.getColumnSelection ().getHiddenColumns ().iterator (); $region.hasNext () && ((region = $region.next ()) || true);) {\r
320 jalview.appletgui.AlignFrame.copiedHiddenColumns.addElement ( Clazz.newIntArray (-1, [region[0], region[1]]));\r
321 }\r
322 }}, "jalview.datamodel.SequenceI");\r
323 Clazz.overrideMethod (c$, "paintComponent", \r
324 function (g) {\r
325 if (this.av.getWrapAlignment () || !this.av.isShowAnnotation ()) return;\r
326 var w = this.getSize ().width;\r
327 var h = this.getSize ().height;\r
328 if (this.image == null || w != this.image.getWidth (this) || h != this.image.getHeight (this)) {\r
329 this.image = this.createImage (w, this.ap.annotationPanel.getSize ().height);\r
330 }this.drawComponent (this.image.getGraphics (), w);\r
331 g.drawImage (this.image, 0, 0, this);\r
332 }, "java.awt.Graphics");\r
333 Clazz.defineMethod (c$, "drawComponent", \r
334 function (g, width) {\r
335 g.setFont (this.av.getFont ());\r
336 var fm = g.getFontMetrics (this.av.getFont ());\r
337 g.setColor (java.awt.Color.white);\r
338 g.fillRect (0, 0, this.getSize ().width, this.getSize ().height);\r
339 g.translate (0, -this.scrollOffset);\r
340 g.setColor (java.awt.Color.black);\r
341 var aa = this.av.getAlignment ().getAlignmentAnnotation ();\r
342 var y = 0;\r
343 var fy = g.getFont ().getSize ();\r
344 var x = 0;\r
345 var offset;\r
346 if (aa != null) {\r
347 this.hasHiddenRows = false;\r
348 for (var i = 0; i < aa.length; i++) {\r
349 if (!aa[i].visible) {\r
350 this.hasHiddenRows = true;\r
351 continue;\r
352 }x = width - fm.stringWidth (aa[i].label) - 3;\r
353 y += aa[i].height;\r
354 offset = Clazz.doubleToInt (-(aa[i].height - fy) / 2);\r
355 g.drawString (aa[i].label, x, y + offset);\r
356 }\r
357 }g.translate (0, +this.scrollOffset);\r
358 if (this.resizePanel) {\r
359 g.setColor (java.awt.Color.red);\r
360 g.setPaintMode ();\r
361 g.drawLine (2, 8, 5, 2);\r
362 g.drawLine (5, 2, 8, 8);\r
363 } else if (!this.dragCancelled && this.dragEvent != null && aa != null) {\r
364 g.setColor (java.awt.Color.lightGray);\r
365 g.drawString (aa[this.selectedRow].label, this.dragEvent.getX (), this.dragEvent.getY ());\r
366 }if (!this.av.getWrapAlignment () && ((aa == null) || (aa.length < 1))) {\r
367 g.setColor (java.awt.Color.black);\r
368 g.drawString (jalview.util.MessageManager.getString ("label.right_click"), 2, 8);\r
369 g.drawString (jalview.util.MessageManager.getString ("label.to_add_annotation"), 2, 18);\r
370 }}, "java.awt.Graphics,~N");\r
371 c$.$AnnotationLabels$1$ = function () {\r
372 Clazz.pu$h(self.c$);\r
373 c$ = Clazz.declareAnonymous (jalview.appletgui, "AnnotationLabels$1", null, java.awt.event.ActionListener);\r
374 Clazz.overrideMethod (c$, "actionPerformed", \r
375 function (e) {\r
376 jalview.analysis.AlignmentUtils.showOrHideSequenceAnnotations (this.b$["jalview.appletgui.AnnotationLabels"].ap.av.getAlignment (), java.util.Collections.singleton (this.f$.label), null, false, false);\r
377 this.b$["jalview.appletgui.AnnotationLabels"].refresh ();\r
378 }, "java.awt.event.ActionEvent");\r
379 c$ = Clazz.p0p ();\r
380 };\r
381 c$.$AnnotationLabels$2$ = function () {\r
382 Clazz.pu$h(self.c$);\r
383 c$ = Clazz.declareAnonymous (jalview.appletgui, "AnnotationLabels$2", null, java.awt.event.ItemListener);\r
384 Clazz.overrideMethod (c$, "itemStateChanged", \r
385 function (e) {\r
386 if (this.f$.aaa.groupRef != null) {\r
387 this.f$.aaa.groupRef.setIgnoreGapsConsensus (this.f$.cbmi.getState ());\r
388 } else {\r
389 this.b$["jalview.appletgui.AnnotationLabels"].ap.av.setIgnoreGapsConsensus (this.f$.cbmi.getState (), this.b$["jalview.appletgui.AnnotationLabels"].ap);\r
390 }this.b$["jalview.appletgui.AnnotationLabels"].ap.paintAlignment (true);\r
391 }, "java.awt.event.ItemEvent");\r
392 c$ = Clazz.p0p ();\r
393 };\r
394 c$.$AnnotationLabels$3$ = function () {\r
395 Clazz.pu$h(self.c$);\r
396 c$ = Clazz.declareAnonymous (jalview.appletgui, "AnnotationLabels$3", null, java.awt.event.ItemListener);\r
397 Clazz.overrideMethod (c$, "itemStateChanged", \r
398 function (e) {\r
399 this.f$.aaa.groupRef.setShowConsensusHistogram (this.f$.chist.getState ());\r
400 this.b$["jalview.appletgui.AnnotationLabels"].ap.repaint ();\r
401 }, "java.awt.event.ItemEvent");\r
402 c$ = Clazz.p0p ();\r
403 };\r
404 c$.$AnnotationLabels$4$ = function () {\r
405 Clazz.pu$h(self.c$);\r
406 c$ = Clazz.declareAnonymous (jalview.appletgui, "AnnotationLabels$4", null, java.awt.event.ItemListener);\r
407 Clazz.overrideMethod (c$, "itemStateChanged", \r
408 function (e) {\r
409 this.f$.aaa.groupRef.setshowSequenceLogo (this.f$.cprofl.getState ());\r
410 this.b$["jalview.appletgui.AnnotationLabels"].ap.repaint ();\r
411 }, "java.awt.event.ItemEvent");\r
412 c$ = Clazz.p0p ();\r
413 };\r
414 c$.$AnnotationLabels$5$ = function () {\r
415 Clazz.pu$h(self.c$);\r
416 c$ = Clazz.declareAnonymous (jalview.appletgui, "AnnotationLabels$5", null, java.awt.event.ItemListener);\r
417 Clazz.overrideMethod (c$, "itemStateChanged", \r
418 function (e) {\r
419 this.f$.aaa.groupRef.setshowSequenceLogo (true);\r
420 this.f$.aaa.groupRef.setNormaliseSequenceLogo (this.f$.cprofn.getState ());\r
421 this.b$["jalview.appletgui.AnnotationLabels"].ap.repaint ();\r
422 }, "java.awt.event.ItemEvent");\r
423 c$ = Clazz.p0p ();\r
424 };\r
425 c$.$AnnotationLabels$6$ = function () {\r
426 Clazz.pu$h(self.c$);\r
427 c$ = Clazz.declareAnonymous (jalview.appletgui, "AnnotationLabels$6", null, java.awt.event.ItemListener);\r
428 Clazz.overrideMethod (c$, "itemStateChanged", \r
429 function (e) {\r
430 this.b$["jalview.appletgui.AnnotationLabels"].av.setShowConsensusHistogram (this.f$.chist.getState ());\r
431 this.b$["jalview.appletgui.AnnotationLabels"].ap.alignFrame.showConsensusHistogram.setState (this.f$.chist.getState ());\r
432 this.b$["jalview.appletgui.AnnotationLabels"].ap.repaint ();\r
433 }, "java.awt.event.ItemEvent");\r
434 c$ = Clazz.p0p ();\r
435 };\r
436 c$.$AnnotationLabels$7$ = function () {\r
437 Clazz.pu$h(self.c$);\r
438 c$ = Clazz.declareAnonymous (jalview.appletgui, "AnnotationLabels$7", null, java.awt.event.ItemListener);\r
439 Clazz.overrideMethod (c$, "itemStateChanged", \r
440 function (e) {\r
441 this.b$["jalview.appletgui.AnnotationLabels"].av.setShowSequenceLogo (this.f$.cprof.getState ());\r
442 this.b$["jalview.appletgui.AnnotationLabels"].ap.alignFrame.showSequenceLogo.setState (this.f$.cprof.getState ());\r
443 this.b$["jalview.appletgui.AnnotationLabels"].ap.repaint ();\r
444 }, "java.awt.event.ItemEvent");\r
445 c$ = Clazz.p0p ();\r
446 };\r
447 c$.$AnnotationLabels$8$ = function () {\r
448 Clazz.pu$h(self.c$);\r
449 c$ = Clazz.declareAnonymous (jalview.appletgui, "AnnotationLabels$8", null, java.awt.event.ItemListener);\r
450 Clazz.overrideMethod (c$, "itemStateChanged", \r
451 function (e) {\r
452 this.b$["jalview.appletgui.AnnotationLabels"].av.setShowSequenceLogo (true);\r
453 this.b$["jalview.appletgui.AnnotationLabels"].ap.alignFrame.normSequenceLogo.setState (this.f$.cprofn.getState ());\r
454 this.b$["jalview.appletgui.AnnotationLabels"].av.setNormaliseSequenceLogo (this.f$.cprofn.getState ());\r
455 this.b$["jalview.appletgui.AnnotationLabels"].ap.repaint ();\r
456 }, "java.awt.event.ItemEvent");\r
457 c$ = Clazz.p0p ();\r
458 };\r
459 Clazz.defineStatics (c$,\r
460 "ADDNEW", "Add New Row",\r
461 "EDITNAME", "Edit Label/Description",\r
462 "HIDE", "Hide This Row",\r
463 "SHOWALL", "Show All Hidden Rows",\r
464 "OUTPUT_TEXT", "Show Values In Textbox",\r
465 "COPYCONS_SEQ", "Copy Consensus Sequence");\r
466 });\r