X-Git-Url: http://source.jalview.org/gitweb/?p=jalviewjs.git;a=blobdiff_plain;f=bin%2Fjalview%2Fappletgui%2FAnnotationLabels.js;h=27cabd2d08b4e9edf5c874000af8578b649b7bb3;hp=195bfa5eb443bb7f9ba111dc945ac324d59bacb6;hb=8ffd05b3abe52c0b6b79b011c0966361f82d5fe6;hpb=6154cb57a6eac3bb1344b8342495f5bb701ee921 diff --git a/bin/jalview/appletgui/AnnotationLabels.js b/bin/jalview/appletgui/AnnotationLabels.js index 195bfa5..27cabd2 100644 --- a/bin/jalview/appletgui/AnnotationLabels.js +++ b/bin/jalview/appletgui/AnnotationLabels.js @@ -1,466 +1,466 @@ -Clazz.declarePackage ("jalview.appletgui"); -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 () { -c$ = Clazz.decorateAsClass (function () { -this.image = null; -this.active = false; -this.ap = null; -this.av = null; -this.resizing = false; -this.oldY = 0; -this.mouseX = 0; -this.scrollOffset = 0; -this.selectedRow = -1; -this.tooltip = null; -this.hasHiddenRows = false; -this.resizePanel = false; -this.dragEvent = null; -this.dragCancelled = false; -Clazz.instantialize (this, arguments); -}, jalview.appletgui, "AnnotationLabels", awt2swing.Panel, [java.awt.event.ActionListener, java.awt.event.MouseListener, java.awt.event.MouseMotionListener]); -Clazz.makeConstructor (c$, -function (ap) { -Clazz.superConstructor (this, jalview.appletgui.AnnotationLabels, []); -this.ap = ap; -this.av = ap.av; -this.setLayout (null); -this.addMouseListener (this); -this.addMouseMotionListener (this); -}, "jalview.appletgui.AlignmentPanel"); -Clazz.makeConstructor (c$, -function (av) { -Clazz.superConstructor (this, jalview.appletgui.AnnotationLabels, []); -this.av = av; -}, "jalview.appletgui.AlignViewport"); -Clazz.defineMethod (c$, "setScrollOffset", -function (y, repaint) { -this.scrollOffset = y; -if (repaint) { -this.repaint (); -}}, "~N,~B"); -Clazz.defineMethod (c$, "getSelectedRow", -function (y) { -var row = -2; -var aa = this.ap.av.getAlignment ().getAlignmentAnnotation (); -if (aa == null) { -return row; -}var height = 0; -for (var i = 0; i < aa.length; i++) { -row = -1; -if (!aa[i].visible) { -continue; -}height += aa[i].height; -if (y < height) { -row = i; -break; -}} -return row; -}, "~N"); -Clazz.overrideMethod (c$, "actionPerformed", -function (evt) { -var aa = this.av.getAlignment ().getAlignmentAnnotation (); -if (evt.getActionCommand ().equals (jalview.appletgui.AnnotationLabels.ADDNEW)) { -var newAnnotation = new jalview.datamodel.AlignmentAnnotation ("", null, new Array (this.ap.av.getAlignment ().getWidth ())); -if (!this.editLabelDescription (newAnnotation)) { -return; -}this.ap.av.getAlignment ().addAnnotation (newAnnotation); -this.ap.av.getAlignment ().setAnnotationIndex (newAnnotation, 0); -} else if (evt.getActionCommand ().equals (jalview.appletgui.AnnotationLabels.EDITNAME)) { -this.editLabelDescription (aa[this.selectedRow]); -} else if (evt.getActionCommand ().equals (jalview.appletgui.AnnotationLabels.HIDE)) { -aa[this.selectedRow].visible = false; -} else if (evt.getActionCommand ().equals (jalview.appletgui.AnnotationLabels.SHOWALL)) { -for (var i = 0; i < aa.length; i++) { -aa[i].visible = (aa[i].annotations == null) ? false : true; -} -} else if (evt.getActionCommand ().equals (jalview.appletgui.AnnotationLabels.OUTPUT_TEXT)) { -var cap = new jalview.appletgui.CutAndPasteTransfer (false, this.ap.alignFrame); -var frame = new awt2swing.Frame (); -frame.add (cap); -jalview.bin.JalviewLite.addFrame (frame, this.ap.alignFrame.getTitle () + " - " + aa[this.selectedRow].label, 500, 100); -cap.setText (aa[this.selectedRow].toString ()); -} else if (evt.getActionCommand ().equals (jalview.appletgui.AnnotationLabels.COPYCONS_SEQ)) { -var cons = this.av.getConsensusSeq (); -if (cons != null) { -this.copy_annotseqtoclipboard (cons); -}}this.refresh (); -}, "java.awt.event.ActionEvent"); -Clazz.defineMethod (c$, "refresh", -function () { -this.ap.annotationPanel.adjustPanelHeight (); -this.setSize (this.getSize ().width, this.ap.annotationPanel.getSize ().height); -this.ap.validate (); -this.ap.paintAlignment (true); -}); -Clazz.defineMethod (c$, "editLabelDescription", -function (annotation) { -var padGaps = new awt2swing.Checkbox ("Fill Empty Gaps With \"" + this.ap.av.getGapCharacter () + "\"", annotation.padGaps); -var dialog = new jalview.appletgui.EditNameDialog (annotation.label, annotation.description, " Annotation Label", "Annotation Description", this.ap.alignFrame, "Edit Annotation Name / Description", 500, 180, false); -var empty = new awt2swing.Panel ( new java.awt.FlowLayout ()); -empty.add (padGaps); -dialog.add (empty); -dialog.pack (); -dialog.setVisible (true); -if (dialog.accept) { -annotation.label = dialog.getName (); -annotation.description = dialog.getDescription (); -annotation.setPadGaps (padGaps.getState (), this.av.getGapCharacter ()); -this.repaint (); -return true; -} else { -return false; -}}, "jalview.datamodel.AlignmentAnnotation"); -Clazz.overrideMethod (c$, "mouseMoved", -function (evt) { -this.resizePanel = evt.getY () < 10 && evt.getX () < 14; -var row = this.getSelectedRow (evt.getY () + this.scrollOffset); -if (row > -1) { -var phb = new jalview.util.ParseHtmlBodyAndLinks (this.av.getAlignment ().getAlignmentAnnotation ()[row].getDescription (true), true, "\n"); -if (this.tooltip == null) { -this.tooltip = new jalview.appletgui.Tooltip (phb.getNonHtmlContent (), this); -} else { -this.tooltip.setTip (phb.getNonHtmlContent ()); -}} else if (this.tooltip != null) { -this.tooltip.setTip (""); -}}, "java.awt.event.MouseEvent"); -Clazz.defineMethod (c$, "cancelDrag", -function () { -this.dragEvent = null; -this.dragCancelled = true; -}); -Clazz.overrideMethod (c$, "mouseDragged", -function (evt) { -if (this.dragCancelled) { -return; -};this.dragEvent = evt; -if (this.resizePanel) { -var d = this.ap.annotationPanelHolder.getSize (); -var e = this.ap.annotationSpaceFillerHolder.getSize (); -var f = this.ap.seqPanelHolder.getSize (); -var dif = evt.getY () - this.oldY; -dif /= this.ap.av.getCharHeight (); -dif *= this.ap.av.getCharHeight (); -if ((d.height - dif) > 20 && (f.height + dif) > 20) { -this.ap.annotationPanel.setSize (d.width, d.height - dif); -this.setSize ( new java.awt.Dimension (e.width, d.height - dif)); -this.ap.annotationSpaceFillerHolder.setSize ( new java.awt.Dimension (e.width, d.height - dif)); -this.ap.annotationPanelHolder.setSize ( new java.awt.Dimension (d.width, d.height - dif)); -this.ap.apvscroll.setValues (this.ap.apvscroll.getValue (), d.height - dif, 0, this.av.calcPanelHeight ()); -f.height += dif; -this.ap.seqPanelHolder.setPreferredSize (f); -this.ap.setScrollValues (this.av.getStartRes (), this.av.getStartSeq ()); -this.ap.validate (); -this.ap.addNotify (); -}} else { -var diff; -if ((diff = 6 - evt.getY ()) > 0) { -this.ap.apvscroll.setValue (this.ap.apvscroll.getValue () - diff); -this.ap.adjustmentValueChanged (null); -} else if ((0 < (diff = 6 - this.ap.annotationSpaceFillerHolder.getSize ().height + evt.getY ()))) { -this.ap.apvscroll.setValue (this.ap.apvscroll.getValue () + diff); -this.ap.adjustmentValueChanged (null); -}this.repaint (); -}}, "java.awt.event.MouseEvent"); -Clazz.overrideMethod (c$, "mouseClicked", -function (evt) { -}, "java.awt.event.MouseEvent"); -Clazz.overrideMethod (c$, "mouseReleased", -function (evt) { -if (!this.resizePanel && !this.dragCancelled) { -var start = this.selectedRow; -var end = this.getSelectedRow (evt.getY () + this.scrollOffset); -if (start > -1 && start != end) { -var startAA = this.ap.av.getAlignment ().getAlignmentAnnotation ()[start]; -if (end == -1) { -end = this.ap.av.getAlignment ().getAlignmentAnnotation ().length - 1; -}var endAA = this.ap.av.getAlignment ().getAlignmentAnnotation ()[end]; -this.ap.av.getAlignment ().getAlignmentAnnotation ()[end] = startAA; -this.ap.av.getAlignment ().getAlignmentAnnotation ()[start] = endAA; -}}this.resizePanel = false; -this.dragEvent = null; -this.dragCancelled = false; -this.repaint (); -this.ap.annotationPanel.repaint (); -}, "java.awt.event.MouseEvent"); -Clazz.overrideMethod (c$, "mouseEntered", -function (evt) { -if (evt.getY () < 10 && evt.getX () < 14) { -this.resizePanel = true; -this.repaint (); -}}, "java.awt.event.MouseEvent"); -Clazz.overrideMethod (c$, "mouseExited", -function (evt) { -this.dragCancelled = false; -if (this.dragEvent == null) { -this.resizePanel = false; -} else { -if (!this.resizePanel) { -this.dragEvent = null; -}}this.repaint (); -}, "java.awt.event.MouseEvent"); -Clazz.overrideMethod (c$, "mousePressed", -function (evt) { -this.oldY = evt.getY (); -if (this.resizePanel) { -return; -}this.dragCancelled = false; -this.selectedRow = this.getSelectedRow (evt.getY () + this.scrollOffset); -var aa = this.ap.av.getAlignment ().getAlignmentAnnotation (); -if ((evt.getModifiers () & 4) == 4) { -var popup = new awt2swing.PopupMenu (jalview.util.MessageManager.getString ("label.annotations")); -var item = new awt2swing.MenuItem (jalview.appletgui.AnnotationLabels.ADDNEW); -item.addActionListener (this); -popup.add (item); -if (this.selectedRow < 0) { -if (this.hasHiddenRows) { -item = new awt2swing.MenuItem (jalview.appletgui.AnnotationLabels.SHOWALL); -item.addActionListener (this); -popup.add (item); -}this.add (popup); -popup.show (this, evt.getX (), evt.getY ()); -return; -}item = new awt2swing.MenuItem (jalview.appletgui.AnnotationLabels.EDITNAME); -item.addActionListener (this); -popup.add (item); -item = new awt2swing.MenuItem (jalview.appletgui.AnnotationLabels.HIDE); -item.addActionListener (this); -popup.add (item); -if (this.selectedRow < aa.length) { -if (aa[this.selectedRow].sequenceRef != null) { -var label = aa[this.selectedRow].label; -var hideType = new awt2swing.MenuItem (jalview.util.MessageManager.getString ("label.hide_all") + " " + label); -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)))); -popup.add (hideType); -}}if (this.hasHiddenRows) { -item = new awt2swing.MenuItem (jalview.appletgui.AnnotationLabels.SHOWALL); -item.addActionListener (this); -popup.add (item); -}this.add (popup); -item = new awt2swing.MenuItem (jalview.appletgui.AnnotationLabels.OUTPUT_TEXT); -item.addActionListener (this); -popup.add (item); -if (this.selectedRow < aa.length) { -if (aa[this.selectedRow].autoCalculated) { -if (aa[this.selectedRow].label.indexOf ("Consensus") > -1) { -popup.addSeparator (); -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 ()); -var aaa = aa[this.selectedRow]; -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)))); -popup.add (cbmi); -if (aaa.groupRef != null) { -var chist = new awt2swing.CheckboxMenuItem (jalview.util.MessageManager.getString ("label.show_group_histogram"), aa[this.selectedRow].groupRef.isShowConsensusHistogram ()); -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)))); -popup.add (chist); -var cprofl = new awt2swing.CheckboxMenuItem (jalview.util.MessageManager.getString ("label.show_group_logo"), aa[this.selectedRow].groupRef.isShowSequenceLogo ()); -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)))); -popup.add (cprofl); -var cprofn = new awt2swing.CheckboxMenuItem (jalview.util.MessageManager.getString ("label.normalise_group_logo"), aa[this.selectedRow].groupRef.isNormaliseSequenceLogo ()); -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)))); -popup.add (cprofn); -} else { -var chist = new awt2swing.CheckboxMenuItem (jalview.util.MessageManager.getString ("label.show_histogram"), this.av.isShowConsensusHistogram ()); -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)))); -popup.add (chist); -var cprof = new awt2swing.CheckboxMenuItem (jalview.util.MessageManager.getString ("label.show_logo"), this.av.isShowSequenceLogo ()); -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)))); -popup.add (cprof); -var cprofn = new awt2swing.CheckboxMenuItem (jalview.util.MessageManager.getString ("label.normalise_logo"), this.av.isNormaliseSequenceLogo ()); -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)))); -popup.add (cprofn); -}item = new awt2swing.MenuItem (jalview.appletgui.AnnotationLabels.COPYCONS_SEQ); -item.addActionListener (this); -popup.add (item); -}}}popup.show (this, evt.getX (), evt.getY ()); -} else { -if (this.selectedRow > -1 && this.selectedRow < aa.length) { -if (aa[this.selectedRow].groupRef != null) { -if (evt.getClickCount () >= 2) { -this.ap.seqPanel.ap.idPanel.highlightSearchResults (null); -this.ap.av.setSelectionGroup (aa[this.selectedRow].groupRef); -this.ap.av.sendSelection (); -this.ap.paintAlignment (false); -jalview.appletgui.PaintRefresher.Refresh (this.ap, this.ap.av.getSequenceSetId ()); -} else { -this.ap.seqPanel.ap.idPanel.highlightSearchResults (aa[this.selectedRow].groupRef.getSequences (null)); -}return; -} else if (aa[this.selectedRow].sequenceRef != null) { -if (evt.getClickCount () == 1) { -this.ap.seqPanel.ap.idPanel.highlightSearchResults (java.util.Arrays.asList ( Clazz.newArray (-1, [aa[this.selectedRow].sequenceRef]))); -} else if (evt.getClickCount () >= 2) { -this.ap.seqPanel.ap.idPanel.highlightSearchResults (null); -var sg = this.ap.av.getSelectionGroup (); -if (sg != null) { -if (!(evt.isControlDown () || evt.isShiftDown ())) { -sg = new jalview.datamodel.SequenceGroup (sg); -sg.clear (); -sg.addSequence (aa[this.selectedRow].sequenceRef, false); -} else { -if (evt.isControlDown ()) { -sg.addOrRemove (aa[this.selectedRow].sequenceRef, true); -} else { -sg.addSequence (aa[this.selectedRow].sequenceRef, true); -}}} else { -sg = new jalview.datamodel.SequenceGroup (); -sg.setStartRes (0); -sg.setEndRes (this.ap.av.getAlignment ().getWidth () - 1); -sg.addSequence (aa[this.selectedRow].sequenceRef, false); -}this.ap.av.setSelectionGroup (sg); -this.ap.paintAlignment (false); -jalview.appletgui.PaintRefresher.Refresh (this.ap, this.ap.av.getSequenceSetId ()); -this.ap.av.sendSelection (); -}}}}}, "java.awt.event.MouseEvent"); -Clazz.defineMethod (c$, "copy_annotseqtoclipboard", -function (sq) { -if (sq == null || sq.getLength () < 1) { -return; -}jalview.appletgui.AlignFrame.copiedSequences = new StringBuffer (); -jalview.appletgui.AlignFrame.copiedSequences.append (sq.getName () + "\t" + sq.getStart () + "\t" + sq.getEnd () + "\t" + sq.getSequenceAsString () + "\n"); -if (this.av.hasHiddenColumns ()) { -jalview.appletgui.AlignFrame.copiedHiddenColumns = new java.util.Vector (); -for (var region, $region = this.av.getColumnSelection ().getHiddenColumns ().iterator (); $region.hasNext () && ((region = $region.next ()) || true);) { -jalview.appletgui.AlignFrame.copiedHiddenColumns.addElement ( Clazz.newIntArray (-1, [region[0], region[1]])); -} -}}, "jalview.datamodel.SequenceI"); -Clazz.overrideMethod (c$, "paintComponent", -function (g) { -if (this.av.getWrapAlignment () || !this.av.isShowAnnotation ()) return; -var w = this.getSize ().width; -var h = this.getSize ().height; -if (this.image == null || w != this.image.getWidth (this) || h != this.image.getHeight (this)) { -this.image = this.createImage (w, this.ap.annotationPanel.getSize ().height); -}this.drawComponent (this.image.getGraphics (), w); -g.drawImage (this.image, 0, 0, this); -}, "java.awt.Graphics"); -Clazz.defineMethod (c$, "drawComponent", -function (g, width) { -g.setFont (this.av.getFont ()); -var fm = g.getFontMetrics (this.av.getFont ()); -g.setColor (java.awt.Color.white); -g.fillRect (0, 0, this.getSize ().width, this.getSize ().height); -g.translate (0, -this.scrollOffset); -g.setColor (java.awt.Color.black); -var aa = this.av.getAlignment ().getAlignmentAnnotation (); -var y = 0; -var fy = g.getFont ().getSize (); -var x = 0; -var offset; -if (aa != null) { -this.hasHiddenRows = false; -for (var i = 0; i < aa.length; i++) { -if (!aa[i].visible) { -this.hasHiddenRows = true; -continue; -}x = width - fm.stringWidth (aa[i].label) - 3; -y += aa[i].height; -offset = Clazz.doubleToInt (-(aa[i].height - fy) / 2); -g.drawString (aa[i].label, x, y + offset); -} -}g.translate (0, +this.scrollOffset); -if (this.resizePanel) { -g.setColor (java.awt.Color.red); -g.setPaintMode (); -g.drawLine (2, 8, 5, 2); -g.drawLine (5, 2, 8, 8); -} else if (!this.dragCancelled && this.dragEvent != null && aa != null) { -g.setColor (java.awt.Color.lightGray); -g.drawString (aa[this.selectedRow].label, this.dragEvent.getX (), this.dragEvent.getY ()); -}if (!this.av.getWrapAlignment () && ((aa == null) || (aa.length < 1))) { -g.setColor (java.awt.Color.black); -g.drawString (jalview.util.MessageManager.getString ("label.right_click"), 2, 8); -g.drawString (jalview.util.MessageManager.getString ("label.to_add_annotation"), 2, 18); -}}, "java.awt.Graphics,~N"); -c$.$AnnotationLabels$1$ = function () { -Clazz.pu$h (); -c$ = Clazz.declareAnonymous (jalview.appletgui, "AnnotationLabels$1", null, java.awt.event.ActionListener); -Clazz.overrideMethod (c$, "actionPerformed", -function (e) { -jalview.analysis.AlignmentUtils.showOrHideSequenceAnnotations (this.b$["jalview.appletgui.AnnotationLabels"].ap.av.getAlignment (), java.util.Collections.singleton (this.f$.label), null, false, false); -this.b$["jalview.appletgui.AnnotationLabels"].refresh (); -}, "java.awt.event.ActionEvent"); -c$ = Clazz.p0p (); -}; -c$.$AnnotationLabels$2$ = function () { -Clazz.pu$h (); -c$ = Clazz.declareAnonymous (jalview.appletgui, "AnnotationLabels$2", null, java.awt.event.ItemListener); -Clazz.overrideMethod (c$, "itemStateChanged", -function (e) { -if (this.f$.aaa.groupRef != null) { -this.f$.aaa.groupRef.setIgnoreGapsConsensus (this.f$.cbmi.getState ()); -} else { -this.b$["jalview.appletgui.AnnotationLabels"].ap.av.setIgnoreGapsConsensus (this.f$.cbmi.getState (), this.b$["jalview.appletgui.AnnotationLabels"].ap); -}this.b$["jalview.appletgui.AnnotationLabels"].ap.paintAlignment (true); -}, "java.awt.event.ItemEvent"); -c$ = Clazz.p0p (); -}; -c$.$AnnotationLabels$3$ = function () { -Clazz.pu$h (); -c$ = Clazz.declareAnonymous (jalview.appletgui, "AnnotationLabels$3", null, java.awt.event.ItemListener); -Clazz.overrideMethod (c$, "itemStateChanged", -function (e) { -this.f$.aaa.groupRef.setShowConsensusHistogram (this.f$.chist.getState ()); -this.b$["jalview.appletgui.AnnotationLabels"].ap.repaint (); -}, "java.awt.event.ItemEvent"); -c$ = Clazz.p0p (); -}; -c$.$AnnotationLabels$4$ = function () { -Clazz.pu$h (); -c$ = Clazz.declareAnonymous (jalview.appletgui, "AnnotationLabels$4", null, java.awt.event.ItemListener); -Clazz.overrideMethod (c$, "itemStateChanged", -function (e) { -this.f$.aaa.groupRef.setshowSequenceLogo (this.f$.cprofl.getState ()); -this.b$["jalview.appletgui.AnnotationLabels"].ap.repaint (); -}, "java.awt.event.ItemEvent"); -c$ = Clazz.p0p (); -}; -c$.$AnnotationLabels$5$ = function () { -Clazz.pu$h (); -c$ = Clazz.declareAnonymous (jalview.appletgui, "AnnotationLabels$5", null, java.awt.event.ItemListener); -Clazz.overrideMethod (c$, "itemStateChanged", -function (e) { -this.f$.aaa.groupRef.setshowSequenceLogo (true); -this.f$.aaa.groupRef.setNormaliseSequenceLogo (this.f$.cprofn.getState ()); -this.b$["jalview.appletgui.AnnotationLabels"].ap.repaint (); -}, "java.awt.event.ItemEvent"); -c$ = Clazz.p0p (); -}; -c$.$AnnotationLabels$6$ = function () { -Clazz.pu$h (); -c$ = Clazz.declareAnonymous (jalview.appletgui, "AnnotationLabels$6", null, java.awt.event.ItemListener); -Clazz.overrideMethod (c$, "itemStateChanged", -function (e) { -this.b$["jalview.appletgui.AnnotationLabels"].av.setShowConsensusHistogram (this.f$.chist.getState ()); -this.b$["jalview.appletgui.AnnotationLabels"].ap.alignFrame.showConsensusHistogram.setState (this.f$.chist.getState ()); -this.b$["jalview.appletgui.AnnotationLabels"].ap.repaint (); -}, "java.awt.event.ItemEvent"); -c$ = Clazz.p0p (); -}; -c$.$AnnotationLabels$7$ = function () { -Clazz.pu$h (); -c$ = Clazz.declareAnonymous (jalview.appletgui, "AnnotationLabels$7", null, java.awt.event.ItemListener); -Clazz.overrideMethod (c$, "itemStateChanged", -function (e) { -this.b$["jalview.appletgui.AnnotationLabels"].av.setShowSequenceLogo (this.f$.cprof.getState ()); -this.b$["jalview.appletgui.AnnotationLabels"].ap.alignFrame.showSequenceLogo.setState (this.f$.cprof.getState ()); -this.b$["jalview.appletgui.AnnotationLabels"].ap.repaint (); -}, "java.awt.event.ItemEvent"); -c$ = Clazz.p0p (); -}; -c$.$AnnotationLabels$8$ = function () { -Clazz.pu$h (); -c$ = Clazz.declareAnonymous (jalview.appletgui, "AnnotationLabels$8", null, java.awt.event.ItemListener); -Clazz.overrideMethod (c$, "itemStateChanged", -function (e) { -this.b$["jalview.appletgui.AnnotationLabels"].av.setShowSequenceLogo (true); -this.b$["jalview.appletgui.AnnotationLabels"].ap.alignFrame.normSequenceLogo.setState (this.f$.cprofn.getState ()); -this.b$["jalview.appletgui.AnnotationLabels"].av.setNormaliseSequenceLogo (this.f$.cprofn.getState ()); -this.b$["jalview.appletgui.AnnotationLabels"].ap.repaint (); -}, "java.awt.event.ItemEvent"); -c$ = Clazz.p0p (); -}; -Clazz.defineStatics (c$, -"ADDNEW", "Add New Row", -"EDITNAME", "Edit Label/Description", -"HIDE", "Hide This Row", -"SHOWALL", "Show All Hidden Rows", -"OUTPUT_TEXT", "Show Values In Textbox", -"COPYCONS_SEQ", "Copy Consensus Sequence"); -}); +Clazz.declarePackage ("jalview.appletgui"); +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 () { +c$ = Clazz.decorateAsClass (function () { +this.image = null; +this.active = false; +this.ap = null; +this.av = null; +this.resizing = false; +this.oldY = 0; +this.mouseX = 0; +this.scrollOffset = 0; +this.selectedRow = -1; +this.tooltip = null; +this.hasHiddenRows = false; +this.resizePanel = false; +this.dragEvent = null; +this.dragCancelled = false; +Clazz.instantialize (this, arguments); +}, jalview.appletgui, "AnnotationLabels", awt2swing.Panel, [java.awt.event.ActionListener, java.awt.event.MouseListener, java.awt.event.MouseMotionListener]); +Clazz.makeConstructor (c$, +function (ap) { +Clazz.superConstructor (this, jalview.appletgui.AnnotationLabels, []); +this.ap = ap; +this.av = ap.av; +this.setLayout (null); +this.addMouseListener (this); +this.addMouseMotionListener (this); +}, "jalview.appletgui.AlignmentPanel"); +Clazz.makeConstructor (c$, +function (av) { +Clazz.superConstructor (this, jalview.appletgui.AnnotationLabels, []); +this.av = av; +}, "jalview.appletgui.AlignViewport"); +Clazz.defineMethod (c$, "setScrollOffset", +function (y, repaint) { +this.scrollOffset = y; +if (repaint) { +this.repaint (); +}}, "~N,~B"); +Clazz.defineMethod (c$, "getSelectedRow", +function (y) { +var row = -2; +var aa = this.ap.av.getAlignment ().getAlignmentAnnotation (); +if (aa == null) { +return row; +}var height = 0; +for (var i = 0; i < aa.length; i++) { +row = -1; +if (!aa[i].visible) { +continue; +}height += aa[i].height; +if (y < height) { +row = i; +break; +}} +return row; +}, "~N"); +Clazz.overrideMethod (c$, "actionPerformed", +function (evt) { +var aa = this.av.getAlignment ().getAlignmentAnnotation (); +if (evt.getActionCommand ().equals (jalview.appletgui.AnnotationLabels.ADDNEW)) { +var newAnnotation = new jalview.datamodel.AlignmentAnnotation ("", null, new Array (this.ap.av.getAlignment ().getWidth ())); +if (!this.editLabelDescription (newAnnotation)) { +return; +}this.ap.av.getAlignment ().addAnnotation (newAnnotation); +this.ap.av.getAlignment ().setAnnotationIndex (newAnnotation, 0); +} else if (evt.getActionCommand ().equals (jalview.appletgui.AnnotationLabels.EDITNAME)) { +this.editLabelDescription (aa[this.selectedRow]); +} else if (evt.getActionCommand ().equals (jalview.appletgui.AnnotationLabels.HIDE)) { +aa[this.selectedRow].visible = false; +} else if (evt.getActionCommand ().equals (jalview.appletgui.AnnotationLabels.SHOWALL)) { +for (var i = 0; i < aa.length; i++) { +aa[i].visible = (aa[i].annotations == null) ? false : true; +} +} else if (evt.getActionCommand ().equals (jalview.appletgui.AnnotationLabels.OUTPUT_TEXT)) { +var cap = new jalview.appletgui.CutAndPasteTransfer (false, this.ap.alignFrame); +var frame = new awt2swing.Frame (); +frame.add (cap); +jalview.bin.JalviewLite.addFrame (frame, this.ap.alignFrame.getTitle () + " - " + aa[this.selectedRow].label, 500, 100); +cap.setText (aa[this.selectedRow].toString ()); +} else if (evt.getActionCommand ().equals (jalview.appletgui.AnnotationLabels.COPYCONS_SEQ)) { +var cons = this.av.getConsensusSeq (); +if (cons != null) { +this.copy_annotseqtoclipboard (cons); +}}this.refresh (); +}, "java.awt.event.ActionEvent"); +Clazz.defineMethod (c$, "refresh", +function () { +this.ap.annotationPanel.adjustPanelHeight (); +this.setSize (this.getSize ().width, this.ap.annotationPanel.getSize ().height); +this.ap.validate (); +this.ap.paintAlignment (true); +}); +Clazz.defineMethod (c$, "editLabelDescription", +function (annotation) { +var padGaps = new awt2swing.Checkbox ("Fill Empty Gaps With \"" + this.ap.av.getGapCharacter () + "\"", annotation.padGaps); +var dialog = new jalview.appletgui.EditNameDialog (annotation.label, annotation.description, " Annotation Label", "Annotation Description", this.ap.alignFrame, "Edit Annotation Name / Description", 500, 180, false); +var empty = new awt2swing.Panel ( new java.awt.FlowLayout ()); +empty.add (padGaps); +dialog.add (empty); +dialog.pack (); +dialog.setVisible (true); +if (dialog.accept) { +annotation.label = dialog.getName (); +annotation.description = dialog.getDescription (); +annotation.setPadGaps (padGaps.getState (), this.av.getGapCharacter ()); +this.repaint (); +return true; +} else { +return false; +}}, "jalview.datamodel.AlignmentAnnotation"); +Clazz.overrideMethod (c$, "mouseMoved", +function (evt) { +this.resizePanel = evt.getY () < 10 && evt.getX () < 14; +var row = this.getSelectedRow (evt.getY () + this.scrollOffset); +if (row > -1) { +var phb = new jalview.util.ParseHtmlBodyAndLinks (this.av.getAlignment ().getAlignmentAnnotation ()[row].getDescription (true), true, "\n"); +if (this.tooltip == null) { +this.tooltip = new jalview.appletgui.Tooltip (phb.getNonHtmlContent (), this); +} else { +this.tooltip.setTip (phb.getNonHtmlContent ()); +}} else if (this.tooltip != null) { +this.tooltip.setTip (""); +}}, "java.awt.event.MouseEvent"); +Clazz.defineMethod (c$, "cancelDrag", +function () { +this.dragEvent = null; +this.dragCancelled = true; +}); +Clazz.overrideMethod (c$, "mouseDragged", +function (evt) { +if (this.dragCancelled) { +return; +};this.dragEvent = evt; +if (this.resizePanel) { +var d = this.ap.annotationPanelHolder.getSize (); +var e = this.ap.annotationSpaceFillerHolder.getSize (); +var f = this.ap.seqPanelHolder.getSize (); +var dif = evt.getY () - this.oldY; +dif /= this.ap.av.getCharHeight (); +dif *= this.ap.av.getCharHeight (); +if ((d.height - dif) > 20 && (f.height + dif) > 20) { +this.ap.annotationPanel.setSize (d.width, d.height - dif); +this.setSize ( new java.awt.Dimension (e.width, d.height - dif)); +this.ap.annotationSpaceFillerHolder.setSize ( new java.awt.Dimension (e.width, d.height - dif)); +this.ap.annotationPanelHolder.setSize ( new java.awt.Dimension (d.width, d.height - dif)); +this.ap.apvscroll.setValues (this.ap.apvscroll.getValue (), d.height - dif, 0, this.av.calcPanelHeight ()); +f.height += dif; +this.ap.seqPanelHolder.setPreferredSize (f); +this.ap.setScrollValues (this.av.getStartRes (), this.av.getStartSeq ()); +this.ap.validate (); +this.ap.addNotify (); +}} else { +var diff; +if ((diff = 6 - evt.getY ()) > 0) { +this.ap.apvscroll.setValue (this.ap.apvscroll.getValue () - diff); +this.ap.adjustmentValueChanged (null); +} else if ((0 < (diff = 6 - this.ap.annotationSpaceFillerHolder.getSize ().height + evt.getY ()))) { +this.ap.apvscroll.setValue (this.ap.apvscroll.getValue () + diff); +this.ap.adjustmentValueChanged (null); +}this.repaint (); +}}, "java.awt.event.MouseEvent"); +Clazz.overrideMethod (c$, "mouseClicked", +function (evt) { +}, "java.awt.event.MouseEvent"); +Clazz.overrideMethod (c$, "mouseReleased", +function (evt) { +if (!this.resizePanel && !this.dragCancelled) { +var start = this.selectedRow; +var end = this.getSelectedRow (evt.getY () + this.scrollOffset); +if (start > -1 && start != end) { +var startAA = this.ap.av.getAlignment ().getAlignmentAnnotation ()[start]; +if (end == -1) { +end = this.ap.av.getAlignment ().getAlignmentAnnotation ().length - 1; +}var endAA = this.ap.av.getAlignment ().getAlignmentAnnotation ()[end]; +this.ap.av.getAlignment ().getAlignmentAnnotation ()[end] = startAA; +this.ap.av.getAlignment ().getAlignmentAnnotation ()[start] = endAA; +}}this.resizePanel = false; +this.dragEvent = null; +this.dragCancelled = false; +this.repaint (); +this.ap.annotationPanel.repaint (); +}, "java.awt.event.MouseEvent"); +Clazz.overrideMethod (c$, "mouseEntered", +function (evt) { +if (evt.getY () < 10 && evt.getX () < 14) { +this.resizePanel = true; +this.repaint (); +}}, "java.awt.event.MouseEvent"); +Clazz.overrideMethod (c$, "mouseExited", +function (evt) { +this.dragCancelled = false; +if (this.dragEvent == null) { +this.resizePanel = false; +} else { +if (!this.resizePanel) { +this.dragEvent = null; +}}this.repaint (); +}, "java.awt.event.MouseEvent"); +Clazz.overrideMethod (c$, "mousePressed", +function (evt) { +this.oldY = evt.getY (); +if (this.resizePanel) { +return; +}this.dragCancelled = false; +this.selectedRow = this.getSelectedRow (evt.getY () + this.scrollOffset); +var aa = this.ap.av.getAlignment ().getAlignmentAnnotation (); +if ((evt.getModifiers () & 4) == 4) { +var popup = new awt2swing.PopupMenu (jalview.util.MessageManager.getString ("label.annotations")); +var item = new awt2swing.MenuItem (jalview.appletgui.AnnotationLabels.ADDNEW); +item.addActionListener (this); +popup.add (item); +if (this.selectedRow < 0) { +if (this.hasHiddenRows) { +item = new awt2swing.MenuItem (jalview.appletgui.AnnotationLabels.SHOWALL); +item.addActionListener (this); +popup.add (item); +}this.add (popup); +popup.show (this, evt.getX (), evt.getY ()); +return; +}item = new awt2swing.MenuItem (jalview.appletgui.AnnotationLabels.EDITNAME); +item.addActionListener (this); +popup.add (item); +item = new awt2swing.MenuItem (jalview.appletgui.AnnotationLabels.HIDE); +item.addActionListener (this); +popup.add (item); +if (this.selectedRow < aa.length) { +if (aa[this.selectedRow].sequenceRef != null) { +var label = aa[this.selectedRow].label; +var hideType = new awt2swing.MenuItem (jalview.util.MessageManager.getString ("label.hide_all") + " " + label); +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)))); +popup.add (hideType); +}}if (this.hasHiddenRows) { +item = new awt2swing.MenuItem (jalview.appletgui.AnnotationLabels.SHOWALL); +item.addActionListener (this); +popup.add (item); +}this.add (popup); +item = new awt2swing.MenuItem (jalview.appletgui.AnnotationLabels.OUTPUT_TEXT); +item.addActionListener (this); +popup.add (item); +if (this.selectedRow < aa.length) { +if (aa[this.selectedRow].autoCalculated) { +if (aa[this.selectedRow].label.indexOf ("Consensus") > -1) { +popup.addSeparator (); +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 ()); +var aaa = aa[this.selectedRow]; +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)))); +popup.add (cbmi); +if (aaa.groupRef != null) { +var chist = new awt2swing.CheckboxMenuItem (jalview.util.MessageManager.getString ("label.show_group_histogram"), aa[this.selectedRow].groupRef.isShowConsensusHistogram ()); +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)))); +popup.add (chist); +var cprofl = new awt2swing.CheckboxMenuItem (jalview.util.MessageManager.getString ("label.show_group_logo"), aa[this.selectedRow].groupRef.isShowSequenceLogo ()); +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)))); +popup.add (cprofl); +var cprofn = new awt2swing.CheckboxMenuItem (jalview.util.MessageManager.getString ("label.normalise_group_logo"), aa[this.selectedRow].groupRef.isNormaliseSequenceLogo ()); +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)))); +popup.add (cprofn); +} else { +var chist = new awt2swing.CheckboxMenuItem (jalview.util.MessageManager.getString ("label.show_histogram"), this.av.isShowConsensusHistogram ()); +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)))); +popup.add (chist); +var cprof = new awt2swing.CheckboxMenuItem (jalview.util.MessageManager.getString ("label.show_logo"), this.av.isShowSequenceLogo ()); +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)))); +popup.add (cprof); +var cprofn = new awt2swing.CheckboxMenuItem (jalview.util.MessageManager.getString ("label.normalise_logo"), this.av.isNormaliseSequenceLogo ()); +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)))); +popup.add (cprofn); +}item = new awt2swing.MenuItem (jalview.appletgui.AnnotationLabels.COPYCONS_SEQ); +item.addActionListener (this); +popup.add (item); +}}}popup.show (this, evt.getX (), evt.getY ()); +} else { +if (this.selectedRow > -1 && this.selectedRow < aa.length) { +if (aa[this.selectedRow].groupRef != null) { +if (evt.getClickCount () >= 2) { +this.ap.seqPanel.ap.idPanel.highlightSearchResults (null); +this.ap.av.setSelectionGroup (aa[this.selectedRow].groupRef); +this.ap.av.sendSelection (); +this.ap.paintAlignment (false); +jalview.appletgui.PaintRefresher.Refresh (this.ap, this.ap.av.getSequenceSetId ()); +} else { +this.ap.seqPanel.ap.idPanel.highlightSearchResults (aa[this.selectedRow].groupRef.getSequences (null)); +}return; +} else if (aa[this.selectedRow].sequenceRef != null) { +if (evt.getClickCount () == 1) { +this.ap.seqPanel.ap.idPanel.highlightSearchResults (java.util.Arrays.asList ( Clazz.newArray (-1, [aa[this.selectedRow].sequenceRef]))); +} else if (evt.getClickCount () >= 2) { +this.ap.seqPanel.ap.idPanel.highlightSearchResults (null); +var sg = this.ap.av.getSelectionGroup (); +if (sg != null) { +if (!(evt.isControlDown () || evt.isShiftDown ())) { +sg = new jalview.datamodel.SequenceGroup (sg); +sg.clear (); +sg.addSequence (aa[this.selectedRow].sequenceRef, false); +} else { +if (evt.isControlDown ()) { +sg.addOrRemove (aa[this.selectedRow].sequenceRef, true); +} else { +sg.addSequence (aa[this.selectedRow].sequenceRef, true); +}}} else { +sg = new jalview.datamodel.SequenceGroup (); +sg.setStartRes (0); +sg.setEndRes (this.ap.av.getAlignment ().getWidth () - 1); +sg.addSequence (aa[this.selectedRow].sequenceRef, false); +}this.ap.av.setSelectionGroup (sg); +this.ap.paintAlignment (false); +jalview.appletgui.PaintRefresher.Refresh (this.ap, this.ap.av.getSequenceSetId ()); +this.ap.av.sendSelection (); +}}}}}, "java.awt.event.MouseEvent"); +Clazz.defineMethod (c$, "copy_annotseqtoclipboard", +function (sq) { +if (sq == null || sq.getLength () < 1) { +return; +}jalview.appletgui.AlignFrame.copiedSequences = new StringBuffer (); +jalview.appletgui.AlignFrame.copiedSequences.append (sq.getName () + "\t" + sq.getStart () + "\t" + sq.getEnd () + "\t" + sq.getSequenceAsString () + "\n"); +if (this.av.hasHiddenColumns ()) { +jalview.appletgui.AlignFrame.copiedHiddenColumns = new java.util.Vector (); +for (var region, $region = this.av.getColumnSelection ().getHiddenColumns ().iterator (); $region.hasNext () && ((region = $region.next ()) || true);) { +jalview.appletgui.AlignFrame.copiedHiddenColumns.addElement ( Clazz.newIntArray (-1, [region[0], region[1]])); +} +}}, "jalview.datamodel.SequenceI"); +Clazz.overrideMethod (c$, "paintComponent", +function (g) { +if (this.av.getWrapAlignment () || !this.av.isShowAnnotation ()) return; +var w = this.getSize ().width; +var h = this.getSize ().height; +if (this.image == null || w != this.image.getWidth (this) || h != this.image.getHeight (this)) { +this.image = this.createImage (w, this.ap.annotationPanel.getSize ().height); +}this.drawComponent (this.image.getGraphics (), w); +g.drawImage (this.image, 0, 0, this); +}, "java.awt.Graphics"); +Clazz.defineMethod (c$, "drawComponent", +function (g, width) { +g.setFont (this.av.getFont ()); +var fm = g.getFontMetrics (this.av.getFont ()); +g.setColor (java.awt.Color.white); +g.fillRect (0, 0, this.getSize ().width, this.getSize ().height); +g.translate (0, -this.scrollOffset); +g.setColor (java.awt.Color.black); +var aa = this.av.getAlignment ().getAlignmentAnnotation (); +var y = 0; +var fy = g.getFont ().getSize (); +var x = 0; +var offset; +if (aa != null) { +this.hasHiddenRows = false; +for (var i = 0; i < aa.length; i++) { +if (!aa[i].visible) { +this.hasHiddenRows = true; +continue; +}x = width - fm.stringWidth (aa[i].label) - 3; +y += aa[i].height; +offset = Clazz.doubleToInt (-(aa[i].height - fy) / 2); +g.drawString (aa[i].label, x, y + offset); +} +}g.translate (0, +this.scrollOffset); +if (this.resizePanel) { +g.setColor (java.awt.Color.red); +g.setPaintMode (); +g.drawLine (2, 8, 5, 2); +g.drawLine (5, 2, 8, 8); +} else if (!this.dragCancelled && this.dragEvent != null && aa != null) { +g.setColor (java.awt.Color.lightGray); +g.drawString (aa[this.selectedRow].label, this.dragEvent.getX (), this.dragEvent.getY ()); +}if (!this.av.getWrapAlignment () && ((aa == null) || (aa.length < 1))) { +g.setColor (java.awt.Color.black); +g.drawString (jalview.util.MessageManager.getString ("label.right_click"), 2, 8); +g.drawString (jalview.util.MessageManager.getString ("label.to_add_annotation"), 2, 18); +}}, "java.awt.Graphics,~N"); +c$.$AnnotationLabels$1$ = function () { +Clazz.pu$h (); +c$ = Clazz.declareAnonymous (jalview.appletgui, "AnnotationLabels$1", null, java.awt.event.ActionListener); +Clazz.overrideMethod (c$, "actionPerformed", +function (e) { +jalview.analysis.AlignmentUtils.showOrHideSequenceAnnotations (this.b$["jalview.appletgui.AnnotationLabels"].ap.av.getAlignment (), java.util.Collections.singleton (this.f$.label), null, false, false); +this.b$["jalview.appletgui.AnnotationLabels"].refresh (); +}, "java.awt.event.ActionEvent"); +c$ = Clazz.p0p (); +}; +c$.$AnnotationLabels$2$ = function () { +Clazz.pu$h (); +c$ = Clazz.declareAnonymous (jalview.appletgui, "AnnotationLabels$2", null, java.awt.event.ItemListener); +Clazz.overrideMethod (c$, "itemStateChanged", +function (e) { +if (this.f$.aaa.groupRef != null) { +this.f$.aaa.groupRef.setIgnoreGapsConsensus (this.f$.cbmi.getState ()); +} else { +this.b$["jalview.appletgui.AnnotationLabels"].ap.av.setIgnoreGapsConsensus (this.f$.cbmi.getState (), this.b$["jalview.appletgui.AnnotationLabels"].ap); +}this.b$["jalview.appletgui.AnnotationLabels"].ap.paintAlignment (true); +}, "java.awt.event.ItemEvent"); +c$ = Clazz.p0p (); +}; +c$.$AnnotationLabels$3$ = function () { +Clazz.pu$h (); +c$ = Clazz.declareAnonymous (jalview.appletgui, "AnnotationLabels$3", null, java.awt.event.ItemListener); +Clazz.overrideMethod (c$, "itemStateChanged", +function (e) { +this.f$.aaa.groupRef.setShowConsensusHistogram (this.f$.chist.getState ()); +this.b$["jalview.appletgui.AnnotationLabels"].ap.repaint (); +}, "java.awt.event.ItemEvent"); +c$ = Clazz.p0p (); +}; +c$.$AnnotationLabels$4$ = function () { +Clazz.pu$h (); +c$ = Clazz.declareAnonymous (jalview.appletgui, "AnnotationLabels$4", null, java.awt.event.ItemListener); +Clazz.overrideMethod (c$, "itemStateChanged", +function (e) { +this.f$.aaa.groupRef.setshowSequenceLogo (this.f$.cprofl.getState ()); +this.b$["jalview.appletgui.AnnotationLabels"].ap.repaint (); +}, "java.awt.event.ItemEvent"); +c$ = Clazz.p0p (); +}; +c$.$AnnotationLabels$5$ = function () { +Clazz.pu$h (); +c$ = Clazz.declareAnonymous (jalview.appletgui, "AnnotationLabels$5", null, java.awt.event.ItemListener); +Clazz.overrideMethod (c$, "itemStateChanged", +function (e) { +this.f$.aaa.groupRef.setshowSequenceLogo (true); +this.f$.aaa.groupRef.setNormaliseSequenceLogo (this.f$.cprofn.getState ()); +this.b$["jalview.appletgui.AnnotationLabels"].ap.repaint (); +}, "java.awt.event.ItemEvent"); +c$ = Clazz.p0p (); +}; +c$.$AnnotationLabels$6$ = function () { +Clazz.pu$h (); +c$ = Clazz.declareAnonymous (jalview.appletgui, "AnnotationLabels$6", null, java.awt.event.ItemListener); +Clazz.overrideMethod (c$, "itemStateChanged", +function (e) { +this.b$["jalview.appletgui.AnnotationLabels"].av.setShowConsensusHistogram (this.f$.chist.getState ()); +this.b$["jalview.appletgui.AnnotationLabels"].ap.alignFrame.showConsensusHistogram.setState (this.f$.chist.getState ()); +this.b$["jalview.appletgui.AnnotationLabels"].ap.repaint (); +}, "java.awt.event.ItemEvent"); +c$ = Clazz.p0p (); +}; +c$.$AnnotationLabels$7$ = function () { +Clazz.pu$h (); +c$ = Clazz.declareAnonymous (jalview.appletgui, "AnnotationLabels$7", null, java.awt.event.ItemListener); +Clazz.overrideMethod (c$, "itemStateChanged", +function (e) { +this.b$["jalview.appletgui.AnnotationLabels"].av.setShowSequenceLogo (this.f$.cprof.getState ()); +this.b$["jalview.appletgui.AnnotationLabels"].ap.alignFrame.showSequenceLogo.setState (this.f$.cprof.getState ()); +this.b$["jalview.appletgui.AnnotationLabels"].ap.repaint (); +}, "java.awt.event.ItemEvent"); +c$ = Clazz.p0p (); +}; +c$.$AnnotationLabels$8$ = function () { +Clazz.pu$h (); +c$ = Clazz.declareAnonymous (jalview.appletgui, "AnnotationLabels$8", null, java.awt.event.ItemListener); +Clazz.overrideMethod (c$, "itemStateChanged", +function (e) { +this.b$["jalview.appletgui.AnnotationLabels"].av.setShowSequenceLogo (true); +this.b$["jalview.appletgui.AnnotationLabels"].ap.alignFrame.normSequenceLogo.setState (this.f$.cprofn.getState ()); +this.b$["jalview.appletgui.AnnotationLabels"].av.setNormaliseSequenceLogo (this.f$.cprofn.getState ()); +this.b$["jalview.appletgui.AnnotationLabels"].ap.repaint (); +}, "java.awt.event.ItemEvent"); +c$ = Clazz.p0p (); +}; +Clazz.defineStatics (c$, +"ADDNEW", "Add New Row", +"EDITNAME", "Edit Label/Description", +"HIDE", "Hide This Row", +"SHOWALL", "Show All Hidden Rows", +"OUTPUT_TEXT", "Show Values In Textbox", +"COPYCONS_SEQ", "Copy Consensus Sequence"); +});