X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fjalview%2Fgui%2FAlignViewport.java;h=13f66d973ffeaf84e2085f32bd7e07f85db678c4;hb=d25788049914c6da6c71d203822a9adfe548d3be;hp=d0c5674e257ae8ff0acf41bc53e81faf0953f863;hpb=caf13e6a9dc82023cd8648420201e5ad60ce0393;p=jalview.git diff --git a/src/jalview/gui/AlignViewport.java b/src/jalview/gui/AlignViewport.java old mode 100755 new mode 100644 index d0c5674..13f66d9 --- a/src/jalview/gui/AlignViewport.java +++ b/src/jalview/gui/AlignViewport.java @@ -1,6 +1,6 @@ /* - * Jalview - A Sequence Alignment Editor and Viewer (Version 2.6) - * Copyright (C) 2010 J Procter, AM Waterhouse, G Barton, M Clamp, S Searle + * Jalview - A Sequence Alignment Editor and Viewer (Version 2.7) + * Copyright (C) 2011 J Procter, AM Waterhouse, G Barton, M Clamp, S Searle * * This file is part of Jalview. * @@ -40,6 +40,7 @@ import java.util.*; import java.awt.*; import jalview.analysis.*; +import jalview.api.StructureSelectionManagerProvider; import jalview.bin.*; @@ -54,7 +55,7 @@ import jalview.structure.VamsasSource; * DOCUMENT ME! * * @author $author$ - * @version $Revision$ + * @version $Revision: 1.141 $ */ public class AlignViewport implements SelectionSource, VamsasSource { @@ -643,9 +644,9 @@ public class AlignViewport implements SelectionSource, VamsasSource } /** - * DOCUMENT ME! * - * @return DOCUMENT ME! + * + * @return null or the currently selected sequence region */ public SequenceGroup getSelectionGroup() { @@ -653,10 +654,10 @@ public class AlignViewport implements SelectionSource, VamsasSource } /** - * DOCUMENT ME! + * Set the selection group for this window. * - * @param sg - * DOCUMENT ME! + * @param sg - group holding references to sequences in this alignment view + * */ public void setSelectionGroup(SequenceGroup sg) { @@ -664,9 +665,8 @@ public class AlignViewport implements SelectionSource, VamsasSource } /** - * DOCUMENT ME! - * - * @return DOCUMENT ME! + * GUI state + * @return true if conservation based shading is enabled */ public boolean getConservationSelected() { @@ -674,10 +674,9 @@ public class AlignViewport implements SelectionSource, VamsasSource } /** - * DOCUMENT ME! - * + * GUI state * @param b - * DOCUMENT ME! + * enable conservation based shading */ public void setConservationSelected(boolean b) { @@ -685,9 +684,8 @@ public class AlignViewport implements SelectionSource, VamsasSource } /** - * DOCUMENT ME! - * - * @return DOCUMENT ME! + * GUI state + * @return true if percent identity threshold is applied to shading */ public boolean getAbovePIDThreshold() { @@ -695,10 +693,10 @@ public class AlignViewport implements SelectionSource, VamsasSource } /** - * DOCUMENT ME! + * GUI state * - * @param b - * DOCUMENT ME! + * + * @param b indicate if percent identity threshold is applied to shading */ public void setAbovePIDThreshold(boolean b) { @@ -943,13 +941,13 @@ public class AlignViewport implements SelectionSource, VamsasSource { if (alignment != null && alignment.getCodonFrames() != null) { - StructureSelectionManager.getStructureSelectionManager() + StructureSelectionManager.getStructureSelectionManager(Desktop.instance) .removeMappings(alignment.getCodonFrames()); } this.alignment = align; if (alignment.getCodonFrames() != null) { - StructureSelectionManager.getStructureSelectionManager().addMappings( + StructureSelectionManager.getStructureSelectionManager(Desktop.instance).addMappings( alignment.getCodonFrames()); } } @@ -2017,32 +2015,34 @@ public class AlignViewport implements SelectionSource, VamsasSource /** * checks current SelectionGroup against record of last hash value, and * updates record. + * @param b update the record of last hash value * - * @return true if SelectionGroup changed since last call + * @return true if SelectionGroup changed since last call (when b is true) */ - boolean isSelectionGroupChanged() + boolean isSelectionGroupChanged(boolean b) { - int hc = (selectionGroup == null) ? -1 : selectionGroup.hashCode(); - if (hc != sgrouphash) + int hc = (selectionGroup == null || selectionGroup.getSize()==0) ? -1 : selectionGroup.hashCode(); + if (hc!=-1 && hc != sgrouphash) { - sgrouphash = hc; + if (b) {sgrouphash = hc;} return true; } return false; } /** - * checks current colsel against record of last hash value, and updates + * checks current colsel against record of last hash value, and optionally updates * record. - * - * @return true if colsel changed since last call + + * @param b update the record of last hash value + * @return true if colsel changed since last call (when b is true) */ - boolean isColSelChanged() + boolean isColSelChanged(boolean b) { - int hc = (colSel == null) ? -1 : colSel.hashCode(); - if (hc != colselhash) + int hc = (colSel == null || colSel.size()==0) ? -1 : colSel.hashCode(); + if (hc!=-1 && hc != colselhash) { - colselhash = hc; + if (b) {colselhash = hc;} return true; } return false; @@ -2051,7 +2051,7 @@ public class AlignViewport implements SelectionSource, VamsasSource public void sendSelection() { jalview.structure.StructureSelectionManager - .getStructureSelectionManager().sendSelection( + .getStructureSelectionManager(Desktop.instance).sendSelection( new SequenceGroup(getSelectionGroup()), new ColumnSelection(getColumnSelection()), this); } @@ -2243,4 +2243,43 @@ public class AlignViewport implements SelectionSource, VamsasSource } } } + + public StructureSelectionManager getStructureSelectionManager() + { + return StructureSelectionManager.getStructureSelectionManager(Desktop.instance); + } + + /** + * + * @param pdbEntries + * @return a series of SequenceI arrays, one for each PDBEntry, listing which sequence in the alignment holds a reference to it + */ + public SequenceI[][] collateForPDB(PDBEntry[] pdbEntries) + { + ArrayList seqvectors = new ArrayList(); + for (PDBEntry pdb: pdbEntries) { + ArrayList seqs = new ArrayList(); + for (int i = 0; i < alignment.getHeight(); i++) + { + Vector pdbs = alignment.getSequenceAt(i) + .getDatasetSequence().getPDBId(); + if (pdbs == null) + continue; + SequenceI sq; + for (int p = 0; p < pdbs.size(); p++) + { + PDBEntry p1 = (PDBEntry) pdbs.elementAt(p); + if (p1.getId().equals(pdb.getId())) + { + if (!seqs.contains(sq=alignment.getSequenceAt(i))) + seqs.add(sq); + + continue; + } + } + } + seqvectors.add(seqs.toArray(new SequenceI[seqs.size()])); + } + return seqvectors.toArray(new SequenceI[seqvectors.size()][]); + } }