JAL-1807 includes ?j2sdebug flag and DebugJS._(msg)
[jalviewjs.git] / bin / jalview / appletgui / FeatureRenderer.js
index 05b643c..3d688fd 100644 (file)
-Clazz.declarePackage ("jalview.appletgui");\r
-Clazz.load (["awt2swing.Panel", "jalview.renderer.seqfeatures.FeatureRenderer"], "jalview.appletgui.FeatureRenderer", ["awt2swing.Button", "$.Choice", "$.Label", "$.ScrollPane", "$.TextArea", "$.TextField", "jalview.appletgui.FeatureColourChooser", "$.JVDialog", "$.UserDefinedColours", "jalview.datamodel.SearchResults", "jalview.io.FeaturesFile", "jalview.schemes.GraduatedColor", "$.UserColourScheme", "jalview.util.MessageManager", "java.awt.BorderLayout", "$.Color", "$.Font", "$.GridLayout", "java.awt.event.ActionListener", "$.ItemListener", "$.MouseAdapter", "java.lang.Error"], function () {\r
-c$ = Clazz.decorateAsClass (function () {\r
-this.featureLinks = null;\r
-this.featureIndex = 0;\r
-this.deleteFeature = false;\r
-this.colourPanel = null;\r
-if (!Clazz.isClassDefined ("jalview.appletgui.FeatureRenderer.FeatureColourPanel")) {\r
-jalview.appletgui.FeatureRenderer.$FeatureRenderer$FeatureColourPanel$ ();\r
-}\r
-Clazz.instantialize (this, arguments);\r
-}, jalview.appletgui, "FeatureRenderer", jalview.renderer.seqfeatures.FeatureRenderer);\r
-Clazz.makeConstructor (c$, \r
-function (av) {\r
-Clazz.superConstructor (this, jalview.appletgui.FeatureRenderer);\r
-this.av = av;\r
-this.setTransparencyAvailable (!System.getProperty ("java.version").startsWith ("1.1"));\r
-}, "jalview.viewmodel.AlignmentViewport");\r
-Clazz.defineMethod (c$, "amendFeatures", \r
-function (sequences, features, newFeatures, ap) {\r
-var bigPanel =  new awt2swing.Panel ( new java.awt.BorderLayout ());\r
-var name =  new awt2swing.TextField (16);\r
-var source =  new awt2swing.TextField (16);\r
-var description =  new awt2swing.TextArea (3, 35);\r
-var start =  new awt2swing.TextField (8);\r
-var end =  new awt2swing.TextField (8);\r
-var overlaps;\r
-var deleteButton =  new awt2swing.Button ("Delete");\r
-this.deleteFeature = false;\r
-this.colourPanel = Clazz.innerTypeInstance (jalview.appletgui.FeatureRenderer.FeatureColourPanel, this, null);\r
-this.colourPanel.setSize (110, 15);\r
-var fr = this;\r
-var panel =  new awt2swing.Panel ( new java.awt.GridLayout (3, 1));\r
-this.featureIndex = 0;\r
-var tmp;\r
-if (!newFeatures && features.length > 1) {\r
-panel =  new awt2swing.Panel ( new java.awt.GridLayout (4, 1));\r
-tmp =  new awt2swing.Panel ();\r
-tmp.add ( new awt2swing.Label ("Select Feature: "));\r
-overlaps =  new awt2swing.Choice ();\r
-for (var i = 0; i < features.length; i++) {\r
-var item = features[i].getType () + "/" + features[i].getBegin () + "-" + features[i].getEnd ();\r
-if (features[i].getFeatureGroup () != null) {\r
-item += " (" + features[i].getFeatureGroup () + ")";\r
-}overlaps.addItem (item);\r
-}\r
-tmp.add (overlaps);\r
-overlaps.addItemListener (((Clazz.isClassDefined ("jalview.appletgui.FeatureRenderer$1") ? 0 : jalview.appletgui.FeatureRenderer.$FeatureRenderer$1$ ()), Clazz.innerTypeInstance (jalview.appletgui.FeatureRenderer$1, this, Clazz.cloneFinals ("overlaps", overlaps, "name", name, "features", features, "description", description, "source", source, "start", start, "end", end, "sequences", sequences, "ap", ap))));\r
-panel.add (tmp);\r
-}tmp =  new awt2swing.Panel ();\r
-panel.add (tmp);\r
-tmp.add ( new awt2swing.Label ("Name: ", 4));\r
-tmp.add (name);\r
-tmp =  new awt2swing.Panel ();\r
-panel.add (tmp);\r
-tmp.add ( new awt2swing.Label ("Group: ", 4));\r
-tmp.add (source);\r
-tmp =  new awt2swing.Panel ();\r
-panel.add (tmp);\r
-tmp.add ( new awt2swing.Label ("Colour: ", 4));\r
-tmp.add (this.colourPanel);\r
-bigPanel.add (panel, "North");\r
-panel =  new awt2swing.Panel ();\r
-panel.add ( new awt2swing.Label ("Description: ", 4));\r
-panel.add ( new awt2swing.ScrollPane ().add (description));\r
-if (!newFeatures) {\r
-bigPanel.add (panel, "South");\r
-panel =  new awt2swing.Panel ();\r
-panel.add ( new awt2swing.Label (" Start:", 4));\r
-panel.add (start);\r
-panel.add ( new awt2swing.Label ("  End:", 4));\r
-panel.add (end);\r
-bigPanel.add (panel, "Center");\r
-} else {\r
-bigPanel.add (panel, "Center");\r
-}if (jalview.appletgui.FeatureRenderer.lastFeatureAdded == null) {\r
-if (features[0].type != null) {\r
-jalview.appletgui.FeatureRenderer.lastFeatureAdded = features[0].type;\r
-} else {\r
-jalview.appletgui.FeatureRenderer.lastFeatureAdded = "feature_1";\r
-}}if (jalview.appletgui.FeatureRenderer.lastFeatureGroupAdded == null) {\r
-if (features[0].featureGroup != null) {\r
-jalview.appletgui.FeatureRenderer.lastFeatureGroupAdded = features[0].featureGroup;\r
-} else {\r
-jalview.appletgui.FeatureRenderer.lastFeatureAdded = "Jalview";\r
-}}var title = newFeatures ? jalview.util.MessageManager.getString ("label.create_new_sequence_features") : jalview.util.MessageManager.formatMessage ("label.amend_delete_features",  Clazz.newArray (-1, [sequences[0].getName ()]));\r
-var dialog =  new jalview.appletgui.JVDialog (ap.alignFrame, title, true, 385, 240);\r
-dialog.setMainPanel (bigPanel);\r
-if (newFeatures) {\r
-name.setText (jalview.appletgui.FeatureRenderer.lastFeatureAdded);\r
-source.setText (jalview.appletgui.FeatureRenderer.lastFeatureGroupAdded);\r
-} else {\r
-dialog.ok.setLabel (jalview.util.MessageManager.getString ("label.amend"));\r
-dialog.buttonPanel.add (deleteButton, 1);\r
-deleteButton.addActionListener (((Clazz.isClassDefined ("jalview.appletgui.FeatureRenderer$2") ? 0 : jalview.appletgui.FeatureRenderer.$FeatureRenderer$2$ ()), Clazz.innerTypeInstance (jalview.appletgui.FeatureRenderer$2, this, Clazz.cloneFinals ("dialog", dialog))));\r
-name.setText (features[0].getType ());\r
-source.setText (features[0].getFeatureGroup ());\r
-}start.setText (features[0].getBegin () + "");\r
-end.setText (features[0].getEnd () + "");\r
-description.setText (features[0].getDescription ());\r
-var col = this.getColour (name.getText ());\r
-if (col == null) {\r
-col =  new jalview.schemes.UserColourScheme ().createColourFromName (name.getText ());\r
-}var fcol = this.getFeatureStyle (name.getText ());\r
-this.colourPanel.updateColor (fcol);\r
-dialog.setResizable (true);\r
-this.colourPanel.addMouseListener (((Clazz.isClassDefined ("jalview.appletgui.FeatureRenderer$3") ? 0 : jalview.appletgui.FeatureRenderer.$FeatureRenderer$3$ ()), Clazz.innerTypeInstance (jalview.appletgui.FeatureRenderer$3, this, Clazz.cloneFinals ("fr", fr, "ap", ap, "name", name, "dialog", dialog))));\r
-dialog.setVisible (true);\r
-var ffile =  new jalview.io.FeaturesFile ();\r
-if (dialog.accept) {\r
-this.lastSeq = null;\r
-jalview.appletgui.FeatureRenderer.lastFeatureAdded = name.getText ().trim ();\r
-jalview.appletgui.FeatureRenderer.lastFeatureGroupAdded = source.getText ().trim ();\r
-jalview.appletgui.FeatureRenderer.lastDescriptionAdded = description.getText ().$replace ('\n', ' ');\r
-}if (jalview.appletgui.FeatureRenderer.lastFeatureGroupAdded != null && jalview.appletgui.FeatureRenderer.lastFeatureGroupAdded.length < 1) {\r
-jalview.appletgui.FeatureRenderer.lastFeatureGroupAdded = null;\r
-}if (!newFeatures) {\r
-var sf = features[this.featureIndex];\r
-if (dialog.accept) {\r
-sf.type = jalview.appletgui.FeatureRenderer.lastFeatureAdded;\r
-sf.featureGroup = jalview.appletgui.FeatureRenderer.lastFeatureGroupAdded;\r
-sf.description = jalview.appletgui.FeatureRenderer.lastDescriptionAdded;\r
-if (!this.colourPanel.isGcol) {\r
-this.setColour (sf.type, this.colourPanel.getBackground ());\r
-}try {\r
-sf.begin = Integer.parseInt (start.getText ());\r
-sf.end = Integer.parseInt (end.getText ());\r
-} catch (ex) {\r
-if (Clazz.exceptionOf (ex, NumberFormatException)) {\r
-} else {\r
-throw ex;\r
-}\r
-}\r
-ffile.parseDescriptionHTML (sf, false);\r
-this.setVisible (jalview.appletgui.FeatureRenderer.lastFeatureAdded);\r
-}if (this.deleteFeature) {\r
-sequences[0].deleteFeature (sf);\r
-}} else {\r
-if (dialog.accept && name.getText ().length > 0) {\r
-for (var i = 0; i < sequences.length; i++) {\r
-features[i].type = jalview.appletgui.FeatureRenderer.lastFeatureAdded;\r
-features[i].featureGroup = jalview.appletgui.FeatureRenderer.lastFeatureGroupAdded;\r
-features[i].description = jalview.appletgui.FeatureRenderer.lastDescriptionAdded;\r
-sequences[i].addSequenceFeature (features[i]);\r
-ffile.parseDescriptionHTML (features[i], false);\r
-}\r
-var newColour = this.colourPanel.getBackground ();\r
-if (jalview.appletgui.FeatureRenderer.lastFeatureGroupAdded != null) {\r
-this.setGroupVisibility (jalview.appletgui.FeatureRenderer.lastFeatureGroupAdded, true);\r
-}this.setColour (jalview.appletgui.FeatureRenderer.lastFeatureAdded, newColour);\r
-this.setVisible (jalview.appletgui.FeatureRenderer.lastFeatureAdded);\r
-this.findAllFeatures (false);\r
-} else {\r
-return false;\r
-}}if ((this.av).featureSettings != null) {\r
-(this.av).featureSettings.refreshTable ();\r
-}ap.paintAlignment (true);\r
-return true;\r
-}, "~A,~A,~B,jalview.appletgui.AlignmentPanel");\r
-c$.$FeatureRenderer$FeatureColourPanel$ = function () {\r
-Clazz.pu$h ();\r
-c$ = Clazz.decorateAsClass (function () {\r
-Clazz.prepareCallback (this, arguments);\r
-this.label = "";\r
-this.maxCol = null;\r
-this.isColourByLabel = false;\r
-this.isGcol = false;\r
-Clazz.instantialize (this, arguments);\r
-}, jalview.appletgui.FeatureRenderer, "FeatureColourPanel", awt2swing.Panel);\r
-Clazz.defineMethod (c$, "updateColor", \r
-function (a) {\r
-var b;\r
-var c = null;\r
-var d = null;\r
-var e = "";\r
-if (Clazz.instanceOf (a, java.awt.Color)) {\r
-this.isGcol = false;\r
-c = a;\r
-d = null;\r
-} else if (Clazz.instanceOf (a, jalview.schemes.GraduatedColor)) {\r
-this.isGcol = true;\r
-d = a;\r
-c = null;\r
-} else {\r
-throw  new Error (jalview.util.MessageManager.getString ("error.invalid_colour_for_mycheckbox"));\r
-}if (c != null) {\r
-this.setBackground (b = c);\r
-} else {\r
-if (d.getThreshType () != -1) {\r
-e += " " + ((d.getThreshType () == 1) ? "(>)" : "(<)");\r
-}if (this.isColourByLabel = d.isColourByLabel ()) {\r
-this.setBackground (b = java.awt.Color.white);\r
-e += " (by Label)";\r
-} else {\r
-this.setBackground (b = d.getMinColor ());\r
-this.maxCol = d.getMaxColor ();\r
-}}this.label = e;\r
-this.setBackground (b);\r
-this.repaint ();\r
-}, "~O");\r
-Clazz.makeConstructor (c$, \r
-function () {\r
-Clazz.superConstructor (this, jalview.appletgui.FeatureRenderer.FeatureColourPanel, [null]);\r
-});\r
-Clazz.defineMethod (c$, "PaintComponent", \r
-function (a) {\r
-var b = this.getSize ();\r
-if (this.isGcol) {\r
-if (this.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
-a.setColor (java.awt.Color.black);\r
-var c =  new java.awt.Font ("Verdana", 0, 10);\r
-a.setFont (c);\r
-a.drawString (jalview.util.MessageManager.getString ("label.label"), 0, 0);\r
-} else {\r
-a.setColor (this.maxCol);\r
-a.fillRect (Clazz.doubleToInt (b.width / 2), 0, Clazz.doubleToInt (b.width / 2), b.height);\r
-}}}, "java.awt.Graphics");\r
-c$ = Clazz.p0p ();\r
-};\r
-c$.$FeatureRenderer$1$ = function () {\r
-Clazz.pu$h ();\r
-c$ = Clazz.declareAnonymous (jalview.appletgui, "FeatureRenderer$1", null, java.awt.event.ItemListener);\r
-Clazz.overrideMethod (c$, "itemStateChanged", \r
-function (e) {\r
-var index = this.f$.overlaps.getSelectedIndex ();\r
-if (index != -1) {\r
-this.b$["jalview.appletgui.FeatureRenderer"].featureIndex = index;\r
-this.f$.name.setText (this.f$.features[index].getType ());\r
-this.f$.description.setText (this.f$.features[index].getDescription ());\r
-this.f$.source.setText (this.f$.features[index].getFeatureGroup ());\r
-this.f$.start.setText (this.f$.features[index].getBegin () + "");\r
-this.f$.end.setText (this.f$.features[index].getEnd () + "");\r
-var highlight =  new jalview.datamodel.SearchResults ();\r
-highlight.addResult (this.f$.sequences[0], this.f$.features[index].getBegin (), this.f$.features[index].getEnd ());\r
-this.f$.ap.seqPanel.seqCanvas.highlightSearchResults (highlight);\r
-}var col = this.b$["jalview.appletgui.FeatureRenderer"].getFeatureStyle (this.f$.name.getText ());\r
-if (col == null) {\r
-col =  new jalview.schemes.UserColourScheme ().createColourFromName (this.f$.name.getText ());\r
-}this.b$["jalview.appletgui.FeatureRenderer"].colourPanel.updateColor (col);\r
-}, "java.awt.event.ItemEvent");\r
-c$ = Clazz.p0p ();\r
-};\r
-c$.$FeatureRenderer$2$ = function () {\r
-Clazz.pu$h ();\r
-c$ = Clazz.declareAnonymous (jalview.appletgui, "FeatureRenderer$2", null, java.awt.event.ActionListener);\r
-Clazz.overrideMethod (c$, "actionPerformed", \r
-function (evt) {\r
-this.b$["jalview.appletgui.FeatureRenderer"].deleteFeature = true;\r
-this.f$.dialog.setVisible (false);\r
-}, "java.awt.event.ActionEvent");\r
-c$ = Clazz.p0p ();\r
-};\r
-c$.$FeatureRenderer$3$ = function () {\r
-Clazz.pu$h ();\r
-c$ = Clazz.declareAnonymous (jalview.appletgui, "FeatureRenderer$3", java.awt.event.MouseAdapter);\r
-Clazz.overrideMethod (c$, "mousePressed", \r
-function (evt) {\r
-if (!this.b$["jalview.appletgui.FeatureRenderer"].colourPanel.isGcol) {\r
- new jalview.appletgui.UserDefinedColours (this.f$.fr, this.f$.ap.alignFrame);\r
-} else {\r
-var fcc =  new jalview.appletgui.FeatureColourChooser (this.f$.ap.alignFrame, this.f$.name.getText ());\r
-this.f$.dialog.transferFocus ();\r
-}}, "java.awt.event.MouseEvent");\r
-c$ = Clazz.p0p ();\r
-};\r
-Clazz.defineStatics (c$,\r
-"lastFeatureAdded", null,\r
-"lastFeatureGroupAdded", null,\r
-"lastDescriptionAdded", null);\r
-});\r
+Clazz.declarePackage ("jalview.appletgui");
+Clazz.load (["awt2swing.Panel", "jalview.renderer.seqfeatures.FeatureRenderer"], "jalview.appletgui.FeatureRenderer", ["awt2swing.Button", "$.Choice", "$.Label", "$.ScrollPane", "$.TextArea", "$.TextField", "jalview.appletgui.FeatureColourChooser", "$.JVDialog", "$.UserDefinedColours", "jalview.datamodel.SearchResults", "jalview.io.FeaturesFile", "jalview.schemes.GraduatedColor", "$.UserColourScheme", "jalview.util.MessageManager", "java.awt.BorderLayout", "$.Color", "$.Font", "$.GridLayout", "java.awt.event.ActionListener", "$.ItemListener", "$.MouseAdapter", "java.lang.Error"], function () {
+c$ = Clazz.decorateAsClass (function () {
+this.featureLinks = null;
+this.featureIndex = 0;
+this.deleteFeature = false;
+this.colourPanel = null;
+if (!Clazz.isClassDefined ("jalview.appletgui.FeatureRenderer.FeatureColourPanel")) {
+jalview.appletgui.FeatureRenderer.$FeatureRenderer$FeatureColourPanel$ ();
+}
+Clazz.instantialize (this, arguments);
+}, jalview.appletgui, "FeatureRenderer", jalview.renderer.seqfeatures.FeatureRenderer);
+Clazz.makeConstructor (c$, 
+function (av) {
+Clazz.superConstructor (this, jalview.appletgui.FeatureRenderer);
+this.av = av;
+this.setTransparencyAvailable (!System.getProperty ("java.version").startsWith ("1.1"));
+}, "jalview.viewmodel.AlignmentViewport");
+Clazz.defineMethod (c$, "amendFeatures", 
+function (sequences, features, newFeatures, ap) {
+var bigPanel =  new awt2swing.Panel ( new java.awt.BorderLayout ());
+var name =  new awt2swing.TextField (16);
+var source =  new awt2swing.TextField (16);
+var description =  new awt2swing.TextArea (3, 35);
+var start =  new awt2swing.TextField (8);
+var end =  new awt2swing.TextField (8);
+var overlaps;
+var deleteButton =  new awt2swing.Button ("Delete");
+this.deleteFeature = false;
+this.colourPanel = Clazz.innerTypeInstance (jalview.appletgui.FeatureRenderer.FeatureColourPanel, this, null);
+this.colourPanel.setSize (110, 15);
+var fr = this;
+var panel =  new awt2swing.Panel ( new java.awt.GridLayout (3, 1));
+this.featureIndex = 0;
+var tmp;
+if (!newFeatures && features.length > 1) {
+panel =  new awt2swing.Panel ( new java.awt.GridLayout (4, 1));
+tmp =  new awt2swing.Panel ();
+tmp.add ( new awt2swing.Label ("Select Feature: "));
+overlaps =  new awt2swing.Choice ();
+for (var i = 0; i < features.length; i++) {
+var item = features[i].getType () + "/" + features[i].getBegin () + "-" + features[i].getEnd ();
+if (features[i].getFeatureGroup () != null) {
+item += " (" + features[i].getFeatureGroup () + ")";
+}overlaps.addItem (item);
+}
+tmp.add (overlaps);
+overlaps.addItemListener (((Clazz.isClassDefined ("jalview.appletgui.FeatureRenderer$1") ? 0 : jalview.appletgui.FeatureRenderer.$FeatureRenderer$1$ ()), Clazz.innerTypeInstance (jalview.appletgui.FeatureRenderer$1, this, Clazz.cloneFinals ("overlaps", overlaps, "name", name, "features", features, "description", description, "source", source, "start", start, "end", end, "sequences", sequences, "ap", ap))));
+panel.add (tmp);
+}tmp =  new awt2swing.Panel ();
+panel.add (tmp);
+tmp.add ( new awt2swing.Label ("Name: ", 4));
+tmp.add (name);
+tmp =  new awt2swing.Panel ();
+panel.add (tmp);
+tmp.add ( new awt2swing.Label ("Group: ", 4));
+tmp.add (source);
+tmp =  new awt2swing.Panel ();
+panel.add (tmp);
+tmp.add ( new awt2swing.Label ("Colour: ", 4));
+tmp.add (this.colourPanel);
+bigPanel.add (panel, "North");
+panel =  new awt2swing.Panel ();
+panel.add ( new awt2swing.Label ("Description: ", 4));
+panel.add ( new awt2swing.ScrollPane ().add (description));
+if (!newFeatures) {
+bigPanel.add (panel, "South");
+panel =  new awt2swing.Panel ();
+panel.add ( new awt2swing.Label (" Start:", 4));
+panel.add (start);
+panel.add ( new awt2swing.Label ("  End:", 4));
+panel.add (end);
+bigPanel.add (panel, "Center");
+} else {
+bigPanel.add (panel, "Center");
+}if (jalview.appletgui.FeatureRenderer.lastFeatureAdded == null) {
+if (features[0].type != null) {
+jalview.appletgui.FeatureRenderer.lastFeatureAdded = features[0].type;
+} else {
+jalview.appletgui.FeatureRenderer.lastFeatureAdded = "feature_1";
+}}if (jalview.appletgui.FeatureRenderer.lastFeatureGroupAdded == null) {
+if (features[0].featureGroup != null) {
+jalview.appletgui.FeatureRenderer.lastFeatureGroupAdded = features[0].featureGroup;
+} else {
+jalview.appletgui.FeatureRenderer.lastFeatureAdded = "Jalview";
+}}var title = newFeatures ? jalview.util.MessageManager.getString ("label.create_new_sequence_features") : jalview.util.MessageManager.formatMessage ("label.amend_delete_features",  Clazz.newArray (-1, [sequences[0].getName ()]));
+var dialog =  new jalview.appletgui.JVDialog (ap.alignFrame, title, true, 385, 240);
+dialog.setMainPanel (bigPanel);
+if (newFeatures) {
+name.setText (jalview.appletgui.FeatureRenderer.lastFeatureAdded);
+source.setText (jalview.appletgui.FeatureRenderer.lastFeatureGroupAdded);
+} else {
+dialog.ok.setLabel (jalview.util.MessageManager.getString ("label.amend"));
+dialog.buttonPanel.add (deleteButton, 1);
+deleteButton.addActionListener (((Clazz.isClassDefined ("jalview.appletgui.FeatureRenderer$2") ? 0 : jalview.appletgui.FeatureRenderer.$FeatureRenderer$2$ ()), Clazz.innerTypeInstance (jalview.appletgui.FeatureRenderer$2, this, Clazz.cloneFinals ("dialog", dialog))));
+name.setText (features[0].getType ());
+source.setText (features[0].getFeatureGroup ());
+}start.setText (features[0].getBegin () + "");
+end.setText (features[0].getEnd () + "");
+description.setText (features[0].getDescription ());
+var col = this.getColour (name.getText ());
+if (col == null) {
+col =  new jalview.schemes.UserColourScheme ().createColourFromName (name.getText ());
+}var fcol = this.getFeatureStyle (name.getText ());
+this.colourPanel.updateColor (fcol);
+dialog.setResizable (true);
+this.colourPanel.addMouseListener (((Clazz.isClassDefined ("jalview.appletgui.FeatureRenderer$3") ? 0 : jalview.appletgui.FeatureRenderer.$FeatureRenderer$3$ ()), Clazz.innerTypeInstance (jalview.appletgui.FeatureRenderer$3, this, Clazz.cloneFinals ("fr", fr, "ap", ap, "name", name, "dialog", dialog))));
+dialog.setVisible (true);
+var ffile =  new jalview.io.FeaturesFile ();
+if (dialog.accept) {
+this.lastSeq = null;
+jalview.appletgui.FeatureRenderer.lastFeatureAdded = name.getText ().trim ();
+jalview.appletgui.FeatureRenderer.lastFeatureGroupAdded = source.getText ().trim ();
+jalview.appletgui.FeatureRenderer.lastDescriptionAdded = description.getText ().$replace ('\n', ' ');
+}if (jalview.appletgui.FeatureRenderer.lastFeatureGroupAdded != null && jalview.appletgui.FeatureRenderer.lastFeatureGroupAdded.length < 1) {
+jalview.appletgui.FeatureRenderer.lastFeatureGroupAdded = null;
+}if (!newFeatures) {
+var sf = features[this.featureIndex];
+if (dialog.accept) {
+sf.type = jalview.appletgui.FeatureRenderer.lastFeatureAdded;
+sf.featureGroup = jalview.appletgui.FeatureRenderer.lastFeatureGroupAdded;
+sf.description = jalview.appletgui.FeatureRenderer.lastDescriptionAdded;
+if (!this.colourPanel.isGcol) {
+this.setColour (sf.type, this.colourPanel.getBackground ());
+}try {
+sf.begin = Integer.parseInt (start.getText ());
+sf.end = Integer.parseInt (end.getText ());
+} catch (ex) {
+if (Clazz.exceptionOf (ex, NumberFormatException)) {
+} else {
+throw ex;
+}
+}
+ffile.parseDescriptionHTML (sf, false);
+this.setVisible (jalview.appletgui.FeatureRenderer.lastFeatureAdded);
+}if (this.deleteFeature) {
+sequences[0].deleteFeature (sf);
+}} else {
+if (dialog.accept && name.getText ().length > 0) {
+for (var i = 0; i < sequences.length; i++) {
+features[i].type = jalview.appletgui.FeatureRenderer.lastFeatureAdded;
+features[i].featureGroup = jalview.appletgui.FeatureRenderer.lastFeatureGroupAdded;
+features[i].description = jalview.appletgui.FeatureRenderer.lastDescriptionAdded;
+sequences[i].addSequenceFeature (features[i]);
+ffile.parseDescriptionHTML (features[i], false);
+}
+var newColour = this.colourPanel.getBackground ();
+if (jalview.appletgui.FeatureRenderer.lastFeatureGroupAdded != null) {
+this.setGroupVisibility (jalview.appletgui.FeatureRenderer.lastFeatureGroupAdded, true);
+}this.setColour (jalview.appletgui.FeatureRenderer.lastFeatureAdded, newColour);
+this.setVisible (jalview.appletgui.FeatureRenderer.lastFeatureAdded);
+this.findAllFeatures (false);
+} else {
+return false;
+}}if ((this.av).featureSettings != null) {
+(this.av).featureSettings.refreshTable ();
+}ap.paintAlignment (true);
+return true;
+}, "~A,~A,~B,jalview.appletgui.AlignmentPanel");
+c$.$FeatureRenderer$FeatureColourPanel$ = function () {
+Clazz.pu$h ();
+c$ = Clazz.decorateAsClass (function () {
+Clazz.prepareCallback (this, arguments);
+this.label = "";
+this.maxCol = null;
+this.isColourByLabel = false;
+this.isGcol = false;
+Clazz.instantialize (this, arguments);
+}, jalview.appletgui.FeatureRenderer, "FeatureColourPanel", awt2swing.Panel);
+Clazz.defineMethod (c$, "updateColor", 
+function (a) {
+var b;
+var c = null;
+var d = null;
+var e = "";
+if (Clazz.instanceOf (a, java.awt.Color)) {
+this.isGcol = false;
+c = a;
+d = null;
+} else if (Clazz.instanceOf (a, jalview.schemes.GraduatedColor)) {
+this.isGcol = true;
+d = a;
+c = null;
+} else {
+throw  new Error (jalview.util.MessageManager.getString ("error.invalid_colour_for_mycheckbox"));
+}if (c != null) {
+this.setBackground (b = c);
+} else {
+if (d.getThreshType () != -1) {
+e += " " + ((d.getThreshType () == 1) ? "(>)" : "(<)");
+}if (this.isColourByLabel = d.isColourByLabel ()) {
+this.setBackground (b = java.awt.Color.white);
+e += " (by Label)";
+} else {
+this.setBackground (b = d.getMinColor ());
+this.maxCol = d.getMaxColor ();
+}}this.label = e;
+this.setBackground (b);
+this.repaint ();
+}, "~O");
+Clazz.makeConstructor (c$, 
+function () {
+Clazz.superConstructor (this, jalview.appletgui.FeatureRenderer.FeatureColourPanel, [null]);
+});
+Clazz.defineMethod (c$, "PaintComponent", 
+function (a) {
+var b = this.getSize ();
+if (this.isGcol) {
+if (this.isColourByLabel) {
+a.setColor (java.awt.Color.white);
+a.fillRect (Clazz.doubleToInt (b.width / 2), 0, Clazz.doubleToInt (b.width / 2), b.height);
+a.setColor (java.awt.Color.black);
+var c =  new java.awt.Font ("Verdana", 0, 10);
+a.setFont (c);
+a.drawString (jalview.util.MessageManager.getString ("label.label"), 0, 0);
+} else {
+a.setColor (this.maxCol);
+a.fillRect (Clazz.doubleToInt (b.width / 2), 0, Clazz.doubleToInt (b.width / 2), b.height);
+}}}, "java.awt.Graphics");
+c$ = Clazz.p0p ();
+};
+c$.$FeatureRenderer$1$ = function () {
+Clazz.pu$h ();
+c$ = Clazz.declareAnonymous (jalview.appletgui, "FeatureRenderer$1", null, java.awt.event.ItemListener);
+Clazz.overrideMethod (c$, "itemStateChanged", 
+function (e) {
+var index = this.f$.overlaps.getSelectedIndex ();
+if (index != -1) {
+this.b$["jalview.appletgui.FeatureRenderer"].featureIndex = index;
+this.f$.name.setText (this.f$.features[index].getType ());
+this.f$.description.setText (this.f$.features[index].getDescription ());
+this.f$.source.setText (this.f$.features[index].getFeatureGroup ());
+this.f$.start.setText (this.f$.features[index].getBegin () + "");
+this.f$.end.setText (this.f$.features[index].getEnd () + "");
+var highlight =  new jalview.datamodel.SearchResults ();
+highlight.addResult (this.f$.sequences[0], this.f$.features[index].getBegin (), this.f$.features[index].getEnd ());
+this.f$.ap.seqPanel.seqCanvas.highlightSearchResults (highlight);
+}var col = this.b$["jalview.appletgui.FeatureRenderer"].getFeatureStyle (this.f$.name.getText ());
+if (col == null) {
+col =  new jalview.schemes.UserColourScheme ().createColourFromName (this.f$.name.getText ());
+}this.b$["jalview.appletgui.FeatureRenderer"].colourPanel.updateColor (col);
+}, "java.awt.event.ItemEvent");
+c$ = Clazz.p0p ();
+};
+c$.$FeatureRenderer$2$ = function () {
+Clazz.pu$h ();
+c$ = Clazz.declareAnonymous (jalview.appletgui, "FeatureRenderer$2", null, java.awt.event.ActionListener);
+Clazz.overrideMethod (c$, "actionPerformed", 
+function (evt) {
+this.b$["jalview.appletgui.FeatureRenderer"].deleteFeature = true;
+this.f$.dialog.setVisible (false);
+}, "java.awt.event.ActionEvent");
+c$ = Clazz.p0p ();
+};
+c$.$FeatureRenderer$3$ = function () {
+Clazz.pu$h ();
+c$ = Clazz.declareAnonymous (jalview.appletgui, "FeatureRenderer$3", java.awt.event.MouseAdapter);
+Clazz.overrideMethod (c$, "mousePressed", 
+function (evt) {
+if (!this.b$["jalview.appletgui.FeatureRenderer"].colourPanel.isGcol) {
+ new jalview.appletgui.UserDefinedColours (this.f$.fr, this.f$.ap.alignFrame);
+} else {
+var fcc =  new jalview.appletgui.FeatureColourChooser (this.f$.ap.alignFrame, this.f$.name.getText ());
+this.f$.dialog.transferFocus ();
+}}, "java.awt.event.MouseEvent");
+c$ = Clazz.p0p ();
+};
+Clazz.defineStatics (c$,
+"lastFeatureAdded", null,
+"lastFeatureGroupAdded", null,
+"lastDescriptionAdded", null);
+});