X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fdatamodel%2FAlignmentI.java;h=cea1c5b29fc4ec56d6bae3708a5f6f491a792822;hb=747167089ecf8d6afc70d417f5a20352e029bd95;hp=9c73873397be19ac39176b0e52bf34c8c7e67c09;hpb=06476b6d02ef690bf684905cba39eb7b5db7525b;p=jalview.git diff --git a/src/jalview/datamodel/AlignmentI.java b/src/jalview/datamodel/AlignmentI.java index 9c73873..cea1c5b 100755 --- a/src/jalview/datamodel/AlignmentI.java +++ b/src/jalview/datamodel/AlignmentI.java @@ -48,15 +48,29 @@ public interface AlignmentI extends AnnotatedCollectionI /** * - * Calculates the maximum width of the alignment, including gaps. + * Answers the width of the alignment, including gaps, that is, the length of + * the longest sequence, or -1 if there are no sequences. Avoid calling this + * method repeatedly where possible, as it has to perform a calculation. Note + * that this width includes any hidden columns. * - * @return Greatest sequence length within alignment, or -1 if no sequences - * present + * @return + * @see AlignmentI#getVisibleWidth() */ @Override int getWidth(); /** + * + * Answers the visible width of the alignment, including gaps, that is, the + * length of the longest sequence, excluding any hidden columns. Answers -1 if + * there are no sequences. Avoid calling this method repeatedly where + * possible, as it has to perform a calculation. + * + * @return + */ + int getVisibleWidth(); + + /** * Calculates if this set of sequences (visible and invisible) are all the * same length * @@ -504,8 +518,6 @@ public interface AlignmentI extends AnnotatedCollectionI * - null or specific sequence reference * @param groupRef * - null or specific group reference - * @param method - * - CalcId for the annotation (must match) * * @return existing annotation matching the given attributes */ @@ -513,6 +525,17 @@ public interface AlignmentI extends AnnotatedCollectionI boolean autoCalc, SequenceI seqRef, SequenceGroup groupRef); /** + * like findOrCreateAnnotation - looks for an existing alignment annotation + * row with matching name, calcId, sequenceRef, groupRef and autoCalculated + * flag and updates it from the annotation. If none is found the annotation is + * added directly. + * + * @param ala + * @return ala or the annotation row that was updated. + */ + AlignmentAnnotation updateFromOrCopyAnnotation(AlignmentAnnotation ala); + + /** * move the given group up or down in the alignment by the given number of * rows. Implementor assumes given group is already present on alignment - no * recalculations are triggered. @@ -590,6 +613,16 @@ public interface AlignmentI extends AnnotatedCollectionI public boolean setHiddenColumns(HiddenColumns cols); /** + * Insert a sequence at a position in an alignment + * + * @param i + * The index of the position. + * @param snew + * The new sequence. + */ + void insertSequenceAt(int i, SequenceI snew); + + /** * Set the first sequence as representative and hide its insertions. Typically * used when loading JPred files. */ @@ -609,5 +642,4 @@ public interface AlignmentI extends AnnotatedCollectionI */ public HiddenColumns propagateInsertions(SequenceI profileseq, AlignmentView input); - }