X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fviewmodel%2FAlignmentViewport.java;h=65567dc527260555b47e26ab6347b4f9a5c07f2f;hb=c19d2a91ca05e052e3408bf5852d88eb5d0608f1;hp=5617bcf74ff99064c521ff3d35f3087c727b31a0;hpb=1b2a573d7c93db57c3299d768f021c9096dffc67;p=jalview.git diff --git a/src/jalview/viewmodel/AlignmentViewport.java b/src/jalview/viewmodel/AlignmentViewport.java index 5617bcf..65567dc 100644 --- a/src/jalview/viewmodel/AlignmentViewport.java +++ b/src/jalview/viewmodel/AlignmentViewport.java @@ -1,6 +1,6 @@ /* - * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$) - * Copyright (C) $$Year-Rel$$ The Jalview Authors + * Jalview - A Sequence Alignment Editor and Viewer (Version 2.9.0b2) + * Copyright (C) 2015 The Jalview Authors * * This file is part of Jalview. * @@ -540,7 +540,6 @@ public abstract class AlignmentViewport implements AlignViewportI, return isDataset; } - private Map hiddenRepSequences; protected ColumnSelection colSel = new ColumnSelection(); @@ -553,12 +552,11 @@ public abstract class AlignmentViewport implements AlignViewportI, protected ColourSchemeI globalColourScheme = null; - @Override public void setGlobalColourScheme(ColourSchemeI cs) { // TODO: logic refactored from AlignFrame changeColour - - // autorecalc stuff should be changed to rely on the worker system + // TODO: autorecalc stuff should be changed to rely on the worker system // check to see if we should implement a changeColour(cs) method rather than // put th logic in here // - means that caller decides if they want to just modify state and defer @@ -630,7 +628,6 @@ public abstract class AlignmentViewport implements AlignViewportI, } } } - } @Override @@ -979,7 +976,6 @@ public abstract class AlignmentViewport implements AlignViewportI, */ public boolean sortByTree = false; - /** * * @@ -1061,7 +1057,6 @@ public abstract class AlignmentViewport implements AlignViewportI, return alignment.getHiddenSequences().getSize() > 0; } - protected SequenceGroup selectionGroup; public void setSequenceSetId(String newid) @@ -1310,8 +1305,7 @@ public abstract class AlignmentViewport implements AlignViewportI, public void showSequence(int index) { List tmp = alignment.getHiddenSequences().showSequence( - index, - hiddenRepSequences); + index, hiddenRepSequences); if (tmp.size() > 0) { if (selectionGroup == null) @@ -1412,8 +1406,9 @@ public abstract class AlignmentViewport implements AlignViewportI, public boolean isHiddenRepSequence(SequenceI seq) { - return alignment.getSeqrep()==seq || (hiddenRepSequences != null - && hiddenRepSequences.containsKey(seq)); + return alignment.getSeqrep() == seq + || (hiddenRepSequences != null && hiddenRepSequences + .containsKey(seq)); } public SequenceGroup getRepresentedSequences(SequenceI seq) @@ -1435,7 +1430,6 @@ public abstract class AlignmentViewport implements AlignViewportI, colSel.invertColumnSelection(0, alignment.getWidth()); } - @Override public SequenceI[] getSelectionAsNewSequence() { @@ -1463,7 +1457,6 @@ public abstract class AlignmentViewport implements AlignViewportI, return sequences; } - @Override public SequenceI[] getSequenceSelection() { @@ -1479,16 +1472,13 @@ public abstract class AlignmentViewport implements AlignViewportI, return sequences; } - @Override - public CigarArray getViewAsCigars( - boolean selectedRegionOnly) + public CigarArray getViewAsCigars(boolean selectedRegionOnly) { return new CigarArray(alignment, colSel, (selectedRegionOnly ? selectionGroup : null)); } - @Override public jalview.datamodel.AlignmentView getAlignmentView( boolean selectedOnly) @@ -1496,7 +1486,6 @@ public abstract class AlignmentViewport implements AlignViewportI, return getAlignmentView(selectedOnly, false); } - @Override public jalview.datamodel.AlignmentView getAlignmentView( boolean selectedOnly, boolean markGroups) @@ -1506,7 +1495,6 @@ public abstract class AlignmentViewport implements AlignViewportI, markGroups); } - @Override public String[] getViewAsString(boolean selectedRegionOnly) { @@ -1544,7 +1532,6 @@ public abstract class AlignmentViewport implements AlignViewportI, return selection; } - @Override public List getVisibleRegionBoundaries(int min, int max) { @@ -1572,8 +1559,7 @@ public abstract class AlignmentViewport implements AlignViewportI, } } - regions.add(new int[] - { start, end }); + regions.add(new int[] { start, end }); if (colSel != null && colSel.hasHiddenColumns()) { @@ -1588,19 +1574,23 @@ public abstract class AlignmentViewport implements AlignViewportI, } @Override - public List getVisibleAlignmentAnnotation(boolean selectedOnly) + public List getVisibleAlignmentAnnotation( + boolean selectedOnly) { ArrayList ala = new ArrayList(); AlignmentAnnotation[] aa; - if ((aa=alignment.getAlignmentAnnotation())!=null) + if ((aa = alignment.getAlignmentAnnotation()) != null) { - for (AlignmentAnnotation annot:aa) + for (AlignmentAnnotation annot : aa) { AlignmentAnnotation clone = new AlignmentAnnotation(annot); - if (selectedOnly && selectionGroup!=null) + if (selectedOnly && selectionGroup != null) + { + colSel.makeVisibleAnnotation(selectionGroup.getStartRes(), + selectionGroup.getEndRes(), clone); + } + else { - colSel.makeVisibleAnnotation(selectionGroup.getStartRes(), selectionGroup.getEndRes(),clone); - } else { colSel.makeVisibleAnnotation(clone); } ala.add(clone); @@ -1609,14 +1599,12 @@ public abstract class AlignmentViewport implements AlignViewportI, return ala; } - @Override public boolean isPadGaps() { return padGaps; } - @Override public void setPadGaps(boolean padGaps) { @@ -1944,6 +1932,7 @@ public abstract class AlignmentViewport implements AlignViewportI, } oldrfs.clear(); } + @Override public boolean isDisplayReferenceSeq() { @@ -2052,7 +2041,8 @@ public abstract class AlignmentViewport implements AlignViewportI, @Override public boolean areFeaturesDisplayed() { - return featuresDisplayed != null && featuresDisplayed.getRegisterdFeaturesCount()>0; + return featuresDisplayed != null + && featuresDisplayed.getRegisterdFeaturesCount() > 0; } /** @@ -2066,6 +2056,7 @@ public abstract class AlignmentViewport implements AlignViewportI, { viewStyle.setShowSequenceFeatures(b); } + @Override public boolean isShowSequenceFeatures() { @@ -2084,8 +2075,6 @@ public abstract class AlignmentViewport implements AlignViewportI, return viewStyle.isShowSequenceFeaturesHeight(); } - - @Override public void setShowAnnotation(boolean b) { @@ -2330,7 +2319,8 @@ public abstract class AlignmentViewport implements AlignViewportI, protected void broadcastCommand(CommandI command, boolean undo) { - getStructureSelectionManager().commandPerformed(command, undo, getVamsasSource()); + getStructureSelectionManager().commandPerformed(command, undo, + getVamsasSource()); } /** @@ -2501,21 +2491,21 @@ public abstract class AlignmentViewport implements AlignViewportI, */ protected int findComplementScrollTarget(SearchResults sr) { - final AlignViewportI codingComplement = getCodingComplement(); - if (codingComplement == null || !codingComplement.isFollowHighlight()) + final AlignViewportI complement = getCodingComplement(); + if (complement == null || !complement.isFollowHighlight()) { return 0; } boolean iAmProtein = !getAlignment().isNucleotide(); - AlignmentI proteinAlignment = iAmProtein ? getAlignment() - : codingComplement.getAlignment(); + AlignmentI proteinAlignment = iAmProtein ? getAlignment() : complement + .getAlignment(); if (proteinAlignment == null) { return 0; } final Set mappings = proteinAlignment .getCodonFrames(); - + /* * Heuristic: find the first mapped sequence (if any) with a non-gapped * residue in the middle column of the visible region. Scroll the @@ -2531,7 +2521,13 @@ public abstract class AlignmentViewport implements AlignViewportI, int middleColumn = getStartRes() + (getEndRes() - getStartRes()) / 2; final HiddenSequences hiddenSequences = getAlignment() .getHiddenSequences(); - for (int seqNo = getStartSeq(); seqNo < getEndSeq(); seqNo++, seqOffset++) + + /* + * searching to the bottom of the alignment gives smoother scrolling across + * all gapped visible regions + */ + int lastSeq = alignment.getHeight() - 1; + for (int seqNo = getStartSeq(); seqNo < lastSeq; seqNo++, seqOffset++) { sequence = getAlignment().getSequenceAt(seqNo); if (hiddenSequences != null && hiddenSequences.isHidden(sequence)) @@ -2549,7 +2545,7 @@ public abstract class AlignmentViewport implements AlignViewportI, break; } } - + if (sequence == null) { /*