1 Clazz.declarePackage ("jalview.appletgui");
\r
2 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
3 c$ = Clazz.decorateAsClass (function () {
\r
4 this.featureLinks = null;
\r
5 this.featureIndex = 0;
\r
6 this.deleteFeature = false;
\r
7 this.colourPanel = null;
\r
8 if (!Clazz.isClassDefined ("jalview.appletgui.FeatureRenderer.FeatureColourPanel")) {
\r
9 jalview.appletgui.FeatureRenderer.$FeatureRenderer$FeatureColourPanel$ ();
\r
11 Clazz.instantialize (this, arguments);
\r
12 }, jalview.appletgui, "FeatureRenderer", jalview.renderer.seqfeatures.FeatureRenderer);
\r
13 Clazz.makeConstructor (c$,
\r
15 Clazz.superConstructor (this, jalview.appletgui.FeatureRenderer);
\r
17 this.setTransparencyAvailable (!System.getProperty ("java.version").startsWith ("1.1"));
\r
18 }, "jalview.viewmodel.AlignmentViewport");
\r
19 Clazz.defineMethod (c$, "amendFeatures",
\r
20 function (sequences, features, newFeatures, ap) {
\r
21 var bigPanel = new awt2swing.Panel ( new java.awt.BorderLayout ());
\r
22 var name = new awt2swing.TextField (16);
\r
23 var source = new awt2swing.TextField (16);
\r
24 var description = new awt2swing.TextArea (3, 35);
\r
25 var start = new awt2swing.TextField (8);
\r
26 var end = new awt2swing.TextField (8);
\r
28 var deleteButton = new awt2swing.Button ("Delete");
\r
29 this.deleteFeature = false;
\r
30 this.colourPanel = Clazz.innerTypeInstance (jalview.appletgui.FeatureRenderer.FeatureColourPanel, this, null);
\r
31 this.colourPanel.setSize (110, 15);
\r
33 var panel = new awt2swing.Panel ( new java.awt.GridLayout (3, 1));
\r
34 this.featureIndex = 0;
\r
36 if (!newFeatures && features.length > 1) {
\r
37 panel = new awt2swing.Panel ( new java.awt.GridLayout (4, 1));
\r
38 tmp = new awt2swing.Panel ();
\r
39 tmp.add ( new awt2swing.Label ("Select Feature: "));
\r
40 overlaps = new awt2swing.Choice ();
\r
41 for (var i = 0; i < features.length; i++) {
\r
42 var item = features[i].getType () + "/" + features[i].getBegin () + "-" + features[i].getEnd ();
\r
43 if (features[i].getFeatureGroup () != null) {
\r
44 item += " (" + features[i].getFeatureGroup () + ")";
\r
45 }overlaps.addItem (item);
\r
48 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
50 }tmp = new awt2swing.Panel ();
\r
52 tmp.add ( new awt2swing.Label ("Name: ", 4));
\r
54 tmp = new awt2swing.Panel ();
\r
56 tmp.add ( new awt2swing.Label ("Group: ", 4));
\r
58 tmp = new awt2swing.Panel ();
\r
60 tmp.add ( new awt2swing.Label ("Colour: ", 4));
\r
61 tmp.add (this.colourPanel);
\r
62 bigPanel.add (panel, "North");
\r
63 panel = new awt2swing.Panel ();
\r
64 panel.add ( new awt2swing.Label ("Description: ", 4));
\r
65 panel.add ( new awt2swing.ScrollPane ().add (description));
\r
67 bigPanel.add (panel, "South");
\r
68 panel = new awt2swing.Panel ();
\r
69 panel.add ( new awt2swing.Label (" Start:", 4));
\r
71 panel.add ( new awt2swing.Label (" End:", 4));
\r
73 bigPanel.add (panel, "Center");
\r
75 bigPanel.add (panel, "Center");
\r
76 }if (jalview.appletgui.FeatureRenderer.lastFeatureAdded == null) {
\r
77 if (features[0].type != null) {
\r
78 jalview.appletgui.FeatureRenderer.lastFeatureAdded = features[0].type;
\r
80 jalview.appletgui.FeatureRenderer.lastFeatureAdded = "feature_1";
\r
81 }}if (jalview.appletgui.FeatureRenderer.lastFeatureGroupAdded == null) {
\r
82 if (features[0].featureGroup != null) {
\r
83 jalview.appletgui.FeatureRenderer.lastFeatureGroupAdded = features[0].featureGroup;
\r
85 jalview.appletgui.FeatureRenderer.lastFeatureAdded = "Jalview";
\r
86 }}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
87 var dialog = new jalview.appletgui.JVDialog (ap.alignFrame, title, true, 385, 240);
\r
88 dialog.setMainPanel (bigPanel);
\r
90 name.setText (jalview.appletgui.FeatureRenderer.lastFeatureAdded);
\r
91 source.setText (jalview.appletgui.FeatureRenderer.lastFeatureGroupAdded);
\r
93 dialog.ok.setLabel (jalview.util.MessageManager.getString ("label.amend"));
\r
94 dialog.buttonPanel.add (deleteButton, 1);
\r
95 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
96 name.setText (features[0].getType ());
\r
97 source.setText (features[0].getFeatureGroup ());
\r
98 }start.setText (features[0].getBegin () + "");
\r
99 end.setText (features[0].getEnd () + "");
\r
100 description.setText (features[0].getDescription ());
\r
101 var col = this.getColour (name.getText ());
\r
103 col = new jalview.schemes.UserColourScheme ().createColourFromName (name.getText ());
\r
104 }var fcol = this.getFeatureStyle (name.getText ());
\r
105 this.colourPanel.updateColor (fcol);
\r
106 dialog.setResizable (true);
\r
107 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
108 dialog.setVisible (true);
\r
109 var ffile = new jalview.io.FeaturesFile ();
\r
110 if (dialog.accept) {
\r
111 this.lastSeq = null;
\r
112 jalview.appletgui.FeatureRenderer.lastFeatureAdded = name.getText ().trim ();
\r
113 jalview.appletgui.FeatureRenderer.lastFeatureGroupAdded = source.getText ().trim ();
\r
114 jalview.appletgui.FeatureRenderer.lastDescriptionAdded = description.getText ().$replace ('\n', ' ');
\r
115 }if (jalview.appletgui.FeatureRenderer.lastFeatureGroupAdded != null && jalview.appletgui.FeatureRenderer.lastFeatureGroupAdded.length < 1) {
\r
116 jalview.appletgui.FeatureRenderer.lastFeatureGroupAdded = null;
\r
117 }if (!newFeatures) {
\r
118 var sf = features[this.featureIndex];
\r
119 if (dialog.accept) {
\r
120 sf.type = jalview.appletgui.FeatureRenderer.lastFeatureAdded;
\r
121 sf.featureGroup = jalview.appletgui.FeatureRenderer.lastFeatureGroupAdded;
\r
122 sf.description = jalview.appletgui.FeatureRenderer.lastDescriptionAdded;
\r
123 if (!this.colourPanel.isGcol) {
\r
124 this.setColour (sf.type, this.colourPanel.getBackground ());
\r
126 sf.begin = Integer.parseInt (start.getText ());
\r
127 sf.end = Integer.parseInt (end.getText ());
\r
129 if (Clazz.exceptionOf (ex, NumberFormatException)) {
\r
134 ffile.parseDescriptionHTML (sf, false);
\r
135 this.setVisible (jalview.appletgui.FeatureRenderer.lastFeatureAdded);
\r
136 }if (this.deleteFeature) {
\r
137 sequences[0].deleteFeature (sf);
\r
139 if (dialog.accept && name.getText ().length > 0) {
\r
140 for (var i = 0; i < sequences.length; i++) {
\r
141 features[i].type = jalview.appletgui.FeatureRenderer.lastFeatureAdded;
\r
142 features[i].featureGroup = jalview.appletgui.FeatureRenderer.lastFeatureGroupAdded;
\r
143 features[i].description = jalview.appletgui.FeatureRenderer.lastDescriptionAdded;
\r
144 sequences[i].addSequenceFeature (features[i]);
\r
145 ffile.parseDescriptionHTML (features[i], false);
\r
147 var newColour = this.colourPanel.getBackground ();
\r
148 if (jalview.appletgui.FeatureRenderer.lastFeatureGroupAdded != null) {
\r
149 this.setGroupVisibility (jalview.appletgui.FeatureRenderer.lastFeatureGroupAdded, true);
\r
150 }this.setColour (jalview.appletgui.FeatureRenderer.lastFeatureAdded, newColour);
\r
151 this.setVisible (jalview.appletgui.FeatureRenderer.lastFeatureAdded);
\r
152 this.findAllFeatures (false);
\r
155 }}if ((this.av).featureSettings != null) {
\r
156 (this.av).featureSettings.refreshTable ();
\r
157 }ap.paintAlignment (true);
\r
159 }, "~A,~A,~B,jalview.appletgui.AlignmentPanel");
\r
160 c$.$FeatureRenderer$FeatureColourPanel$ = function () {
\r
162 c$ = Clazz.decorateAsClass (function () {
\r
163 Clazz.prepareCallback (this, arguments);
\r
165 this.maxCol = null;
\r
166 this.isColourByLabel = false;
\r
167 this.isGcol = false;
\r
168 Clazz.instantialize (this, arguments);
\r
169 }, jalview.appletgui.FeatureRenderer, "FeatureColourPanel", awt2swing.Panel);
\r
170 Clazz.defineMethod (c$, "updateColor",
\r
176 if (Clazz.instanceOf (a, java.awt.Color)) {
\r
177 this.isGcol = false;
\r
180 } else if (Clazz.instanceOf (a, jalview.schemes.GraduatedColor)) {
\r
181 this.isGcol = true;
\r
185 throw new Error (jalview.util.MessageManager.getString ("error.invalid_colour_for_mycheckbox"));
\r
187 this.setBackground (b = c);
\r
189 if (d.getThreshType () != -1) {
\r
190 e += " " + ((d.getThreshType () == 1) ? "(>)" : "(<)");
\r
191 }if (this.isColourByLabel = d.isColourByLabel ()) {
\r
192 this.setBackground (b = java.awt.Color.white);
\r
193 e += " (by Label)";
\r
195 this.setBackground (b = d.getMinColor ());
\r
196 this.maxCol = d.getMaxColor ();
\r
198 this.setBackground (b);
\r
201 Clazz.makeConstructor (c$,
\r
203 Clazz.superConstructor (this, jalview.appletgui.FeatureRenderer.FeatureColourPanel, [null]);
\r
205 Clazz.defineMethod (c$, "PaintComponent",
\r
207 var b = this.getSize ();
\r
209 if (this.isColourByLabel) {
\r
210 a.setColor (java.awt.Color.white);
\r
211 a.fillRect (Clazz.doubleToInt (b.width / 2), 0, Clazz.doubleToInt (b.width / 2), b.height);
\r
212 a.setColor (java.awt.Color.black);
\r
213 var c = new java.awt.Font ("Verdana", 0, 10);
\r
215 a.drawString (jalview.util.MessageManager.getString ("label.label"), 0, 0);
\r
217 a.setColor (this.maxCol);
\r
218 a.fillRect (Clazz.doubleToInt (b.width / 2), 0, Clazz.doubleToInt (b.width / 2), b.height);
\r
219 }}}, "java.awt.Graphics");
\r
222 c$.$FeatureRenderer$1$ = function () {
\r
224 c$ = Clazz.declareAnonymous (jalview.appletgui, "FeatureRenderer$1", null, java.awt.event.ItemListener);
\r
225 Clazz.overrideMethod (c$, "itemStateChanged",
\r
227 var index = this.f$.overlaps.getSelectedIndex ();
\r
229 this.b$["jalview.appletgui.FeatureRenderer"].featureIndex = index;
\r
230 this.f$.name.setText (this.f$.features[index].getType ());
\r
231 this.f$.description.setText (this.f$.features[index].getDescription ());
\r
232 this.f$.source.setText (this.f$.features[index].getFeatureGroup ());
\r
233 this.f$.start.setText (this.f$.features[index].getBegin () + "");
\r
234 this.f$.end.setText (this.f$.features[index].getEnd () + "");
\r
235 var highlight = new jalview.datamodel.SearchResults ();
\r
236 highlight.addResult (this.f$.sequences[0], this.f$.features[index].getBegin (), this.f$.features[index].getEnd ());
\r
237 this.f$.ap.seqPanel.seqCanvas.highlightSearchResults (highlight);
\r
238 }var col = this.b$["jalview.appletgui.FeatureRenderer"].getFeatureStyle (this.f$.name.getText ());
\r
240 col = new jalview.schemes.UserColourScheme ().createColourFromName (this.f$.name.getText ());
\r
241 }this.b$["jalview.appletgui.FeatureRenderer"].colourPanel.updateColor (col);
\r
242 }, "java.awt.event.ItemEvent");
\r
245 c$.$FeatureRenderer$2$ = function () {
\r
247 c$ = Clazz.declareAnonymous (jalview.appletgui, "FeatureRenderer$2", null, java.awt.event.ActionListener);
\r
248 Clazz.overrideMethod (c$, "actionPerformed",
\r
250 this.b$["jalview.appletgui.FeatureRenderer"].deleteFeature = true;
\r
251 this.f$.dialog.setVisible (false);
\r
252 }, "java.awt.event.ActionEvent");
\r
255 c$.$FeatureRenderer$3$ = function () {
\r
257 c$ = Clazz.declareAnonymous (jalview.appletgui, "FeatureRenderer$3", java.awt.event.MouseAdapter);
\r
258 Clazz.overrideMethod (c$, "mousePressed",
\r
260 if (!this.b$["jalview.appletgui.FeatureRenderer"].colourPanel.isGcol) {
\r
261 new jalview.appletgui.UserDefinedColours (this.f$.fr, this.f$.ap.alignFrame);
\r
263 var fcc = new jalview.appletgui.FeatureColourChooser (this.f$.ap.alignFrame, this.f$.name.getText ());
\r
264 this.f$.dialog.transferFocus ();
\r
265 }}, "java.awt.event.MouseEvent");
\r
268 Clazz.defineStatics (c$,
\r
269 "lastFeatureAdded", null,
\r
270 "lastFeatureGroupAdded", null,
\r
271 "lastDescriptionAdded", null);
\r