JAL-1807 includes ?j2sdebug flag and DebugJS._(msg)
[jalviewjs.git] / bin / jalview / appletgui / AlignFrame.js
1 Clazz.declarePackage ("jalview.appletgui");
2 Clazz.load (["awt2swing.Canvas", "jalview.api.AlignViewControllerGuiI", "jalview.appletgui.EmbmenuFrame", "java.awt.event.ActionListener", "$.ItemListener", "$.KeyListener", "awt2swing.CheckboxMenuItem", "$.Label", "$.Menu", "$.MenuBar", "$.MenuItem", "jalview.util.MessageManager", "java.awt.BorderLayout"], "jalview.appletgui.AlignFrame", ["awt2swing.Frame", "jalview.analysis.AlignmentSorter", "$.AnnotationSorter", "jalview.appletgui.AlignViewport", "$.AlignmentPanel", "$.AnnotationColourChooser", "$.AnnotationColumnChooser", "$.AppletJmol", "$.CutAndPasteTransfer", "$.FeatureSettings", "$.Finder", "$.FontChooser", "$.OverviewPanel", "$.PCAPanel", "$.PaintRefresher", "$.PairwiseAlignPanel", "$.RedundancyPanel", "$.SliderPanel", "$.TreePanel", "$.UserDefinedColours", "jalview.bin.JalviewLite", "jalview.commands.EditCommand", "$.OrderCommand", "$.RemoveGapColCommand", "$.RemoveGapsCommand", "$.SlideSequencesCommand", "$.TrimRegionCommand", "jalview.controller.AlignViewController", "jalview.datamodel.Alignment", "$.PDBEntry", "$.Sequence", "$.SequenceGroup", "jalview.io.AlignmentProperties", "$.AnnotationFile", "$.AppletFormatAdapter", "$.FeaturesFile", "jalview.jsdev.GenericFileAdapter", "jalview.schemes.Blosum62ColourScheme", "$.BuriedColourScheme", "$.ClustalxColourScheme", "$.HelixColourScheme", "$.HydrophobicColourScheme", "$.NucleotideColourScheme", "$.PIDColourScheme", "$.PurinePyrimidineColourScheme", "$.RNAHelicesColourChooser", "$.RNAInteractionColourScheme", "$.StrandColourScheme", "$.TCoffeeColourScheme", "$.TaylorColourScheme", "$.TurnColourScheme", "$.ZappoColourScheme", "jalview.structure.StructureSelectionManager", "jalview.util.Comparison", "$.MappingUtils", "java.awt.Color", "$.Font", "java.awt.event.FocusListener", "$.WindowAdapter", "java.lang.Character", "$.StringBuffer", "java.net.URL", "$.URLEncoder", "java.util.Arrays", "$.HashMap", "$.Hashtable", "$.StringTokenizer", "$.Vector"], function () {
3 c$ = Clazz.decorateAsClass (function () {
4 this.avc = null;
5 this.alignPanel = null;
6 this.viewport = null;
7 this.frameWidth = 700;
8 this.frameHeight = 500;
9 this.jalviewServletURL = null;
10 this.showAutoCalculatedAbove = false;
11 this.annotationSortOrder = null;
12 this.alignFrameMenuBar = null;
13 this.fileMenu = null;
14 this.loadApplication = null;
15 this.$loadTree = null;
16 this.$loadAnnotations = null;
17 this.$outputFeatures = null;
18 this.$outputAnnotations = null;
19 this.closeMenuItem = null;
20 this.selectAllSequenceMenuItem = null;
21 this.deselectAllSequenceMenuItem = null;
22 this.invertSequenceMenuItem = null;
23 this.remove2LeftMenuItem = null;
24 this.remove2RightMenuItem = null;
25 this.removeGappedColumnMenuItem = null;
26 this.removeAllGapsMenuItem = null;
27 this.viewBoxesMenuItem = null;
28 this.viewTextMenuItem = null;
29 this.sortPairwiseMenuItem = null;
30 this.sortIDMenuItem = null;
31 this.sortLengthMenuItem = null;
32 this.sortGroupMenuItem = null;
33 this.removeRedundancyMenuItem = null;
34 this.pairwiseAlignmentMenuItem = null;
35 this.PCAMenuItem = null;
36 this.averageDistanceTreeMenuItem = null;
37 this.neighbourTreeMenuItem = null;
38 this.borderLayout1 = null;
39 this.statusBar = null;
40 this.clustalColour = null;
41 this.zappoColour = null;
42 this.taylorColour = null;
43 this.hydrophobicityColour = null;
44 this.helixColour = null;
45 this.strandColour = null;
46 this.turnColour = null;
47 this.buriedColour = null;
48 this.purinePyrimidineColour = null;
49 this.RNAInteractionColour = null;
50 this.RNAHelixColour = null;
51 this.userDefinedColour = null;
52 this.PIDColour = null;
53 this.BLOSUM62Colour = null;
54 this.tcoffeeColour = null;
55 this.njTreeBlosumMenuItem = null;
56 this.avDistanceTreeBlosumMenuItem = null;
57 this.annotationPanelMenuItem = null;
58 this.colourTextMenuItem = null;
59 this.displayNonconservedMenuItem = null;
60 this.alProperties = null;
61 this.overviewMenuItem = null;
62 this.undoMenuItem = null;
63 this.redoMenuItem = null;
64 this.conservationMenuItem = null;
65 this.noColourmenuItem = null;
66 this.wrapMenuItem = null;
67 this.renderGapsMenuItem = null;
68 this.findMenuItem = null;
69 this.abovePIDThreshold = null;
70 this.nucleotideColour = null;
71 this.deleteGroups = null;
72 this.grpsFromSelection = null;
73 this.createGroup = null;
74 this.unGroup = null;
75 this.$delete = null;
76 this.copy = null;
77 this.cut = null;
78 this.pasteMenu = null;
79 this.pasteNew = null;
80 this.pasteThis = null;
81 this.applyToAllGroups = null;
82 this.$font = null;
83 this.scaleAbove = null;
84 this.scaleLeft = null;
85 this.scaleRight = null;
86 this.modifyPID = null;
87 this.modifyConservation = null;
88 this.autoCalculate = null;
89 this.$sortByTree = null;
90 this.sortByTreeMenu = null;
91 this.inputText = null;
92 this.documentation = null;
93 this.about = null;
94 this.seqLimits = null;
95 this.centreColumnLabelFlag = null;
96 this.followMouseOverFlag = null;
97 this.showSequenceLogo = null;
98 this.applyAutoAnnotationSettings = null;
99 this.showConsensusHistogram = null;
100 this.showGroupConsensus = null;
101 this.showGroupConservation = null;
102 this.normSequenceLogo = null;
103 this.featureSettings = null;
104 this.sequenceFeatures = null;
105 this.annotationColour = null;
106 this.annotationColumnSelection = null;
107 this.invertColSel = null;
108 this.showColumns = null;
109 this.showSeqs = null;
110 this.hideColumns = null;
111 this.hideSequences = null;
112 this.hideAllButSelection = null;
113 this.hideAllSelection = null;
114 this.showAllHidden = null;
115 this.$newView = null;
116 this.showAlignmentAnnotations = null;
117 this.showSequenceAnnotations = null;
118 this.sortAnnBySequence = null;
119 this.sortAnnByLabel = null;
120 this.showAutoFirst = null;
121 this.showAutoLast = null;
122 this.splitFrame = null;
123 Clazz.instantialize (this, arguments);
124 }, jalview.appletgui, "AlignFrame", jalview.appletgui.EmbmenuFrame, [java.awt.event.ActionListener, java.awt.event.ItemListener, java.awt.event.KeyListener, jalview.api.AlignViewControllerGuiI]);
125 Clazz.prepareFields (c$, function () {
126 this.alignFrameMenuBar =  new awt2swing.MenuBar ();
127 this.fileMenu =  new awt2swing.Menu (jalview.util.MessageManager.getString ("action.file"));
128 this.loadApplication =  new awt2swing.MenuItem (jalview.util.MessageManager.getString ("label.view_full_application"));
129 this.$loadTree =  new awt2swing.MenuItem (jalview.util.MessageManager.getString ("label.load_associated_tree"));
130 this.$loadAnnotations =  new awt2swing.MenuItem (jalview.util.MessageManager.getString ("label.load_features_annotations"));
131 this.$outputFeatures =  new awt2swing.MenuItem (jalview.util.MessageManager.getString ("label.export_features").concat ("..."));
132 this.$outputAnnotations =  new awt2swing.MenuItem (jalview.util.MessageManager.getString ("label.export_annotations").concat ("..."));
133 this.closeMenuItem =  new awt2swing.MenuItem (jalview.util.MessageManager.getString ("action.close"));
134 this.selectAllSequenceMenuItem =  new awt2swing.MenuItem (jalview.util.MessageManager.getString ("action.select_all"));
135 this.deselectAllSequenceMenuItem =  new awt2swing.MenuItem (jalview.util.MessageManager.getString ("action.deselect_all"));
136 this.invertSequenceMenuItem =  new awt2swing.MenuItem (jalview.util.MessageManager.getString ("action.invert_selection"));
137 this.remove2LeftMenuItem =  new awt2swing.MenuItem ();
138 this.remove2RightMenuItem =  new awt2swing.MenuItem ();
139 this.removeGappedColumnMenuItem =  new awt2swing.MenuItem ();
140 this.removeAllGapsMenuItem =  new awt2swing.MenuItem ();
141 this.viewBoxesMenuItem =  new awt2swing.CheckboxMenuItem ();
142 this.viewTextMenuItem =  new awt2swing.CheckboxMenuItem ();
143 this.sortPairwiseMenuItem =  new awt2swing.MenuItem ();
144 this.sortIDMenuItem =  new awt2swing.MenuItem ();
145 this.sortLengthMenuItem =  new awt2swing.MenuItem ();
146 this.sortGroupMenuItem =  new awt2swing.MenuItem ();
147 this.removeRedundancyMenuItem =  new awt2swing.MenuItem ();
148 this.pairwiseAlignmentMenuItem =  new awt2swing.MenuItem ();
149 this.PCAMenuItem =  new awt2swing.MenuItem ();
150 this.averageDistanceTreeMenuItem =  new awt2swing.MenuItem ();
151 this.neighbourTreeMenuItem =  new awt2swing.MenuItem ();
152 this.borderLayout1 =  new java.awt.BorderLayout ();
153 this.statusBar =  new awt2swing.Label ();
154 this.clustalColour =  new awt2swing.MenuItem ();
155 this.zappoColour =  new awt2swing.MenuItem ();
156 this.taylorColour =  new awt2swing.MenuItem ();
157 this.hydrophobicityColour =  new awt2swing.MenuItem ();
158 this.helixColour =  new awt2swing.MenuItem ();
159 this.strandColour =  new awt2swing.MenuItem ();
160 this.turnColour =  new awt2swing.MenuItem ();
161 this.buriedColour =  new awt2swing.MenuItem ();
162 this.purinePyrimidineColour =  new awt2swing.MenuItem ();
163 this.RNAInteractionColour =  new awt2swing.MenuItem ();
164 this.RNAHelixColour =  new awt2swing.MenuItem ();
165 this.userDefinedColour =  new awt2swing.MenuItem ();
166 this.PIDColour =  new awt2swing.MenuItem ();
167 this.BLOSUM62Colour =  new awt2swing.MenuItem ();
168 this.tcoffeeColour =  new awt2swing.MenuItem ();
169 this.njTreeBlosumMenuItem =  new awt2swing.MenuItem ();
170 this.avDistanceTreeBlosumMenuItem =  new awt2swing.MenuItem ();
171 this.annotationPanelMenuItem =  new awt2swing.CheckboxMenuItem ();
172 this.colourTextMenuItem =  new awt2swing.CheckboxMenuItem ();
173 this.displayNonconservedMenuItem =  new awt2swing.CheckboxMenuItem ();
174 this.alProperties =  new awt2swing.MenuItem (jalview.util.MessageManager.getString ("label.alignment_props"));
175 this.overviewMenuItem =  new awt2swing.MenuItem ();
176 this.undoMenuItem =  new awt2swing.MenuItem ();
177 this.redoMenuItem =  new awt2swing.MenuItem ();
178 this.conservationMenuItem =  new awt2swing.CheckboxMenuItem ();
179 this.noColourmenuItem =  new awt2swing.MenuItem ();
180 this.wrapMenuItem =  new awt2swing.CheckboxMenuItem ();
181 this.renderGapsMenuItem =  new awt2swing.CheckboxMenuItem ();
182 this.findMenuItem =  new awt2swing.MenuItem ();
183 this.abovePIDThreshold =  new awt2swing.CheckboxMenuItem ();
184 this.nucleotideColour =  new awt2swing.MenuItem ();
185 this.deleteGroups =  new awt2swing.MenuItem ();
186 this.grpsFromSelection =  new awt2swing.MenuItem ();
187 this.createGroup =  new awt2swing.MenuItem ();
188 this.unGroup =  new awt2swing.MenuItem ();
189 this.$delete =  new awt2swing.MenuItem ();
190 this.copy =  new awt2swing.MenuItem ();
191 this.cut =  new awt2swing.MenuItem ();
192 this.pasteMenu =  new awt2swing.Menu ();
193 this.pasteNew =  new awt2swing.MenuItem ();
194 this.pasteThis =  new awt2swing.MenuItem ();
195 this.applyToAllGroups =  new awt2swing.CheckboxMenuItem ();
196 this.$font =  new awt2swing.MenuItem ();
197 this.scaleAbove =  new awt2swing.CheckboxMenuItem ();
198 this.scaleLeft =  new awt2swing.CheckboxMenuItem ();
199 this.scaleRight =  new awt2swing.CheckboxMenuItem ();
200 this.modifyPID =  new awt2swing.MenuItem ();
201 this.modifyConservation =  new awt2swing.MenuItem ();
202 this.$sortByTree =  new awt2swing.CheckboxMenuItem ("Sort Alignment With New Tree", true);
203 this.sortByTreeMenu =  new awt2swing.Menu ();
204 this.inputText =  new awt2swing.MenuItem ();
205 this.documentation =  new awt2swing.MenuItem ();
206 this.about =  new awt2swing.MenuItem ();
207 this.seqLimits =  new awt2swing.CheckboxMenuItem ();
208 this.centreColumnLabelFlag =  new awt2swing.CheckboxMenuItem ();
209 this.followMouseOverFlag =  new awt2swing.CheckboxMenuItem ();
210 this.showSequenceLogo =  new awt2swing.CheckboxMenuItem ();
211 this.applyAutoAnnotationSettings =  new awt2swing.CheckboxMenuItem ();
212 this.showConsensusHistogram =  new awt2swing.CheckboxMenuItem ();
213 this.showGroupConsensus =  new awt2swing.CheckboxMenuItem ();
214 this.showGroupConservation =  new awt2swing.CheckboxMenuItem ();
215 this.normSequenceLogo =  new awt2swing.CheckboxMenuItem ();
216 this.featureSettings =  new awt2swing.MenuItem ();
217 this.sequenceFeatures =  new awt2swing.CheckboxMenuItem ();
218 this.annotationColour =  new awt2swing.MenuItem ();
219 this.annotationColumnSelection =  new awt2swing.MenuItem ();
220 this.invertColSel =  new awt2swing.MenuItem ();
221 this.showColumns =  new awt2swing.MenuItem ();
222 this.showSeqs =  new awt2swing.MenuItem ();
223 this.hideColumns =  new awt2swing.MenuItem ();
224 this.hideSequences =  new awt2swing.MenuItem ();
225 this.hideAllButSelection =  new awt2swing.MenuItem ();
226 this.hideAllSelection =  new awt2swing.MenuItem ();
227 this.showAllHidden =  new awt2swing.MenuItem ();
228 this.$newView =  new awt2swing.MenuItem ();
229 });
230 Clazz.makeConstructor (c$, 
231 function (al, applet, title, embedded) {
232 this.construct (al, applet, title, embedded, true);
233 }, "jalview.datamodel.AlignmentI,jalview.bin.JalviewLite,~S,~B");
234 Clazz.makeConstructor (c$, 
235 function (al, applet, title, embedded, addToDisplay) {
236 this.construct (al, null, null, applet, title, embedded, addToDisplay);
237 }, "jalview.datamodel.AlignmentI,jalview.bin.JalviewLite,~S,~B,~B");
238 Clazz.makeConstructor (c$, 
239 function (al, hiddenSeqs, columnSelection, applet, title, embedded) {
240 this.construct (al, hiddenSeqs, columnSelection, applet, title, embedded, true);
241 }, "jalview.datamodel.AlignmentI,~A,jalview.datamodel.ColumnSelection,jalview.bin.JalviewLite,~S,~B");
242 Clazz.makeConstructor (c$, 
243 function (al, hiddenSeqs, columnSelection, applet, title, embedded, addToDisplay) {
244 Clazz.superConstructor (this, jalview.appletgui.AlignFrame, []);
245 if (applet != null) {
246 this.jalviewServletURL = applet.jalviewServletURL;
247 }try {
248 this.jbInit ();
249 } catch (ex) {
250 if (Clazz.exceptionOf (ex, Exception)) {
251 ex.printStackTrace ();
252 } else {
253 throw ex;
254 }
255 }
256 if (applet != null) {
257 var param;
258 try {
259 param = applet.windowWidth;
260 if (param != null) {
261 var width = Integer.parseInt (param);
262 this.frameWidth = width;
263 }param = applet.windowHeight;
264 if (param != null) {
265 var height = Integer.parseInt (param);
266 this.frameHeight = height;
267 }} catch (ex) {
268 if (Clazz.exceptionOf (ex, Exception)) {
269 } else {
270 throw ex;
271 }
272 }
273 }this.viewport =  new jalview.appletgui.AlignViewport (al, applet);
274 if (hiddenSeqs != null && hiddenSeqs.length > 0) {
275 this.viewport.hideSequence (hiddenSeqs);
276 }if (columnSelection != null) {
277 this.viewport.setColumnSelection (columnSelection);
278 }this.alignPanel =  new jalview.appletgui.AlignmentPanel (this, this.viewport);
279 this.avc =  new jalview.controller.AlignViewController (this, this.viewport, this.alignPanel);
280 this.viewport.updateConservation (this.alignPanel);
281 this.viewport.updateConsensus (this.alignPanel);
282 this.displayNonconservedMenuItem.setState (this.viewport.getShowUnconserved ());
283 this.followMouseOverFlag.setState (this.viewport.isFollowHighlight ());
284 this.showGroupConsensus.setState (this.viewport.isShowGroupConsensus ());
285 this.showGroupConservation.setState (this.viewport.isShowGroupConservation ());
286 this.showConsensusHistogram.setState (this.viewport.isShowConsensusHistogram ());
287 this.showSequenceLogo.setState (this.viewport.isShowSequenceLogo ());
288 this.normSequenceLogo.setState (this.viewport.isNormaliseSequenceLogo ());
289 this.applyToAllGroups.setState (this.viewport.getColourAppliesToAllGroups ());
290 this.annotationPanelMenuItem.setState (this.viewport.isShowAnnotation ());
291 this.showAlignmentAnnotations.setState (this.viewport.isShowAnnotation ());
292 this.showSequenceAnnotations.setState (this.viewport.isShowAnnotation ());
293 this.seqLimits.setState (this.viewport.getShowJVSuffix ());
294 if (applet != null) {
295 var param = applet.sortBy;
296 if (param != null) {
297 if (param.equalsIgnoreCase ("Id")) {
298 this.sortIDMenuItem_actionPerformed ();
299 } else if (param.equalsIgnoreCase ("Pairwise Identity")) {
300 this.sortPairwiseMenuItem_actionPerformed ();
301 } else if (param.equalsIgnoreCase ("Length")) {
302 this.sortLengthMenuItem_actionPerformed ();
303 }}param = applet.wrap;
304 if (param != null) {
305 if (param.equalsIgnoreCase ("true")) {
306 this.wrapMenuItem.setState (true);
307 this.wrapMenuItem_actionPerformed ();
308 }}param = applet.centrecolumnlabels;
309 if (param != null) {
310 this.centreColumnLabelFlag.setState (true);
311 this.centreColumnLabelFlag_stateChanged ();
312 }}if (this.viewport.getAlignment ().isNucleotide ()) {
313 this.viewport.updateStrucConsensus (this.alignPanel);
314 if (this.viewport.getAlignment ().hasRNAStructure ()) {
315 this.RNAHelixColour.setEnabled (true);
316 } else {
317 this.RNAHelixColour.setEnabled (false);
318 }} else {
319 this.RNAHelixColour.setEnabled (false);
320 this.purinePyrimidineColour.setEnabled (false);
321 }this.addKeyListener (this);
322 this.alignPanel.seqPanel.seqCanvas.addKeyListener (this);
323 this.alignPanel.idPanel.idCanvas.addKeyListener (this);
324 this.alignPanel.scalePanel.addKeyListener (this);
325 this.alignPanel.annotationPanel.addKeyListener (this);
326 this.alignPanel.annotationPanelHolder.addKeyListener (this);
327 this.alignPanel.annotationSpaceFillerHolder.addKeyListener (this);
328 this.alignPanel.alabels.addKeyListener (this);
329 if (addToDisplay) {
330 this.addToDisplay (embedded);
331 }}, "jalview.datamodel.AlignmentI,~A,jalview.datamodel.ColumnSelection,jalview.bin.JalviewLite,~S,~B,~B");
332 Clazz.defineMethod (c$, "addToDisplay", 
333 function (embedded) {
334 this.createAlignFrameWindow (embedded);
335 this.validate ();
336 this.alignPanel.adjustAnnotationHeight ();
337 this.alignPanel.paintAlignment (true);
338 }, "~B");
339 Clazz.defineMethod (c$, "getAlignViewport", 
340 function () {
341 return this.viewport;
342 });
343 Clazz.defineMethod (c$, "getSeqcanvas", 
344 function () {
345 return this.alignPanel.seqPanel.seqCanvas;
346 });
347 Clazz.defineMethod (c$, "parseFeaturesFile", 
348 function (file, type) {
349 return this.parseFeaturesFile (file, type, true);
350 }, "~S,~S");
351 Clazz.defineMethod (c$, "parseFeaturesFile", 
352 function (file, type, autoenabledisplay) {
353 var featureLinks =  new java.util.Hashtable ();
354 var featuresFile = false;
355 try {
356 featuresFile =  new jalview.io.FeaturesFile (file, type).parse (this.viewport.getAlignment (), this.alignPanel.seqPanel.seqCanvas.getFeatureRenderer ().getFeatureColours (), featureLinks, true, this.viewport.applet.getDefaultParameter ("relaxedidmatch", false));
357 } catch (ex) {
358 if (Clazz.exceptionOf (ex, Exception)) {
359 ex.printStackTrace ();
360 } else {
361 throw ex;
362 }
363 }
364 if (featuresFile) {
365 if (featureLinks.size () > 0) {
366 this.alignPanel.seqPanel.seqCanvas.getFeatureRenderer ().featureLinks = featureLinks;
367 }if (autoenabledisplay) {
368 this.viewport.setShowSequenceFeatures (true);
369 this.sequenceFeatures.setState (true);
370 }if (this.alignPanel.seqPanel.seqCanvas.fr != null) {
371 this.alignPanel.seqPanel.seqCanvas.fr.findAllFeatures (true);
372 }if (this.viewport.featureSettings != null) {
373 this.viewport.featureSettings.refreshTable ();
374 }this.alignPanel.paintAlignment (true);
375 this.setStatus (jalview.util.MessageManager.getString ("label.successfully_added_features_alignment"));
376 }return featuresFile;
377 }, "~S,~S,~B");
378 Clazz.overrideMethod (c$, "keyPressed", 
379 function (evt) {
380 if (this.viewport.cursorMode && ((evt.getKeyCode () >= 48 && evt.getKeyCode () <= 57) || (evt.getKeyCode () >= 96 && evt.getKeyCode () <= 105)) && Character.isDigit (evt.getKeyChar ())) {
381 this.alignPanel.seqPanel.numberPressed (evt.getKeyChar ());
382 }switch (evt.getKeyCode ()) {
383 case 27:
384 this.deselectAllSequenceMenuItem_actionPerformed ();
385 this.alignPanel.alabels.cancelDrag ();
386 break;
387 case 88:
388 if (evt.isControlDown () || evt.isMetaDown ()) {
389 this.cut_actionPerformed ();
390 }break;
391 case 67:
392 if (this.viewport.cursorMode && !evt.isControlDown ()) {
393 this.alignPanel.seqPanel.setCursorColumn ();
394 }if (evt.isControlDown () || evt.isMetaDown ()) {
395 this.copy_actionPerformed ();
396 }break;
397 case 86:
398 if (evt.isControlDown ()) {
399 this.paste (evt.isShiftDown ());
400 }break;
401 case 65:
402 if (evt.isControlDown () || evt.isMetaDown ()) {
403 this.selectAllSequenceMenuItem_actionPerformed ();
404 }break;
405 case 40:
406 if (this.viewport.cursorMode) {
407 this.alignPanel.seqPanel.moveCursor (0, 1);
408 } else {
409 this.moveSelectedSequences (false);
410 }break;
411 case 38:
412 if (this.viewport.cursorMode) {
413 this.alignPanel.seqPanel.moveCursor (0, -1);
414 } else {
415 this.moveSelectedSequences (true);
416 }break;
417 case 37:
418 if (evt.isAltDown () || !this.viewport.cursorMode) {
419 this.slideSequences (false, this.alignPanel.seqPanel.getKeyboardNo1 ());
420 } else {
421 this.alignPanel.seqPanel.moveCursor (-1, 0);
422 }break;
423 case 39:
424 if (evt.isAltDown () || !this.viewport.cursorMode) {
425 this.slideSequences (true, this.alignPanel.seqPanel.getKeyboardNo1 ());
426 } else {
427 this.alignPanel.seqPanel.moveCursor (1, 0);
428 }break;
429 case 32:
430 if (this.viewport.cursorMode) {
431 this.alignPanel.seqPanel.insertGapAtCursor (evt.isControlDown () || evt.isShiftDown () || evt.isAltDown ());
432 }break;
433 case 127:
434 case 8:
435 if (this.viewport.cursorMode) {
436 this.alignPanel.seqPanel.deleteGapAtCursor (evt.isControlDown () || evt.isShiftDown () || evt.isAltDown ());
437 } else {
438 this.cut_actionPerformed ();
439 this.alignPanel.seqPanel.seqCanvas.repaint ();
440 }break;
441 case 83:
442 if (this.viewport.cursorMode) {
443 this.alignPanel.seqPanel.setCursorRow ();
444 }break;
445 case 80:
446 if (this.viewport.cursorMode) {
447 this.alignPanel.seqPanel.setCursorPosition ();
448 }break;
449 case 10:
450 case 44:
451 if (this.viewport.cursorMode) {
452 this.alignPanel.seqPanel.setCursorRowAndColumn ();
453 }break;
454 case 81:
455 if (this.viewport.cursorMode) {
456 this.alignPanel.seqPanel.setSelectionAreaAtCursor (true);
457 }break;
458 case 77:
459 if (this.viewport.cursorMode) {
460 this.alignPanel.seqPanel.setSelectionAreaAtCursor (false);
461 }break;
462 case 113:
463 this.viewport.cursorMode = !this.viewport.cursorMode;
464 this.setStatus (jalview.util.MessageManager.formatMessage ("label.keyboard_editing_mode",  Clazz.newArray (-1, [(this.viewport.cursorMode ? "on" : "off")])));
465 if (this.viewport.cursorMode) {
466 this.alignPanel.seqPanel.seqCanvas.cursorX = this.viewport.startRes;
467 this.alignPanel.seqPanel.seqCanvas.cursorY = this.viewport.startSeq;
468 }break;
469 case 70:
470 if (evt.isControlDown ()) {
471 this.findMenuItem_actionPerformed ();
472 }break;
473 case 72:
474 {
475 var toggleSeqs = !evt.isControlDown ();
476 var toggleCols = !evt.isShiftDown ();
477 this.toggleHiddenRegions (toggleSeqs, toggleCols);
478 break;
479 }case 33:
480 if (this.viewport.getWrapAlignment ()) {
481 this.alignPanel.scrollUp (true);
482 } else {
483 this.alignPanel.setScrollValues (this.viewport.startRes, this.viewport.startSeq - this.viewport.endSeq + this.viewport.startSeq);
484 }break;
485 case 34:
486 if (this.viewport.getWrapAlignment ()) {
487 this.alignPanel.scrollUp (false);
488 } else {
489 this.alignPanel.setScrollValues (this.viewport.startRes, this.viewport.startSeq + this.viewport.endSeq - this.viewport.startSeq);
490 }break;
491 case 90:
492 if (evt.isControlDown ()) {
493 this.undoMenuItem_actionPerformed ();
494 }break;
495 case 89:
496 if (evt.isControlDown ()) {
497 this.redoMenuItem_actionPerformed ();
498 }break;
499 case 76:
500 if (evt.isControlDown ()) {
501 this.trimAlignment (true);
502 }break;
503 case 82:
504 if (evt.isControlDown ()) {
505 this.trimAlignment (false);
506 }break;
507 case 69:
508 if (evt.isControlDown ()) {
509 if (evt.isShiftDown ()) {
510 this.removeAllGapsMenuItem_actionPerformed ();
511 } else {
512 this.removeGappedColumnMenuItem_actionPerformed ();
513 }}break;
514 case 73:
515 if (evt.isControlDown ()) {
516 if (evt.isAltDown ()) {
517 this.invertColSel_actionPerformed ();
518 } else {
519 this.invertSequenceMenuItem_actionPerformed ();
520 }}break;
521 case 71:
522 if (evt.isControlDown ()) {
523 if (evt.isShiftDown ()) {
524 this.unGroup_actionPerformed ();
525 } else {
526 this.createGroup_actionPerformed ();
527 }}break;
528 case 85:
529 if (evt.isControlDown ()) {
530 this.deleteGroups_actionPerformed ();
531 }break;
532 case 84:
533 if (evt.isControlDown ()) {
534 this.newView (null);
535 }break;
536 }
537 this.alignPanel.paintAlignment (true);
538 }, "java.awt.event.KeyEvent");
539 Clazz.defineMethod (c$, "toggleHiddenRegions", 
540 ($fz = function (toggleSeqs, toggleCols) {
541 var hide = false;
542 var sg = this.viewport.getSelectionGroup ();
543 if (!toggleSeqs && !toggleCols) {
544 if ((this.viewport.getColumnSelection () != null && this.viewport.getColumnSelection ().getSelected () != null && this.viewport.getColumnSelection ().getSelected ().size () > 0) || (sg != null && sg.getSize () > 0 && sg.getStartRes () <= sg.getEndRes ())) {
545 if (sg != null) {
546 this.invertSequenceMenuItem_actionPerformed ();
547 sg = this.viewport.getSelectionGroup ();
548 toggleSeqs = true;
549 }this.viewport.expandColSelection (sg, true);
550 this.invertColSel_actionPerformed ();
551 toggleCols = true;
552 }}if (toggleSeqs) {
553 if (sg != null && sg.getSize () != this.viewport.getAlignment ().getHeight ()) {
554 hide = true;
555 this.viewport.hideAllSelectedSeqs ();
556 } else if (!(toggleCols && this.viewport.getColumnSelection ().getSelected ().size () > 0)) {
557 this.viewport.showAllHiddenSeqs ();
558 }}if (toggleCols) {
559 if (this.viewport.getColumnSelection ().getSelected ().size () > 0) {
560 this.viewport.hideSelectedColumns ();
561 if (!toggleSeqs) {
562 this.viewport.setSelectionGroup (sg);
563 }} else if (!hide) {
564 this.viewport.showAllHiddenColumns ();
565 }}}, $fz.isPrivate = true, $fz), "~B,~B");
566 Clazz.overrideMethod (c$, "keyReleased", 
567 function (evt) {
568 }, "java.awt.event.KeyEvent");
569 Clazz.overrideMethod (c$, "keyTyped", 
570 function (evt) {
571 }, "java.awt.event.KeyEvent");
572 Clazz.overrideMethod (c$, "itemStateChanged", 
573 function (evt) {
574 var source = evt.getSource ();
575 if (source === this.displayNonconservedMenuItem) {
576 this.displayNonconservedMenuItem_actionPerformed ();
577 } else if (source === this.colourTextMenuItem) {
578 this.colourTextMenuItem_actionPerformed ();
579 } else if (source === this.wrapMenuItem) {
580 this.wrapMenuItem_actionPerformed ();
581 } else if (source === this.scaleAbove) {
582 this.viewport.setScaleAboveWrapped (this.scaleAbove.getState ());
583 } else if (source === this.scaleLeft) {
584 this.viewport.setScaleLeftWrapped (this.scaleLeft.getState ());
585 } else if (source === this.scaleRight) {
586 this.viewport.setScaleRightWrapped (this.scaleRight.getState ());
587 } else if (source === this.seqLimits) {
588 this.seqLimits_itemStateChanged ();
589 } else if (source === this.viewBoxesMenuItem) {
590 this.viewport.setShowBoxes (this.viewBoxesMenuItem.getState ());
591 } else if (source === this.viewTextMenuItem) {
592 this.viewport.setShowText (this.viewTextMenuItem.getState ());
593 } else if (source === this.renderGapsMenuItem) {
594 this.viewport.setRenderGaps (this.renderGapsMenuItem.getState ());
595 } else if (source === this.annotationPanelMenuItem) {
596 this.viewport.setShowAnnotation (this.annotationPanelMenuItem.getState ());
597 this.alignPanel.setAnnotationVisible (this.annotationPanelMenuItem.getState ());
598 } else if (source === this.sequenceFeatures) {
599 this.viewport.setShowSequenceFeatures (this.sequenceFeatures.getState ());
600 this.alignPanel.seqPanel.seqCanvas.repaint ();
601 } else if (source === this.showAlignmentAnnotations) {
602 this.setAnnotationsVisibility ();
603 } else if (source === this.showSequenceAnnotations) {
604 this.setAnnotationsVisibility ();
605 } else if (source === this.sortAnnBySequence) {
606 var newState = this.sortAnnBySequence.getState ();
607 this.sortAnnByLabel.setState (false);
608 this.setAnnotationSortOrder (newState ? jalview.analysis.AnnotationSorter.SequenceAnnotationOrder.SEQUENCE_AND_LABEL : jalview.analysis.AnnotationSorter.SequenceAnnotationOrder.NONE);
609 this.setViewportAnnotationOrder ();
610 } else if (source === this.sortAnnByLabel) {
611 var newState = this.sortAnnByLabel.getState ();
612 this.sortAnnBySequence.setState (false);
613 this.setAnnotationSortOrder (newState ? jalview.analysis.AnnotationSorter.SequenceAnnotationOrder.LABEL_AND_SEQUENCE : jalview.analysis.AnnotationSorter.SequenceAnnotationOrder.NONE);
614 this.setViewportAnnotationOrder ();
615 } else if (source === this.showAutoFirst) {
616 this.showAutoLast.setState (!this.showAutoFirst.getState ());
617 this.setShowAutoCalculatedAbove (this.showAutoFirst.getState ());
618 this.setViewportAnnotationOrder ();
619 } else if (source === this.showAutoLast) {
620 this.showAutoFirst.setState (!this.showAutoLast.getState ());
621 this.setShowAutoCalculatedAbove (this.showAutoFirst.getState ());
622 this.setViewportAnnotationOrder ();
623 } else if (source === this.conservationMenuItem) {
624 this.conservationMenuItem_actionPerformed ();
625 } else if (source === this.abovePIDThreshold) {
626 this.abovePIDThreshold_actionPerformed ();
627 } else if (source === this.applyToAllGroups) {
628 this.viewport.setColourAppliesToAllGroups (this.applyToAllGroups.getState ());
629 } else if (source === this.autoCalculate) {
630 this.viewport.autoCalculateConsensus = this.autoCalculate.getState ();
631 } else if (source === this.$sortByTree) {
632 this.viewport.sortByTree = this.$sortByTree.getState ();
633 } else if (source === this.centreColumnLabelFlag) {
634 this.centreColumnLabelFlag_stateChanged ();
635 } else if (source === this.followMouseOverFlag) {
636 this.mouseOverFlag_stateChanged ();
637 } else if (source === this.showGroupConsensus) {
638 this.showGroupConsensus_actionPerformed ();
639 } else if (source === this.showGroupConservation) {
640 this.showGroupConservation_actionPerformed ();
641 } else if (source === this.showSequenceLogo) {
642 this.showSequenceLogo_actionPerformed ();
643 } else if (source === this.normSequenceLogo) {
644 this.normSequenceLogo_actionPerformed ();
645 } else if (source === this.showConsensusHistogram) {
646 this.showConsensusHistogram_actionPerformed ();
647 } else if (source === this.applyAutoAnnotationSettings) {
648 this.applyAutoAnnotationSettings_actionPerformed ();
649 }this.alignPanel.paintAlignment (true);
650 }, "java.awt.event.ItemEvent");
651 Clazz.defineMethod (c$, "setAnnotationsVisibility", 
652 ($fz = function () {
653 var showForAlignment = this.showAlignmentAnnotations.getState ();
654 var showForSequences = this.showSequenceAnnotations.getState ();
655 for (var aa, $aa = 0, $$aa = this.alignPanel.getAlignment ().getAlignmentAnnotation (); $aa < $$aa.length && ((aa = $$aa[$aa]) || true); $aa++) {
656 var visible = (aa.sequenceRef == null ? showForAlignment : showForSequences);
657 aa.visible = visible;
658 }
659 this.alignPanel.validateAnnotationDimensions (true);
660 this.validate ();
661 this.repaint ();
662 }, $fz.isPrivate = true, $fz));
663 Clazz.defineMethod (c$, "setAnnotationSortOrder", 
664 ($fz = function (order) {
665 this.annotationSortOrder = order;
666 }, $fz.isPrivate = true, $fz), "jalview.analysis.AnnotationSorter.SequenceAnnotationOrder");
667 Clazz.defineMethod (c$, "setViewportAnnotationOrder", 
668 ($fz = function () {
669 this.alignPanel.av.setSortAnnotationsBy (this.annotationSortOrder);
670 this.alignPanel.av.setShowAutocalculatedAbove (this.showAutoCalculatedAbove);
671 }, $fz.isPrivate = true, $fz));
672 Clazz.defineMethod (c$, "setShowAutoCalculatedAbove", 
673 ($fz = function (showAbove) {
674 this.showAutoCalculatedAbove = showAbove;
675 }, $fz.isPrivate = true, $fz), "~B");
676 Clazz.defineMethod (c$, "mouseOverFlag_stateChanged", 
677 ($fz = function () {
678 this.viewport.setFollowHighlight (this.followMouseOverFlag.getState ());
679 }, $fz.isPrivate = true, $fz));
680 Clazz.defineMethod (c$, "centreColumnLabelFlag_stateChanged", 
681 ($fz = function () {
682 this.viewport.centreColumnLabels = this.centreColumnLabelFlag.getState ();
683 this.alignPanel.annotationPanel.repaint ();
684 }, $fz.isPrivate = true, $fz));
685 Clazz.overrideMethod (c$, "actionPerformed", 
686 function (evt) {
687 var source = evt.getSource ();
688 if (source === this.inputText) {
689 this.inputText_actionPerformed ();
690 } else if (source === this.$loadTree) {
691 this.loadTree_actionPerformed ();
692 } else if (source === this.loadApplication) {
693 this.launchFullApplication ();
694 } else if (source === this.$loadAnnotations) {
695 this.loadAnnotations ();
696 } else if (source === this.$outputAnnotations) {
697 this.outputAnnotations (true);
698 } else if (source === this.$outputFeatures) {
699 this.outputFeatures (true, "Jalview");
700 } else if (source === this.closeMenuItem) {
701 this.closeMenuItem_actionPerformed ();
702 } else if (source === this.copy) {
703 this.copy_actionPerformed ();
704 } else if (source === this.undoMenuItem) {
705 this.undoMenuItem_actionPerformed ();
706 } else if (source === this.redoMenuItem) {
707 this.redoMenuItem_actionPerformed ();
708 } else if (source === this.inputText) {
709 this.inputText_actionPerformed ();
710 } else if (source === this.closeMenuItem) {
711 this.closeMenuItem_actionPerformed ();
712 } else if (source === this.undoMenuItem) {
713 this.undoMenuItem_actionPerformed ();
714 } else if (source === this.redoMenuItem) {
715 this.redoMenuItem_actionPerformed ();
716 } else if (source === this.copy) {
717 this.copy_actionPerformed ();
718 } else if (source === this.pasteNew) {
719 this.pasteNew_actionPerformed ();
720 } else if (source === this.pasteThis) {
721 this.pasteThis_actionPerformed ();
722 } else if (source === this.cut) {
723 this.cut_actionPerformed ();
724 } else if (source === this.$delete) {
725 this.delete_actionPerformed ();
726 } else if (source === this.grpsFromSelection) {
727 this.makeGrpsFromSelection_actionPerformed ();
728 } else if (source === this.deleteGroups) {
729 this.deleteGroups_actionPerformed ();
730 } else if (source === this.selectAllSequenceMenuItem) {
731 this.selectAllSequenceMenuItem_actionPerformed ();
732 } else if (source === this.deselectAllSequenceMenuItem) {
733 this.deselectAllSequenceMenuItem_actionPerformed ();
734 } else if (source === this.invertSequenceMenuItem) {
735 this.invertSequenceMenuItem_actionPerformed ();
736 } else if (source === this.invertColSel) {
737 this.viewport.invertColumnSelection ();
738 this.alignPanel.paintAlignment (true);
739 } else if (source === this.remove2LeftMenuItem) {
740 this.trimAlignment (true);
741 } else if (source === this.remove2RightMenuItem) {
742 this.trimAlignment (false);
743 } else if (source === this.removeGappedColumnMenuItem) {
744 this.removeGappedColumnMenuItem_actionPerformed ();
745 } else if (source === this.removeAllGapsMenuItem) {
746 this.removeAllGapsMenuItem_actionPerformed ();
747 } else if (source === this.findMenuItem) {
748 this.findMenuItem_actionPerformed ();
749 } else if (source === this.$font) {
750  new jalview.appletgui.FontChooser (this.alignPanel);
751 } else if (source === this.$newView) {
752 this.newView (null);
753 } else if (source === this.showColumns) {
754 this.viewport.showAllHiddenColumns ();
755 this.alignPanel.paintAlignment (true);
756 } else if (source === this.showSeqs) {
757 this.viewport.showAllHiddenSeqs ();
758 this.alignPanel.paintAlignment (true);
759 } else if (source === this.hideColumns) {
760 this.viewport.hideSelectedColumns ();
761 this.alignPanel.paintAlignment (true);
762 } else if (source === this.hideSequences && this.viewport.getSelectionGroup () != null) {
763 this.viewport.hideAllSelectedSeqs ();
764 this.alignPanel.paintAlignment (true);
765 } else if (source === this.hideAllButSelection) {
766 this.toggleHiddenRegions (false, false);
767 this.alignPanel.paintAlignment (true);
768 } else if (source === this.hideAllSelection) {
769 var sg = this.viewport.getSelectionGroup ();
770 this.viewport.expandColSelection (sg, false);
771 this.viewport.hideAllSelectedSeqs ();
772 this.viewport.hideSelectedColumns ();
773 this.alignPanel.paintAlignment (true);
774 } else if (source === this.showAllHidden) {
775 this.viewport.showAllHiddenColumns ();
776 this.viewport.showAllHiddenSeqs ();
777 this.alignPanel.paintAlignment (true);
778 } else if (source === this.showGroupConsensus) {
779 this.showGroupConsensus_actionPerformed ();
780 } else if (source === this.showGroupConservation) {
781 this.showGroupConservation_actionPerformed ();
782 } else if (source === this.showSequenceLogo) {
783 this.showSequenceLogo_actionPerformed ();
784 } else if (source === this.normSequenceLogo) {
785 this.normSequenceLogo_actionPerformed ();
786 } else if (source === this.showConsensusHistogram) {
787 this.showConsensusHistogram_actionPerformed ();
788 } else if (source === this.applyAutoAnnotationSettings) {
789 this.applyAutoAnnotationSettings_actionPerformed ();
790 } else if (source === this.featureSettings) {
791  new jalview.appletgui.FeatureSettings (this.alignPanel);
792 } else if (source === this.alProperties) {
793 var contents =  new jalview.io.AlignmentProperties (this.viewport.getAlignment ()).formatAsString ();
794 var cap =  new jalview.appletgui.CutAndPasteTransfer (false, this);
795 cap.setText (contents.toString ());
796 var frame =  new awt2swing.Frame ();
797 frame.add (cap);
798 jalview.bin.JalviewLite.addFrame (frame, jalview.util.MessageManager.formatMessage ("label.alignment_properties",  Clazz.newArray (-1, [this.getTitle ()])), 400, 250);
799 } else if (source === this.overviewMenuItem) {
800 this.overviewMenuItem_actionPerformed ();
801 } else if (source === this.noColourmenuItem) {
802 this.changeColour (null);
803 } else if (source === this.clustalColour) {
804 this.abovePIDThreshold.setState (false);
805 this.changeColour ( new jalview.schemes.ClustalxColourScheme (this.viewport.getAlignment (), null));
806 } else if (source === this.zappoColour) {
807 this.changeColour ( new jalview.schemes.ZappoColourScheme ());
808 } else if (source === this.taylorColour) {
809 this.changeColour ( new jalview.schemes.TaylorColourScheme ());
810 } else if (source === this.hydrophobicityColour) {
811 this.changeColour ( new jalview.schemes.HydrophobicColourScheme ());
812 } else if (source === this.helixColour) {
813 this.changeColour ( new jalview.schemes.HelixColourScheme ());
814 } else if (source === this.strandColour) {
815 this.changeColour ( new jalview.schemes.StrandColourScheme ());
816 } else if (source === this.turnColour) {
817 this.changeColour ( new jalview.schemes.TurnColourScheme ());
818 } else if (source === this.buriedColour) {
819 this.changeColour ( new jalview.schemes.BuriedColourScheme ());
820 } else if (source === this.nucleotideColour) {
821 this.changeColour ( new jalview.schemes.NucleotideColourScheme ());
822 } else if (source === this.purinePyrimidineColour) {
823 this.changeColour ( new jalview.schemes.PurinePyrimidineColourScheme ());
824 } else if (source === this.RNAInteractionColour) {
825 this.changeColour ( new jalview.schemes.RNAInteractionColourScheme ());
826 } else if (source === this.RNAHelixColour) {
827  new jalview.schemes.RNAHelicesColourChooser (this.viewport, this.alignPanel);
828 } else if (source === this.modifyPID) {
829 this.modifyPID_actionPerformed ();
830 } else if (source === this.modifyConservation) {
831 this.modifyConservation_actionPerformed ();
832 } else if (source === this.userDefinedColour) {
833  new jalview.appletgui.UserDefinedColours (this.alignPanel, null);
834 } else if (source === this.PIDColour) {
835 this.changeColour ( new jalview.schemes.PIDColourScheme ());
836 } else if (source === this.BLOSUM62Colour) {
837 this.changeColour ( new jalview.schemes.Blosum62ColourScheme ());
838 } else if (source === this.tcoffeeColour) {
839 this.changeColour ( new jalview.schemes.TCoffeeColourScheme (this.alignPanel.getAlignment ()));
840 } else if (source === this.annotationColour) {
841  new jalview.appletgui.AnnotationColourChooser (this.viewport, this.alignPanel);
842 } else if (source === this.annotationColumnSelection) {
843  new jalview.appletgui.AnnotationColumnChooser (this.viewport, this.alignPanel);
844 } else if (source === this.sortPairwiseMenuItem) {
845 this.sortPairwiseMenuItem_actionPerformed ();
846 } else if (source === this.sortIDMenuItem) {
847 this.sortIDMenuItem_actionPerformed ();
848 } else if (source === this.sortLengthMenuItem) {
849 this.sortLengthMenuItem_actionPerformed ();
850 } else if (source === this.sortGroupMenuItem) {
851 this.sortGroupMenuItem_actionPerformed ();
852 } else if (source === this.removeRedundancyMenuItem) {
853 this.removeRedundancyMenuItem_actionPerformed ();
854 } else if (source === this.pairwiseAlignmentMenuItem) {
855 this.pairwiseAlignmentMenuItem_actionPerformed ();
856 } else if (source === this.PCAMenuItem) {
857 this.PCAMenuItem_actionPerformed ();
858 } else if (source === this.averageDistanceTreeMenuItem) {
859 this.averageDistanceTreeMenuItem_actionPerformed ();
860 } else if (source === this.neighbourTreeMenuItem) {
861 this.neighbourTreeMenuItem_actionPerformed ();
862 } else if (source === this.njTreeBlosumMenuItem) {
863 this.njTreeBlosumMenuItem_actionPerformed ();
864 } else if (source === this.avDistanceTreeBlosumMenuItem) {
865 this.avTreeBlosumMenuItem_actionPerformed ();
866 } else if (source === this.documentation) {
867 this.documentation_actionPerformed ();
868 } else if (source === this.about) {
869 this.about_actionPerformed ();
870 }}, "java.awt.event.ActionEvent");
871 Clazz.defineMethod (c$, "inputText_actionPerformed", 
872 function () {
873 var cap =  new jalview.appletgui.CutAndPasteTransfer (true, this);
874 var frame =  new awt2swing.Frame ();
875 frame.add (cap);
876 jalview.bin.JalviewLite.addFrame (frame, jalview.util.MessageManager.getString ("label.input_cut_paste"), 500, 500);
877 });
878 Clazz.defineMethod (c$, "outputText_actionPerformed", 
879 function (e) {
880 var cap =  new jalview.appletgui.CutAndPasteTransfer (true, this);
881 var frame =  new awt2swing.Frame ();
882 frame.add (cap);
883 jalview.bin.JalviewLite.addFrame (frame, jalview.util.MessageManager.formatMessage ("label.alignment_output_command",  Clazz.newArray (-1, [e.getActionCommand ()])), 600, 500);
884 var fr = this.alignPanel.cloneFeatureRenderer ();
885 cap.setText ( new jalview.io.AppletFormatAdapter (this.alignPanel).formatSequences (e.getActionCommand (), this.viewport.getAlignment (), this.viewport.getShowJVSuffix ()));
886 }, "java.awt.event.ActionEvent");
887 Clazz.defineMethod (c$, "loadAnnotations", 
888 function () {
889 var cap =  new jalview.appletgui.CutAndPasteTransfer (true, this);
890 cap.setText (jalview.util.MessageManager.getString ("label.paste_features_annotations_Tcoffee_here"));
891 cap.setAnnotationImport ();
892 var frame =  new awt2swing.Frame ();
893 frame.add (cap);
894 jalview.bin.JalviewLite.addFrame (frame, jalview.util.MessageManager.getString ("action.paste_annotations"), 400, 300);
895 });
896 Clazz.defineMethod (c$, "outputAnnotations", 
897 function (displayTextbox) {
898 var annotation =  new jalview.io.AnnotationFile ().printAnnotationsForView (this.viewport);
899 if (displayTextbox) {
900 var cap =  new jalview.appletgui.CutAndPasteTransfer (false, this);
901 var frame =  new awt2swing.Frame ();
902 frame.add (cap);
903 jalview.bin.JalviewLite.addFrame (frame, jalview.util.MessageManager.getString ("label.annotations"), 600, 500);
904 cap.setText (annotation);
905 }return annotation;
906 }, "~B");
907 Clazz.defineMethod (c$, "getDisplayedFeatureCols", 
908 ($fz = function () {
909 if (this.alignPanel.getFeatureRenderer () != null && this.viewport.getFeaturesDisplayed () != null) {
910 return this.alignPanel.getFeatureRenderer ().getDisplayedFeatureCols ();
911 }return null;
912 }, $fz.isPrivate = true, $fz));
913 Clazz.defineMethod (c$, "outputFeatures", 
914 function (displayTextbox, format) {
915 var features;
916 if (format.equalsIgnoreCase ("Jalview")) {
917 features =  new jalview.io.FeaturesFile ().printJalviewFormat (this.viewport.getAlignment ().getSequencesArray (), this.getDisplayedFeatureCols ());
918 } else {
919 features =  new jalview.io.FeaturesFile ().printGFFFormat (this.viewport.getAlignment ().getSequencesArray (), this.getDisplayedFeatureCols ());
920 }if (displayTextbox) {
921 var frimport = false;
922 if (features == null || features.equals ("No Features Visible")) {
923 features = "# No features visible - paste some and import them here.";
924 frimport = true;
925 }var cap =  new jalview.appletgui.CutAndPasteTransfer (frimport, this);
926 if (frimport) {
927 cap.setAnnotationImport ();
928 }var frame =  new awt2swing.Frame ();
929 frame.add (cap);
930 jalview.bin.JalviewLite.addFrame (frame, jalview.util.MessageManager.getString ("label.features"), 600, 500);
931 cap.setText (features);
932 } else {
933 if (features == null) {
934 features = "";
935 }}return features;
936 }, "~B,~S");
937 Clazz.defineMethod (c$, "launchFullApplication", 
938 function () {
939 var url =  new StringBuffer (this.jalviewServletURL);
940 var firstSep = url.lastIndexOf ("?") > url.lastIndexOf ("/") ? "&" : "?";
941 url.append (firstSep);
942 var applet = this.viewport.applet;
943 var s = applet.startupFile;
944 url.append ("open=" + this.appendProtocol (s));
945 if (this.viewport.applet.features != null) {
946 url.append ("&features=");
947 url.append (this.appendProtocol (applet.features));
948 }if (applet.annotations != null) {
949 url.append ("&annotations=");
950 url.append (this.appendProtocol (applet.annotations));
951 }if (applet.jnetFile != null) {
952 url.append ("&annotations=");
953 url.append (this.appendProtocol (applet.jnetFile));
954 }if (applet.defaultColour != null) {
955 url.append ("&colour=" + this.removeWhiteSpace (applet.defaultColour));
956 }if (applet.userDefinedColour != null) {
957 url.append ("&colour=" + this.removeWhiteSpace (applet.userDefinedColour));
958 }if (applet.treeFile != null) {
959 url.append ("&tree=" + this.appendProtocol (applet.treeFile));
960 }this.showURL (url.toString (), "FULL_APP");
961 });
962 Clazz.defineMethod (c$, "removeWhiteSpace", 
963 function (colour) {
964 var sb =  new StringBuffer ();
965 for (var i = 0; i < colour.length; i++) {
966 if (Character.isWhitespace (colour.charAt (i))) {
967 sb.append ("%20");
968 } else {
969 sb.append (colour.charAt (i));
970 }}
971 return sb.toString ();
972 }, "~S");
973 Clazz.defineMethod (c$, "appendProtocol", 
974 function (url) {
975 try {
976  new java.net.URL (url);
977 url = java.net.URLEncoder.encode (url);
978 } catch (ex) {
979 if (Clazz.exceptionOf (ex, java.net.MalformedURLException)) {
980 url = this.viewport.applet.getCodeBase () + url;
981 } else {
982 throw ex;
983 }
984 }
985 return url;
986 }, "~S");
987 Clazz.defineMethod (c$, "closeMenuItem_actionPerformed", 
988 function () {
989 jalview.appletgui.PaintRefresher.RemoveComponent (this.alignPanel);
990 if (this.alignPanel.seqPanel != null && this.alignPanel.seqPanel.seqCanvas != null) {
991 jalview.appletgui.PaintRefresher.RemoveComponent (this.alignPanel.seqPanel.seqCanvas);
992 }if (this.alignPanel.idPanel != null && this.alignPanel.idPanel.idCanvas != null) {
993 jalview.appletgui.PaintRefresher.RemoveComponent (this.alignPanel.idPanel.idCanvas);
994 }if (jalview.appletgui.PaintRefresher.components.size () == 0 && this.viewport.applet == null) {
995 System.exit (0);
996 } else {
997 }this.viewport = null;
998 this.alignPanel = null;
999 this.dispose ();
1000 });
1001 Clazz.defineMethod (c$, "updateEditMenuBar", 
1002 function () {
1003 if (this.viewport.getHistoryList ().size () > 0) {
1004 this.undoMenuItem.setEnabled (true);
1005 var command = this.viewport.getHistoryList ().peek ();
1006 this.undoMenuItem.setLabel (jalview.util.MessageManager.formatMessage ("label.undo_command",  Clazz.newArray (-1, [command.getDescription ()])));
1007 } else {
1008 this.undoMenuItem.setEnabled (false);
1009 this.undoMenuItem.setLabel (jalview.util.MessageManager.getString ("action.undo"));
1010 }if (this.viewport.getRedoList ().size () > 0) {
1011 this.redoMenuItem.setEnabled (true);
1012 var command = this.viewport.getRedoList ().peek ();
1013 this.redoMenuItem.setLabel (jalview.util.MessageManager.formatMessage ("label.redo_command",  Clazz.newArray (-1, [command.getDescription ()])));
1014 } else {
1015 this.redoMenuItem.setEnabled (false);
1016 this.redoMenuItem.setLabel (jalview.util.MessageManager.getString ("action.redo"));
1017 }});
1018 Clazz.overrideMethod (c$, "addHistoryItem", 
1019 function (command) {
1020 if (command.getSize () > 0) {
1021 this.viewport.addToHistoryList (command);
1022 this.viewport.clearRedoList ();
1023 this.updateEditMenuBar ();
1024 this.viewport.updateHiddenColumns ();
1025 }}, "jalview.commands.CommandI");
1026 Clazz.defineMethod (c$, "undoMenuItem_actionPerformed", 
1027 function () {
1028 if (this.viewport.getHistoryList ().isEmpty ()) {
1029 return;
1030 }var command = this.viewport.getHistoryList ().pop ();
1031 this.viewport.addToRedoList (command);
1032 command.undoCommand (null);
1033 var originalSource = this.getOriginatingSource (command);
1034 if (originalSource !== this.viewport) {
1035 System.err.println ("Warning: Viewport object mismatch whilst undoing");
1036 }originalSource.updateHiddenColumns ();
1037 this.updateEditMenuBar ();
1038 originalSource.firePropertyChange ("alignment", null, originalSource.getAlignment ().getSequences ());
1039 });
1040 Clazz.defineMethod (c$, "redoMenuItem_actionPerformed", 
1041 function () {
1042 if (this.viewport.getRedoList ().isEmpty ()) {
1043 return;
1044 }var command = this.viewport.getRedoList ().pop ();
1045 this.viewport.addToHistoryList (command);
1046 command.doCommand (null);
1047 var originalSource = this.getOriginatingSource (command);
1048 if (originalSource !== this.viewport) {
1049 System.err.println ("Warning: Viewport object mismatch whilst re-doing");
1050 }originalSource.updateHiddenColumns ();
1051 this.updateEditMenuBar ();
1052 originalSource.firePropertyChange ("alignment", null, originalSource.getAlignment ().getSequences ());
1053 });
1054 Clazz.defineMethod (c$, "getOriginatingSource", 
1055 function (command) {
1056 var originalSource = null;
1057 var al = null;
1058 if (Clazz.instanceOf (command, jalview.commands.EditCommand)) {
1059 var editCommand = command;
1060 al = editCommand.getAlignment ();
1061 var comps = jalview.appletgui.PaintRefresher.components.get (this.viewport.getSequenceSetId ());
1062 for (var i = 0; i < comps.size (); i++) {
1063 if (Clazz.instanceOf (comps.elementAt (i), jalview.appletgui.AlignmentPanel)) {
1064 if (al === (comps.elementAt (i)).av.getAlignment ()) {
1065 originalSource = (comps.elementAt (i)).av;
1066 break;
1067 }}}
1068 }if (originalSource == null) {
1069 if (al != null) {
1070 jalview.appletgui.PaintRefresher.validateSequences (al, this.viewport.getAlignment ());
1071 }originalSource = this.viewport;
1072 }return originalSource;
1073 }, "jalview.commands.CommandI");
1074 Clazz.defineMethod (c$, "moveSelectedSequences", 
1075 function (up) {
1076 var sg = this.viewport.getSelectionGroup ();
1077 if (sg == null) {
1078 return;
1079 }this.viewport.getAlignment ().moveSelectedSequencesByOne (sg, up ? null : this.viewport.getHiddenRepSequences (), up);
1080 this.alignPanel.paintAlignment (true);
1081 var complement = this.viewport.getCodingComplement ();
1082 if (complement != null) {
1083 var mappedSelection = jalview.util.MappingUtils.mapSequenceGroup (sg, this.viewport, complement);
1084 complement.getAlignment ().moveSelectedSequencesByOne (mappedSelection, up ? null : complement.getHiddenRepSequences (), up);
1085 }}, "~B");
1086 Clazz.defineMethod (c$, "slideSequences", 
1087 function (right, size) {
1088 var sg =  new java.util.Vector ();
1089 if (this.viewport.cursorMode) {
1090 sg.add (this.viewport.getAlignment ().getSequenceAt (this.alignPanel.seqPanel.seqCanvas.cursorY));
1091 } else if (this.viewport.getSelectionGroup () != null && this.viewport.getSelectionGroup ().getSize () != this.viewport.getAlignment ().getHeight ()) {
1092 sg = this.viewport.getSelectionGroup ().getSequences (this.viewport.getHiddenRepSequences ());
1093 }if (sg.size () < 1) {
1094 return;
1095 }var invertGroup =  new java.util.Vector ();
1096 for (var i = 0; i < this.viewport.getAlignment ().getHeight (); i++) {
1097 if (!sg.contains (this.viewport.getAlignment ().getSequenceAt (i))) {
1098 invertGroup.addElement (this.viewport.getAlignment ().getSequenceAt (i));
1099 }}
1100 var seqs1 = sg.toArray ( new Array (sg.size ()));
1101 var seqs2 = invertGroup.toArray ( new Array (invertGroup.size ()));
1102 for (var i = 0; i < invertGroup.size (); i++) {
1103 seqs2[i] = invertGroup.elementAt (i);
1104 }
1105 var ssc;
1106 if (right) {
1107 ssc =  new jalview.commands.SlideSequencesCommand ("Slide Sequences", seqs2, seqs1, size, this.viewport.getGapCharacter ());
1108 } else {
1109 ssc =  new jalview.commands.SlideSequencesCommand ("Slide Sequences", seqs1, seqs2, size, this.viewport.getGapCharacter ());
1110 }var groupAdjustment = 0;
1111 if (ssc.getGapsInsertedBegin () && right) {
1112 if (this.viewport.cursorMode) {
1113 this.alignPanel.seqPanel.moveCursor (size, 0);
1114 } else {
1115 groupAdjustment = size;
1116 }} else if (!ssc.getGapsInsertedBegin () && !right) {
1117 if (this.viewport.cursorMode) {
1118 this.alignPanel.seqPanel.moveCursor (-size, 0);
1119 } else {
1120 groupAdjustment = -size;
1121 }}if (groupAdjustment != 0) {
1122 this.viewport.getSelectionGroup ().setStartRes (this.viewport.getSelectionGroup ().getStartRes () + groupAdjustment);
1123 this.viewport.getSelectionGroup ().setEndRes (this.viewport.getSelectionGroup ().getEndRes () + groupAdjustment);
1124 }var appendHistoryItem = false;
1125 var historyList = this.viewport.getHistoryList ();
1126 if (historyList != null && historyList.size () > 0 && Clazz.instanceOf (historyList.peek (), jalview.commands.SlideSequencesCommand)) {
1127 appendHistoryItem = ssc.appendSlideCommand (historyList.peek ());
1128 }if (!appendHistoryItem) {
1129 this.addHistoryItem (ssc);
1130 }this.repaint ();
1131 }, "~B,~N");
1132 Clazz.defineMethod (c$, "copy_actionPerformed", 
1133 function () {
1134 if (this.viewport.getSelectionGroup () == null) {
1135 return;
1136 }var sg = this.viewport.getSelectionGroup ();
1137 jalview.appletgui.AlignFrame.copiedSequences =  new StringBuffer ();
1138 var orderedSeqs =  new java.util.HashMap ();
1139 for (var i = 0; i < sg.getSize (); i++) {
1140 var seq = sg.getSequenceAt (i);
1141 var index = this.viewport.getAlignment ().findIndex (seq);
1142 orderedSeqs.put (new Integer (index), seq);
1143 }
1144 var index = 0;
1145 var startRes;
1146 var endRes;
1147 var ch;
1148 if (this.viewport.hasHiddenColumns () && this.viewport.getSelectionGroup () != null) {
1149 jalview.appletgui.AlignFrame.copiedHiddenColumns =  new java.util.Vector ();
1150 var hiddenOffset = this.viewport.getSelectionGroup ().getStartRes ();
1151 for (var region, $region = this.viewport.getColumnSelection ().getHiddenColumns ().iterator (); $region.hasNext () && ((region = $region.next ()) || true);) {
1152 jalview.appletgui.AlignFrame.copiedHiddenColumns.addElement ( Clazz.newIntArray (-1, [region[0] - hiddenOffset, region[1] - hiddenOffset]));
1153 }
1154 } else {
1155 jalview.appletgui.AlignFrame.copiedHiddenColumns = null;
1156 }for (var i = 0; i < sg.getSize (); i++) {
1157 var seq = null;
1158 while (seq == null) {
1159 if (orderedSeqs.containsKey (new Integer (index))) {
1160 seq = orderedSeqs.get (new Integer (index));
1161 index++;
1162 break;
1163 } else {
1164 index++;
1165 }}
1166 startRes = seq.findPosition (sg.getStartRes ());
1167 endRes = 0;
1168 for (var j = 0; j < sg.getEndRes () + 1 && j < seq.getLength (); j++) {
1169 ch = seq.getCharAt (j);
1170 if (!jalview.util.Comparison.isGap ((ch))) {
1171 endRes++;
1172 }}
1173 if (endRes > 0) {
1174 endRes += seq.getStart () - 1;
1175 }jalview.appletgui.AlignFrame.copiedSequences.append (seq.getName () + "\t" + startRes + "\t" + endRes + "\t" + seq.getSequenceAsString (sg.getStartRes (), sg.getEndRes () + 1) + "\n");
1176 }
1177 });
1178 Clazz.defineMethod (c$, "pasteNew_actionPerformed", 
1179 function () {
1180 this.paste (true);
1181 });
1182 Clazz.defineMethod (c$, "pasteThis_actionPerformed", 
1183 function () {
1184 this.paste (false);
1185 });
1186 Clazz.defineMethod (c$, "paste", 
1187 function (newAlignment) {
1188 try {
1189 if (jalview.appletgui.AlignFrame.copiedSequences == null) {
1190 return;
1191 }var st =  new java.util.StringTokenizer (jalview.appletgui.AlignFrame.copiedSequences.toString ());
1192 var seqs =  new java.util.Vector ();
1193 while (st.hasMoreElements ()) {
1194 var name = st.nextToken ();
1195 var start = Integer.parseInt (st.nextToken ());
1196 var end = Integer.parseInt (st.nextToken ());
1197 seqs.addElement ( new jalview.datamodel.Sequence (name, st.nextToken (), start, end));
1198 }
1199 var newSeqs =  new Array (seqs.size ());
1200 for (var i = 0; i < seqs.size (); i++) {
1201 newSeqs[i] = seqs.elementAt (i);
1202 }
1203 if (newAlignment) {
1204 var newtitle = jalview.util.MessageManager.getString ("label.copied_sequences");
1205 if (this.getTitle ().startsWith (jalview.util.MessageManager.getString ("label.copied_sequences"))) {
1206 newtitle = this.getTitle ();
1207 } else {
1208 newtitle = newtitle.concat (jalview.util.MessageManager.formatMessage ("label.from_msname",  Clazz.newArray (-1, [this.getTitle ()])));
1209 }var af =  new jalview.appletgui.AlignFrame ( new jalview.datamodel.Alignment (newSeqs), this.viewport.applet, newtitle, false);
1210 if (jalview.appletgui.AlignFrame.copiedHiddenColumns != null) {
1211 for (var i = 0; i < jalview.appletgui.AlignFrame.copiedHiddenColumns.size (); i++) {
1212 var region = jalview.appletgui.AlignFrame.copiedHiddenColumns.elementAt (i);
1213 af.viewport.hideColumns (region[0], region[1]);
1214 }
1215 }jalview.bin.JalviewLite.addFrame (af, newtitle, this.frameWidth, this.frameHeight);
1216 } else {
1217 this.addSequences (newSeqs);
1218 }} catch (ex) {
1219 if (Clazz.exceptionOf (ex, Exception)) {
1220 } else {
1221 throw ex;
1222 }
1223 }
1224 }, "~B");
1225 Clazz.defineMethod (c$, "addSequences", 
1226 function (seqs) {
1227 for (var i = 0; i < seqs.length; i++) {
1228 this.viewport.getAlignment ().addSequence (seqs[i]);
1229 }
1230 this.addHistoryItem ( new jalview.commands.EditCommand (jalview.util.MessageManager.getString ("label.add_sequences"), jalview.commands.EditCommand.Action.PASTE, seqs, 0, this.viewport.getAlignment ().getWidth (), this.viewport.getAlignment ()));
1231 this.viewport.setEndSeq (this.viewport.getAlignment ().getHeight ());
1232 this.viewport.getAlignment ().getWidth ();
1233 this.viewport.firePropertyChange ("alignment", null, this.viewport.getAlignment ().getSequences ());
1234 }, "~A");
1235 Clazz.defineMethod (c$, "cut_actionPerformed", 
1236 function () {
1237 this.copy_actionPerformed ();
1238 this.delete_actionPerformed ();
1239 });
1240 Clazz.defineMethod (c$, "delete_actionPerformed", 
1241 function () {
1242 var sg = this.viewport.getSelectionGroup ();
1243 if (sg == null) {
1244 return;
1245 }var seqs =  new java.util.Vector ();
1246 var seq;
1247 for (var i = 0; i < sg.getSize (); i++) {
1248 seq = sg.getSequenceAt (i);
1249 seqs.addElement (seq);
1250 }
1251 if (sg.getSize () == this.viewport.getAlignment ().getHeight ()) {
1252 this.viewport.getColumnSelection ().removeElements (sg.getStartRes (), sg.getEndRes () + 1);
1253 }var cut =  new Array (seqs.size ());
1254 for (var i = 0; i < seqs.size (); i++) {
1255 cut[i] = seqs.elementAt (i);
1256 }
1257 this.addHistoryItem ( new jalview.commands.EditCommand (jalview.util.MessageManager.getString ("label.cut_sequences"), jalview.commands.EditCommand.Action.CUT, cut, sg.getStartRes (), sg.getEndRes () - sg.getStartRes () + 1, this.viewport.getAlignment ()));
1258 this.viewport.setSelectionGroup (null);
1259 this.viewport.getAlignment ().deleteGroup (sg);
1260 this.viewport.firePropertyChange ("alignment", null, this.viewport.getAlignment ().getSequences ());
1261 if (this.viewport.getAlignment ().getHeight () < 1) {
1262 this.setVisible (false);
1263 }this.viewport.sendSelection ();
1264 });
1265 Clazz.defineMethod (c$, "showGroupConsensus_actionPerformed", 
1266 function () {
1267 this.viewport.setShowGroupConsensus (this.showGroupConsensus.getState ());
1268 this.alignPanel.updateAnnotation (this.applyAutoAnnotationSettings.getState ());
1269 });
1270 Clazz.defineMethod (c$, "showGroupConservation_actionPerformed", 
1271 function () {
1272 this.viewport.setShowGroupConservation (this.showGroupConservation.getState ());
1273 this.alignPanel.updateAnnotation (this.applyAutoAnnotationSettings.getState ());
1274 });
1275 Clazz.defineMethod (c$, "showConsensusHistogram_actionPerformed", 
1276 function () {
1277 this.viewport.setShowConsensusHistogram (this.showConsensusHistogram.getState ());
1278 this.alignPanel.updateAnnotation (this.applyAutoAnnotationSettings.getState ());
1279 });
1280 Clazz.defineMethod (c$, "showSequenceLogo_actionPerformed", 
1281 function () {
1282 this.viewport.setShowSequenceLogo (this.showSequenceLogo.getState ());
1283 this.alignPanel.updateAnnotation (this.applyAutoAnnotationSettings.getState ());
1284 });
1285 Clazz.defineMethod (c$, "normSequenceLogo_actionPerformed", 
1286 function () {
1287 this.showSequenceLogo.setState (true);
1288 this.viewport.setShowSequenceLogo (true);
1289 this.viewport.setNormaliseSequenceLogo (this.normSequenceLogo.getState ());
1290 this.alignPanel.updateAnnotation (this.applyAutoAnnotationSettings.getState ());
1291 });
1292 Clazz.defineMethod (c$, "applyAutoAnnotationSettings_actionPerformed", 
1293 function () {
1294 this.alignPanel.updateAnnotation (this.applyAutoAnnotationSettings.getState ());
1295 });
1296 Clazz.defineMethod (c$, "makeGrpsFromSelection_actionPerformed", 
1297 function () {
1298 if (this.avc.makeGroupsFromSelection ()) {
1299 jalview.appletgui.PaintRefresher.Refresh (this, this.viewport.getSequenceSetId ());
1300 this.alignPanel.updateAnnotation ();
1301 this.alignPanel.paintAlignment (true);
1302 }});
1303 Clazz.defineMethod (c$, "createGroup_actionPerformed", 
1304 function () {
1305 this.avc.createGroup ();
1306 });
1307 Clazz.defineMethod (c$, "unGroup_actionPerformed", 
1308 function () {
1309 if (this.avc.unGroup ()) {
1310 this.alignPanel.alignmentChanged ();
1311 }});
1312 Clazz.defineMethod (c$, "deleteGroups_actionPerformed", 
1313 function () {
1314 if (this.avc.deleteGroups ()) {
1315 this.alignPanel.alignmentChanged ();
1316 }});
1317 Clazz.defineMethod (c$, "selectAllSequenceMenuItem_actionPerformed", 
1318 function () {
1319 var sg =  new jalview.datamodel.SequenceGroup ();
1320 for (var i = 0; i < this.viewport.getAlignment ().getSequences ().size (); i++) {
1321 sg.addSequence (this.viewport.getAlignment ().getSequenceAt (i), false);
1322 }
1323 sg.setEndRes (this.viewport.getAlignment ().getWidth () - 1);
1324 this.viewport.setSelectionGroup (sg);
1325 this.alignPanel.paintAlignment (true);
1326 jalview.appletgui.PaintRefresher.Refresh (this.alignPanel, this.viewport.getSequenceSetId ());
1327 this.viewport.sendSelection ();
1328 });
1329 Clazz.defineMethod (c$, "deselectAllSequenceMenuItem_actionPerformed", 
1330 function () {
1331 if (this.viewport.cursorMode) {
1332 this.alignPanel.seqPanel.keyboardNo1 = null;
1333 this.alignPanel.seqPanel.keyboardNo2 = null;
1334 }this.viewport.setSelectionGroup (null);
1335 this.viewport.getColumnSelection ().clear ();
1336 this.viewport.setSelectionGroup (null);
1337 this.alignPanel.idPanel.idCanvas.searchResults = null;
1338 this.alignPanel.seqPanel.seqCanvas.highlightSearchResults (null);
1339 this.alignPanel.paintAlignment (true);
1340 jalview.appletgui.PaintRefresher.Refresh (this.alignPanel, this.viewport.getSequenceSetId ());
1341 this.viewport.sendSelection ();
1342 });
1343 Clazz.defineMethod (c$, "invertSequenceMenuItem_actionPerformed", 
1344 function () {
1345 var sg = this.viewport.getSelectionGroup ();
1346 for (var i = 0; i < this.viewport.getAlignment ().getSequences ().size (); i++) {
1347 sg.addOrRemove (this.viewport.getAlignment ().getSequenceAt (i), false);
1348 }
1349 jalview.appletgui.PaintRefresher.Refresh (this.alignPanel, this.viewport.getSequenceSetId ());
1350 this.viewport.sendSelection ();
1351 });
1352 Clazz.defineMethod (c$, "invertColSel_actionPerformed", 
1353 function () {
1354 this.viewport.invertColumnSelection ();
1355 this.alignPanel.paintAlignment (true);
1356 jalview.appletgui.PaintRefresher.Refresh (this.alignPanel, this.viewport.getSequenceSetId ());
1357 this.viewport.sendSelection ();
1358 });
1359 Clazz.defineMethod (c$, "trimAlignment", 
1360 function (trimLeft) {
1361 var colSel = this.viewport.getColumnSelection ();
1362 var column;
1363 if (colSel.size () > 0) {
1364 if (trimLeft) {
1365 column = colSel.getMin ();
1366 } else {
1367 column = colSel.getMax ();
1368 }var seqs;
1369 if (this.viewport.getSelectionGroup () != null) {
1370 seqs = this.viewport.getSelectionGroup ().getSequencesAsArray (this.viewport.getHiddenRepSequences ());
1371 } else {
1372 seqs = this.viewport.getAlignment ().getSequencesArray ();
1373 }var trimRegion;
1374 if (trimLeft) {
1375 trimRegion =  new jalview.commands.TrimRegionCommand ("Remove Left", jalview.commands.TrimRegionCommand.TRIM_LEFT, seqs, column, this.viewport.getAlignment (), this.viewport.getColumnSelection (), this.viewport.getSelectionGroup ());
1376 this.viewport.setStartRes (0);
1377 } else {
1378 trimRegion =  new jalview.commands.TrimRegionCommand ("Remove Right", jalview.commands.TrimRegionCommand.TRIM_RIGHT, seqs, column, this.viewport.getAlignment (), this.viewport.getColumnSelection (), this.viewport.getSelectionGroup ());
1379 }this.setStatus (jalview.util.MessageManager.formatMessage ("label.removed_columns",  Clazz.newArray (-1, [Integer.$valueOf (trimRegion.getSize ()).toString ()])));
1380 this.addHistoryItem (trimRegion);
1381 for (var sg, $sg = this.viewport.getAlignment ().getGroups ().iterator (); $sg.hasNext () && ((sg = $sg.next ()) || true);) {
1382 if ((trimLeft && !sg.adjustForRemoveLeft (column)) || (!trimLeft && !sg.adjustForRemoveRight (column))) {
1383 this.viewport.getAlignment ().deleteGroup (sg);
1384 }}
1385 this.viewport.firePropertyChange ("alignment", null, this.viewport.getAlignment ().getSequences ());
1386 }}, "~B");
1387 Clazz.defineMethod (c$, "removeGappedColumnMenuItem_actionPerformed", 
1388 function () {
1389 var start = 0;
1390 var end = this.viewport.getAlignment ().getWidth () - 1;
1391 var seqs;
1392 if (this.viewport.getSelectionGroup () != null) {
1393 seqs = this.viewport.getSelectionGroup ().getSequencesAsArray (this.viewport.getHiddenRepSequences ());
1394 start = this.viewport.getSelectionGroup ().getStartRes ();
1395 end = this.viewport.getSelectionGroup ().getEndRes ();
1396 } else {
1397 seqs = this.viewport.getAlignment ().getSequencesArray ();
1398 }var removeGapCols =  new jalview.commands.RemoveGapColCommand ("Remove Gapped Columns", seqs, start, end, this.viewport.getAlignment ());
1399 this.addHistoryItem (removeGapCols);
1400 this.setStatus (jalview.util.MessageManager.formatMessage ("label.removed_empty_columns",  Clazz.newArray (-1, [Integer.$valueOf (removeGapCols.getSize ()).toString ()])));
1401 var seq = this.viewport.getAlignment ().getSequenceAt (0);
1402 var startRes = seq.findPosition (this.viewport.startRes);
1403 this.viewport.setStartRes (seq.findIndex (startRes) - 1);
1404 this.viewport.firePropertyChange ("alignment", null, this.viewport.getAlignment ().getSequences ());
1405 });
1406 Clazz.defineMethod (c$, "removeAllGapsMenuItem_actionPerformed", 
1407 function () {
1408 var start = 0;
1409 var end = this.viewport.getAlignment ().getWidth () - 1;
1410 var seqs;
1411 if (this.viewport.getSelectionGroup () != null) {
1412 seqs = this.viewport.getSelectionGroup ().getSequencesAsArray (this.viewport.getHiddenRepSequences ());
1413 start = this.viewport.getSelectionGroup ().getStartRes ();
1414 end = this.viewport.getSelectionGroup ().getEndRes ();
1415 } else {
1416 seqs = this.viewport.getAlignment ().getSequencesArray ();
1417 }var seq = this.viewport.getAlignment ().getSequenceAt (0);
1418 var startRes = seq.findPosition (this.viewport.startRes);
1419 this.addHistoryItem ( new jalview.commands.RemoveGapsCommand ("Remove Gaps", seqs, start, end, this.viewport.getAlignment ()));
1420 this.viewport.setStartRes (seq.findIndex (startRes) - 1);
1421 this.viewport.firePropertyChange ("alignment", null, this.viewport.getAlignment ().getSequences ());
1422 });
1423 Clazz.defineMethod (c$, "findMenuItem_actionPerformed", 
1424 function () {
1425  new jalview.appletgui.Finder (this.alignPanel);
1426 });
1427 Clazz.defineMethod (c$, "newView", 
1428 function (viewtitle) {
1429 var newal;
1430 if (this.viewport.hasHiddenRows ()) {
1431 newal =  new jalview.datamodel.Alignment (this.viewport.getAlignment ().getHiddenSequences ().getFullAlignment ().getSequencesArray ());
1432 } else {
1433 newal =  new jalview.datamodel.Alignment (this.viewport.getAlignment ().getSequencesArray ());
1434 }if (this.viewport.getAlignment ().getAlignmentAnnotation () != null) {
1435 for (var i = 0; i < this.viewport.getAlignment ().getAlignmentAnnotation ().length; i++) {
1436 if (!this.viewport.getAlignment ().getAlignmentAnnotation ()[i].autoCalculated) {
1437 newal.addAnnotation (this.viewport.getAlignment ().getAlignmentAnnotation ()[i]);
1438 }}
1439 }var newaf =  new jalview.appletgui.AlignFrame (newal, this.viewport.applet, "", false);
1440 newaf.viewport.setSequenceSetId (this.alignPanel.av.getSequenceSetId ());
1441 jalview.appletgui.PaintRefresher.Register (this.alignPanel, this.alignPanel.av.getSequenceSetId ());
1442 jalview.appletgui.PaintRefresher.Register (newaf.alignPanel, newaf.alignPanel.av.getSequenceSetId ());
1443 jalview.appletgui.PaintRefresher.Register (newaf.alignPanel.idPanel.idCanvas, newaf.alignPanel.av.getSequenceSetId ());
1444 jalview.appletgui.PaintRefresher.Register (newaf.alignPanel.seqPanel.seqCanvas, newaf.alignPanel.av.getSequenceSetId ());
1445 var comps = jalview.appletgui.PaintRefresher.components.get (this.viewport.getSequenceSetId ());
1446 var viewSize = -1;
1447 for (var i = 0; i < comps.size (); i++) {
1448 if (Clazz.instanceOf (comps.elementAt (i), jalview.appletgui.AlignmentPanel)) {
1449 viewSize++;
1450 }}
1451 var title =  String.instantialize (this.getTitle ());
1452 if (viewtitle != null) {
1453 title = viewtitle + " ( " + title + ")";
1454 } else {
1455 if (title.indexOf ("(View") > -1) {
1456 title = title.substring (0, title.indexOf ("(View"));
1457 }title += "(View " + viewSize + ")";
1458 }newaf.setTitle (title.toString ());
1459 newaf.viewport.setHistoryList (this.viewport.getHistoryList ());
1460 newaf.viewport.setRedoList (this.viewport.getRedoList ());
1461 return newaf;
1462 }, "~S");
1463 Clazz.defineMethod (c$, "getFeatureGroups", 
1464 function () {
1465 var fr = null;
1466 if (this.alignPanel != null && (fr = this.alignPanel.getFeatureRenderer ()) != null) {
1467 var gps = fr.getFeatureGroups ();
1468 var _gps = gps.toArray ( new Array (gps.size ()));
1469 return _gps;
1470 }return null;
1471 });
1472 Clazz.defineMethod (c$, "getFeatureGroupsOfState", 
1473 function (visible) {
1474 var fr = null;
1475 if (this.alignPanel != null && (fr = this.alignPanel.getFeatureRenderer ()) != null) {
1476 var gps = fr.getGroups (visible);
1477 var _gps = gps.toArray ( new Array (gps.size ()));
1478 return _gps;
1479 }return null;
1480 }, "~B");
1481 Clazz.defineMethod (c$, "setFeatureGroupState", 
1482 function (groups, state) {
1483 var fr = null;
1484 this.sequenceFeatures.setState (true);
1485 this.viewport.setShowSequenceFeatures (true);
1486 if (this.alignPanel != null && (fr = this.alignPanel.getFeatureRenderer ()) != null) {
1487 fr.setGroupVisibility (java.util.Arrays.asList (groups), state);
1488 this.alignPanel.seqPanel.seqCanvas.repaint ();
1489 if (this.alignPanel.overviewPanel != null) {
1490 this.alignPanel.overviewPanel.updateOverviewImage ();
1491 }}}, "~A,~B");
1492 Clazz.defineMethod (c$, "seqLimits_itemStateChanged", 
1493 function () {
1494 this.viewport.setShowJVSuffix (this.seqLimits.getState ());
1495 this.alignPanel.fontChanged ();
1496 this.alignPanel.paintAlignment (true);
1497 });
1498 Clazz.defineMethod (c$, "colourTextMenuItem_actionPerformed", 
1499 function () {
1500 this.viewport.setColourText (this.colourTextMenuItem.getState ());
1501 this.alignPanel.paintAlignment (true);
1502 });
1503 Clazz.defineMethod (c$, "displayNonconservedMenuItem_actionPerformed", 
1504 function () {
1505 this.viewport.setShowUnconserved (this.displayNonconservedMenuItem.getState ());
1506 this.alignPanel.paintAlignment (true);
1507 });
1508 Clazz.defineMethod (c$, "wrapMenuItem_actionPerformed", 
1509 function () {
1510 this.viewport.setWrapAlignment (this.wrapMenuItem.getState ());
1511 this.alignPanel.setWrapAlignment (this.wrapMenuItem.getState ());
1512 this.scaleAbove.setEnabled (this.wrapMenuItem.getState ());
1513 this.scaleLeft.setEnabled (this.wrapMenuItem.getState ());
1514 this.scaleRight.setEnabled (this.wrapMenuItem.getState ());
1515 this.alignPanel.paintAlignment (true);
1516 });
1517 Clazz.defineMethod (c$, "overviewMenuItem_actionPerformed", 
1518 function () {
1519 if (this.alignPanel.overviewPanel != null) {
1520 return;
1521 }var frame =  new awt2swing.Frame ();
1522 var overview =  new jalview.appletgui.OverviewPanel (this.alignPanel);
1523 frame.add (overview);
1524 jalview.bin.JalviewLite.addFrame (frame, jalview.util.MessageManager.formatMessage ("label.overview_params",  Clazz.newArray (-1, [this.getTitle ()])), overview.getPreferredSize ().width, overview.getPreferredSize ().height + 50);
1525 frame.pack ();
1526 var ap = this.alignPanel;
1527 frame.addWindowListener (((Clazz.isClassDefined ("jalview.appletgui.AlignFrame$1") ? 0 : jalview.appletgui.AlignFrame.$AlignFrame$1$ ()), Clazz.innerTypeInstance (jalview.appletgui.AlignFrame$1, this, Clazz.cloneFinals ("ap", ap))));
1528 this.alignPanel.setOverviewPanel (overview);
1529 });
1530 Clazz.overrideMethod (c$, "changeColour", 
1531 function (cs) {
1532 var threshold = 0;
1533 if (cs != null) {
1534 if (this.viewport.getAbovePIDThreshold ()) {
1535 this.viewport.setThreshold (jalview.appletgui.SliderPanel.setPIDSliderSource (this.alignPanel, cs, "Background"));
1536 }if (this.viewport.getConservationSelected ()) {
1537 cs.setConservationApplied (true);
1538 this.viewport.setIncrement (jalview.appletgui.SliderPanel.setConservationSlider (this.alignPanel, cs, "Background"));
1539 } else {
1540 cs.setConservationApplied (false);
1541 }}this.viewport.setGlobalColourScheme (cs);
1542 if (this.alignPanel.getOverviewPanel () != null) {
1543 this.alignPanel.getOverviewPanel ().updateOverviewImage ();
1544 }jalview.structure.StructureSelectionManager.getStructureSelectionManager (this.viewport.applet).sequenceColoursChanged (this.alignPanel);
1545 this.alignPanel.paintAlignment (true);
1546 }, "jalview.schemes.ColourSchemeI");
1547 Clazz.defineMethod (c$, "modifyPID_actionPerformed", 
1548 function () {
1549 if (this.viewport.getAbovePIDThreshold () && this.viewport.getGlobalColourScheme () != null) {
1550 jalview.appletgui.SliderPanel.setPIDSliderSource (this.alignPanel, this.viewport.getGlobalColourScheme (), "Background");
1551 jalview.appletgui.SliderPanel.showPIDSlider ();
1552 }});
1553 Clazz.defineMethod (c$, "modifyConservation_actionPerformed", 
1554 function () {
1555 if (this.viewport.getConservationSelected () && this.viewport.getGlobalColourScheme () != null) {
1556 jalview.appletgui.SliderPanel.setConservationSlider (this.alignPanel, this.viewport.getGlobalColourScheme (), "Background");
1557 jalview.appletgui.SliderPanel.showConservationSlider ();
1558 }});
1559 Clazz.defineMethod (c$, "conservationMenuItem_actionPerformed", 
1560 function () {
1561 this.viewport.setConservationSelected (this.conservationMenuItem.getState ());
1562 this.viewport.setAbovePIDThreshold (false);
1563 this.abovePIDThreshold.setState (false);
1564 this.changeColour (this.viewport.getGlobalColourScheme ());
1565 this.modifyConservation_actionPerformed ();
1566 });
1567 Clazz.defineMethod (c$, "abovePIDThreshold_actionPerformed", 
1568 function () {
1569 this.viewport.setAbovePIDThreshold (this.abovePIDThreshold.getState ());
1570 this.conservationMenuItem.setState (false);
1571 this.viewport.setConservationSelected (false);
1572 this.changeColour (this.viewport.getGlobalColourScheme ());
1573 this.modifyPID_actionPerformed ();
1574 });
1575 Clazz.defineMethod (c$, "sortPairwiseMenuItem_actionPerformed", 
1576 function () {
1577 var oldOrder = this.viewport.getAlignment ().getSequencesArray ();
1578 jalview.analysis.AlignmentSorter.sortByPID (this.viewport.getAlignment (), this.viewport.getAlignment ().getSequenceAt (0), null);
1579 this.addHistoryItem ( new jalview.commands.OrderCommand ("Pairwise Sort", oldOrder, this.viewport.getAlignment ()));
1580 this.alignPanel.paintAlignment (true);
1581 });
1582 Clazz.defineMethod (c$, "sortIDMenuItem_actionPerformed", 
1583 function () {
1584 var oldOrder = this.viewport.getAlignment ().getSequencesArray ();
1585 jalview.analysis.AlignmentSorter.sortByID (this.viewport.getAlignment ());
1586 this.addHistoryItem ( new jalview.commands.OrderCommand ("ID Sort", oldOrder, this.viewport.getAlignment ()));
1587 this.alignPanel.paintAlignment (true);
1588 });
1589 Clazz.defineMethod (c$, "sortLengthMenuItem_actionPerformed", 
1590 function () {
1591 var oldOrder = this.viewport.getAlignment ().getSequencesArray ();
1592 jalview.analysis.AlignmentSorter.sortByLength (this.viewport.getAlignment ());
1593 this.addHistoryItem ( new jalview.commands.OrderCommand ("Length Sort", oldOrder, this.viewport.getAlignment ()));
1594 this.alignPanel.paintAlignment (true);
1595 });
1596 Clazz.defineMethod (c$, "sortGroupMenuItem_actionPerformed", 
1597 function () {
1598 var oldOrder = this.viewport.getAlignment ().getSequencesArray ();
1599 jalview.analysis.AlignmentSorter.sortByGroup (this.viewport.getAlignment ());
1600 this.addHistoryItem ( new jalview.commands.OrderCommand ("Group Sort", oldOrder, this.viewport.getAlignment ()));
1601 this.alignPanel.paintAlignment (true);
1602 });
1603 Clazz.defineMethod (c$, "removeRedundancyMenuItem_actionPerformed", 
1604 function () {
1605  new jalview.appletgui.RedundancyPanel (this.alignPanel);
1606 });
1607 Clazz.defineMethod (c$, "pairwiseAlignmentMenuItem_actionPerformed", 
1608 function () {
1609 if (this.viewport.getSelectionGroup () != null && this.viewport.getSelectionGroup ().getSize () > 1) {
1610 var frame =  new awt2swing.Frame ();
1611 frame.add ( new jalview.appletgui.PairwiseAlignPanel (this.alignPanel));
1612 jalview.bin.JalviewLite.addFrame (frame, jalview.util.MessageManager.getString ("action.pairwise_alignment"), 600, 500);
1613 }});
1614 Clazz.defineMethod (c$, "PCAMenuItem_actionPerformed", 
1615 function () {
1616 if (!this.viewport.getAlignment ().isAligned (false)) {
1617 var current;
1618 var Width = this.viewport.getAlignment ().getWidth ();
1619 for (var i = 0; i < this.viewport.getAlignment ().getSequences ().size (); i++) {
1620 current = this.viewport.getAlignment ().getSequenceAt (i);
1621 if (current.getLength () < Width) {
1622 current.insertCharAt (Width - 1, this.viewport.getGapCharacter ());
1623 }}
1624 this.alignPanel.paintAlignment (true);
1625 }if ((this.viewport.getSelectionGroup () != null && this.viewport.getSelectionGroup ().getSize () < 4 && this.viewport.getSelectionGroup ().getSize () > 0) || this.viewport.getAlignment ().getHeight () < 4) {
1626 return;
1627 }try {
1628  new jalview.appletgui.PCAPanel (this.viewport);
1629 } catch (ex) {
1630 if (Clazz.exceptionOf (ex, OutOfMemoryError)) {
1631 } else {
1632 throw ex;
1633 }
1634 }
1635 });
1636 Clazz.defineMethod (c$, "averageDistanceTreeMenuItem_actionPerformed", 
1637 function () {
1638 this.NewTreePanel ("AV", "PID", "Average distance tree using PID");
1639 });
1640 Clazz.defineMethod (c$, "neighbourTreeMenuItem_actionPerformed", 
1641 function () {
1642 this.NewTreePanel ("NJ", "PID", "Neighbour joining tree using PID");
1643 });
1644 Clazz.defineMethod (c$, "njTreeBlosumMenuItem_actionPerformed", 
1645 function () {
1646 this.NewTreePanel ("NJ", "BL", "Neighbour joining tree using BLOSUM62");
1647 });
1648 Clazz.defineMethod (c$, "avTreeBlosumMenuItem_actionPerformed", 
1649 function () {
1650 this.NewTreePanel ("AV", "BL", "Average distance tree using BLOSUM62");
1651 });
1652 Clazz.defineMethod (c$, "NewTreePanel", 
1653 function (type, pwType, title) {
1654 if (!this.viewport.getAlignment ().isAligned (false)) {
1655 var current;
1656 var Width = this.viewport.getAlignment ().getWidth ();
1657 for (var i = 0; i < this.viewport.getAlignment ().getSequences ().size (); i++) {
1658 current = this.viewport.getAlignment ().getSequenceAt (i);
1659 if (current.getLength () < Width) {
1660 current.insertCharAt (Width - 1, this.viewport.getGapCharacter ());
1661 }}
1662 this.alignPanel.paintAlignment (true);
1663 }if ((this.viewport.getSelectionGroup () != null && this.viewport.getSelectionGroup ().getSize () > 1) || (this.viewport.getAlignment ().getHeight () > 1)) {
1664 var tp =  new jalview.appletgui.TreePanel (this.alignPanel, type, pwType);
1665 this.addTreeMenuItem (tp, title);
1666 jalview.bin.JalviewLite.addFrame (tp, title, 600, 500);
1667 }}, "~S,~S,~S");
1668 Clazz.defineMethod (c$, "loadTree_actionPerformed", 
1669 function () {
1670 var cap =  new jalview.appletgui.CutAndPasteTransfer (true, this);
1671 cap.setText (jalview.util.MessageManager.getString ("label.paste_newick_tree_file"));
1672 cap.setTreeImport ();
1673 var frame =  new awt2swing.Frame ();
1674 frame.add (cap);
1675 jalview.bin.JalviewLite.addFrame (frame, jalview.util.MessageManager.getString ("label.paste_newick_file"), 400, 300);
1676 });
1677 Clazz.defineMethod (c$, "loadTree", 
1678 function (tree, treeFile) {
1679 var tp =  new jalview.appletgui.TreePanel (this.alignPanel, treeFile, jalview.util.MessageManager.getString ("label.load_tree_from_file"), tree);
1680 jalview.bin.JalviewLite.addFrame (tp, treeFile, 600, 500);
1681 this.addTreeMenuItem (tp, treeFile);
1682 }, "jalview.io.NewickFile,~S");
1683 Clazz.defineMethod (c$, "sortByTree", 
1684 function (treePanel, title) {
1685 var oldOrder = this.viewport.getAlignment ().getSequencesArray ();
1686 jalview.analysis.AlignmentSorter.sortByTree (this.viewport.getAlignment (), treePanel.getTree ());
1687 this.addHistoryItem ( new jalview.commands.OrderCommand (jalview.util.MessageManager.formatMessage ("label.order_by_params",  Clazz.newArray (-1, [title])), oldOrder, this.viewport.getAlignment ()));
1688 this.alignPanel.paintAlignment (true);
1689 }, "jalview.appletgui.TreePanel,~S");
1690 Clazz.defineMethod (c$, "addTreeMenuItem", 
1691 function (treePanel, title) {
1692 var item =  new awt2swing.MenuItem (title);
1693 this.sortByTreeMenu.add (item);
1694 item.addActionListener (((Clazz.isClassDefined ("jalview.appletgui.AlignFrame$2") ? 0 : jalview.appletgui.AlignFrame.$AlignFrame$2$ ()), Clazz.innerTypeInstance (jalview.appletgui.AlignFrame$2, this, Clazz.cloneFinals ("treePanel", treePanel, "title", title))));
1695 treePanel.addWindowListener (((Clazz.isClassDefined ("jalview.appletgui.AlignFrame$3") ? 0 : jalview.appletgui.AlignFrame.$AlignFrame$3$ ()), Clazz.innerTypeInstance (jalview.appletgui.AlignFrame$3, this, Clazz.cloneFinals ("treePanel", treePanel, "title", title, "item", item))));
1696 }, "jalview.appletgui.TreePanel,~S");
1697 Clazz.defineMethod (c$, "sortBy", 
1698 function (alorder, undoname) {
1699 var oldOrder = this.viewport.getAlignment ().getSequencesArray ();
1700 if ((this.viewport.applet, jalview.bin.JalviewLite).debug) {
1701 System.err.println ("Sorting " + alorder.getOrder ().size () + " in alignment '" + this.getTitle () + "'");
1702 }jalview.analysis.AlignmentSorter.sortBy (this.viewport.getAlignment (), alorder);
1703 if (undoname != null) {
1704 this.addHistoryItem ( new jalview.commands.OrderCommand (undoname, oldOrder, this.viewport.getAlignment ()));
1705 }this.alignPanel.paintAlignment (true);
1706 return true;
1707 }, "jalview.datamodel.AlignmentOrder,~S");
1708 Clazz.defineMethod (c$, "documentation_actionPerformed", 
1709 function () {
1710 this.alignPanel.av.applet.openJalviewHelpUrl ();
1711 });
1712 Clazz.defineMethod (c$, "about_actionPerformed", 
1713 function () {
1714 if (!Clazz.isClassDefined ("jalview.appletgui.AlignFrame$1AboutPanel")) {
1715 jalview.appletgui.AlignFrame.$AlignFrame$1AboutPanel$ ();
1716 }
1717 var frame =  new awt2swing.Frame ();
1718 frame.add (Clazz.innerTypeInstance (jalview.appletgui.AlignFrame$1AboutPanel, this, null, jalview.bin.JalviewLite.getVersion (), jalview.bin.JalviewLite.getBuildDate ()));
1719 jalview.bin.JalviewLite.addFrame (frame, jalview.util.MessageManager.getString ("label.jalview"), 580, 220);
1720 });
1721 Clazz.defineMethod (c$, "showURL", 
1722 function (url, target) {
1723 if (this.viewport.applet == null) {
1724 System.out.println ("Not running as applet - no browser available.");
1725 } else {
1726 this.viewport.applet.showURL (url, target);
1727 }}, "~S,~S");
1728 Clazz.defineMethod (c$, "jbInit", 
1729 ($fz = function () {
1730 this.setMenuBar (this.alignFrameMenuBar);
1731 this.inputText.setLabel (jalview.util.MessageManager.getString ("label.input_from_textbox"));
1732 this.inputText.addActionListener (this);
1733 var outputTextboxMenu =  new awt2swing.Menu (jalview.util.MessageManager.getString ("label.out_to_textbox"));
1734 for (var i = 0; i < jalview.io.AppletFormatAdapter.WRITEABLE_FORMATS.length; i++) {
1735 var item =  new awt2swing.MenuItem (jalview.io.AppletFormatAdapter.WRITEABLE_FORMATS[i]);
1736 item.addActionListener (((Clazz.isClassDefined ("jalview.appletgui.AlignFrame$4") ? 0 : jalview.appletgui.AlignFrame.$AlignFrame$4$ ()), Clazz.innerTypeInstance (jalview.appletgui.AlignFrame$4, this, null)));
1737 outputTextboxMenu.add (item);
1738 }
1739 this.closeMenuItem.addActionListener (this);
1740 this.loadApplication.addActionListener (this);
1741 this.$loadTree.addActionListener (this);
1742 this.$loadAnnotations.addActionListener (this);
1743 this.$outputFeatures.addActionListener (this);
1744 this.$outputAnnotations.addActionListener (this);
1745 this.undoMenuItem.setEnabled (false);
1746 this.undoMenuItem.setLabel (jalview.util.MessageManager.getString ("action.undo"));
1747 this.undoMenuItem.addActionListener (this);
1748 this.redoMenuItem.setEnabled (false);
1749 this.redoMenuItem.setLabel (jalview.util.MessageManager.getString ("action.redo"));
1750 this.redoMenuItem.addActionListener (this);
1751 this.copy.setLabel (jalview.util.MessageManager.getString ("action.copy"));
1752 this.copy.addActionListener (this);
1753 this.cut.setLabel (jalview.util.MessageManager.getString ("action.cut"));
1754 this.cut.addActionListener (this);
1755 this.$delete.setLabel (jalview.util.MessageManager.getString ("action.delete"));
1756 this.$delete.addActionListener (this);
1757 this.pasteMenu.setLabel (jalview.util.MessageManager.getString ("action.paste"));
1758 this.pasteNew.setLabel (jalview.util.MessageManager.getString ("label.to_new_alignment"));
1759 this.pasteNew.addActionListener (this);
1760 this.pasteThis.setLabel (jalview.util.MessageManager.getString ("label.to_this_alignment"));
1761 this.pasteThis.addActionListener (this);
1762 this.remove2LeftMenuItem.setLabel (jalview.util.MessageManager.getString ("action.remove_left"));
1763 this.remove2LeftMenuItem.addActionListener (this);
1764 this.remove2RightMenuItem.setLabel (jalview.util.MessageManager.getString ("action.remove_right"));
1765 this.remove2RightMenuItem.addActionListener (this);
1766 this.removeGappedColumnMenuItem.setLabel (jalview.util.MessageManager.getString ("action.remove_empty_columns"));
1767 this.removeGappedColumnMenuItem.addActionListener (this);
1768 this.removeAllGapsMenuItem.setLabel (jalview.util.MessageManager.getString ("action.remove_all_gaps"));
1769 this.removeAllGapsMenuItem.addActionListener (this);
1770 this.removeRedundancyMenuItem.setLabel (jalview.util.MessageManager.getString ("action.remove_redundancy").concat ("..."));
1771 this.removeRedundancyMenuItem.addActionListener (this);
1772 this.findMenuItem.setLabel (jalview.util.MessageManager.getString ("action.find"));
1773 this.findMenuItem.addActionListener (this);
1774 this.selectAllSequenceMenuItem.addActionListener (this);
1775 this.deselectAllSequenceMenuItem.addActionListener (this);
1776 this.invertSequenceMenuItem.setLabel (jalview.util.MessageManager.getString ("action.invert_sequence_selection"));
1777 this.invertSequenceMenuItem.addActionListener (this);
1778 this.invertColSel.setLabel (jalview.util.MessageManager.getString ("action.invert_column_selection"));
1779 this.invertColSel.addActionListener (this);
1780 this.deleteGroups.setLabel (jalview.util.MessageManager.getString ("action.undefine_groups"));
1781 this.deleteGroups.addActionListener (this);
1782 this.grpsFromSelection.setLabel (jalview.util.MessageManager.getString ("action.make_groups_selection"));
1783 this.grpsFromSelection.addActionListener (this);
1784 this.createGroup.setLabel (jalview.util.MessageManager.getString ("action.create_group"));
1785 this.unGroup.setLabel (jalview.util.MessageManager.getString ("action.remove_group"));
1786 this.annotationColumnSelection.setLabel ("Select by Annotation");
1787 this.annotationColumnSelection.addActionListener (this);
1788 this.$newView.setLabel (jalview.util.MessageManager.getString ("action.new_view"));
1789 this.$newView.addActionListener (this);
1790 var showMenu =  new awt2swing.Menu (jalview.util.MessageManager.getString ("action.show"));
1791 this.showColumns.setLabel (jalview.util.MessageManager.getString ("label.all_columns"));
1792 this.showSeqs.setLabel (jalview.util.MessageManager.getString ("label.all_sequences"));
1793 var hideMenu =  new awt2swing.Menu (jalview.util.MessageManager.getString ("action.hide"));
1794 this.hideColumns.setLabel (jalview.util.MessageManager.getString ("label.selected_columns"));
1795 this.hideSequences.setLabel (jalview.util.MessageManager.getString ("label.selected_sequences"));
1796 this.hideAllButSelection.setLabel (jalview.util.MessageManager.getString ("label.all_but_selected_region"));
1797 this.hideAllSelection.setLabel (jalview.util.MessageManager.getString ("label.selected_region"));
1798 this.showAllHidden.setLabel (jalview.util.MessageManager.getString ("label.all_sequences_columns"));
1799 this.showColumns.addActionListener (this);
1800 this.showSeqs.addActionListener (this);
1801 this.hideColumns.addActionListener (this);
1802 this.hideSequences.addActionListener (this);
1803 this.hideAllButSelection.addActionListener (this);
1804 this.hideAllSelection.addActionListener (this);
1805 this.showAllHidden.addActionListener (this);
1806 this.featureSettings.setLabel (jalview.util.MessageManager.getString ("label.feature_settings"));
1807 this.featureSettings.addActionListener (this);
1808 this.sequenceFeatures.setLabel (jalview.util.MessageManager.getString ("label.show_sequence_features"));
1809 this.sequenceFeatures.addItemListener (this);
1810 this.sequenceFeatures.setState (false);
1811 this.followMouseOverFlag.setLabel (jalview.util.MessageManager.getString ("label.automatic_scrolling"));
1812 this.followMouseOverFlag.addItemListener (this);
1813 this.alProperties.addActionListener (this);
1814 this.overviewMenuItem.setLabel (jalview.util.MessageManager.getString ("label.overview_window"));
1815 this.overviewMenuItem.addActionListener (this);
1816 this.annotationPanelMenuItem.setLabel (jalview.util.MessageManager.getString ("label.show_annotations"));
1817 this.annotationPanelMenuItem.addItemListener (this);
1818 this.showGroupConsensus.setLabel (jalview.util.MessageManager.getString ("label.group_consensus"));
1819 this.showGroupConservation.setLabel (jalview.util.MessageManager.getString ("label.group_conservation"));
1820 this.showConsensusHistogram.setLabel (jalview.util.MessageManager.getString ("label.show_consensus_histogram"));
1821 this.showSequenceLogo.setLabel (jalview.util.MessageManager.getString ("label.show_consensus_logo"));
1822 this.normSequenceLogo.setLabel (jalview.util.MessageManager.getString ("label.norm_consensus_logo"));
1823 this.applyAutoAnnotationSettings.setLabel (jalview.util.MessageManager.getString ("label.apply_all_groups"));
1824 this.applyAutoAnnotationSettings.setState (true);
1825 var autoAnnMenu =  new awt2swing.Menu (jalview.util.MessageManager.getString ("label.autocalculated_annotation"));
1826 this.showGroupConsensus.addItemListener (this);
1827 this.showGroupConservation.addItemListener (this);
1828 this.showConsensusHistogram.addItemListener (this);
1829 this.showSequenceLogo.addItemListener (this);
1830 this.normSequenceLogo.addItemListener (this);
1831 this.applyAutoAnnotationSettings.addItemListener (this);
1832 this.showAlignmentAnnotations =  new awt2swing.CheckboxMenuItem (jalview.util.MessageManager.getString ("label.show_all_al_annotations"));
1833 this.showSequenceAnnotations =  new awt2swing.CheckboxMenuItem (jalview.util.MessageManager.getString ("label.show_all_seq_annotations"));
1834 this.sortAnnBySequence =  new awt2swing.CheckboxMenuItem (jalview.util.MessageManager.getString ("label.sort_annotations_by_sequence"));
1835 this.sortAnnByLabel =  new awt2swing.CheckboxMenuItem (jalview.util.MessageManager.getString ("label.sort_annotations_by_label"));
1836 this.showAutoFirst =  new awt2swing.CheckboxMenuItem (jalview.util.MessageManager.getString ("label.show_first"));
1837 this.showAutoLast =  new awt2swing.CheckboxMenuItem (jalview.util.MessageManager.getString ("label.show_last"));
1838 this.showAlignmentAnnotations.addItemListener (this);
1839 this.showSequenceAnnotations.addItemListener (this);
1840 this.sortAnnBySequence.addItemListener (this);
1841 this.sortAnnByLabel.addItemListener (this);
1842 this.showAutoFirst.addItemListener (this);
1843 this.showAutoLast.addItemListener (this);
1844 this.$font.setLabel (jalview.util.MessageManager.getString ("action.font"));
1845 this.$font.addActionListener (this);
1846 this.scaleAbove.setLabel (jalview.util.MessageManager.getString ("action.scale_above"));
1847 this.scaleAbove.setState (true);
1848 this.scaleAbove.setEnabled (false);
1849 this.scaleAbove.addItemListener (this);
1850 this.scaleLeft.setEnabled (false);
1851 this.scaleLeft.setState (true);
1852 this.scaleLeft.setLabel (jalview.util.MessageManager.getString ("action.scale_left"));
1853 this.scaleLeft.addItemListener (this);
1854 this.scaleRight.setEnabled (false);
1855 this.scaleRight.setState (true);
1856 this.scaleRight.setLabel (jalview.util.MessageManager.getString ("action.scale_right"));
1857 this.scaleRight.addItemListener (this);
1858 this.viewBoxesMenuItem.setLabel (jalview.util.MessageManager.getString ("action.boxes"));
1859 this.viewBoxesMenuItem.setState (true);
1860 this.viewBoxesMenuItem.addItemListener (this);
1861 this.viewTextMenuItem.setLabel (jalview.util.MessageManager.getString ("action.text"));
1862 this.viewTextMenuItem.setState (true);
1863 this.viewTextMenuItem.addItemListener (this);
1864 this.colourTextMenuItem.setLabel (jalview.util.MessageManager.getString ("label.colour_text"));
1865 this.colourTextMenuItem.addItemListener (this);
1866 this.displayNonconservedMenuItem.setLabel (jalview.util.MessageManager.getString ("label.show_non_conversed"));
1867 this.displayNonconservedMenuItem.addItemListener (this);
1868 this.wrapMenuItem.setLabel (jalview.util.MessageManager.getString ("action.wrap"));
1869 this.wrapMenuItem.addItemListener (this);
1870 this.renderGapsMenuItem.setLabel (jalview.util.MessageManager.getString ("action.show_gaps"));
1871 this.renderGapsMenuItem.setState (true);
1872 this.renderGapsMenuItem.addItemListener (this);
1873 this.centreColumnLabelFlag.setLabel (jalview.util.MessageManager.getString ("label.centre_column_labels"));
1874 this.centreColumnLabelFlag.addItemListener (this);
1875 this.seqLimits.setState (true);
1876 this.seqLimits.setLabel (jalview.util.MessageManager.getString ("label.show_sequence_limits"));
1877 this.seqLimits.addItemListener (this);
1878 this.applyToAllGroups.setLabel (jalview.util.MessageManager.getString ("label.apply_colour_to_all_groups"));
1879 this.applyToAllGroups.setState (true);
1880 this.applyToAllGroups.addItemListener (this);
1881 this.clustalColour.setLabel (jalview.util.MessageManager.getString ("label.clustalx"));
1882 this.clustalColour.addActionListener (this);
1883 this.zappoColour.setLabel (jalview.util.MessageManager.getString ("label.zappo"));
1884 this.zappoColour.addActionListener (this);
1885 this.taylorColour.setLabel (jalview.util.MessageManager.getString ("label.taylor"));
1886 this.taylorColour.addActionListener (this);
1887 this.hydrophobicityColour.setLabel (jalview.util.MessageManager.getString ("label.hydrophobicity"));
1888 this.hydrophobicityColour.addActionListener (this);
1889 this.helixColour.setLabel (jalview.util.MessageManager.getString ("label.helix_propensity"));
1890 this.helixColour.addActionListener (this);
1891 this.strandColour.setLabel (jalview.util.MessageManager.getString ("label.strand_propensity"));
1892 this.strandColour.addActionListener (this);
1893 this.turnColour.setLabel (jalview.util.MessageManager.getString ("label.turn_propensity"));
1894 this.turnColour.addActionListener (this);
1895 this.buriedColour.setLabel (jalview.util.MessageManager.getString ("label.buried_index"));
1896 this.buriedColour.addActionListener (this);
1897 this.purinePyrimidineColour.setLabel (jalview.util.MessageManager.getString ("label.purine_pyrimidine"));
1898 this.purinePyrimidineColour.addActionListener (this);
1899 this.RNAInteractionColour.setLabel (jalview.util.MessageManager.getString ("label.rna_interaction"));
1900 this.RNAInteractionColour.addActionListener (this);
1901 this.RNAHelixColour.setLabel (jalview.util.MessageManager.getString ("action.by_rna_helixes"));
1902 this.RNAHelixColour.addActionListener (this);
1903 this.userDefinedColour.setLabel (jalview.util.MessageManager.getString ("action.user_defined"));
1904 this.userDefinedColour.addActionListener (this);
1905 this.PIDColour.setLabel (jalview.util.MessageManager.getString ("label.percentage_identity"));
1906 this.PIDColour.addActionListener (this);
1907 this.BLOSUM62Colour.setLabel (jalview.util.MessageManager.getString ("label.blosum62_score"));
1908 this.BLOSUM62Colour.addActionListener (this);
1909 this.tcoffeeColour.setLabel (jalview.util.MessageManager.getString ("label.tcoffee_scores"));
1910 this.tcoffeeColour.setEnabled (false);
1911 this.tcoffeeColour.addActionListener (this);
1912 this.conservationMenuItem.setLabel (jalview.util.MessageManager.getString ("action.by_conservation"));
1913 this.conservationMenuItem.addItemListener (this);
1914 this.noColourmenuItem.setLabel (jalview.util.MessageManager.getString ("label.none"));
1915 this.noColourmenuItem.addActionListener (this);
1916 this.abovePIDThreshold.setLabel (jalview.util.MessageManager.getString ("label.above_identity_threshold"));
1917 this.abovePIDThreshold.addItemListener (this);
1918 this.nucleotideColour.setLabel (jalview.util.MessageManager.getString ("label.nucleotide"));
1919 this.nucleotideColour.addActionListener (this);
1920 this.modifyPID.setLabel (jalview.util.MessageManager.getString ("label.modify_identity_thereshold"));
1921 this.modifyPID.addActionListener (this);
1922 this.modifyConservation.setLabel (jalview.util.MessageManager.getString ("label.modify_conservation_thereshold"));
1923 this.modifyConservation.addActionListener (this);
1924 this.annotationColour.setLabel (jalview.util.MessageManager.getString ("action.by_annotation"));
1925 this.annotationColour.addActionListener (this);
1926 this.sortPairwiseMenuItem.setLabel (jalview.util.MessageManager.getString ("action.by_pairwise_id"));
1927 this.sortPairwiseMenuItem.addActionListener (this);
1928 this.sortIDMenuItem.setLabel (jalview.util.MessageManager.getString ("action.by_id"));
1929 this.sortIDMenuItem.addActionListener (this);
1930 this.sortLengthMenuItem.setLabel (jalview.util.MessageManager.getString ("action.by_length"));
1931 this.sortLengthMenuItem.addActionListener (this);
1932 this.sortGroupMenuItem.setLabel (jalview.util.MessageManager.getString ("action.by_group"));
1933 this.sortGroupMenuItem.addActionListener (this);
1934 this.pairwiseAlignmentMenuItem.setLabel (jalview.util.MessageManager.getString ("action.pairwise_alignment"));
1935 this.pairwiseAlignmentMenuItem.addActionListener (this);
1936 this.PCAMenuItem.setLabel (jalview.util.MessageManager.getString ("label.principal_component_analysis"));
1937 this.PCAMenuItem.addActionListener (this);
1938 this.autoCalculate =  new awt2swing.CheckboxMenuItem (jalview.util.MessageManager.getString ("label.autocalculate_consensus"), true);
1939 this.averageDistanceTreeMenuItem.setLabel (jalview.util.MessageManager.getString ("label.average_distance_identity"));
1940 this.averageDistanceTreeMenuItem.addActionListener (this);
1941 this.neighbourTreeMenuItem.setLabel (jalview.util.MessageManager.getString ("label.neighbour_joining_identity"));
1942 this.neighbourTreeMenuItem.addActionListener (this);
1943 this.avDistanceTreeBlosumMenuItem.setLabel (jalview.util.MessageManager.getString ("label.average_distance_bloslum62"));
1944 this.avDistanceTreeBlosumMenuItem.addActionListener (this);
1945 this.njTreeBlosumMenuItem.setLabel (jalview.util.MessageManager.getString ("label.neighbour_blosum62"));
1946 this.njTreeBlosumMenuItem.addActionListener (this);
1947 this.sortByTreeMenu.setLabel (jalview.util.MessageManager.getString ("action.by_tree_order"));
1948 var sortMenu =  new awt2swing.Menu (jalview.util.MessageManager.getString ("action.sort"));
1949 var calculateTreeMenu =  new awt2swing.Menu (jalview.util.MessageManager.getString ("action.calculate_tree"));
1950 this.autoCalculate.addItemListener (this);
1951 this.$sortByTree.addItemListener (this);
1952 var helpMenu =  new awt2swing.Menu (jalview.util.MessageManager.getString ("action.help"));
1953 this.documentation.setLabel (jalview.util.MessageManager.getString ("label.documentation"));
1954 this.documentation.addActionListener (this);
1955 this.about.setLabel (jalview.util.MessageManager.getString ("label.about"));
1956 this.about.addActionListener (this);
1957 this.alignFrameMenuBar.add (this.fileMenu);
1958 var editMenu =  new awt2swing.Menu (jalview.util.MessageManager.getString ("action.edit"));
1959 this.alignFrameMenuBar.add (editMenu);
1960 var selectMenu =  new awt2swing.Menu (jalview.util.MessageManager.getString ("action.select"));
1961 this.alignFrameMenuBar.add (selectMenu);
1962 var viewMenu =  new awt2swing.Menu (jalview.util.MessageManager.getString ("action.view"));
1963 this.alignFrameMenuBar.add (viewMenu);
1964 var annotationsMenu =  new awt2swing.Menu (jalview.util.MessageManager.getString ("action.annotations"));
1965 this.alignFrameMenuBar.add (annotationsMenu);
1966 var formatMenu =  new awt2swing.Menu (jalview.util.MessageManager.getString ("action.format"));
1967 this.alignFrameMenuBar.add (formatMenu);
1968 var colourMenu =  new awt2swing.Menu (jalview.util.MessageManager.getString ("action.colour"));
1969 this.alignFrameMenuBar.add (colourMenu);
1970 var calculateMenu =  new awt2swing.Menu (jalview.util.MessageManager.getString ("action.calculate"));
1971 this.alignFrameMenuBar.add (calculateMenu);
1972 this.alignFrameMenuBar.add (helpMenu);
1973 this.fileMenu.add (this.inputText);
1974 this.fileMenu.add (this.$loadTree);
1975 this.fileMenu.add (this.$loadAnnotations);
1976 this.fileMenu.addSeparator ();
1977 this.fileMenu.add (outputTextboxMenu);
1978 this.fileMenu.add (this.$outputFeatures);
1979 this.fileMenu.add (this.$outputAnnotations);
1980 if (this.jalviewServletURL != null) {
1981 this.fileMenu.add (this.loadApplication);
1982 }this.fileMenu.addSeparator ();
1983 this.fileMenu.add (this.closeMenuItem);
1984 editMenu.add (this.undoMenuItem);
1985 editMenu.add (this.redoMenuItem);
1986 editMenu.add (this.cut);
1987 editMenu.add (this.copy);
1988 this.pasteMenu.add (this.pasteNew);
1989 this.pasteMenu.add (this.pasteThis);
1990 editMenu.add (this.pasteMenu);
1991 editMenu.add (this.$delete);
1992 editMenu.addSeparator ();
1993 editMenu.add (this.remove2LeftMenuItem);
1994 editMenu.add (this.remove2RightMenuItem);
1995 editMenu.add (this.removeGappedColumnMenuItem);
1996 editMenu.add (this.removeAllGapsMenuItem);
1997 editMenu.add (this.removeRedundancyMenuItem);
1998 selectMenu.add (this.findMenuItem);
1999 selectMenu.addSeparator ();
2000 selectMenu.add (this.selectAllSequenceMenuItem);
2001 selectMenu.add (this.deselectAllSequenceMenuItem);
2002 selectMenu.add (this.invertSequenceMenuItem);
2003 selectMenu.add (this.invertColSel);
2004 selectMenu.add (this.createGroup);
2005 selectMenu.add (this.unGroup);
2006 selectMenu.add (this.grpsFromSelection);
2007 selectMenu.add (this.deleteGroups);
2008 selectMenu.add (this.annotationColumnSelection);
2009 viewMenu.add (this.$newView);
2010 viewMenu.addSeparator ();
2011 showMenu.add (this.showColumns);
2012 showMenu.add (this.showSeqs);
2013 showMenu.add (this.showAllHidden);
2014 viewMenu.add (showMenu);
2015 hideMenu.add (this.hideColumns);
2016 hideMenu.add (this.hideSequences);
2017 hideMenu.add (this.hideAllSelection);
2018 hideMenu.add (this.hideAllButSelection);
2019 viewMenu.add (hideMenu);
2020 viewMenu.addSeparator ();
2021 viewMenu.add (this.followMouseOverFlag);
2022 viewMenu.addSeparator ();
2023 viewMenu.add (this.sequenceFeatures);
2024 viewMenu.add (this.featureSettings);
2025 viewMenu.addSeparator ();
2026 viewMenu.add (this.alProperties);
2027 viewMenu.addSeparator ();
2028 viewMenu.add (this.overviewMenuItem);
2029 annotationsMenu.add (this.annotationPanelMenuItem);
2030 annotationsMenu.addSeparator ();
2031 annotationsMenu.add (this.showAlignmentAnnotations);
2032 annotationsMenu.add (this.showSequenceAnnotations);
2033 annotationsMenu.add (this.sortAnnBySequence);
2034 annotationsMenu.add (this.sortAnnByLabel);
2035 annotationsMenu.addSeparator ();
2036 autoAnnMenu.add (this.showAutoFirst);
2037 autoAnnMenu.add (this.showAutoLast);
2038 autoAnnMenu.addSeparator ();
2039 autoAnnMenu.add (this.applyAutoAnnotationSettings);
2040 autoAnnMenu.add (this.showConsensusHistogram);
2041 autoAnnMenu.add (this.showSequenceLogo);
2042 autoAnnMenu.add (this.normSequenceLogo);
2043 autoAnnMenu.addSeparator ();
2044 autoAnnMenu.add (this.showGroupConservation);
2045 autoAnnMenu.add (this.showGroupConsensus);
2046 annotationsMenu.add (autoAnnMenu);
2047 formatMenu.add (this.$font);
2048 formatMenu.add (this.seqLimits);
2049 formatMenu.add (this.wrapMenuItem);
2050 formatMenu.add (this.scaleAbove);
2051 formatMenu.add (this.scaleLeft);
2052 formatMenu.add (this.scaleRight);
2053 formatMenu.add (this.viewBoxesMenuItem);
2054 formatMenu.add (this.viewTextMenuItem);
2055 formatMenu.add (this.colourTextMenuItem);
2056 formatMenu.add (this.displayNonconservedMenuItem);
2057 formatMenu.add (this.renderGapsMenuItem);
2058 formatMenu.add (this.centreColumnLabelFlag);
2059 colourMenu.add (this.applyToAllGroups);
2060 colourMenu.addSeparator ();
2061 colourMenu.add (this.noColourmenuItem);
2062 colourMenu.add (this.clustalColour);
2063 colourMenu.add (this.BLOSUM62Colour);
2064 colourMenu.add (this.PIDColour);
2065 colourMenu.add (this.zappoColour);
2066 colourMenu.add (this.taylorColour);
2067 colourMenu.add (this.hydrophobicityColour);
2068 colourMenu.add (this.helixColour);
2069 colourMenu.add (this.strandColour);
2070 colourMenu.add (this.turnColour);
2071 colourMenu.add (this.buriedColour);
2072 colourMenu.add (this.nucleotideColour);
2073 colourMenu.add (this.purinePyrimidineColour);
2074 colourMenu.add (this.tcoffeeColour);
2075 colourMenu.add (this.userDefinedColour);
2076 colourMenu.addSeparator ();
2077 colourMenu.add (this.conservationMenuItem);
2078 colourMenu.add (this.modifyConservation);
2079 colourMenu.add (this.abovePIDThreshold);
2080 colourMenu.add (this.modifyPID);
2081 colourMenu.add (this.annotationColour);
2082 colourMenu.add (this.RNAHelixColour);
2083 sortMenu.add (this.sortIDMenuItem);
2084 sortMenu.add (this.sortLengthMenuItem);
2085 sortMenu.add (this.sortByTreeMenu);
2086 sortMenu.add (this.sortGroupMenuItem);
2087 sortMenu.add (this.sortPairwiseMenuItem);
2088 calculateMenu.add (sortMenu);
2089 calculateTreeMenu.add (this.averageDistanceTreeMenuItem);
2090 calculateTreeMenu.add (this.neighbourTreeMenuItem);
2091 calculateTreeMenu.add (this.avDistanceTreeBlosumMenuItem);
2092 calculateTreeMenu.add (this.njTreeBlosumMenuItem);
2093 calculateMenu.add (calculateTreeMenu);
2094 calculateMenu.addSeparator ();
2095 calculateMenu.add (this.pairwiseAlignmentMenuItem);
2096 calculateMenu.add (this.PCAMenuItem);
2097 calculateMenu.add (this.autoCalculate);
2098 calculateMenu.add (this.$sortByTree);
2099 helpMenu.add (this.documentation);
2100 helpMenu.add (this.about);
2101 this.statusBar.setBackground (java.awt.Color.white);
2102 this.statusBar.setFont ( new java.awt.Font ("Verdana", 0, 11));
2103 this.setStatus (jalview.util.MessageManager.getString ("label.status_bar"));
2104 this.add (this.statusBar, "South");
2105 }, $fz.isPrivate = true, $fz));
2106 Clazz.overrideMethod (c$, "setStatus", 
2107 function (string) {
2108 this.statusBar.setText (string);
2109 }, "~S");
2110 Clazz.defineMethod (c$, "createAlignFrameWindow", 
2111 function (reallyEmbedded) {
2112 if (reallyEmbedded) {
2113 this.embedAlignFrameInApplet (this.viewport.applet);
2114 } else {
2115 if (this.embedMenuIfNeeded (this.alignPanel)) {
2116 this.alignPanel.setSize (this.getSize ().width, this.getSize ().height - this.statusBar.getHeight ());
2117 }this.add (this.statusBar, "South");
2118 this.add (this.alignPanel, "Center");
2119 jalview.bin.JalviewLite.addFrame (this, this.getTitle (), this.frameWidth, this.frameHeight);
2120 }}, "~B");
2121 Clazz.defineMethod (c$, "embedAlignFrameInApplet", 
2122 function (theApplet) {
2123 this.fileMenu.remove (this.closeMenuItem);
2124 this.fileMenu.remove (3);
2125 this.embeddedMenu = this.makeEmbeddedPopupMenu (this.alignFrameMenuBar, false, false);
2126 theApplet.setLayout ( new java.awt.BorderLayout ());
2127 theApplet.add (this.embeddedMenu, "North");
2128 theApplet.add (this.statusBar, "South");
2129 this.alignPanel.setSize (theApplet.getSize ().width, theApplet.getSize ().height - this.embeddedMenu.getHeight () - this.statusBar.getHeight ());
2130 theApplet.add (this.alignPanel, "Center");
2131 var me = this;
2132 theApplet.addFocusListener (((Clazz.isClassDefined ("jalview.appletgui.AlignFrame$5") ? 0 : jalview.appletgui.AlignFrame.$AlignFrame$5$ ()), Clazz.innerTypeInstance (jalview.appletgui.AlignFrame$5, this, Clazz.cloneFinals ("theApplet", theApplet, "me", me))));
2133 theApplet.validate ();
2134 }, "jalview.bin.JalviewLite");
2135 Clazz.defineMethod (c$, "addStructureViewInstance", 
2136 function (jmolviewer, sequenceIds) {
2137 return null;
2138 }, "~O,~A");
2139 Clazz.defineMethod (c$, "addPdbFile", 
2140 function (sequenceId, pdbEntryString, pdbFile) {
2141 var toaddpdb = this.viewport.getAlignment ().findName (sequenceId);
2142 var needtoadd = false;
2143 if (toaddpdb != null) {
2144 var pdbe = toaddpdb.getPDBId ();
2145 var pdbentry = null;
2146 if (pdbe != null && pdbe.size () > 0) {
2147 for (var pe = 0, peSize = pdbe.size (); pe < peSize; pe++) {
2148 pdbentry = pdbe.elementAt (pe);
2149 if (!pdbentry.getId ().equals (pdbEntryString) && !pdbentry.getFile ().equals (pdbFile)) {
2150 pdbentry = null;
2151 } else {
2152 continue;
2153 }}
2154 }if (pdbentry == null) {
2155 pdbentry =  new jalview.datamodel.PDBEntry ();
2156 pdbentry.setId (pdbEntryString);
2157 pdbentry.setFile (pdbFile);
2158 needtoadd = true;
2159 }var protocol = jalview.io.AppletFormatAdapter.resolveProtocol (pdbFile, "PDB");
2160 if (protocol == null) {
2161 return false;
2162 }if (needtoadd) {
2163 if (pdbentry.getProperty () == null) {
2164 pdbentry.setProperty ( new java.util.Hashtable ());
2165 }pdbentry.getProperty ().put ("protocol", protocol);
2166 toaddpdb.addPDBId (pdbentry);
2167 this.alignPanel.getStructureSelectionManager ().registerPDBEntry (pdbentry);
2168 }}return true;
2169 }, "~S,~S,~S");
2170 Clazz.defineMethod (c$, "cleanSeqChainArrays", 
2171 ($fz = function (seqs, chains) {
2172 if (seqs != null) {
2173 var sequences =  new java.util.Vector ();
2174 for (var i = 0; i < seqs.length; i++) {
2175 if (seqs[i] != null) {
2176 sequences.addElement ( Clazz.newArray (-1, [seqs[i], (chains != null) ? chains[i] : null]));
2177 }}
2178 seqs =  new Array (sequences.size ());
2179 chains =  new Array (sequences.size ());
2180 for (var i = 0, isize = sequences.size (); i < isize; i++) {
2181 var oj = sequences.elementAt (i);
2182 seqs[i] = oj[0];
2183 chains[i] = oj[1];
2184 }
2185 }return  Clazz.newArray (-1, [seqs, chains]);
2186 }, $fz.isPrivate = true, $fz), "~A,~A");
2187 Clazz.defineMethod (c$, "newStructureView", 
2188 function (applet, pdb, seqs, chains, protocol) {
2189 var sqch = this.cleanSeqChainArrays (seqs, chains);
2190 seqs = sqch[0];
2191 chains = sqch[1];
2192 if (seqs == null || seqs.length == 0) {
2193 System.err.println ("JalviewLite.AlignFrame:newStructureView: No sequence to bind structure to.");
2194 }if (protocol == null || protocol.trim ().length == 0 || protocol.equals ("null")) {
2195 protocol = pdb.getProperty ().get ("protocol");
2196 if (protocol == null) {
2197 System.err.println ("Couldn't work out protocol to open structure: " + pdb.getId ());
2198 return;
2199 }}if (applet.useXtrnalSviewer) {
2200 if (jalview.structure.StructureSelectionManager.getStructureSelectionManager (applet).setMapping (seqs, chains, pdb.getFile (), protocol) == null) {
2201 System.err.println ("Failed to map " + pdb.getFile () + " (" + protocol + ") to any sequences");
2202 }return;
2203 }if (applet.isAlignPdbStructures () && applet.jmolAvailable) {
2204 var ajm = null;
2205 var tajm;
2206 var jmols = applet.getAppletWindow (jalview.appletgui.AppletJmol);
2207 for (var i = 0, iSize = jmols.size (); i < iSize; i++) {
2208 tajm = jmols.elementAt (i);
2209 if (tajm.ap.alignFrame === this) {
2210 ajm = tajm;
2211 break;
2212 }}
2213 if (ajm != null) {
2214 System.err.println ("Incremental adding and aligning structure to existing Jmol view not yet implemented.");
2215 ajm = null;
2216 }} new jalview.appletgui.AppletJmol (pdb, seqs, chains, this.alignPanel, protocol);
2217 jalview.bin.JalviewLite.lastFrameX += 40;
2218 jalview.bin.JalviewLite.lastFrameY += 40;
2219 }, "jalview.bin.JalviewLite,jalview.datamodel.PDBEntry,~A,~A,~S");
2220 Clazz.defineMethod (c$, "alignedStructureView", 
2221 function (applet, pdb, seqs, chains, protocols) {
2222 System.err.println ("Aligned Structure View: Not yet implemented.");
2223 }, "jalview.bin.JalviewLite,~A,~A,~A,~A");
2224 Clazz.defineMethod (c$, "select", 
2225 function (sel, csel) {
2226 this.alignPanel.seqPanel.selection (sel, csel, null);
2227 }, "jalview.datamodel.SequenceGroup,jalview.datamodel.ColumnSelection");
2228 Clazz.defineMethod (c$, "scrollTo", 
2229 function (row, column) {
2230 this.alignPanel.seqPanel.scrollTo (row, column);
2231 }, "~N,~N");
2232 Clazz.defineMethod (c$, "scrollToRow", 
2233 function (row) {
2234 this.alignPanel.seqPanel.scrollToRow (row);
2235 }, "~N");
2236 Clazz.defineMethod (c$, "scrollToColumn", 
2237 function (column) {
2238 this.alignPanel.seqPanel.scrollToColumn (column);
2239 }, "~N");
2240 Clazz.defineMethod (c$, "getSequenceSetId", 
2241 function () {
2242 return this.viewport.getSequenceSetId ();
2243 });
2244 Clazz.defineMethod (c$, "loadScoreFile", 
2245 function (inFile) {
2246 var file = jalview.jsdev.GenericFileAdapter.getFile ("TCoffeeScoreFile", [inFile, jalview.io.AppletFormatAdapter.checkProtocol (inFile)]);
2247 if (!file.isValid ()) {
2248 System.err.println ("Problems parsing T-Coffee scores: " + file.getWarningMessage ());
2249 System.err.println ("Origin was:\n" + inFile);
2250 return false;
2251 }var aln;
2252 if ((aln = this.viewport.getAlignment ()) != null && (aln.getHeight () != file.getHeight () || aln.getWidth () != file.getWidth ())) {
2253 System.err.println ("The scores matrix does not match the alignment dimensions");
2254 }if (file.annotateAlignment (this.alignPanel.getAlignment (), false)) {
2255 this.alignPanel.fontChanged ();
2256 this.tcoffeeColour.setEnabled (true);
2257 this.changeColour ( new jalview.schemes.TCoffeeColourScheme (this.alignPanel.getAlignment ()));
2258 return true;
2259 } else {
2260 System.err.println ("Problems resolving T-Coffee scores:");
2261 if (file.getWarningMessage () != null) {
2262 System.err.println (file.getWarningMessage ());
2263 }}return false;
2264 }, "~S");
2265 Clazz.defineMethod (c$, "getSplitFrame", 
2266 function () {
2267 return this.splitFrame;
2268 });
2269 Clazz.defineMethod (c$, "setSplitFrame", 
2270 function (sf) {
2271 this.splitFrame = sf;
2272 }, "jalview.appletgui.SplitFrame");
2273 Clazz.overrideMethod (c$, "setShowSeqFeatures", 
2274 function (b) {
2275 this.viewport.setShowSequenceFeatures (b);
2276 }, "~B");
2277 Clazz.overrideMethod (c$, "setMenusForViewport", 
2278 function () {
2279 });
2280 Clazz.overrideMethod (c$, "refreshFeatureUI", 
2281 function (enableIfNecessary) {
2282 if (enableIfNecessary) {
2283 this.sequenceFeatures.setState (true);
2284 this.alignPanel.av.setShowSequenceFeatures (true);
2285 }}, "~B");
2286 Clazz.overrideMethod (c$, "getFeatureSettingsUI", 
2287 function () {
2288 return this.alignPanel.av.featureSettings;
2289 });
2290 c$.$AlignFrame$1$ = function () {
2291 Clazz.pu$h ();
2292 c$ = Clazz.declareAnonymous (jalview.appletgui, "AlignFrame$1", java.awt.event.WindowAdapter);
2293 Clazz.overrideMethod (c$, "windowClosing", 
2294 function (e) {
2295 if (this.f$.ap != null) {
2296 this.f$.ap.setOverviewPanel (null);
2297 }}, "java.awt.event.WindowEvent");
2298 c$ = Clazz.p0p ();
2299 };
2300 c$.$AlignFrame$2$ = function () {
2301 Clazz.pu$h ();
2302 c$ = Clazz.declareAnonymous (jalview.appletgui, "AlignFrame$2", null, java.awt.event.ActionListener);
2303 Clazz.overrideMethod (c$, "actionPerformed", 
2304 function (evt) {
2305 this.b$["jalview.appletgui.AlignFrame"].sortByTree (this.f$.treePanel, this.f$.title);
2306 }, "java.awt.event.ActionEvent");
2307 c$ = Clazz.p0p ();
2308 };
2309 c$.$AlignFrame$3$ = function () {
2310 Clazz.pu$h ();
2311 c$ = Clazz.declareAnonymous (jalview.appletgui, "AlignFrame$3", java.awt.event.WindowAdapter);
2312 Clazz.defineMethod (c$, "windowOpened", 
2313 function (e) {
2314 if (this.b$["jalview.appletgui.AlignFrame"].viewport.sortByTree) {
2315 this.b$["jalview.appletgui.AlignFrame"].sortByTree (this.f$.treePanel, this.f$.title);
2316 }Clazz.superCall (this, jalview.appletgui.AlignFrame$3, "windowOpened", [e]);
2317 }, "java.awt.event.WindowEvent");
2318 Clazz.overrideMethod (c$, "windowClosing", 
2319 function (e) {
2320 this.b$["jalview.appletgui.AlignFrame"].sortByTreeMenu.remove (this.f$.item);
2321 }, "java.awt.event.WindowEvent");
2322 c$ = Clazz.p0p ();
2323 };
2324 c$.$AlignFrame$1AboutPanel$ = function () {
2325 Clazz.pu$h ();
2326 c$ = Clazz.decorateAsClass (function () {
2327 Clazz.prepareCallback (this, arguments);
2328 this.version = null;
2329 this.builddate = null;
2330 Clazz.instantialize (this, arguments);
2331 }, jalview.appletgui, "AlignFrame$1AboutPanel", awt2swing.Canvas);
2332 Clazz.makeConstructor (c$, 
2333 function (a, b) {
2334 Clazz.superConstructor (this, jalview.appletgui.AlignFrame$1AboutPanel, []);
2335 this.version = a;
2336 this.builddate = b;
2337 }, "~S,~S");
2338 Clazz.overrideMethod (c$, "paintComponent", 
2339 function (a) {
2340 a.setColor (java.awt.Color.white);
2341 a.fillRect (0, 0, this.getSize ().width, this.getSize ().height);
2342 a.setFont ( new java.awt.Font ("Helvetica", 0, 12));
2343 var b = a.getFontMetrics ();
2344 var c = b.getHeight ();
2345 var d = 5;
2346 var e = 7;
2347 a.setColor (java.awt.Color.black);
2348 a.setFont ( new java.awt.Font ("Helvetica", 1, 14));
2349 a.drawString (jalview.util.MessageManager.formatMessage ("label.jalviewLite_release",  Clazz.newArray (-1, [this.version])), e, d += c);
2350 a.setFont ( new java.awt.Font ("Helvetica", 1, 12));
2351 a.drawString (jalview.util.MessageManager.formatMessage ("label.jaview_build_date",  Clazz.newArray (-1, [this.builddate])), e, d += c);
2352 a.setFont ( new java.awt.Font ("Helvetica", 0, 12));
2353 a.drawString (jalview.util.MessageManager.getString ("label.jalview_authors_1"), e, d += c * 1.5);
2354 a.drawString (jalview.util.MessageManager.getString ("label.jalview_authors_2"), e + 50, d += c + 8);
2355 a.drawString (jalview.util.MessageManager.getString ("label.jalview_dev_managers"), e, d += c);
2356 a.drawString (jalview.util.MessageManager.getString ("label.jalview_distribution_lists"), e, d += c);
2357 a.drawString (jalview.util.MessageManager.getString ("label.jalview_please_cite"), e, d += c + 8);
2358 a.drawString (jalview.util.MessageManager.getString ("label.jalview_cite_1_authors"), e, d += c);
2359 a.drawString (jalview.util.MessageManager.getString ("label.jalview_cite_1_title"), e, d += c);
2360 a.drawString (jalview.util.MessageManager.getString ("label.jalview_cite_1_ref"), e, d += c);
2361 }, "java.awt.Graphics");
2362 c$ = Clazz.p0p ();
2363 };
2364 c$.$AlignFrame$4$ = function () {
2365 Clazz.pu$h ();
2366 c$ = Clazz.declareAnonymous (jalview.appletgui, "AlignFrame$4", null, java.awt.event.ActionListener);
2367 Clazz.overrideMethod (c$, "actionPerformed", 
2368 function (e) {
2369 this.b$["jalview.appletgui.AlignFrame"].outputText_actionPerformed (e);
2370 }, "java.awt.event.ActionEvent");
2371 c$ = Clazz.p0p ();
2372 };
2373 c$.$AlignFrame$5$ = function () {
2374 Clazz.pu$h ();
2375 c$ = Clazz.declareAnonymous (jalview.appletgui, "AlignFrame$5", null, java.awt.event.FocusListener);
2376 Clazz.overrideMethod (c$, "focusLost", 
2377 function (e) {
2378 if (this.f$.theApplet.currentAlignFrame === this.f$.me) {
2379 this.f$.theApplet.currentAlignFrame = null;
2380 }}, "java.awt.event.FocusEvent");
2381 Clazz.overrideMethod (c$, "focusGained", 
2382 function (e) {
2383 this.f$.theApplet.currentAlignFrame = this.f$.me;
2384 }, "java.awt.event.FocusEvent");
2385 c$ = Clazz.p0p ();
2386 };
2387 Clazz.defineStatics (c$,
2388 "copiedSequences", null,
2389 "copiedHiddenColumns", null);
2390 });