X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FAlignViewport.java;h=39ded7f633049aab1db2b626494a44db237815c9;hb=09b8644607fb5b9debbfe39a7177922b0e66aa9a;hp=ba83bfb376f78f4a0326a4b5479fa2460bd0cffc;hpb=9f70ff4b6d193b340031997634c9e3602486bc8e;p=jalview.git diff --git a/src/jalview/gui/AlignViewport.java b/src/jalview/gui/AlignViewport.java index ba83bfb..39ded7f 100644 --- a/src/jalview/gui/AlignViewport.java +++ b/src/jalview/gui/AlignViewport.java @@ -22,7 +22,6 @@ package jalview.gui; import jalview.analysis.AlignmentUtils; import jalview.analysis.AnnotationSorter.SequenceAnnotationOrder; -import jalview.analysis.TreeModel; import jalview.api.AlignViewportI; import jalview.api.AlignmentViewPanel; import jalview.api.FeatureColourI; @@ -36,7 +35,6 @@ import jalview.datamodel.Alignment; import jalview.datamodel.AlignmentI; import jalview.datamodel.ColumnSelection; import jalview.datamodel.HiddenColumns; -import jalview.datamodel.PDBEntry; import jalview.datamodel.SearchResults; import jalview.datamodel.SearchResultsI; import jalview.datamodel.SequenceGroup; @@ -58,10 +56,9 @@ import java.awt.Dimension; import java.awt.Font; import java.awt.FontMetrics; import java.awt.Rectangle; -import java.util.ArrayList; import java.util.Hashtable; +import java.util.Iterator; import java.util.List; -import java.util.Vector; import javax.swing.JInternalFrame; @@ -76,8 +73,6 @@ public class AlignViewport extends AlignmentViewport { Font font; - TreeModel currentTree = null; - boolean cursorMode = false; boolean antiAlias = false; @@ -97,6 +92,12 @@ public class AlignViewport extends AlignmentViewport private AnnotationColumnChooser annotationColumnSelectionState; + boolean validCharWidth; + + public boolean followSelection = true; + + private Hashtable calcIdParams = new Hashtable<>(); + /** * Creates a new AlignViewport object. * @@ -259,16 +260,18 @@ public class AlignViewport extends AlignmentViewport setFont(new Font(fontName, style, Integer.parseInt(fontSize)), true); + AlignmentI al = getAlignment(); + if (Cache.getDefault("NORMALISE_GAPS", true)) { - alignment.setGapCharacter(Cache.getDefault("GAP_SYMBOL", "-").charAt( - 0)); + al.setGapCharacter(Cache.getDefault("GAP_SYMBOL", "-").charAt(0)); } + // We must set conservation and consensus before setting colour, // as Blosum and Clustal require this to be done - if (hconsensus == null && !isDataset) + if (consensusProfiles == null && !isDataset) { - if (!alignment.isNucleotide()) + if (!al.isNucleotide()) { showConservation = Cache.getDefault("SHOW_CONSERVATION", true); showQuality = Cache.getDefault("SHOW_QUALITY", true); @@ -280,13 +283,19 @@ public class AlignViewport extends AlignmentViewport showSequenceLogo = Cache.getDefault("SHOW_CONSENSUS_LOGO", false); normaliseSequenceLogo = Cache.getDefault("NORMALISE_CONSENSUS_LOGO", false); + // for now, use consensus options for Information till it gets its own + setShowHMMSequenceLogo(showSequenceLogo); + setNormaliseHMMSequenceLogo(normaliseSequenceLogo); + setShowInformationHistogram(showConsensusHistogram); showGroupConsensus = Cache.getDefault("SHOW_GROUP_CONSENSUS", false); showConsensus = Cache.getDefault("SHOW_IDENTITY", true); showOccupancy = Cache.getDefault(Preferences.SHOW_OCCUPANCY, true); } initAutoAnnotation(); - String colourProperty = alignment.isNucleotide() + // initInformation(); + + String colourProperty = al.isNucleotide() ? Preferences.DEFAULT_COLOUR_NUC : Preferences.DEFAULT_COLOUR_PROT; String schemeName = Cache.getProperty(colourProperty); @@ -297,7 +306,7 @@ public class AlignViewport extends AlignmentViewport ResidueColourScheme.NONE); } ColourSchemeI colourScheme = ColourSchemeProperty - .getColourScheme(alignment, schemeName); + .getColourScheme(al, schemeName); residueShading = new ResidueShader(colourScheme); if (colourScheme instanceof UserColourScheme) @@ -309,12 +318,10 @@ public class AlignViewport extends AlignmentViewport if (residueShading != null) { - residueShading.setConsensus(hconsensus); + residueShading.setConsensus(consensusProfiles); } } - boolean validCharWidth; - /** * {@inheritDoc} */ @@ -397,9 +404,9 @@ public class AlignViewport extends AlignmentViewport /* * replace mappings on our alignment */ - if (alignment != null && align != null) + if (getAlignment() != null && align != null) { - alignment.setCodonFrames(align.getCodonFrames()); + getAlignment().setCodonFrames(align.getCodonFrames()); } } @@ -450,38 +457,17 @@ public class AlignViewport extends AlignmentViewport } /** - * DOCUMENT ME! - * - * @param tree - * DOCUMENT ME! - */ - public void setCurrentTree(TreeModel tree) - { - currentTree = tree; - } - - /** - * DOCUMENT ME! - * - * @return DOCUMENT ME! - */ - public TreeModel getCurrentTree() - { - return currentTree; - } - - /** - * returns the visible column regions of the alignment + * Returns an iterator over the visible column regions of the alignment * * @param selectedRegionOnly * true to just return the contigs intersecting with the selected * area * @return */ - public int[] getViewAsVisibleContigs(boolean selectedRegionOnly) + public Iterator getViewAsVisibleContigs(boolean selectedRegionOnly) { - int[] viscontigs = null; - int start = 0, end = 0; + int start = 0; + int end = 0; if (selectedRegionOnly && selectionGroup != null) { start = selectionGroup.getStartRes(); @@ -489,10 +475,11 @@ public class AlignViewport extends AlignmentViewport } else { - end = alignment.getWidth(); + end = getAlignment().getWidth(); } - viscontigs = alignment.getHiddenColumns().getVisibleContigs(start, end); - return viscontigs; + + return getAlignment().getHiddenColumns().getVisContigsIterator(start, + end, false); } /** @@ -541,8 +528,6 @@ public class AlignViewport extends AlignmentViewport return false; } - public boolean followSelection = true; - /** * @return true if view selection should always follow the selections * broadcast by other selection sources @@ -610,69 +595,6 @@ public class AlignViewport extends AlignmentViewport /** * - * @param pdbEntries - * @return an array of SequenceI arrays, one for each PDBEntry, listing which - * sequences in the alignment hold a reference to it - */ - public SequenceI[][] collateForPDB(PDBEntry[] pdbEntries) - { - List seqvectors = new ArrayList(); - for (PDBEntry pdb : pdbEntries) - { - List choosenSeqs = new ArrayList(); - for (SequenceI sq : alignment.getSequences()) - { - Vector pdbRefEntries = sq.getDatasetSequence() - .getAllPDBEntries(); - if (pdbRefEntries == null) - { - continue; - } - for (PDBEntry pdbRefEntry : pdbRefEntries) - { - if (pdbRefEntry.getId().equals(pdb.getId())) - { - if (pdbRefEntry.getChainCode() != null - && pdb.getChainCode() != null) - { - if (pdbRefEntry.getChainCode().equalsIgnoreCase( - pdb.getChainCode()) && !choosenSeqs.contains(sq)) - { - choosenSeqs.add(sq); - continue; - } - } - else - { - if (!choosenSeqs.contains(sq)) - { - choosenSeqs.add(sq); - continue; - } - } - - } - } - } - seqvectors - .add(choosenSeqs.toArray(new SequenceI[choosenSeqs.size()])); - } - return seqvectors.toArray(new SequenceI[seqvectors.size()][]); - } - - @Override - public boolean isNormaliseSequenceLogo() - { - return normaliseSequenceLogo; - } - - public void setNormaliseSequenceLogo(boolean state) - { - normaliseSequenceLogo = state; - } - - /** - * * @return true if alignment characters should be displayed */ @Override @@ -681,8 +603,6 @@ public class AlignViewport extends AlignmentViewport return validCharWidth; } - private Hashtable calcIdParams = new Hashtable(); - public AutoCalcSetting getCalcIdSettingsFor(String calcId) { return calcIdParams.get(calcId);