/*
- * 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)
+ * Copyright (C) 2015 The Jalview Authors
*
* This file is part of Jalview.
*
return isDataset;
}
-
private Map<SequenceI, SequenceCollectionI> hiddenRepSequences;
protected ColumnSelection colSel = new ColumnSelection();
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
}
}
}
-
}
@Override
*/
public boolean sortByTree = false;
-
/**
*
*
// hasHiddenColumns = colSel.hasHiddenColumns();
}
- protected boolean hasHiddenRows = false;
-
@Override
public boolean hasHiddenRows()
{
- return hasHiddenRows;
- }
-
- public void setHasHiddenRows(boolean hasHiddenRows)
- {
- this.hasHiddenRows = hasHiddenRows;
+ return alignment.getHiddenSequences().getSize() > 0;
}
protected SequenceGroup selectionGroup;
setSequenceAnnotationsVisible(seq, true);
}
- hasHiddenRows = false;
hiddenRepSequences = null;
firePropertyChange("alignment", null, alignment.getSequences());
public void showSequence(int index)
{
List<SequenceI> tmp = alignment.getHiddenSequences().showSequence(
- index,
- hiddenRepSequences);
+ index, hiddenRepSequences);
if (tmp.size() > 0)
{
if (selectionGroup == null)
selectionGroup.addSequence(seq, false);
setSequenceAnnotationsVisible(seq, true);
}
- // JBPNote: refactor: only update flag if we modified visiblity (used to
- // do this regardless)
- if (alignment.getHiddenSequences().getSize() < 1)
- {
- hasHiddenRows = false;
- }
firePropertyChange("alignment", null, alignment.getSequences());
sendSelection();
}
alignment.getHiddenSequences().hideSequence(seq[i]);
setSequenceAnnotationsVisible(seq[i], false);
}
- hasHiddenRows = true;
firePropertyChange("alignment", null, alignment.getSequences());
}
}
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)
colSel.invertColumnSelection(0, alignment.getWidth());
}
-
@Override
public SequenceI[] getSelectionAsNewSequence()
{
return sequences;
}
-
@Override
public SequenceI[] getSequenceSelection()
{
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)
return getAlignmentView(selectedOnly, false);
}
-
@Override
public jalview.datamodel.AlignmentView getAlignmentView(
boolean selectedOnly, boolean markGroups)
markGroups);
}
-
@Override
public String[] getViewAsString(boolean selectedRegionOnly)
{
return selection;
}
-
@Override
public List<int[]> getVisibleRegionBoundaries(int min, int max)
{
}
}
- regions.add(new int[]
- { start, end });
+ regions.add(new int[] { start, end });
if (colSel != null && colSel.hasHiddenColumns())
{
}
@Override
- public List<AlignmentAnnotation> getVisibleAlignmentAnnotation(boolean selectedOnly)
+ public List<AlignmentAnnotation> getVisibleAlignmentAnnotation(
+ boolean selectedOnly)
{
ArrayList<AlignmentAnnotation> ala = new ArrayList<AlignmentAnnotation>();
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);
return ala;
}
-
@Override
public boolean isPadGaps()
{
return padGaps;
}
-
@Override
public void setPadGaps(boolean padGaps)
{
}
oldrfs.clear();
}
+
@Override
public boolean isDisplayReferenceSeq()
{
@Override
public boolean areFeaturesDisplayed()
{
- return featuresDisplayed != null && featuresDisplayed.getRegisterdFeaturesCount()>0;
+ return featuresDisplayed != null
+ && featuresDisplayed.getRegisterdFeaturesCount() > 0;
}
/**
{
viewStyle.setShowSequenceFeatures(b);
}
+
@Override
public boolean isShowSequenceFeatures()
{
return viewStyle.isShowSequenceFeaturesHeight();
}
-
-
@Override
public void setShowAnnotation(boolean b)
{
protected void broadcastCommand(CommandI command, boolean undo)
{
- getStructureSelectionManager().commandPerformed(command, undo, getVamsasSource());
+ getStructureSelectionManager().commandPerformed(command, undo,
+ getVamsasSource());
}
/**
*/
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<AlignedCodonFrame> 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
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))
break;
}
}
-
+
if (sequence == null)
{
/*