X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FAlignFrame.java;h=829b9ab9fb678bc20c82678539ec65df254f5419;hb=a6ca346b004955c9db88f437ecafa24919119443;hp=9b571f2c3868f140483401b8e935b3b4eecf6f3e;hpb=92f7b5ee3bbdb5456d498f1c2780d90420491342;p=jalview.git diff --git a/src/jalview/gui/AlignFrame.java b/src/jalview/gui/AlignFrame.java index 9b571f2..829b9ab 100755 --- a/src/jalview/gui/AlignFrame.java +++ b/src/jalview/gui/AlignFrame.java @@ -1,13 +1,13 @@ /* - * Jalview - A Sequence Alignment Editor and Viewer (Version 2.7) - * Copyright (C) 2011 J Procter, AM Waterhouse, J Engelhardt, LM Lui, G Barton, M Clamp, S Searle + * Jalview - A Sequence Alignment Editor and Viewer (Version 2.8) + * Copyright (C) 2012 J Procter, AM Waterhouse, LM Lui, J Engelhardt, G Barton, M Clamp, S Searle * * This file is part of Jalview. * * Jalview is free software: you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - * + * * Jalview is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty * of MERCHANTABILITY or FITNESS FOR A PARTICULAR @@ -55,6 +55,7 @@ import jalview.io.JalviewFileChooser; import jalview.io.JalviewFileView; import jalview.io.JnetAnnotationMaker; import jalview.io.NewickFile; +import jalview.io.TCoffeeScoreFile; import jalview.jbgui.GAlignFrame; import jalview.schemes.Blosum62ColourScheme; import jalview.schemes.BuriedColourScheme; @@ -69,12 +70,14 @@ import jalview.schemes.PurinePyrimidineColourScheme; import jalview.schemes.RNAHelicesColourChooser; import jalview.schemes.ResidueProperties; import jalview.schemes.StrandColourScheme; +import jalview.schemes.TCoffeeColourScheme; import jalview.schemes.TaylorColourScheme; import jalview.schemes.TurnColourScheme; import jalview.schemes.UserColourScheme; import jalview.schemes.ZappoColourScheme; import jalview.ws.jws1.Discoverer; import jalview.ws.jws2.Jws2Discoverer; +import jalview.ws.jws2.jabaws2.Jws2Instance; import jalview.ws.seqfetcher.DbSourceProxy; import java.awt.BorderLayout; @@ -350,6 +353,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, { addKeyListener(new KeyAdapter() { + @Override public void keyPressed(KeyEvent evt) { if (viewport.cursorMode @@ -530,6 +534,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, } } + @Override public void keyReleased(KeyEvent evt) { switch (evt.getKeyCode()) @@ -614,6 +619,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, Desktop.instance.addJalviewPropertyChangeListener("services", thisListener = new java.beans.PropertyChangeListener() { + @Override public void propertyChange(PropertyChangeEvent evt) { // // System.out.println("Discoverer property change."); @@ -622,6 +628,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, SwingUtilities.invokeLater(new Runnable() { + @Override public void run() { System.err @@ -635,6 +642,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, }); addInternalFrameListener(new javax.swing.event.InternalFrameAdapter() { + @Override public void internalFrameClosed( javax.swing.event.InternalFrameEvent evt) { @@ -647,6 +655,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, // Finally, build the menu once to get current service state new Thread(new Runnable() { + @Override public void run() { BuildWebServiceMenu(); @@ -716,7 +725,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, showSeqFeatures.setSelected(av.showSequenceFeatures); hiddenMarkers.setState(av.showHiddenMarkers); - applyToAllGroups.setState(av.colourAppliesToAllGroups); + applyToAllGroups.setState(av.getColourAppliesToAllGroups()); showNpFeatsMenuitem.setSelected(av.isShowNpFeats()); showDbRefsMenuitem.setSelected(av.isShowDbRefs()); autoCalculate.setSelected(av.autoCalculateConsensus); @@ -730,6 +739,8 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, updateEditMenuBar(); } + // methods for implementing IProgressIndicator + // need to refactor to a reusable stub class Hashtable progressBars, progressBarHandlers; /* @@ -737,6 +748,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, * * @see jalview.gui.IProgressIndicator#setProgressBar(java.lang.String, long) */ + @Override public void setProgressBar(String message, long id) { if (progressBars == null) @@ -784,6 +796,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, validate(); } + @Override public void registerHandler(final long id, final IProgressIndicatorHandler handler) { @@ -801,6 +814,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, cancel.addActionListener(new ActionListener() { + @Override public void actionPerformed(ActionEvent e) { handler.cancelActivity(id); @@ -818,6 +832,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, * * @return true if any progress bars are still active */ + @Override public boolean operationInProgress() { if (progressBars != null && progressBars.size() > 0) @@ -840,20 +855,25 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, return alignPanel.seqPanel.seqCanvas.getFeatureRenderer(); } + @Override public void fetchSequence_actionPerformed(ActionEvent e) { new SequenceFetcher(this); } + @Override public void addFromFile_actionPerformed(ActionEvent e) { Desktop.instance.inputLocalFileMenuItem_actionPerformed(viewport); } + @Override public void reload_actionPerformed(ActionEvent e) { if (fileName != null) { + // TODO: JAL-1108 - ensure all associated frames are closed regardless of + // originating file's format // TODO: work out how to recover feature settings for correct view(s) when // file is reloaded. if (currentFileFormat.equals("Jalview")) @@ -862,6 +882,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, for (int i = 0; i < frames.length; i++) { if (frames[i] instanceof AlignFrame && frames[i] != this + && ((AlignFrame) frames[i]).fileName != null && ((AlignFrame) frames[i]).fileName.equals(fileName)) { try @@ -899,6 +920,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, final FeatureSettings nfs = newframe.featureSettings; SwingUtilities.invokeLater(new Runnable() { + @Override public void run() { nfs.frame.setBounds(fspos); @@ -912,16 +934,19 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, } } + @Override public void addFromText_actionPerformed(ActionEvent e) { Desktop.instance.inputTextboxMenuItem_actionPerformed(viewport); } + @Override public void addFromURL_actionPerformed(ActionEvent e) { Desktop.instance.inputURLMenuItem_actionPerformed(viewport); } + @Override public void save_actionPerformed(ActionEvent e) { if (fileName == null @@ -943,6 +968,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, * @param e * DOCUMENT ME! */ + @Override public void saveAs_actionPerformed(ActionEvent e) { JalviewFileChooser chooser = new JalviewFileChooser( @@ -1034,9 +1060,8 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, } } FormatAdapter f = new FormatAdapter(); - String output = f.formatSequences( - format, - (Alignment) viewport.getAlignment(), // class cast exceptions will + String output = f.formatSequences(format, + viewport.getAlignment(), // class cast exceptions will // occur in the distant future omitHidden, f.getCacheSuffixDefault(format), viewport.getColumnSelection()); @@ -1095,6 +1120,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, * @param e * DOCUMENT ME! */ + @Override protected void outputText_actionPerformed(ActionEvent e) { String[] omitHidden = null; @@ -1140,6 +1166,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, * @param e * DOCUMENT ME! */ + @Override protected void htmlMenuItem_actionPerformed(ActionEvent e) { new HTMLOutput(alignPanel, @@ -1158,6 +1185,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, * @param e * DOCUMENT ME! */ + @Override public void createPNG(File f) { alignPanel.makePNG(f); @@ -1169,11 +1197,13 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, * @param e * DOCUMENT ME! */ + @Override public void createEPS(File f) { alignPanel.makeEPS(f); } + @Override public void pageSetup_actionPerformed(ActionEvent e) { PrinterJob printJob = PrinterJob.getPrinterJob(); @@ -1186,6 +1216,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, * @param e * DOCUMENT ME! */ + @Override public void printMenuItem_actionPerformed(ActionEvent e) { // Putting in a thread avoids Swing painting problems @@ -1193,11 +1224,13 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, thread.start(); } + @Override public void exportFeatures_actionPerformed(ActionEvent e) { new AnnotationExporter().exportFeatures(alignPanel); } + @Override public void exportAnnotations_actionPerformed(ActionEvent e) { new AnnotationExporter().exportAnnotations(alignPanel, @@ -1207,6 +1240,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, .getAlignment()).alignmentProperties); } + @Override public void associatedData_actionPerformed(ActionEvent e) { // Pick the tree file @@ -1233,6 +1267,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, * * @param closeAllTabs */ + @Override public void closeMenuItem_actionPerformed(boolean closeAllTabs) { if (alignPanels != null && alignPanels.size() < 2) @@ -1380,6 +1415,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, * @param e * DOCUMENT ME! */ + @Override protected void undoMenuItem_actionPerformed(ActionEvent e) { if (viewport.historyList.empty()) @@ -1415,6 +1451,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, * @param e * DOCUMENT ME! */ + @Override protected void redoMenuItem_actionPerformed(ActionEvent e) { if (viewport.redoList.size() < 1) @@ -1504,61 +1541,17 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, { return; } - - if (up) - { - for (int i = 1; i < viewport.getAlignment().getHeight(); i++) - { - SequenceI seq = viewport.getAlignment().getSequenceAt(i); - - if (!sg.getSequences(null).contains(seq)) - { - continue; - } - - SequenceI temp = viewport.getAlignment().getSequenceAt(i - 1); - - if (sg.getSequences(null).contains(temp)) - { - continue; - } - - viewport.getAlignment().getSequences().setElementAt(temp, i); - viewport.getAlignment().getSequences().setElementAt(seq, i - 1); - } - } - else - { - for (int i = viewport.getAlignment().getHeight() - 2; i > -1; i--) - { - SequenceI seq = viewport.getAlignment().getSequenceAt(i); - - if (!sg.getSequences(null).contains(seq)) - { - continue; - } - - SequenceI temp = viewport.getAlignment().getSequenceAt(i + 1); - - if (sg.getSequences(null).contains(temp)) - { - continue; - } - - viewport.getAlignment().getSequences().setElementAt(temp, i); - viewport.getAlignment().getSequences().setElementAt(seq, i + 1); - } - } - + viewport.getAlignment().moveSelectedSequencesByOne(sg, + viewport.getHiddenRepSequences(), up); alignPanel.paintAlignment(true); } synchronized void slideSequences(boolean right, int size) { - Vector sg = new Vector(); + List sg = new Vector(); if (viewport.cursorMode) { - sg.addElement(viewport.getAlignment().getSequenceAt( + sg.add(viewport.getAlignment().getSequenceAt( alignPanel.seqPanel.seqCanvas.cursorY)); } else if (viewport.getSelectionGroup() != null @@ -1582,9 +1575,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, invertGroup.add(viewport.getAlignment().getSequenceAt(i)); } - SequenceI[] seqs1 = new SequenceI[sg.size()]; - for (int i = 0; i < sg.size(); i++) - seqs1[i] = (SequenceI) sg.elementAt(i); + SequenceI[] seqs1 = sg.toArray(new SequenceI[0]); SequenceI[] seqs2 = new SequenceI[invertGroup.size()]; for (int i = 0; i < invertGroup.size(); i++) @@ -1643,6 +1634,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, * @param e * DOCUMENT ME! */ + @Override protected void copy_actionPerformed(ActionEvent e) { System.gc(); @@ -1711,6 +1703,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, * @param e * DOCUMENT ME! */ + @Override protected void pasteNew_actionPerformed(ActionEvent e) { paste(true); @@ -1722,6 +1715,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, * @param e * DOCUMENT ME! */ + @Override protected void pasteThis_actionPerformed(ActionEvent e) { paste(false); @@ -1790,6 +1784,8 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, } int alwidth = 0; + ArrayList newGraphGroups = new ArrayList(); + int fgroup = -1; if (newAlignment) { @@ -1857,6 +1853,17 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, { newDs.clear(); // tidy up } + if (alignment.getAlignmentAnnotation() != null) + { + for (AlignmentAnnotation alan : alignment + .getAlignmentAnnotation()) + { + if (alan.graphGroup > fgroup) + { + fgroup = alan.graphGroup; + } + } + } if (pastedal.getAlignmentAnnotation() != null) { // Add any annotation attached to alignment. @@ -1867,6 +1874,22 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, if (alann[i].sequenceRef == null && !alann[i].autoCalculated) { AlignmentAnnotation newann = new AlignmentAnnotation(alann[i]); + if (newann.graphGroup > -1) + { + if (newGraphGroups.size() <= newann.graphGroup + || newGraphGroups.get(newann.graphGroup) == null) + { + for (int q = newGraphGroups.size(); q <= newann.graphGroup; q++) + { + newGraphGroups.add(q, null); + } + newGraphGroups.set(newann.graphGroup, new Integer( + ++fgroup)); + } + newann.graphGroup = newGraphGroups.get(newann.graphGroup) + .intValue(); + } + newann.padAnnotation(alwidth); alignment.addAnnotation(newann); } @@ -1886,11 +1909,31 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, { if (sequences[i].getAnnotation() != null) { + AlignmentAnnotation newann; for (int a = 0; a < sequences[i].getAnnotation().length; a++) { annotationAdded = true; - sequences[i].getAnnotation()[a].adjustForAlignment(); - sequences[i].getAnnotation()[a].padAnnotation(alwidth); + newann = sequences[i].getAnnotation()[a]; + newann.adjustForAlignment(); + newann.padAnnotation(alwidth); + if (newann.graphGroup > -1) + { + if (newann.graphGroup > -1) + { + if (newGraphGroups.size() <= newann.graphGroup + || newGraphGroups.get(newann.graphGroup) == null) + { + for (int q = newGraphGroups.size(); q <= newann.graphGroup; q++) + { + newGraphGroups.add(q, null); + } + newGraphGroups.set(newann.graphGroup, new Integer( + ++fgroup)); + } + newann.graphGroup = newGraphGroups.get(newann.graphGroup) + .intValue(); + } + } alignment.addAnnotation(sequences[i].getAnnotation()[a]); // annotation // was // duplicated @@ -1930,6 +1973,9 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, newann.padAnnotation(avwidth); alview[avnum].addAnnotation(newann); // annotation was // duplicated earlier + // TODO JAL-1145 graphGroups are not updated for sequence + // annotation added to several views. This may cause + // strangeness alview[avnum].setAnnotationIndex(newann, a); } } @@ -1939,6 +1985,17 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, } viewport.firePropertyChange("alignment", null, alignment.getSequences()); + if (alignPanels != null) + { + for (AlignmentPanel ap : ((Vector) alignPanels)) + { + ap.validateAnnotationDimensions(false); + } + } + else + { + alignPanel.validateAnnotationDimensions(false); + } } else @@ -2002,6 +2059,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, * @param e * DOCUMENT ME! */ + @Override protected void cut_actionPerformed(ActionEvent e) { copy_actionPerformed(null); @@ -2014,6 +2072,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, * @param e * DOCUMENT ME! */ + @Override protected void delete_actionPerformed(ActionEvent evt) { @@ -2074,6 +2133,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, * @param e * DOCUMENT ME! */ + @Override protected void deleteGroups_actionPerformed(ActionEvent e) { viewport.getAlignment().deleteAllGroups(); @@ -2090,6 +2150,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, * @param e * DOCUMENT ME! */ + @Override public void selectAllSequenceMenuItem_actionPerformed(ActionEvent e) { SequenceGroup sg = new SequenceGroup(); @@ -2112,6 +2173,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, * @param e * DOCUMENT ME! */ + @Override public void deselectAllSequenceMenuItem_actionPerformed(ActionEvent e) { if (viewport.cursorMode) @@ -2135,6 +2197,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, * @param e * DOCUMENT ME! */ + @Override public void invertSequenceMenuItem_actionPerformed(ActionEvent e) { SequenceGroup sg = viewport.getSelectionGroup(); @@ -2156,6 +2219,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, viewport.sendSelection(); } + @Override public void invertColSel_actionPerformed(ActionEvent e) { viewport.invertColumnSelection(); @@ -2169,6 +2233,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, * @param e * DOCUMENT ME! */ + @Override public void remove2LeftMenuItem_actionPerformed(ActionEvent e) { trimAlignment(true); @@ -2180,6 +2245,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, * @param e * DOCUMENT ME! */ + @Override public void remove2RightMenuItem_actionPerformed(ActionEvent e) { trimAlignment(false); @@ -2233,12 +2299,8 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, addHistoryItem(trimRegion); - Vector groups = viewport.getAlignment().getGroups(); - - for (int i = 0; i < groups.size(); i++) + for (SequenceGroup sg : viewport.getAlignment().getGroups()) { - SequenceGroup sg = (SequenceGroup) groups.get(i); - if ((trimLeft && !sg.adjustForRemoveLeft(column)) || (!trimLeft && !sg.adjustForRemoveRight(column))) { @@ -2257,6 +2319,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, * @param e * DOCUMENT ME! */ + @Override public void removeGappedColumnMenuItem_actionPerformed(ActionEvent e) { int start = 0, end = viewport.getAlignment().getWidth() - 1; @@ -2304,6 +2367,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, * @param e * DOCUMENT ME! */ + @Override public void removeAllGapsMenuItem_actionPerformed(ActionEvent e) { int start = 0, end = viewport.getAlignment().getWidth() - 1; @@ -2342,6 +2406,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, * @param e * DOCUMENT ME! */ + @Override public void padGapsMenuitem_actionPerformed(ActionEvent e) { viewport.setPadGaps(padGapsMenuitem.isSelected()); @@ -2365,11 +2430,13 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, * @param e * DOCUMENT ME! */ + @Override public void findMenuItem_actionPerformed(ActionEvent e) { new Finder(); } + @Override public void newView_actionPerformed(ActionEvent e) { newView(true); @@ -2480,11 +2547,13 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, return newap; } + @Override public void expandViews_actionPerformed(ActionEvent e) { Desktop.instance.explodeViews(this); } + @Override public void gatherViews_actionPerformed(ActionEvent e) { Desktop.instance.gatherViews(this); @@ -2496,6 +2565,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, * @param e * DOCUMENT ME! */ + @Override public void font_actionPerformed(ActionEvent e) { new FontChooser(alignPanel); @@ -2507,6 +2577,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, * @param e * DOCUMENT ME! */ + @Override protected void seqLimit_actionPerformed(ActionEvent e) { viewport.setShowJVSuffix(seqLimits.isSelected()); @@ -2516,12 +2587,14 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, alignPanel.paintAlignment(true); } + @Override public void idRightAlign_actionPerformed(ActionEvent e) { viewport.rightAlignIds = idRightAlign.isSelected(); alignPanel.paintAlignment(true); } + @Override public void centreColumnLabels_actionPerformed(ActionEvent e) { viewport.centreColumnLabels = centreColumnLabelsMenuItem.getState(); @@ -2533,6 +2606,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, * * @see jalview.jbgui.GAlignFrame#followHighlight_actionPerformed() */ + @Override protected void followHighlight_actionPerformed() { if (viewport.followHighlight = this.followHighlightMenuItem.getState()) @@ -2548,6 +2622,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, * @param e * DOCUMENT ME! */ + @Override protected void colourTextMenuItem_actionPerformed(ActionEvent e) { viewport.setColourText(colourTextMenuItem.isSelected()); @@ -2560,6 +2635,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, * @param e * DOCUMENT ME! */ + @Override public void wrapMenuItem_actionPerformed(ActionEvent e) { scaleAbove.setVisible(wrapMenuItem.isSelected()); @@ -2569,17 +2645,20 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, alignPanel.setWrapAlignment(wrapMenuItem.isSelected()); } + @Override public void showAllSeqs_actionPerformed(ActionEvent e) { viewport.showAllHiddenSeqs(); } + @Override public void showAllColumns_actionPerformed(ActionEvent e) { viewport.showAllHiddenColumns(); repaint(); } + @Override public void hideSelSequences_actionPerformed(ActionEvent e) { viewport.hideAllSelectedSeqs(); @@ -2663,6 +2742,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, * jalview.jbgui.GAlignFrame#hideAllButSelection_actionPerformed(java.awt. * event.ActionEvent) */ + @Override public void hideAllButSelection_actionPerformed(ActionEvent e) { toggleHiddenRegions(false, false); @@ -2675,6 +2755,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, * jalview.jbgui.GAlignFrame#hideAllSelection_actionPerformed(java.awt.event * .ActionEvent) */ + @Override public void hideAllSelection_actionPerformed(ActionEvent e) { SequenceGroup sg = viewport.getSelectionGroup(); @@ -2691,6 +2772,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, * jalview.jbgui.GAlignFrame#showAllhidden_actionPerformed(java.awt.event. * ActionEvent) */ + @Override public void showAllhidden_actionPerformed(ActionEvent e) { viewport.showAllHiddenColumns(); @@ -2698,12 +2780,14 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, alignPanel.paintAlignment(true); } + @Override public void hideSelColumns_actionPerformed(ActionEvent e) { viewport.hideSelectedColumns(); alignPanel.paintAlignment(true); } + @Override public void hiddenMarkers_actionPerformed(ActionEvent e) { viewport.setShowHiddenMarkers(hiddenMarkers.isSelected()); @@ -2716,6 +2800,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, * @param e * DOCUMENT ME! */ + @Override protected void scaleAbove_actionPerformed(ActionEvent e) { viewport.setScaleAboveWrapped(scaleAbove.isSelected()); @@ -2728,6 +2813,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, * @param e * DOCUMENT ME! */ + @Override protected void scaleLeft_actionPerformed(ActionEvent e) { viewport.setScaleLeftWrapped(scaleLeft.isSelected()); @@ -2740,6 +2826,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, * @param e * DOCUMENT ME! */ + @Override protected void scaleRight_actionPerformed(ActionEvent e) { viewport.setScaleRightWrapped(scaleRight.isSelected()); @@ -2752,6 +2839,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, * @param e * DOCUMENT ME! */ + @Override public void viewBoxesMenuItem_actionPerformed(ActionEvent e) { viewport.setShowBoxes(viewBoxesMenuItem.isSelected()); @@ -2764,6 +2852,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, * @param e * DOCUMENT ME! */ + @Override public void viewTextMenuItem_actionPerformed(ActionEvent e) { viewport.setShowText(viewTextMenuItem.isSelected()); @@ -2776,6 +2865,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, * @param e * DOCUMENT ME! */ + @Override protected void renderGapsMenuItem_actionPerformed(ActionEvent e) { viewport.setRenderGaps(renderGapsMenuItem.isSelected()); @@ -2784,6 +2874,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, public FeatureSettings featureSettings; + @Override public void featureSettings_actionPerformed(ActionEvent e) { if (featureSettings != null) @@ -2806,6 +2897,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, * @param evt * DOCUMENT ME! */ + @Override public void showSeqFeatures_actionPerformed(ActionEvent evt) { viewport.setShowSequenceFeatures(showSeqFeatures.isSelected()); @@ -2822,6 +2914,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, * @param evt * DOCUMENT ME! */ + @Override public void showSeqFeaturesHeight_actionPerformed(ActionEvent evt) { viewport.setShowSequenceFeaturesHeight(showSeqFeaturesHeight @@ -2845,12 +2938,14 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, * @param e * DOCUMENT ME! */ + @Override public void annotationPanelMenuItem_actionPerformed(ActionEvent e) { viewport.setShowAnnotation(annotationPanelMenuItem.isSelected()); alignPanel.setAnnotationVisible(annotationPanelMenuItem.isSelected()); } + @Override public void alignmentProperties() { JEditorPane editPane = new JEditorPane("text/html", ""); @@ -2871,6 +2966,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, * @param e * DOCUMENT ME! */ + @Override public void overviewMenuItem_actionPerformed(ActionEvent e) { if (alignPanel.overviewPanel != null) @@ -2887,6 +2983,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, frame.setLayer(JLayeredPane.PALETTE_LAYER); frame.addInternalFrameListener(new javax.swing.event.InternalFrameAdapter() { + @Override public void internalFrameClosed( javax.swing.event.InternalFrameEvent evt) { @@ -2897,6 +2994,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, alignPanel.setOverviewPanel(overview); } + @Override public void textColour_actionPerformed(ActionEvent e) { new TextColourChooser().chooseColour(alignPanel, null); @@ -2908,6 +3006,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, * @param e * DOCUMENT ME! */ + @Override protected void noColourmenuItem_actionPerformed(ActionEvent e) { changeColour(null); @@ -2919,10 +3018,11 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, * @param e * DOCUMENT ME! */ + @Override public void clustalColour_actionPerformed(ActionEvent e) { - changeColour(new ClustalxColourScheme(viewport.getAlignment() - .getSequences(), viewport.getAlignment().getWidth())); + changeColour(new ClustalxColourScheme(viewport.getAlignment(), + viewport.getHiddenRepSequences())); } /** @@ -2931,6 +3031,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, * @param e * DOCUMENT ME! */ + @Override public void zappoColour_actionPerformed(ActionEvent e) { changeColour(new ZappoColourScheme()); @@ -2942,6 +3043,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, * @param e * DOCUMENT ME! */ + @Override public void taylorColour_actionPerformed(ActionEvent e) { changeColour(new TaylorColourScheme()); @@ -2953,6 +3055,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, * @param e * DOCUMENT ME! */ + @Override public void hydrophobicityColour_actionPerformed(ActionEvent e) { changeColour(new HydrophobicColourScheme()); @@ -2964,6 +3067,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, * @param e * DOCUMENT ME! */ + @Override public void helixColour_actionPerformed(ActionEvent e) { changeColour(new HelixColourScheme()); @@ -2975,6 +3079,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, * @param e * DOCUMENT ME! */ + @Override public void strandColour_actionPerformed(ActionEvent e) { changeColour(new StrandColourScheme()); @@ -2986,6 +3091,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, * @param e * DOCUMENT ME! */ + @Override public void turnColour_actionPerformed(ActionEvent e) { changeColour(new TurnColourScheme()); @@ -2997,6 +3103,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, * @param e * DOCUMENT ME! */ + @Override public void buriedColour_actionPerformed(ActionEvent e) { changeColour(new BuriedColourScheme()); @@ -3008,11 +3115,13 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, * @param e * DOCUMENT ME! */ + @Override public void nucleotideColour_actionPerformed(ActionEvent e) { changeColour(new NucleotideColourScheme()); } + @Override public void purinePyrimidineColour_actionPerformed(ActionEvent e) { changeColour(new PurinePyrimidineColourScheme()); @@ -3024,11 +3133,13 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, * CovariationColourScheme(viewport.getAlignment().getAlignmentAnnotation * ()[0])); } */ + @Override public void annotationColour_actionPerformed(ActionEvent e) { new AnnotationColourChooser(viewport, alignPanel); } + @Override public void rnahelicesColour_actionPerformed(ActionEvent e) { new RNAHelicesColourChooser(viewport, alignPanel); @@ -3040,6 +3151,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, * @param e * DOCUMENT ME! */ + @Override protected void applyToAllGroups_actionPerformed(ActionEvent e) { viewport.setColourAppliesToAllGroups(applyToAllGroups.isSelected()); @@ -3053,6 +3165,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, */ public void changeColour(ColourSchemeI cs) { + // TODO: compare with applet and pull up to model method int threshold = 0; if (cs != null) @@ -3099,12 +3212,9 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, if (viewport.getColourAppliesToAllGroups()) { - Vector groups = viewport.getAlignment().getGroups(); - for (int i = 0; i < groups.size(); i++) + for (SequenceGroup sg : viewport.getAlignment().getGroups()) { - SequenceGroup sg = (SequenceGroup) groups.elementAt(i); - if (cs == null) { sg.cs = null; @@ -3113,8 +3223,8 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, if (cs instanceof ClustalxColourScheme) { - sg.cs = new ClustalxColourScheme(sg.getSequences(viewport - .getHiddenRepSequences()), sg.getWidth()); + sg.cs = new ClustalxColourScheme(sg, + viewport.getHiddenRepSequences()); } else if (cs instanceof UserColourScheme) { @@ -3124,7 +3234,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, { try { - sg.cs = (ColourSchemeI) cs.getClass().newInstance(); + sg.cs = cs.getClass().newInstance(); } catch (Exception ex) { } @@ -3176,6 +3286,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, * @param e * DOCUMENT ME! */ + @Override protected void modifyPID_actionPerformed(ActionEvent e) { if (viewport.getAbovePIDThreshold() @@ -3193,6 +3304,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, * @param e * DOCUMENT ME! */ + @Override protected void modifyConservation_actionPerformed(ActionEvent e) { if (viewport.getConservationSelected() @@ -3210,6 +3322,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, * @param e * DOCUMENT ME! */ + @Override protected void conservationMenuItem_actionPerformed(ActionEvent e) { viewport.setConservationSelected(conservationMenuItem.isSelected()); @@ -3228,6 +3341,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, * @param e * DOCUMENT ME! */ + @Override public void abovePIDThreshold_actionPerformed(ActionEvent e) { viewport.setAbovePIDThreshold(abovePIDThreshold.isSelected()); @@ -3246,6 +3360,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, * @param e * DOCUMENT ME! */ + @Override public void userDefinedColour_actionPerformed(ActionEvent e) { if (e.getActionCommand().equals("User Defined...")) @@ -3287,6 +3402,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, radioItem.setName("USER_DEFINED"); radioItem.addMouseListener(new MouseAdapter() { + @Override public void mousePressed(MouseEvent evt) { if (evt.isControlDown() @@ -3309,6 +3425,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, { radioItem.addActionListener(new ActionListener() { + @Override public void actionPerformed(ActionEvent evt) { userDefinedColour_actionPerformed(evt); @@ -3320,6 +3437,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, }); radioItem.addActionListener(new ActionListener() { + @Override public void actionPerformed(ActionEvent evt) { userDefinedColour_actionPerformed(evt); @@ -3338,6 +3456,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, * @param e * DOCUMENT ME! */ + @Override public void PIDColour_actionPerformed(ActionEvent e) { changeColour(new PIDColourScheme()); @@ -3349,6 +3468,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, * @param e * DOCUMENT ME! */ + @Override public void BLOSUM62Colour_actionPerformed(ActionEvent e) { changeColour(new Blosum62ColourScheme()); @@ -3360,6 +3480,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, * @param e * DOCUMENT ME! */ + @Override public void sortPairwiseMenuItem_actionPerformed(ActionEvent e) { SequenceI[] oldOrder = viewport.getAlignment().getSequencesArray(); @@ -3376,6 +3497,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, * @param e * DOCUMENT ME! */ + @Override public void sortIDMenuItem_actionPerformed(ActionEvent e) { SequenceI[] oldOrder = viewport.getAlignment().getSequencesArray(); @@ -3391,6 +3513,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, * @param e * DOCUMENT ME! */ + @Override public void sortLengthMenuItem_actionPerformed(ActionEvent e) { SequenceI[] oldOrder = viewport.getAlignment().getSequencesArray(); @@ -3406,6 +3529,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, * @param e * DOCUMENT ME! */ + @Override public void sortGroupMenuItem_actionPerformed(ActionEvent e) { SequenceI[] oldOrder = viewport.getAlignment().getSequencesArray(); @@ -3422,6 +3546,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, * @param e * DOCUMENT ME! */ + @Override public void removeRedundancyMenuItem_actionPerformed(ActionEvent e) { new RedundancyPanel(alignPanel, this); @@ -3433,6 +3558,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, * @param e * DOCUMENT ME! */ + @Override public void pairwiseAlignmentMenuItem_actionPerformed(ActionEvent e) { if ((viewport.getSelectionGroup() == null) @@ -3456,6 +3582,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, * @param e * DOCUMENT ME! */ + @Override public void PCAMenuItem_actionPerformed(ActionEvent e) { if (((viewport.getSelectionGroup() != null) @@ -3475,6 +3602,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, new PCAPanel(alignPanel); } + @Override public void autoCalculate_actionPerformed(ActionEvent e) { viewport.autoCalculateConsensus = autoCalculate.isSelected(); @@ -3485,6 +3613,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, } } + @Override public void sortByTreeOption_actionPerformed(ActionEvent e) { viewport.sortByTree = sortByTree.isSelected(); @@ -3502,6 +3631,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, * @param e * DOCUMENT ME! */ + @Override public void averageDistanceTreeMenuItem_actionPerformed(ActionEvent e) { NewTreePanel("AV", "PID", "Average distance tree using PID"); @@ -3513,6 +3643,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, * @param e * DOCUMENT ME! */ + @Override public void neighbourTreeMenuItem_actionPerformed(ActionEvent e) { NewTreePanel("NJ", "PID", "Neighbour joining tree using PID"); @@ -3524,6 +3655,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, * @param e * DOCUMENT ME! */ + @Override protected void njTreeBlosumMenuItem_actionPerformed(ActionEvent e) { NewTreePanel("NJ", "BL", "Neighbour joining tree using BLOSUM62"); @@ -3535,6 +3667,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, * @param e * DOCUMENT ME! */ + @Override protected void avTreeBlosumMenuItem_actionPerformed(ActionEvent e) { NewTreePanel("AV", "BL", "Average distance tree using BLOSUM62"); @@ -3554,7 +3687,8 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, { TreePanel tp; - if (viewport.getSelectionGroup() != null) + if (viewport.getSelectionGroup() != null + && viewport.getSelectionGroup().getSize() > 0) { if (viewport.getSelectionGroup().getSize() < 3) { @@ -3566,14 +3700,12 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, return; } - int s = 0; SequenceGroup sg = viewport.getSelectionGroup(); /* Decide if the selection is a column region */ - while (s < sg.getSize()) + for (SequenceI _s : sg.getSequences()) { - if (((SequenceI) sg.getSequences(null).elementAt(s++)).getLength() < sg - .getEndRes()) + if (_s.getLength() < sg.getEndRes()) { JOptionPane .showMessageDialog( @@ -3643,6 +3775,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, sort.add(item); item.addActionListener(new java.awt.event.ActionListener() { + @Override public void actionPerformed(ActionEvent e) { SequenceI[] oldOrder = viewport.getAlignment().getSequencesArray(); @@ -3675,6 +3808,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, sort.add(item); item.addActionListener(new java.awt.event.ActionListener() { + @Override public void actionPerformed(ActionEvent e) { SequenceI[] oldOrder = viewport.getAlignment().getSequencesArray(); @@ -3699,6 +3833,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, * rebuilding in subsequence calls. * */ + @Override public void buildSortByAnnotationScoresMenu() { if (viewport.getAlignment().getAlignmentAnnotation() == null) @@ -3712,10 +3847,9 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, // almost certainly a quicker way to do this - but we keep it simple Hashtable scoreSorts = new Hashtable(); AlignmentAnnotation aann[]; - Enumeration sq = viewport.getAlignment().getSequences().elements(); - while (sq.hasMoreElements()) + for (SequenceI sqa : viewport.getAlignment().getSequences()) { - aann = ((SequenceI) sq.nextElement()).getAnnotation(); + aann = sqa.getAnnotation(); for (int i = 0; aann != null && i < aann.length; i++) { if (aann[i].hasScore() && aann[i].sequenceRef != null) @@ -3750,6 +3884,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, * @param title * SortBy menu item title. */ + @Override public void buildTreeMenu() { sortByTreeMenu.removeAll(); @@ -3783,6 +3918,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, final NJTree tree = ((TreePanel) treePanels.elementAt(i)).getTree(); item.addActionListener(new java.awt.event.ActionListener() { + @Override public void actionPerformed(ActionEvent e) { tp.sortByTree_actionPerformed(null); @@ -3888,6 +4024,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, * @param e * DOCUMENT ME! */ + @Override protected void LoadtreeMenuItem_actionPerformed(ActionEvent e) { // Pick the tree file @@ -3923,6 +4060,12 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, } } + @Override + protected void tcoffeeColorScheme_actionPerformed(ActionEvent e) + { + changeColour(new TCoffeeColourScheme(alignPanel.getAlignment())); + } + public TreePanel ShowNewickTree(NewickFile nf, String title) { return ShowNewickTree(nf, title, 600, 500, 4, 5); @@ -4013,8 +4156,10 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, buildingMenu = true; new Thread(new Runnable() { + @Override public void run() { + final List legacyItems=new ArrayList(); try { System.err.println("Building ws menu again " @@ -4036,7 +4181,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, "Secondary Structure Prediction"); final JMenu seqsrchmenu = new JMenu("Sequence Database Search"); final JMenu analymenu = new JMenu("Analysis"); - final JMenu dismenu = new JMenu("Disorder"); + final JMenu dismenu = new JMenu("Protein Disorder"); // JAL-940 - only show secondary structure prediction services from // the legacy server if (// Cache.getDefault("SHOW_JWS1_SERVICES", true) @@ -4046,28 +4191,10 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, // TODO: refactor to allow list of AbstractName/Handler bindings to // be // stored or retrieved from elsewhere - Vector msaws = null; // (Vector) Discoverer.services.get("MsaWS"); + // No MSAWS used any more: + // Vector msaws = null; // (Vector) Discoverer.services.get("MsaWS"); Vector secstrpr = (Vector) Discoverer.services .get("SecStrPred"); - Vector seqsrch = null; // (Vector) - // Discoverer.services.get("SeqSearch"); - // TODO: move GUI generation code onto service implementation - so a - // client instance attaches itself to the GUI with method call like - // jalview.ws.MsaWSClient.bind(servicehandle, Desktop.instance, - // alignframe) - if (msaws != null) - { - // Add any Multiple Sequence Alignment Services - for (int i = 0, j = msaws.size(); i < j; i++) - { - final ext.vamsas.ServiceHandle sh = (ext.vamsas.ServiceHandle) msaws - .get(i); - jalview.ws.WSMenuEntryProviderI impl = jalview.ws.jws1.Discoverer - .getServiceClient(sh); - impl.attachWSMenuEntry(msawsmenu, me); - - } - } if (secstrpr != null) { // Add any secondary structure prediction services @@ -4077,40 +4204,29 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, .get(i); jalview.ws.WSMenuEntryProviderI impl = jalview.ws.jws1.Discoverer .getServiceClient(sh); + int p=secstrmenu.getItemCount(); impl.attachWSMenuEntry(secstrmenu, me); - } - } - if (seqsrch != null) - { - // Add any sequence search services - for (int i = 0, j = seqsrch.size(); i < j; i++) - { - final ext.vamsas.ServiceHandle sh = (ext.vamsas.ServiceHandle) seqsrch - .elementAt(i); - jalview.ws.WSMenuEntryProviderI impl = jalview.ws.jws1.Discoverer - .getServiceClient(sh); - impl.attachWSMenuEntry(seqsrchmenu, me); + int q=secstrmenu.getItemCount(); + for (int litm=p;litm submens=new ArrayList(); - // submens.add(msawsmenu); - // submens.add(secstrmenu); - // submens.add(dismenu); - // submens.add(analymenu); - // No search services yet // wsmenu.add(seqsrchmenu); javax.swing.SwingUtilities.invokeLater(new Runnable() { + @Override public void run() { try @@ -4121,7 +4237,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, { for (int i = 0, j = wsmenu.size(); i < j; i++) { - webService.add((JMenu) wsmenu.get(i)); + webService.add(wsmenu.get(i)); } } else @@ -4129,6 +4245,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, webService.add(me.webServiceNoServices); } // TODO: move into separate menu builder class. + boolean new_sspred=false; if (Cache.getDefault("SHOW_JWS2_SERVICES", true)) { Jws2Discoverer jws2servs = Jws2Discoverer.getDiscoverer(); @@ -4137,6 +4254,16 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, if (jws2servs.hasServices()) { jws2servs.attachWSMenuEntry(webService, me); + for (Jws2Instance sv:jws2servs.getServices()) { + if (sv.description.toLowerCase().contains("jpred")) + { + for (JMenuItem jmi:legacyItems) + { + jmi.setVisible(false); + } + } + } + } if (jws2servs.isRunning()) { @@ -4147,7 +4274,6 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, } } } - build_urlServiceMenu(me.webService); build_fetchdbmenu(webService); for (JMenu item : wsmenu) @@ -4163,6 +4289,9 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, } } catch (Exception e) { + Cache.log + .debug("Exception during web service menu building process.", + e); } ; } @@ -4285,6 +4414,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, xtype.addActionListener(new ActionListener() { + @Override public void actionPerformed(ActionEvent e) { // TODO: new thread for this call with vis-delay @@ -4318,6 +4448,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, Runnable foo = new Runnable() { + @Override public void run() { final long sttime = System.currentTimeMillis(); @@ -4401,6 +4532,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, } } + @Override public void showProducts_actionPerformed(ActionEvent e) { // ///////////////////////////// @@ -4434,6 +4566,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, } } + @Override public void showTranslation_actionPerformed(ActionEvent e) { // ///////////////////////////// @@ -4452,7 +4585,13 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, } catch (Exception ex) { al = null; - jalview.bin.Cache.log.debug("Exception during translation.", ex); + jalview.bin.Cache.log.error("Exception during translation. Please report this !", ex); + JOptionPane + .showMessageDialog( + Desktop.desktop, + "Unfortunately, something went wrong when translating your sequences.\nPlease take a look in the Jalview java console\nand submit a bug report including the stacktrace.", + "Implementation error: Translation Failed", JOptionPane.ERROR_MESSAGE); + return; } if (al == null) { @@ -4512,22 +4651,27 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, return featuresFile; } + @Override public void dragEnter(DropTargetDragEvent evt) { } + @Override public void dragExit(DropTargetEvent evt) { } + @Override public void dragOver(DropTargetDragEvent evt) { } + @Override public void dropActionChanged(DropTargetDragEvent evt) { } + @Override public void drop(DropTargetDropEvent evt) { Transferable t = evt.getTransferable(); @@ -4739,54 +4883,98 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, if (!isAnnotation) { - // try to see if its a JNet 'concise' style annotation file *before* we - // try to parse it as a features file - if (format == null) + // first see if its a T-COFFEE score file + TCoffeeScoreFile tcf = null; + try { - format = new IdentifyFile().Identify(file, protocol); - } - if (format.equalsIgnoreCase("JnetFile")) + tcf = new TCoffeeScoreFile(file, protocol); + if (tcf.isValid()) + { + if (tcf.annotateAlignment(viewport.getAlignment(), true)) + { + tcoffeeColour.setEnabled(true); + tcoffeeColour.setSelected(true); + changeColour(new TCoffeeColourScheme(viewport.getAlignment())); + isAnnotation = true; + statusBar + .setText("Successfully pasted T-Coffee scores to alignment."); + } + else + { + // some problem - if no warning its probable that the ID matching + // process didn't work + JOptionPane + .showMessageDialog( + Desktop.desktop, + tcf.getWarningMessage() == null ? "Check that the file matches sequence IDs in the alignment." + : tcf.getWarningMessage(), + "Problem reading T-COFFEE score file", + JOptionPane.WARNING_MESSAGE); + } + } + else + { + tcf = null; + } + } catch (Exception x) { - jalview.io.JPredFile predictions = new jalview.io.JPredFile(file, - protocol); - new JnetAnnotationMaker().add_annotation(predictions, - viewport.getAlignment(), 0, false); - isAnnotation = true; + Cache.log + .debug("Exception when processing data source as T-COFFEE score file", + x); + tcf = null; } - else + if (tcf == null) { - /* - * if (format.equalsIgnoreCase("PDB")) { - * - * String pdbfn = ""; // try to match up filename with sequence id try - * { if (protocol == jalview.io.FormatAdapter.FILE) { File fl = new - * File(file); pdbfn = fl.getName(); } else if (protocol == - * jalview.io.FormatAdapter.URL) { URL url = new URL(file); pdbfn = - * url.getFile(); } } catch (Exception e) { } ; if (assocSeq == null) - * { SequenceIdMatcher idm = new SequenceIdMatcher(viewport - * .getAlignment().getSequencesArray()); if (pdbfn.length() > 0) { // - * attempt to find a match in the alignment SequenceI mtch = - * idm.findIdMatch(pdbfn); int l = 0, c = pdbfn.indexOf("."); while - * (mtch == null && c != -1) { while ((c = pdbfn.indexOf(".", l)) > l) - * { l = c; } if (l > -1) { pdbfn = pdbfn.substring(0, l); } mtch = - * idm.findIdMatch(pdbfn); } if (mtch != null) { // try and associate - * // prompt ? PDBEntry pe = new AssociatePdbFileWithSeq() - * .associatePdbWithSeq(file, protocol, mtch, true); if (pe != null) { - * System.err.println("Associated file : " + file + " with " + - * mtch.getDisplayId(true)); alignPanel.paintAlignment(true); } } // - * TODO: maybe need to load as normal otherwise return; } } - */ + // try to see if its a JNet 'concise' style annotation file *before* + // we // try to parse it as a features file - boolean isGroupsFile = parseFeaturesFile(file, protocol); - // if it wasn't a features file then we just treat it as a general - // alignment file to load into the current view. - if (!isGroupsFile) + if (format == null) { - new FileLoader().LoadFile(viewport, file, protocol, format); + format = new IdentifyFile().Identify(file, protocol); + } + if (format.equalsIgnoreCase("JnetFile")) + { + jalview.io.JPredFile predictions = new jalview.io.JPredFile( + file, protocol); + new JnetAnnotationMaker().add_annotation(predictions, + viewport.getAlignment(), 0, false); + isAnnotation = true; } else { - alignPanel.paintAlignment(true); + /* + * if (format.equalsIgnoreCase("PDB")) { + * + * String pdbfn = ""; // try to match up filename with sequence id + * try { if (protocol == jalview.io.FormatAdapter.FILE) { File fl = + * new File(file); pdbfn = fl.getName(); } else if (protocol == + * jalview.io.FormatAdapter.URL) { URL url = new URL(file); pdbfn = + * url.getFile(); } } catch (Exception e) { } ; if (assocSeq == + * null) { SequenceIdMatcher idm = new SequenceIdMatcher(viewport + * .getAlignment().getSequencesArray()); if (pdbfn.length() > 0) { + * // attempt to find a match in the alignment SequenceI mtch = + * idm.findIdMatch(pdbfn); int l = 0, c = pdbfn.indexOf("."); while + * (mtch == null && c != -1) { while ((c = pdbfn.indexOf(".", l)) > + * l) { l = c; } if (l > -1) { pdbfn = pdbfn.substring(0, l); } mtch + * = idm.findIdMatch(pdbfn); } if (mtch != null) { // try and + * associate // prompt ? PDBEntry pe = new AssociatePdbFileWithSeq() + * .associatePdbWithSeq(file, protocol, mtch, true); if (pe != null) + * { System.err.println("Associated file : " + file + " with " + + * mtch.getDisplayId(true)); alignPanel.paintAlignment(true); } } // + * TODO: maybe need to load as normal otherwise return; } } + */ + // try to parse it as a features file + boolean isGroupsFile = parseFeaturesFile(file, protocol); + // if it wasn't a features file then we just treat it as a general + // alignment file to load into the current view. + if (!isGroupsFile) + { + new FileLoader().LoadFile(viewport, file, protocol, format); + } + else + { + alignPanel.paintAlignment(true); + } } } } @@ -4801,9 +4989,26 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, } catch (Exception ex) { ex.printStackTrace(); + } catch (OutOfMemoryError oom) + { + try + { + System.gc(); + } catch (Exception x) + { + } + ; + new OOMWarning( + "loading data " + + (protocol != null ? (protocol.equals(FormatAdapter.PASTE) ? "from clipboard." + : "using " + protocol + " from " + file) + : ".") + + (format != null ? "(parsing as '" + format + + "' file)" : ""), oom, Desktop.desktop); } } + @Override public void tabSelectionChanged(int index) { if (index > -1) @@ -4814,6 +5019,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, } } + @Override public void tabbedPane_mousePressed(MouseEvent e) { if (SwingUtilities.isRightMouseButton(e)) @@ -4838,6 +5044,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, /** * Open the dialog for regex description parsing. */ + @Override protected void extractScores_actionPerformed(ActionEvent e) { ParseProperties pp = new jalview.analysis.ParseProperties( @@ -4860,6 +5067,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, * jalview.jbgui.GAlignFrame#showDbRefs_actionPerformed(java.awt.event.ActionEvent * ) */ + @Override protected void showDbRefs_actionPerformed(ActionEvent e) { viewport.setShowDbRefs(showDbRefsMenuitem.isSelected()); @@ -4871,6 +5079,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, * @seejalview.jbgui.GAlignFrame#showNpFeats_actionPerformed(java.awt.event. * ActionEvent) */ + @Override protected void showNpFeats_actionPerformed(ActionEvent e) { viewport.setShowNpFeats(showNpFeatsMenuitem.isSelected()); @@ -4920,11 +5129,13 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, fetchr.addActionListener(new ActionListener() { + @Override public void actionPerformed(ActionEvent e) { new Thread(new Runnable() { + @Override public void run() { new jalview.ws.DBRefFetcher(alignPanel.av @@ -4940,12 +5151,14 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, final AlignFrame me = this; new Thread(new Runnable() { + @Override public void run() { final jalview.ws.SequenceFetcher sf = SequenceFetcher .getSequenceFetcherSingleton(me); javax.swing.SwingUtilities.invokeLater(new Runnable() { + @Override public void run() { String[] dbclasses = sf.getOrderedSupportedSources(); @@ -4986,11 +5199,13 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, fetchr.addActionListener(new ActionListener() { + @Override public void actionPerformed(ActionEvent e) { new Thread(new Runnable() { + @Override public void run() { new jalview.ws.DBRefFetcher(alignPanel.av @@ -5018,11 +5233,13 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, + "'"); fetchr.addActionListener(new ActionListener() { + @Override public void actionPerformed(ActionEvent e) { new Thread(new Runnable() { + @Override public void run() { new jalview.ws.DBRefFetcher(alignPanel.av @@ -5063,11 +5280,13 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, fetchr.addActionListener(new ActionListener() { + @Override public void actionPerformed(ActionEvent e) { new Thread(new Runnable() { + @Override public void run() { new jalview.ws.DBRefFetcher(alignPanel.av @@ -5115,6 +5334,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, /** * Left justify the whole alignment. */ + @Override protected void justifyLeftMenuItem_actionPerformed(ActionEvent e) { AlignmentI al = viewport.getAlignment(); @@ -5125,6 +5345,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, /** * Right justify the whole alignment. */ + @Override protected void justifyRightMenuItem_actionPerformed(ActionEvent e) { AlignmentI al = viewport.getAlignment(); @@ -5145,6 +5366,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, * jalview.jbgui.GAlignFrame#showUnconservedMenuItem_actionPerformed(java. * awt.event.ActionEvent) */ + @Override protected void showUnconservedMenuItem_actionPerformed(ActionEvent e) { viewport.setShowUnconserved(showNonconservedMenuItem.getState()); @@ -5158,6 +5380,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, * jalview.jbgui.GAlignFrame#showGroupConsensus_actionPerformed(java.awt.event * .ActionEvent) */ + @Override protected void showGroupConsensus_actionPerformed(ActionEvent e) { viewport.setShowGroupConsensus(showGroupConsensus.getState()); @@ -5172,6 +5395,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, * jalview.jbgui.GAlignFrame#showGroupConservation_actionPerformed(java.awt * .event.ActionEvent) */ + @Override protected void showGroupConservation_actionPerformed(ActionEvent e) { viewport.setShowGroupConservation(showGroupConservation.getState()); @@ -5185,6 +5409,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, * jalview.jbgui.GAlignFrame#showConsensusHistogram_actionPerformed(java.awt * .event.ActionEvent) */ + @Override protected void showConsensusHistogram_actionPerformed(ActionEvent e) { viewport.setShowConsensusHistogram(showConsensusHistogram.getState()); @@ -5198,18 +5423,23 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, * jalview.jbgui.GAlignFrame#showConsensusProfile_actionPerformed(java.awt * .event.ActionEvent) */ + @Override protected void showSequenceLogo_actionPerformed(ActionEvent e) { viewport.setShowSequenceLogo(showSequenceLogo.getState()); alignPanel.updateAnnotation(applyAutoAnnotationSettings.getState()); } + @Override protected void normaliseSequenceLogo_actionPerformed(ActionEvent e) { + showSequenceLogo.setState(true); + viewport.setShowSequenceLogo(true); viewport.setNormaliseSequenceLogo(normaliseSequenceLogo.getState()); alignPanel.updateAnnotation(applyAutoAnnotationSettings.getState()); } + @Override protected void applyAutoAnnotationSettings_actionPerformed(ActionEvent e) { alignPanel.updateAnnotation(applyAutoAnnotationSettings.getState()); @@ -5222,6 +5452,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, * jalview.jbgui.GAlignFrame#makeGrpsFromSelection_actionPerformed(java.awt * .event.ActionEvent) */ + @Override protected void makeGrpsFromSelection_actionPerformed(ActionEvent e) { if (viewport.getSelectionGroup() != null) @@ -5243,10 +5474,8 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, Color col = new Color((int) (Math.random() * 255), (int) (Math.random() * 255), (int) (Math.random() * 255)); col = col.brighter(); - for (Enumeration sq = gps[g].getSequences(null).elements(); sq - .hasMoreElements(); viewport.setSequenceColour( - (SequenceI) sq.nextElement(), col)) - ; + for (SequenceI s : gps[g].getSequences()) + viewport.setSequenceColour(s, col); } PaintRefresher.Refresh(this, viewport.getSequenceSetId()); alignPanel.updateAnnotation(); @@ -5287,6 +5516,7 @@ class PrintThread extends Thread static PageFormat pf; + @Override public void run() { PrinterJob printJob = PrinterJob.getPrinterJob();