X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fviewmodel%2FAlignmentViewport.java;h=a2da5910d9b3db3ce18d98594413feb6386cc299;hb=b5d61763044c1d72f06ce0e50da2171422a3774b;hp=3fedb925352fde2e0ad6e6f17b02e1939ac1f4b4;hpb=497958b4e5217efaa3ddeece38f38c3a6e98cb96;p=jalview.git diff --git a/src/jalview/viewmodel/AlignmentViewport.java b/src/jalview/viewmodel/AlignmentViewport.java index 3fedb92..a2da591 100644 --- a/src/jalview/viewmodel/AlignmentViewport.java +++ b/src/jalview/viewmodel/AlignmentViewport.java @@ -38,7 +38,6 @@ import jalview.schemes.Blosum62ColourScheme; import jalview.schemes.ColourSchemeI; import jalview.schemes.PIDColourScheme; import jalview.schemes.ResidueProperties; -import jalview.viewmodel.seqfeatures.FeaturesDisplayed; import jalview.workers.AlignCalcManager; import jalview.workers.ConsensusThread; import jalview.workers.StrucConsensusThread; @@ -447,7 +446,9 @@ public abstract class AlignmentViewport implements AlignViewportI AlignmentAnnotation alignmentAnnotation) { if (!alignmentAnnotation.autoCalculated) + { return false; + } if (calculator.workingInvolvedWith(alignmentAnnotation)) { // System.err.println("grey out ("+alignmentAnnotation.label+")"); @@ -900,11 +901,12 @@ public abstract class AlignmentViewport implements AlignViewportI selectionGroup = new SequenceGroup(); selectionGroup.setEndRes(alignment.getWidth() - 1); } - Vector tmp = alignment.getHiddenSequences().showAll( + List tmp = alignment.getHiddenSequences().showAll( hiddenRepSequences); - for (int t = 0; t < tmp.size(); t++) + for (SequenceI seq : tmp) { - selectionGroup.addSequence((SequenceI) tmp.elementAt(t), false); + selectionGroup.addSequence(seq, false); + setSequenceAnnotationsVisible(seq, true); } hasHiddenRows = false; @@ -919,7 +921,8 @@ public abstract class AlignmentViewport implements AlignViewportI public void showSequence(int index) { - Vector tmp = alignment.getHiddenSequences().showSequence(index, + List tmp = alignment.getHiddenSequences().showSequence( + index, hiddenRepSequences); if (tmp.size() > 0) { @@ -929,9 +932,10 @@ public abstract class AlignmentViewport implements AlignViewportI selectionGroup.setEndRes(alignment.getWidth() - 1); } - for (int t = 0; t < tmp.size(); t++) + for (SequenceI seq : tmp) { - selectionGroup.addSequence((SequenceI) tmp.elementAt(t), false); + selectionGroup.addSequence(seq, false); + setSequenceAnnotationsVisible(seq, true); } // JBPNote: refactor: only update flag if we modified visiblity (used to // do this regardless) @@ -965,12 +969,30 @@ public abstract class AlignmentViewport implements AlignViewportI for (int i = 0; i < seq.length; i++) { alignment.getHiddenSequences().hideSequence(seq[i]); + setSequenceAnnotationsVisible(seq[i], false); } hasHiddenRows = true; firePropertyChange("alignment", null, alignment.getSequences()); } } + /** + * Set visibility for any annotations for the given sequence. + * + * @param sequenceI + */ + protected void setSequenceAnnotationsVisible(SequenceI sequenceI, + boolean visible) + { + for (AlignmentAnnotation ann : alignment.getAlignmentAnnotation()) + { + if (ann.sequenceRef == sequenceI) + { + ann.visible = visible; + } + } + } + public void hideRepSequences(SequenceI repSequence, SequenceGroup sg) { int sSize = sg.getSize(); @@ -1692,5 +1714,44 @@ public abstract class AlignmentViewport implements AlignViewportI return showSeqFeaturesHeight; } + private boolean showAnnotation = true; + + private boolean rightAlignIds = false; + + /** + * DOCUMENT ME! + * + * @return DOCUMENT ME! + */ + public boolean getShowAnnotation() + { + return isShowAnnotation(); + } + + /** + * DOCUMENT ME! + * + * @param b + * DOCUMENT ME! + */ + public void setShowAnnotation(boolean b) + { + showAnnotation = b; + } + + public boolean isShowAnnotation() + { + return showAnnotation; + } + + public boolean isRightAlignIds() + { + return rightAlignIds; + } + + public void setRightAlignIds(boolean rightAlignIds) + { + this.rightAlignIds = rightAlignIds; + } }