X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FAlignFrame.java;h=3f572e89fbccad7c5558773a7c6b811dfb553b0a;hb=4bd4726a6cd30825c18525c2a0851e207d687423;hp=5dba8503830049a731e3ebef266d5263f2d99dbe;hpb=8474e47dc878f83b9b3f45ef6b04eb64ad733e2a;p=jalview.git diff --git a/src/jalview/gui/AlignFrame.java b/src/jalview/gui/AlignFrame.java index 5dba850..3f572e8 100644 --- a/src/jalview/gui/AlignFrame.java +++ b/src/jalview/gui/AlignFrame.java @@ -473,7 +473,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, @Override public void focusGained(FocusEvent e) { - Desktop.setCurrentAlignFrame(AlignFrame.this); + Jalview.setCurrentAlignFrame(AlignFrame.this); } }); @@ -4651,7 +4651,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, final boolean dna = viewport.getAlignment().isNucleotide(); List ptypes = (seqs == null || seqs.length == 0) ? null : new CrossRef(seqs, dataset) - .findXrefSourcesForSequences(); + .findXrefSourcesForSequences(dna); for (final String source : ptypes) { @@ -4691,7 +4691,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, * @param source * the database to show cross-references for */ - protected void showProductsFor(final SequenceI[] sel, final boolean dna, + protected void showProductsFor(final SequenceI[] sel, final boolean _odna, final String source) { Runnable foo = new Runnable() @@ -4710,8 +4710,18 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, .getAlignment(); AlignmentI dataset = alignment.getDataset() == null ? alignment : alignment.getDataset(); - AlignmentI xrefs = new CrossRef(sel, alignment) - .findXrefSequences(source); + boolean dna = alignment.isNucleotide(); + if (_odna!=dna) + { + System.err + .println("Conflict: showProducts for alignment originally " + + "thought to be " + + (_odna ? "DNA" : "Protein") + + " now searching for " + + (dna ? "DNA" : "Protein") + " Context."); + } + AlignmentI xrefs = new CrossRef(sel, dataset) + .findXrefSequences(source, dna); if (xrefs == null) { return; @@ -4724,6 +4734,15 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, AlignmentI xrefsAlignment = makeCrossReferencesAlignment(dataset, xrefs); + final SequenceI[] sequenceSelection = AlignFrame.this.viewport + .getSequenceSelection(); + if (!dna) + { + xrefsAlignment = AlignmentUtils.makeCdsAlignment( + xrefsAlignment.getSequencesArray(), dataset, + sequenceSelection); + xrefsAlignment.alignAs(alignment); + } AlignFrame newFrame = new AlignFrame(xrefsAlignment, DEFAULT_WIDTH, DEFAULT_HEIGHT); @@ -4751,14 +4770,12 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, * sequences). If we are DNA, drop introns and update mappings */ AlignmentI copyAlignment = null; - final SequenceI[] sequenceSelection = AlignFrame.this.viewport - .getSequenceSelection(); - // List cf = xrefs.getCodonFrames(); boolean copyAlignmentIsAligned = false; if (dna) { copyAlignment = AlignmentUtils.makeCdsAlignment( - sequenceSelection, dataset); + sequenceSelection, dataset, + xrefsAlignment.getSequencesArray()); if (copyAlignment.getHeight() == 0) { System.err.println("Failed to make CDS alignment"); @@ -4779,7 +4796,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, else { copyAlignment = AlignmentUtils.makeCopyAlignment( - sequenceSelection, xrefs.getSequencesArray()); + sequenceSelection, xrefs.getSequencesArray(), dataset); } copyAlignment.setGapCharacter(AlignFrame.this.viewport .getGapCharacter()); @@ -4812,7 +4829,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, * align cdna to protein - currently only if * fetching and aligning Ensembl transcripts! */ - if (DBRefSource.ENSEMBL.equalsIgnoreCase(source)) + if (dna && DBRefSource.ENSEMBL.equalsIgnoreCase(source)) { copyAlignment.alignAs(xrefsAlignment); } @@ -4871,6 +4888,8 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, * Makes an alignment containing the given sequences, and adds them to the * given dataset, which is also set as the dataset for the new alignment * + * TODO: refactor to DatasetI method + * * @param dataset * @param seqs * @return @@ -4891,7 +4910,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, sprods[s].updatePDBIds(); } Alignment al = new Alignment(sprods); - al.setDataset((Alignment) dataset); + al.setDataset(dataset); return al; } @@ -5940,8 +5959,13 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, protected void setAnnotationsVisibility(boolean visible, boolean forSequences, boolean forAlignment) { - for (AlignmentAnnotation aa : alignPanel.getAlignment() - .getAlignmentAnnotation()) + AlignmentAnnotation[] anns = alignPanel.getAlignment() + .getAlignmentAnnotation(); + if (anns == null) + { + return; + } + for (AlignmentAnnotation aa : anns) { /* * don't display non-positional annotations on an alignment @@ -6078,7 +6102,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, @Override protected void runGroovy_actionPerformed() { - Desktop.setCurrentAlignFrame(this); + Jalview.setCurrentAlignFrame(this); groovy.ui.Console console = Desktop.getGroovyConsole(); if (console != null) {