JAL-1807 test
[jalviewjs.git] / bin / jalview / appletgui / FeatureSettings.js
index c10ac3f..cc92844 100644 (file)
-Clazz.declarePackage ("jalview.appletgui");\r
-Clazz.load (["awt2swing.Checkbox", "$.Panel", "jalview.api.FeatureSettingsControllerI", "java.awt.event.ActionListener", "$.AdjustmentListener", "$.ItemListener", "$.MouseListener", "$.MouseMotionListener"], "jalview.appletgui.FeatureSettings", ["awt2swing.Button", "$.Frame", "$.Label", "$.MenuItem", "$.PopupMenu", "$.ScrollPane", "$.Scrollbar", "jalview.appletgui.FeatureColourChooser", "$.UserDefinedColours", "jalview.bin.JalviewLite", "jalview.schemes.GraduatedColor", "jalview.util.MessageManager", "java.awt.BorderLayout", "$.Color", "$.Font", "$.GridLayout", "$.Toolkit", "java.awt.event.WindowAdapter", "java.lang.Boolean", "$.Error", "java.util.Vector"], function () {\r
-c$ = Clazz.decorateAsClass (function () {\r
-this.fr = null;\r
-this.ap = null;\r
-this.av = null;\r
-this.frame = null;\r
-this.groupPanel = null;\r
-this.featurePanel = null;\r
-this.scrollPane = null;\r
-this.linkImage = null;\r
-this.transparency = null;\r
-this.groupItemListener = null;\r
-this.selectedCheck = null;\r
-this.dragging = false;\r
-if (!Clazz.isClassDefined ("jalview.appletgui.FeatureSettings.MyCheckbox")) {\r
-jalview.appletgui.FeatureSettings.$FeatureSettings$MyCheckbox$ ();\r
-}\r
-Clazz.instantialize (this, arguments);\r
-}, jalview.appletgui, "FeatureSettings", awt2swing.Panel, [java.awt.event.ItemListener, java.awt.event.MouseListener, java.awt.event.MouseMotionListener, java.awt.event.ActionListener, java.awt.event.AdjustmentListener, jalview.api.FeatureSettingsControllerI]);\r
-Clazz.prepareFields (c$, function () {\r
-this.featurePanel =  new awt2swing.Panel ();\r
-this.groupItemListener = ((Clazz.isClassDefined ("jalview.appletgui.FeatureSettings$1") ? 0 : jalview.appletgui.FeatureSettings.$FeatureSettings$1$ ()), Clazz.innerTypeInstance (jalview.appletgui.FeatureSettings$1, this, null));\r
-});\r
-Clazz.makeConstructor (c$, \r
-function (ap) {\r
-Clazz.superConstructor (this, jalview.appletgui.FeatureSettings, []);\r
-this.ap = ap;\r
-this.av = ap.av;\r
-ap.av.featureSettings = this;\r
-this.fr = ap.seqPanel.seqCanvas.getFeatureRenderer ();\r
-this.transparency =  new awt2swing.Scrollbar (0, 100 - Clazz.floatToInt (this.fr.getTransparency () * 100), 1, 1, 100);\r
-if (this.fr.isTransparencyAvailable ()) {\r
-this.transparency.addAdjustmentListener (this);\r
-} else {\r
-this.transparency.setEnabled (false);\r
-}var url = this.getClass ().getResource ("/images/link.gif");\r
-if (url != null) {\r
-this.linkImage = java.awt.Toolkit.getDefaultToolkit ().getImage (url);\r
-}if (this.av.isShowSequenceFeatures () || !this.fr.hasRenderOrder ()) {\r
-this.fr.findAllFeatures (true);\r
-}this.discoverAllFeatureData ();\r
-this.setLayout ( new java.awt.BorderLayout ());\r
-this.scrollPane =  new awt2swing.ScrollPane ();\r
-this.scrollPane.add (this.featurePanel);\r
-if (this.fr.getAllFeatureColours () != null && this.fr.getAllFeatureColours ().size () > 0) {\r
-this.add (this.scrollPane, "Center");\r
-}var invert =  new awt2swing.Button ("Invert Selection");\r
-invert.addActionListener (this);\r
-var lowerPanel =  new awt2swing.Panel ( new java.awt.GridLayout (2, 1, 5, 10));\r
-lowerPanel.add (invert);\r
-var tPanel =  new awt2swing.Panel ( new java.awt.BorderLayout ());\r
-if (this.fr.isTransparencyAvailable ()) {\r
-tPanel.add (this.transparency, "Center");\r
-tPanel.add ( new awt2swing.Label ("Transparency"), "East");\r
-} else {\r
-tPanel.add ( new awt2swing.Label ("Transparency not available in this web browser"), "Center");\r
-}lowerPanel.add (tPanel, "South");\r
-this.add (lowerPanel, "South");\r
-if (this.groupPanel != null) {\r
-this.groupPanel.setLayout ( new java.awt.GridLayout (Clazz.doubleToInt ((this.fr.getFeatureGroupsSize ()) / 4) + 1, 4));\r
-this.groupPanel.validate ();\r
-this.add (this.groupPanel, "North");\r
-}this.frame =  new awt2swing.Frame ();\r
-this.frame.add (this);\r
-var me = this;\r
-this.frame.addWindowListener (((Clazz.isClassDefined ("jalview.appletgui.FeatureSettings$2") ? 0 : jalview.appletgui.FeatureSettings.$FeatureSettings$2$ ()), Clazz.innerTypeInstance (jalview.appletgui.FeatureSettings$2, this, Clazz.cloneFinals ("me", me))));\r
-var height = this.featurePanel.getComponentCount () * 50 + 60;\r
-height = Math.max (200, height);\r
-height = Math.min (400, height);\r
-var width = 300;\r
-jalview.bin.JalviewLite.addFrame (this.frame, jalview.util.MessageManager.getString ("label.feature_settings"), width, height);\r
-}, "jalview.appletgui.AlignmentPanel");\r
-Clazz.defineMethod (c$, "PaintComponent", \r
-function (g) {\r
-g.setColor (java.awt.Color.black);\r
-g.drawString (jalview.util.MessageManager.getString ("label.no_features_added_to_this_alignment"), 10, 20);\r
-g.drawString (jalview.util.MessageManager.getString ("label.features_can_be_added_from_searches_1"), 10, 40);\r
-g.drawString (jalview.util.MessageManager.getString ("label.features_can_be_added_from_searches_2"), 10, 60);\r
-}, "java.awt.Graphics");\r
-Clazz.defineMethod (c$, "popupSort", \r
-function (check, minmax, x, y) {\r
-var type = check.type;\r
-var typeCol = this.fr.getFeatureStyle (type);\r
-var men =  new awt2swing.PopupMenu (jalview.util.MessageManager.formatMessage ("label.settings_for_type",  Clazz.newArray (-1, [type])));\r
-var scr =  new awt2swing.MenuItem (jalview.util.MessageManager.getString ("label.sort_by_score"));\r
-men.add (scr);\r
-var me = this;\r
-scr.addActionListener (((Clazz.isClassDefined ("jalview.appletgui.FeatureSettings$3") ? 0 : jalview.appletgui.FeatureSettings.$FeatureSettings$3$ ()), Clazz.innerTypeInstance (jalview.appletgui.FeatureSettings$3, this, Clazz.cloneFinals ("me", me, "type", type))));\r
-var dens =  new awt2swing.MenuItem (jalview.util.MessageManager.getString ("label.sort_by_density"));\r
-dens.addActionListener (((Clazz.isClassDefined ("jalview.appletgui.FeatureSettings$4") ? 0 : jalview.appletgui.FeatureSettings.$FeatureSettings$4$ ()), Clazz.innerTypeInstance (jalview.appletgui.FeatureSettings$4, this, Clazz.cloneFinals ("me", me, "type", type))));\r
-men.add (dens);\r
-if (minmax != null) {\r
-var typeMinMax = minmax.get (type);\r
-if (typeMinMax != null && (typeMinMax)[0] != null) {\r
-var mxcol =  new awt2swing.MenuItem ((Clazz.instanceOf (typeCol, java.awt.Color)) ? "Graduated Colour" : "Single Colour");\r
-men.add (mxcol);\r
-mxcol.addActionListener (((Clazz.isClassDefined ("jalview.appletgui.FeatureSettings$5") ? 0 : jalview.appletgui.FeatureSettings.$FeatureSettings$5$ ()), Clazz.innerTypeInstance (jalview.appletgui.FeatureSettings$5, this, Clazz.cloneFinals ("typeCol", typeCol, "me", me, "type", type, "check", check))));\r
-}}this.featurePanel.add (men);\r
-men.show (this.featurePanel, x, y);\r
-}, "jalview.appletgui.FeatureSettings.MyCheckbox,java.util.Hashtable,~N,~N");\r
-Clazz.overrideMethod (c$, "discoverAllFeatureData", \r
-function () {\r
-if (this.fr.getAllFeatureColours () != null && this.fr.getAllFeatureColours ().size () > 0) {\r
-this.rebuildGroups ();\r
-}this.resetTable (false);\r
-});\r
-Clazz.defineMethod (c$, "rebuildGroups", \r
-function () {\r
-var rdrw = false;\r
-if (this.groupPanel == null) {\r
-this.groupPanel =  new awt2swing.Panel ();\r
-} else {\r
-rdrw = true;\r
-this.groupPanel.removeAll ();\r
-}for (var group, $group = this.fr.getFeatureGroups ().iterator (); $group.hasNext () && ((group = $group.next ()) || true);) {\r
-var vis = this.fr.checkGroupVisibility (group, false);\r
-var check = Clazz.innerTypeInstance (jalview.appletgui.FeatureSettings.MyCheckbox, this, null, group, vis, (this.fr.featureLinks != null && this.fr.featureLinks.containsKey (group)));\r
-check.addMouseListener (this);\r
-check.setFont ( new java.awt.Font ("Serif", 1, 12));\r
-check.addItemListener (this.groupItemListener);\r
-check.setVisible (vis);\r
-this.groupPanel.add (check);\r
-}\r
-if (rdrw) {\r
-this.groupPanel.validate ();\r
-}});\r
-Clazz.defineMethod (c$, "resetTable", \r
-function (groupsChanged) {\r
-var tmpfeatures;\r
-var group = null;\r
-var type;\r
-var visibleChecks =  new java.util.Vector ();\r
-var alignment = this.av.getAlignment ();\r
-for (var i = 0; i < alignment.getHeight (); i++) {\r
-if (alignment.getSequenceAt (i).getSequenceFeatures () == null) {\r
-continue;\r
-}tmpfeatures = alignment.getSequenceAt (i).getSequenceFeatures ();\r
-var index = 0;\r
-while (index < tmpfeatures.length) {\r
-group = tmpfeatures[index].featureGroup;\r
-if (group == null || this.fr.checkGroupVisibility (group, true)) {\r
-type = tmpfeatures[index].getType ();\r
-if (!visibleChecks.contains (type)) {\r
-visibleChecks.addElement (type);\r
-}}index++;\r
-}\r
-}\r
-var comps;\r
-var cSize = this.featurePanel.getComponentCount ();\r
-var check;\r
-for (var i = 0; i < cSize; i++) {\r
-comps = this.featurePanel.getComponents ();\r
-check = comps[i];\r
-if (!visibleChecks.contains (check.type)) {\r
-this.featurePanel.remove (i);\r
-cSize--;\r
-i--;\r
-}}\r
-if (this.fr.getRenderOrder () != null) {\r
-var rol = this.fr.getRenderOrder ();\r
-for (var ro = rol.size () - 1; ro > -1; ro--) {\r
-var item = rol.get (ro);\r
-if (!visibleChecks.contains (item)) {\r
-continue;\r
-}visibleChecks.removeElement (item);\r
-this.addCheck (false, item);\r
-}\r
-}var en = visibleChecks.elements ();\r
-while (en.hasMoreElements ()) {\r
-this.addCheck (groupsChanged, en.nextElement ().toString ());\r
-}\r
-this.featurePanel.setLayout ( new java.awt.GridLayout (this.featurePanel.getComponentCount (), 1, 10, 5));\r
-this.featurePanel.validate ();\r
-if (this.scrollPane != null) {\r
-this.scrollPane.validate ();\r
-}this.itemStateChanged (null);\r
-}, "~B");\r
-Clazz.defineMethod (c$, "addCheck", \r
-function (groupsChanged, type) {\r
-var addCheck;\r
-var comps = this.featurePanel.getComponents ();\r
-var check;\r
-addCheck = true;\r
-for (var i = 0; i < this.featurePanel.getComponentCount (); i++) {\r
-check = comps[i];\r
-if (check.type.equals (type)) {\r
-addCheck = false;\r
-break;\r
-}}\r
-if (addCheck) {\r
-var selected = false;\r
-if (groupsChanged || this.av.getFeaturesDisplayed ().isVisible (type)) {\r
-selected = true;\r
-}check = Clazz.innerTypeInstance (jalview.appletgui.FeatureSettings.MyCheckbox, this, null, type, selected, (this.fr.featureLinks != null && this.fr.featureLinks.containsKey (type)), this.fr.getFeatureStyle (type));\r
-check.addMouseListener (this);\r
-check.addMouseMotionListener (this);\r
-check.addItemListener (this);\r
-if (groupsChanged) {\r
-this.featurePanel.add (check, 0);\r
-} else {\r
-this.featurePanel.add (check);\r
-}}}, "~B,~S");\r
-Clazz.overrideMethod (c$, "actionPerformed", \r
-function (evt) {\r
-for (var i = 0; i < this.featurePanel.getComponentCount (); i++) {\r
-var check = this.featurePanel.getComponent (i);\r
-check.setState (!check.getState ());\r
-}\r
-this.selectionChanged ();\r
-}, "java.awt.event.ActionEvent");\r
-Clazz.overrideMethod (c$, "itemStateChanged", \r
-function (evt) {\r
-this.selectionChanged ();\r
-}, "java.awt.event.ItemEvent");\r
-Clazz.defineMethod (c$, "selectionChanged", \r
-function () {\r
-var comps = this.featurePanel.getComponents ();\r
-var cSize = comps.length;\r
-var tmp =  Clazz.newArray (cSize, 3, null);\r
-var tmpSize = 0;\r
-for (var i = 0; i < cSize; i++) {\r
-var check = comps[i];\r
-tmp[tmpSize][0] = check.type;\r
-tmp[tmpSize][1] = this.fr.getFeatureStyle (check.type);\r
-tmp[tmpSize][2] =  new Boolean (check.getState ());\r
-tmpSize++;\r
-}\r
-var data =  Clazz.newArray (tmpSize, 3, null);\r
-System.arraycopy (tmp, 0, data, 0, tmpSize);\r
-this.fr.setFeaturePriority (data);\r
-this.ap.paintAlignment (true);\r
-});\r
-Clazz.overrideMethod (c$, "mousePressed", \r
-function (evt) {\r
-this.selectedCheck = evt.getSource ();\r
-if (this.fr.featureLinks != null && this.fr.featureLinks.containsKey (this.selectedCheck.type)) {\r
-if (evt.getX () > this.selectedCheck.stringWidth + 20) {\r
-evt.consume ();\r
-}}}, "java.awt.event.MouseEvent");\r
-Clazz.overrideMethod (c$, "mouseDragged", \r
-function (evt) {\r
-if ((evt.getSource ()).getParent () !== this.featurePanel) {\r
-return;\r
-}this.dragging = true;\r
-}, "java.awt.event.MouseEvent");\r
-Clazz.overrideMethod (c$, "mouseReleased", \r
-function (evt) {\r
-if ((evt.getSource ()).getParent () !== this.featurePanel) {\r
-return;\r
-}var comp = null;\r
-var target = null;\r
-var height = evt.getY () + evt.getComponent ().getLocation ().y;\r
-if (height > this.featurePanel.getSize ().height) {\r
-comp = this.featurePanel.getComponent (this.featurePanel.getComponentCount () - 1);\r
-} else if (height < 0) {\r
-comp = this.featurePanel.getComponent (0);\r
-} else {\r
-comp = this.featurePanel.getComponentAt (evt.getX (), evt.getY () + evt.getComponent ().getLocation ().y);\r
-}if (comp != null && Clazz.instanceOf (comp, awt2swing.Checkbox)) {\r
-target = comp;\r
-}if (this.selectedCheck != null && target != null && this.selectedCheck !== target) {\r
-var targetIndex = -1;\r
-for (var i = 0; i < this.featurePanel.getComponentCount (); i++) {\r
-if (target === this.featurePanel.getComponent (i)) {\r
-targetIndex = i;\r
-break;\r
-}}\r
-this.featurePanel.remove (this.selectedCheck);\r
-this.featurePanel.add (this.selectedCheck, targetIndex);\r
-this.featurePanel.validate ();\r
-this.itemStateChanged (null);\r
-}}, "java.awt.event.MouseEvent");\r
-Clazz.defineMethod (c$, "setUserColour", \r
-function (feature, originalColour) {\r
-if (Clazz.instanceOf (originalColour, java.awt.Color) || Clazz.instanceOf (originalColour, jalview.schemes.GraduatedColor)) {\r
-this.fr.setColour (feature, originalColour);\r
-} else {\r
-throw  new Error (jalview.util.MessageManager.getString ("error.implementation_error_unsupported_feature_colour_object"));\r
-}this.refreshTable ();\r
-}, "~S,~O");\r
-Clazz.defineMethod (c$, "refreshTable", \r
-function () {\r
-this.featurePanel.removeAll ();\r
-this.resetTable (false);\r
-this.ap.paintAlignment (true);\r
-});\r
-Clazz.overrideMethod (c$, "mouseEntered", \r
-function (evt) {\r
-}, "java.awt.event.MouseEvent");\r
-Clazz.overrideMethod (c$, "mouseExited", \r
-function (evt) {\r
-}, "java.awt.event.MouseEvent");\r
-Clazz.overrideMethod (c$, "mouseClicked", \r
-function (evt) {\r
-var check = evt.getSource ();\r
-if ((evt.getModifiers () & 4) != 0) {\r
-this.popupSort (check, this.fr.getMinMax (), evt.getX (), evt.getY ());\r
-}if (this.fr.featureLinks != null && this.fr.featureLinks.containsKey (check.type)) {\r
-if (evt.getX () > check.stringWidth + 20) {\r
-evt.consume ();\r
-var link = this.fr.featureLinks.get (check.type).toString ();\r
-this.ap.alignFrame.showURL (link.substring (link.indexOf ("|") + 1), link.substring (0, link.indexOf ("|")));\r
-}}if (check.getParent () !== this.featurePanel) {\r
-return;\r
-}if (evt.getClickCount () > 1) {\r
-var fcol = this.fr.getFeatureStyle (check.type);\r
-if (Clazz.instanceOf (fcol, java.awt.Color)) {\r
- new jalview.appletgui.UserDefinedColours (this, check.type, fcol);\r
-} else {\r
- new jalview.appletgui.FeatureColourChooser (this, check.type);\r
-check.updateColor (this.fr.getFeatureStyle (check.type));\r
-}}}, "java.awt.event.MouseEvent");\r
-Clazz.overrideMethod (c$, "mouseMoved", \r
-function (evt) {\r
-}, "java.awt.event.MouseEvent");\r
-Clazz.overrideMethod (c$, "adjustmentValueChanged", \r
-function (evt) {\r
-this.fr.setTransparency ((100 - this.transparency.getValue ()) / 100);\r
-this.ap.seqPanel.seqCanvas.repaint ();\r
-}, "java.awt.event.AdjustmentEvent");\r
-c$.$FeatureSettings$MyCheckbox$ = function () {\r
-Clazz.pu$h ();\r
-c$ = Clazz.decorateAsClass (function () {\r
-Clazz.prepareCallback (this, arguments);\r
-this.type = null;\r
-this.stringWidth = 0;\r
-this.hasLink = false;\r
-this.gcol = null;\r
-this.col = null;\r
-Clazz.instantialize (this, arguments);\r
-}, jalview.appletgui.FeatureSettings, "MyCheckbox", awt2swing.Checkbox);\r
-Clazz.defineMethod (c$, "updateColor", \r
-function (a) {\r
-if (Clazz.instanceOf (a, java.awt.Color)) {\r
-this.col = a;\r
-this.gcol = null;\r
-} else if (Clazz.instanceOf (a, jalview.schemes.GraduatedColor)) {\r
-this.gcol = a;\r
-this.col = null;\r
-} else {\r
-throw  new Error (jalview.util.MessageManager.getString ("error.invalid_colour_for_mycheckbox"));\r
-}if (this.col != null) {\r
-this.setBackground (this.col);\r
-} else {\r
-var b = this.type;\r
-if (this.gcol.getThreshType () != -1) {\r
-b += " " + ((this.gcol.getThreshType () == 1) ? "(>)" : "(<)");\r
-}if (this.gcol.isColourByLabel ()) {\r
-this.setBackground (java.awt.Color.white);\r
-b += " (by Label)";\r
-} else {\r
-this.setBackground (this.gcol.getMinColor ());\r
-}this.setLabel (b);\r
-}this.repaint ();\r
-}, "~O");\r
-Clazz.makeConstructor (c$, \r
-function (a, b, c) {\r
-Clazz.superConstructor (this, jalview.appletgui.FeatureSettings.MyCheckbox, [a, b]);\r
-this.type = a;\r
-var d = this.b$["jalview.appletgui.FeatureSettings"].av.nullFrame.getFontMetrics (this.b$["jalview.appletgui.FeatureSettings"].av.nullFrame.getFont ());\r
-this.stringWidth = d.stringWidth (a);\r
-this.hasLink = c;\r
-}, "~S,~B,~B");\r
-Clazz.makeConstructor (c$, \r
-function (a, b, c, d) {\r
-this.construct (a, b, c);\r
-this.updateColor (d);\r
-}, "~S,~B,~B,~O");\r
-Clazz.defineMethod (c$, "PaintComponent", \r
-function (a) {\r
-var b = this.getSize ();\r
-if (this.gcol != null) {\r
-if (this.gcol.isColourByLabel ()) {\r
-a.setColor (java.awt.Color.white);\r
-a.fillRect (Clazz.doubleToInt (b.width / 2), 0, Clazz.doubleToInt (b.width / 2), b.height);\r
-} else {\r
-var c = this.gcol.getMaxColor ();\r
-a.setColor (c);\r
-a.fillRect (Clazz.doubleToInt (b.width / 2), 0, Clazz.doubleToInt (b.width / 2), b.height);\r
-}}if (this.hasLink) {\r
-a.drawImage (this.b$["jalview.appletgui.FeatureSettings"].linkImage, this.stringWidth + 25, Clazz.doubleToInt ((this.getSize ().height - this.b$["jalview.appletgui.FeatureSettings"].linkImage.getHeight (this)) / 2), this);\r
-}}, "java.awt.Graphics");\r
-c$ = Clazz.p0p ();\r
-};\r
-c$.$FeatureSettings$1$ = function () {\r
-Clazz.pu$h ();\r
-c$ = Clazz.declareAnonymous (jalview.appletgui, "FeatureSettings$1", null, java.awt.event.ItemListener);\r
-Clazz.overrideMethod (c$, "itemStateChanged", \r
-function (evt) {\r
-var source = evt.getSource ();\r
-this.b$["jalview.appletgui.FeatureSettings"].fr.setGroupVisibility (source.getLabel (), source.getState ());\r
-this.b$["jalview.appletgui.FeatureSettings"].ap.seqPanel.seqCanvas.repaint ();\r
-if (this.b$["jalview.appletgui.FeatureSettings"].ap.overviewPanel != null) {\r
-this.b$["jalview.appletgui.FeatureSettings"].ap.overviewPanel.updateOverviewImage ();\r
-}this.b$["jalview.appletgui.FeatureSettings"].resetTable (true);\r
-return;\r
-}, "java.awt.event.ItemEvent");\r
-c$ = Clazz.p0p ();\r
-};\r
-c$.$FeatureSettings$2$ = function () {\r
-Clazz.pu$h ();\r
-c$ = Clazz.declareAnonymous (jalview.appletgui, "FeatureSettings$2", java.awt.event.WindowAdapter);\r
-Clazz.overrideMethod (c$, "windowClosing", \r
-function (e) {\r
-if (this.f$.me.av.featureSettings === this.f$.me) {\r
-this.f$.me.av.featureSettings = null;\r
-this.f$.me.ap = null;\r
-this.f$.me.av = null;\r
-}}, "java.awt.event.WindowEvent");\r
-c$ = Clazz.p0p ();\r
-};\r
-c$.$FeatureSettings$3$ = function () {\r
-Clazz.pu$h ();\r
-c$ = Clazz.declareAnonymous (jalview.appletgui, "FeatureSettings$3", null, java.awt.event.ActionListener);\r
-Clazz.overrideMethod (c$, "actionPerformed", \r
-function (e) {\r
-this.f$.me.ap.alignFrame.avc.sortAlignmentByFeatureScore ( Clazz.newArray (-1, [this.f$.type]));\r
-}, "java.awt.event.ActionEvent");\r
-c$ = Clazz.p0p ();\r
-};\r
-c$.$FeatureSettings$4$ = function () {\r
-Clazz.pu$h ();\r
-c$ = Clazz.declareAnonymous (jalview.appletgui, "FeatureSettings$4", null, java.awt.event.ActionListener);\r
-Clazz.overrideMethod (c$, "actionPerformed", \r
-function (e) {\r
-this.f$.me.ap.alignFrame.avc.sortAlignmentByFeatureDensity ( Clazz.newArray (-1, [this.f$.type]));\r
-}, "java.awt.event.ActionEvent");\r
-c$ = Clazz.p0p ();\r
-};\r
-c$.$FeatureSettings$5$ = function () {\r
-Clazz.pu$h ();\r
-c$ = Clazz.declareAnonymous (jalview.appletgui, "FeatureSettings$5", null, java.awt.event.ActionListener);\r
-Clazz.overrideMethod (c$, "actionPerformed", \r
-function (e) {\r
-if (Clazz.instanceOf (this.f$.typeCol, java.awt.Color)) {\r
- new jalview.appletgui.FeatureColourChooser (this.f$.me, this.f$.type);\r
-this.f$.check.updateColor (this.b$["jalview.appletgui.FeatureSettings"].fr.getFeatureStyle (this.f$.type));\r
-} else {\r
- new jalview.appletgui.UserDefinedColours (this.f$.me, this.f$.check.type, (this.f$.typeCol));\r
-}}, "java.awt.event.ActionEvent");\r
-c$ = Clazz.p0p ();\r
-};\r
-});\r
+Clazz.declarePackage ("jalview.appletgui");
+Clazz.load (["awt2swing.Checkbox", "$.Panel", "jalview.api.FeatureSettingsControllerI", "java.awt.event.ActionListener", "$.AdjustmentListener", "$.ItemListener", "$.MouseListener", "$.MouseMotionListener"], "jalview.appletgui.FeatureSettings", ["awt2swing.Button", "$.Frame", "$.Label", "$.MenuItem", "$.PopupMenu", "$.ScrollPane", "$.Scrollbar", "jalview.appletgui.FeatureColourChooser", "$.UserDefinedColours", "jalview.bin.JalviewLite", "jalview.schemes.GraduatedColor", "jalview.util.MessageManager", "java.awt.BorderLayout", "$.Color", "$.Font", "$.GridLayout", "$.Toolkit", "java.awt.event.WindowAdapter", "java.lang.Boolean", "$.Error", "java.util.Vector"], function () {
+c$ = Clazz.decorateAsClass (function () {
+this.fr = null;
+this.ap = null;
+this.av = null;
+this.frame = null;
+this.groupPanel = null;
+this.featurePanel = null;
+this.scrollPane = null;
+this.linkImage = null;
+this.transparency = null;
+this.groupItemListener = null;
+this.selectedCheck = null;
+this.dragging = false;
+if (!Clazz.isClassDefined ("jalview.appletgui.FeatureSettings.MyCheckbox")) {
+jalview.appletgui.FeatureSettings.$FeatureSettings$MyCheckbox$ ();
+}
+Clazz.instantialize (this, arguments);
+}, jalview.appletgui, "FeatureSettings", awt2swing.Panel, [java.awt.event.ItemListener, java.awt.event.MouseListener, java.awt.event.MouseMotionListener, java.awt.event.ActionListener, java.awt.event.AdjustmentListener, jalview.api.FeatureSettingsControllerI]);
+Clazz.prepareFields (c$, function () {
+this.featurePanel =  new awt2swing.Panel ();
+this.groupItemListener = ((Clazz.isClassDefined ("jalview.appletgui.FeatureSettings$1") ? 0 : jalview.appletgui.FeatureSettings.$FeatureSettings$1$ ()), Clazz.innerTypeInstance (jalview.appletgui.FeatureSettings$1, this, null));
+});
+Clazz.makeConstructor (c$, 
+function (ap) {
+Clazz.superConstructor (this, jalview.appletgui.FeatureSettings, []);
+this.ap = ap;
+this.av = ap.av;
+ap.av.featureSettings = this;
+this.fr = ap.seqPanel.seqCanvas.getFeatureRenderer ();
+this.transparency =  new awt2swing.Scrollbar (0, 100 - Clazz.floatToInt (this.fr.getTransparency () * 100), 1, 1, 100);
+if (this.fr.isTransparencyAvailable ()) {
+this.transparency.addAdjustmentListener (this);
+} else {
+this.transparency.setEnabled (false);
+}var url = this.getClass ().getResource ("/images/link.gif");
+if (url != null) {
+this.linkImage = java.awt.Toolkit.getDefaultToolkit ().getImage (url);
+}if (this.av.isShowSequenceFeatures () || !this.fr.hasRenderOrder ()) {
+this.fr.findAllFeatures (true);
+}this.discoverAllFeatureData ();
+this.setLayout ( new java.awt.BorderLayout ());
+this.scrollPane =  new awt2swing.ScrollPane ();
+this.scrollPane.add (this.featurePanel);
+if (this.fr.getAllFeatureColours () != null && this.fr.getAllFeatureColours ().size () > 0) {
+this.add (this.scrollPane, "Center");
+}var invert =  new awt2swing.Button ("Invert Selection");
+invert.addActionListener (this);
+var lowerPanel =  new awt2swing.Panel ( new java.awt.GridLayout (2, 1, 5, 10));
+lowerPanel.add (invert);
+var tPanel =  new awt2swing.Panel ( new java.awt.BorderLayout ());
+if (this.fr.isTransparencyAvailable ()) {
+tPanel.add (this.transparency, "Center");
+tPanel.add ( new awt2swing.Label ("Transparency"), "East");
+} else {
+tPanel.add ( new awt2swing.Label ("Transparency not available in this web browser"), "Center");
+}lowerPanel.add (tPanel, "South");
+this.add (lowerPanel, "South");
+if (this.groupPanel != null) {
+this.groupPanel.setLayout ( new java.awt.GridLayout (Clazz.doubleToInt ((this.fr.getFeatureGroupsSize ()) / 4) + 1, 4));
+this.groupPanel.validate ();
+this.add (this.groupPanel, "North");
+}this.frame =  new awt2swing.Frame ();
+this.frame.add (this);
+var me = this;
+this.frame.addWindowListener (((Clazz.isClassDefined ("jalview.appletgui.FeatureSettings$2") ? 0 : jalview.appletgui.FeatureSettings.$FeatureSettings$2$ ()), Clazz.innerTypeInstance (jalview.appletgui.FeatureSettings$2, this, Clazz.cloneFinals ("me", me))));
+var height = this.featurePanel.getComponentCount () * 50 + 60;
+height = Math.max (200, height);
+height = Math.min (400, height);
+var width = 300;
+jalview.bin.JalviewLite.addFrame (this.frame, jalview.util.MessageManager.getString ("label.feature_settings"), width, height);
+}, "jalview.appletgui.AlignmentPanel");
+Clazz.defineMethod (c$, "PaintComponent", 
+function (g) {
+g.setColor (java.awt.Color.black);
+g.drawString (jalview.util.MessageManager.getString ("label.no_features_added_to_this_alignment"), 10, 20);
+g.drawString (jalview.util.MessageManager.getString ("label.features_can_be_added_from_searches_1"), 10, 40);
+g.drawString (jalview.util.MessageManager.getString ("label.features_can_be_added_from_searches_2"), 10, 60);
+}, "java.awt.Graphics");
+Clazz.defineMethod (c$, "popupSort", 
+function (check, minmax, x, y) {
+var type = check.type;
+var typeCol = this.fr.getFeatureStyle (type);
+var men =  new awt2swing.PopupMenu (jalview.util.MessageManager.formatMessage ("label.settings_for_type",  Clazz.newArray (-1, [type])));
+var scr =  new awt2swing.MenuItem (jalview.util.MessageManager.getString ("label.sort_by_score"));
+men.add (scr);
+var me = this;
+scr.addActionListener (((Clazz.isClassDefined ("jalview.appletgui.FeatureSettings$3") ? 0 : jalview.appletgui.FeatureSettings.$FeatureSettings$3$ ()), Clazz.innerTypeInstance (jalview.appletgui.FeatureSettings$3, this, Clazz.cloneFinals ("me", me, "type", type))));
+var dens =  new awt2swing.MenuItem (jalview.util.MessageManager.getString ("label.sort_by_density"));
+dens.addActionListener (((Clazz.isClassDefined ("jalview.appletgui.FeatureSettings$4") ? 0 : jalview.appletgui.FeatureSettings.$FeatureSettings$4$ ()), Clazz.innerTypeInstance (jalview.appletgui.FeatureSettings$4, this, Clazz.cloneFinals ("me", me, "type", type))));
+men.add (dens);
+if (minmax != null) {
+var typeMinMax = minmax.get (type);
+if (typeMinMax != null && (typeMinMax)[0] != null) {
+var mxcol =  new awt2swing.MenuItem ((Clazz.instanceOf (typeCol, java.awt.Color)) ? "Graduated Colour" : "Single Colour");
+men.add (mxcol);
+mxcol.addActionListener (((Clazz.isClassDefined ("jalview.appletgui.FeatureSettings$5") ? 0 : jalview.appletgui.FeatureSettings.$FeatureSettings$5$ ()), Clazz.innerTypeInstance (jalview.appletgui.FeatureSettings$5, this, Clazz.cloneFinals ("typeCol", typeCol, "me", me, "type", type, "check", check))));
+}}this.featurePanel.add (men);
+men.show (this.featurePanel, x, y);
+}, "jalview.appletgui.FeatureSettings.MyCheckbox,java.util.Hashtable,~N,~N");
+Clazz.overrideMethod (c$, "discoverAllFeatureData", 
+function () {
+if (this.fr.getAllFeatureColours () != null && this.fr.getAllFeatureColours ().size () > 0) {
+this.rebuildGroups ();
+}this.resetTable (false);
+});
+Clazz.defineMethod (c$, "rebuildGroups", 
+function () {
+var rdrw = false;
+if (this.groupPanel == null) {
+this.groupPanel =  new awt2swing.Panel ();
+} else {
+rdrw = true;
+this.groupPanel.removeAll ();
+}for (var group, $group = this.fr.getFeatureGroups ().iterator (); $group.hasNext () && ((group = $group.next ()) || true);) {
+var vis = this.fr.checkGroupVisibility (group, false);
+var check = Clazz.innerTypeInstance (jalview.appletgui.FeatureSettings.MyCheckbox, this, null, group, vis, (this.fr.featureLinks != null && this.fr.featureLinks.containsKey (group)));
+check.addMouseListener (this);
+check.setFont ( new java.awt.Font ("Serif", 1, 12));
+check.addItemListener (this.groupItemListener);
+check.setVisible (vis);
+this.groupPanel.add (check);
+}
+if (rdrw) {
+this.groupPanel.validate ();
+}});
+Clazz.defineMethod (c$, "resetTable", 
+function (groupsChanged) {
+var tmpfeatures;
+var group = null;
+var type;
+var visibleChecks =  new java.util.Vector ();
+var alignment = this.av.getAlignment ();
+for (var i = 0; i < alignment.getHeight (); i++) {
+if (alignment.getSequenceAt (i).getSequenceFeatures () == null) {
+continue;
+}tmpfeatures = alignment.getSequenceAt (i).getSequenceFeatures ();
+var index = 0;
+while (index < tmpfeatures.length) {
+group = tmpfeatures[index].featureGroup;
+if (group == null || this.fr.checkGroupVisibility (group, true)) {
+type = tmpfeatures[index].getType ();
+if (!visibleChecks.contains (type)) {
+visibleChecks.addElement (type);
+}}index++;
+}
+}
+var comps;
+var cSize = this.featurePanel.getComponentCount ();
+var check;
+for (var i = 0; i < cSize; i++) {
+comps = this.featurePanel.getComponents ();
+check = comps[i];
+if (!visibleChecks.contains (check.type)) {
+this.featurePanel.remove (i);
+cSize--;
+i--;
+}}
+if (this.fr.getRenderOrder () != null) {
+var rol = this.fr.getRenderOrder ();
+for (var ro = rol.size () - 1; ro > -1; ro--) {
+var item = rol.get (ro);
+if (!visibleChecks.contains (item)) {
+continue;
+}visibleChecks.removeElement (item);
+this.addCheck (false, item);
+}
+}var en = visibleChecks.elements ();
+while (en.hasMoreElements ()) {
+this.addCheck (groupsChanged, en.nextElement ().toString ());
+}
+this.featurePanel.setLayout ( new java.awt.GridLayout (this.featurePanel.getComponentCount (), 1, 10, 5));
+this.featurePanel.validate ();
+if (this.scrollPane != null) {
+this.scrollPane.validate ();
+}this.itemStateChanged (null);
+}, "~B");
+Clazz.defineMethod (c$, "addCheck", 
+function (groupsChanged, type) {
+var addCheck;
+var comps = this.featurePanel.getComponents ();
+var check;
+addCheck = true;
+for (var i = 0; i < this.featurePanel.getComponentCount (); i++) {
+check = comps[i];
+if (check.type.equals (type)) {
+addCheck = false;
+break;
+}}
+if (addCheck) {
+var selected = false;
+if (groupsChanged || this.av.getFeaturesDisplayed ().isVisible (type)) {
+selected = true;
+}check = Clazz.innerTypeInstance (jalview.appletgui.FeatureSettings.MyCheckbox, this, null, type, selected, (this.fr.featureLinks != null && this.fr.featureLinks.containsKey (type)), this.fr.getFeatureStyle (type));
+check.addMouseListener (this);
+check.addMouseMotionListener (this);
+check.addItemListener (this);
+if (groupsChanged) {
+this.featurePanel.add (check, 0);
+} else {
+this.featurePanel.add (check);
+}}}, "~B,~S");
+Clazz.overrideMethod (c$, "actionPerformed", 
+function (evt) {
+for (var i = 0; i < this.featurePanel.getComponentCount (); i++) {
+var check = this.featurePanel.getComponent (i);
+check.setState (!check.getState ());
+}
+this.selectionChanged ();
+}, "java.awt.event.ActionEvent");
+Clazz.overrideMethod (c$, "itemStateChanged", 
+function (evt) {
+this.selectionChanged ();
+}, "java.awt.event.ItemEvent");
+Clazz.defineMethod (c$, "selectionChanged", 
+function () {
+var comps = this.featurePanel.getComponents ();
+var cSize = comps.length;
+var tmp =  Clazz.newArray (cSize, 3, null);
+var tmpSize = 0;
+for (var i = 0; i < cSize; i++) {
+var check = comps[i];
+tmp[tmpSize][0] = check.type;
+tmp[tmpSize][1] = this.fr.getFeatureStyle (check.type);
+tmp[tmpSize][2] =  new Boolean (check.getState ());
+tmpSize++;
+}
+var data =  Clazz.newArray (tmpSize, 3, null);
+System.arraycopy (tmp, 0, data, 0, tmpSize);
+this.fr.setFeaturePriority (data);
+this.ap.paintAlignment (true);
+});
+Clazz.overrideMethod (c$, "mousePressed", 
+function (evt) {
+this.selectedCheck = evt.getSource ();
+if (this.fr.featureLinks != null && this.fr.featureLinks.containsKey (this.selectedCheck.type)) {
+if (evt.getX () > this.selectedCheck.stringWidth + 20) {
+evt.consume ();
+}}}, "java.awt.event.MouseEvent");
+Clazz.overrideMethod (c$, "mouseDragged", 
+function (evt) {
+if ((evt.getSource ()).getParent () !== this.featurePanel) {
+return;
+}this.dragging = true;
+}, "java.awt.event.MouseEvent");
+Clazz.overrideMethod (c$, "mouseReleased", 
+function (evt) {
+if ((evt.getSource ()).getParent () !== this.featurePanel) {
+return;
+}var comp = null;
+var target = null;
+var height = evt.getY () + evt.getComponent ().getLocation ().y;
+if (height > this.featurePanel.getSize ().height) {
+comp = this.featurePanel.getComponent (this.featurePanel.getComponentCount () - 1);
+} else if (height < 0) {
+comp = this.featurePanel.getComponent (0);
+} else {
+comp = this.featurePanel.getComponentAt (evt.getX (), evt.getY () + evt.getComponent ().getLocation ().y);
+}if (comp != null && Clazz.instanceOf (comp, awt2swing.Checkbox)) {
+target = comp;
+}if (this.selectedCheck != null && target != null && this.selectedCheck !== target) {
+var targetIndex = -1;
+for (var i = 0; i < this.featurePanel.getComponentCount (); i++) {
+if (target === this.featurePanel.getComponent (i)) {
+targetIndex = i;
+break;
+}}
+this.featurePanel.remove (this.selectedCheck);
+this.featurePanel.add (this.selectedCheck, targetIndex);
+this.featurePanel.validate ();
+this.itemStateChanged (null);
+}}, "java.awt.event.MouseEvent");
+Clazz.defineMethod (c$, "setUserColour", 
+function (feature, originalColour) {
+if (Clazz.instanceOf (originalColour, java.awt.Color) || Clazz.instanceOf (originalColour, jalview.schemes.GraduatedColor)) {
+this.fr.setColour (feature, originalColour);
+} else {
+throw  new Error (jalview.util.MessageManager.getString ("error.implementation_error_unsupported_feature_colour_object"));
+}this.refreshTable ();
+}, "~S,~O");
+Clazz.defineMethod (c$, "refreshTable", 
+function () {
+this.featurePanel.removeAll ();
+this.resetTable (false);
+this.ap.paintAlignment (true);
+});
+Clazz.overrideMethod (c$, "mouseEntered", 
+function (evt) {
+}, "java.awt.event.MouseEvent");
+Clazz.overrideMethod (c$, "mouseExited", 
+function (evt) {
+}, "java.awt.event.MouseEvent");
+Clazz.overrideMethod (c$, "mouseClicked", 
+function (evt) {
+var check = evt.getSource ();
+if ((evt.getModifiers () & 4) != 0) {
+this.popupSort (check, this.fr.getMinMax (), evt.getX (), evt.getY ());
+}if (this.fr.featureLinks != null && this.fr.featureLinks.containsKey (check.type)) {
+if (evt.getX () > check.stringWidth + 20) {
+evt.consume ();
+var link = this.fr.featureLinks.get (check.type).toString ();
+this.ap.alignFrame.showURL (link.substring (link.indexOf ("|") + 1), link.substring (0, link.indexOf ("|")));
+}}if (check.getParent () !== this.featurePanel) {
+return;
+}if (evt.getClickCount () > 1) {
+var fcol = this.fr.getFeatureStyle (check.type);
+if (Clazz.instanceOf (fcol, java.awt.Color)) {
+ new jalview.appletgui.UserDefinedColours (this, check.type, fcol);
+} else {
+ new jalview.appletgui.FeatureColourChooser (this, check.type);
+check.updateColor (this.fr.getFeatureStyle (check.type));
+}}}, "java.awt.event.MouseEvent");
+Clazz.overrideMethod (c$, "mouseMoved", 
+function (evt) {
+}, "java.awt.event.MouseEvent");
+Clazz.overrideMethod (c$, "adjustmentValueChanged", 
+function (evt) {
+this.fr.setTransparency ((100 - this.transparency.getValue ()) / 100);
+this.ap.seqPanel.seqCanvas.repaint ();
+}, "java.awt.event.AdjustmentEvent");
+c$.$FeatureSettings$MyCheckbox$ = function () {
+Clazz.pu$h ();
+c$ = Clazz.decorateAsClass (function () {
+Clazz.prepareCallback (this, arguments);
+this.type = null;
+this.stringWidth = 0;
+this.hasLink = false;
+this.gcol = null;
+this.col = null;
+Clazz.instantialize (this, arguments);
+}, jalview.appletgui.FeatureSettings, "MyCheckbox", awt2swing.Checkbox);
+Clazz.defineMethod (c$, "updateColor", 
+function (a) {
+if (Clazz.instanceOf (a, java.awt.Color)) {
+this.col = a;
+this.gcol = null;
+} else if (Clazz.instanceOf (a, jalview.schemes.GraduatedColor)) {
+this.gcol = a;
+this.col = null;
+} else {
+throw  new Error (jalview.util.MessageManager.getString ("error.invalid_colour_for_mycheckbox"));
+}if (this.col != null) {
+this.setBackground (this.col);
+} else {
+var b = this.type;
+if (this.gcol.getThreshType () != -1) {
+b += " " + ((this.gcol.getThreshType () == 1) ? "(>)" : "(<)");
+}if (this.gcol.isColourByLabel ()) {
+this.setBackground (java.awt.Color.white);
+b += " (by Label)";
+} else {
+this.setBackground (this.gcol.getMinColor ());
+}this.setLabel (b);
+}this.repaint ();
+}, "~O");
+Clazz.makeConstructor (c$, 
+function (a, b, c) {
+Clazz.superConstructor (this, jalview.appletgui.FeatureSettings.MyCheckbox, [a, b]);
+this.type = a;
+var d = this.b$["jalview.appletgui.FeatureSettings"].av.nullFrame.getFontMetrics (this.b$["jalview.appletgui.FeatureSettings"].av.nullFrame.getFont ());
+this.stringWidth = d.stringWidth (a);
+this.hasLink = c;
+}, "~S,~B,~B");
+Clazz.makeConstructor (c$, 
+function (a, b, c, d) {
+this.construct (a, b, c);
+this.updateColor (d);
+}, "~S,~B,~B,~O");
+Clazz.defineMethod (c$, "PaintComponent", 
+function (a) {
+var b = this.getSize ();
+if (this.gcol != null) {
+if (this.gcol.isColourByLabel ()) {
+a.setColor (java.awt.Color.white);
+a.fillRect (Clazz.doubleToInt (b.width / 2), 0, Clazz.doubleToInt (b.width / 2), b.height);
+} else {
+var c = this.gcol.getMaxColor ();
+a.setColor (c);
+a.fillRect (Clazz.doubleToInt (b.width / 2), 0, Clazz.doubleToInt (b.width / 2), b.height);
+}}if (this.hasLink) {
+a.drawImage (this.b$["jalview.appletgui.FeatureSettings"].linkImage, this.stringWidth + 25, Clazz.doubleToInt ((this.getSize ().height - this.b$["jalview.appletgui.FeatureSettings"].linkImage.getHeight (this)) / 2), this);
+}}, "java.awt.Graphics");
+c$ = Clazz.p0p ();
+};
+c$.$FeatureSettings$1$ = function () {
+Clazz.pu$h ();
+c$ = Clazz.declareAnonymous (jalview.appletgui, "FeatureSettings$1", null, java.awt.event.ItemListener);
+Clazz.overrideMethod (c$, "itemStateChanged", 
+function (evt) {
+var source = evt.getSource ();
+this.b$["jalview.appletgui.FeatureSettings"].fr.setGroupVisibility (source.getLabel (), source.getState ());
+this.b$["jalview.appletgui.FeatureSettings"].ap.seqPanel.seqCanvas.repaint ();
+if (this.b$["jalview.appletgui.FeatureSettings"].ap.overviewPanel != null) {
+this.b$["jalview.appletgui.FeatureSettings"].ap.overviewPanel.updateOverviewImage ();
+}this.b$["jalview.appletgui.FeatureSettings"].resetTable (true);
+return;
+}, "java.awt.event.ItemEvent");
+c$ = Clazz.p0p ();
+};
+c$.$FeatureSettings$2$ = function () {
+Clazz.pu$h ();
+c$ = Clazz.declareAnonymous (jalview.appletgui, "FeatureSettings$2", java.awt.event.WindowAdapter);
+Clazz.overrideMethod (c$, "windowClosing", 
+function (e) {
+if (this.f$.me.av.featureSettings === this.f$.me) {
+this.f$.me.av.featureSettings = null;
+this.f$.me.ap = null;
+this.f$.me.av = null;
+}}, "java.awt.event.WindowEvent");
+c$ = Clazz.p0p ();
+};
+c$.$FeatureSettings$3$ = function () {
+Clazz.pu$h ();
+c$ = Clazz.declareAnonymous (jalview.appletgui, "FeatureSettings$3", null, java.awt.event.ActionListener);
+Clazz.overrideMethod (c$, "actionPerformed", 
+function (e) {
+this.f$.me.ap.alignFrame.avc.sortAlignmentByFeatureScore ( Clazz.newArray (-1, [this.f$.type]));
+}, "java.awt.event.ActionEvent");
+c$ = Clazz.p0p ();
+};
+c$.$FeatureSettings$4$ = function () {
+Clazz.pu$h ();
+c$ = Clazz.declareAnonymous (jalview.appletgui, "FeatureSettings$4", null, java.awt.event.ActionListener);
+Clazz.overrideMethod (c$, "actionPerformed", 
+function (e) {
+this.f$.me.ap.alignFrame.avc.sortAlignmentByFeatureDensity ( Clazz.newArray (-1, [this.f$.type]));
+}, "java.awt.event.ActionEvent");
+c$ = Clazz.p0p ();
+};
+c$.$FeatureSettings$5$ = function () {
+Clazz.pu$h ();
+c$ = Clazz.declareAnonymous (jalview.appletgui, "FeatureSettings$5", null, java.awt.event.ActionListener);
+Clazz.overrideMethod (c$, "actionPerformed", 
+function (e) {
+if (Clazz.instanceOf (this.f$.typeCol, java.awt.Color)) {
+ new jalview.appletgui.FeatureColourChooser (this.f$.me, this.f$.type);
+this.f$.check.updateColor (this.b$["jalview.appletgui.FeatureSettings"].fr.getFeatureStyle (this.f$.type));
+} else {
+ new jalview.appletgui.UserDefinedColours (this.f$.me, this.f$.check.type, (this.f$.typeCol));
+}}, "java.awt.event.ActionEvent");
+c$ = Clazz.p0p ();
+};
+});