package jalview.api;
import jalview.analysis.Conservation;
+import jalview.analysis.TreeModel;
import jalview.datamodel.AlignmentAnnotation;
import jalview.datamodel.AlignmentI;
import jalview.datamodel.AlignmentView;
-import jalview.datamodel.CigarArray;
import jalview.datamodel.ColumnSelection;
import jalview.datamodel.ProfilesI;
import jalview.datamodel.SearchResultsI;
*
* @return
*/
- public ViewportRanges getRanges();
+ ViewportRanges getRanges();
/**
* calculate the height for visible annotation, revalidating bounds where
*
* @return total height of annotation
*/
- public int calcPanelHeight();
+ int calcPanelHeight();
/**
* Answers true if the viewport has at least one column selected
void clearSequenceColours();
/**
- * This method returns the visible alignment as text, as seen on the GUI, ie
- * if columns are hidden they will not be returned in the result. Use this for
- * calculating trees, PCA, redundancy etc on views which contain hidden
- * columns.
- *
- * @return String[]
- */
- CigarArray getViewAsCigars(boolean selectedRegionOnly);
-
- /**
* return a compact representation of the current alignment selection to pass
* to an analysis function
*
@Override
void setProteinFontAsCdna(boolean b);
- void setSequenceInformationHashes(List<ProfilesI> info);
+ void setHmmProfiles(ProfilesI info);
- List<ProfilesI> getSequenceInformationHashes();
+ ProfilesI getHmmProfiles();
+
+ /**
+ * Registers and starts a worker thread to calculate Information Content
+ * annotation, if it is not already registered
+ *
+ * @param ap
+ */
+ void initInformationWorker(AlignmentViewPanel ap);
- ProfilesI getSequenceInformationHash(int index);
+ boolean isInfoLetterHeight();
- List<AlignmentAnnotation> getInformationAnnotations();
+ abstract TreeModel getCurrentTree();
- AlignmentAnnotation getInformationAnnotation(int index);
+ abstract void setCurrentTree(TreeModel tree);
- void setSequenceInformationHash(ProfilesI info, int index);
+ /**
+ * @param update
+ * - set the flag for updating structures on next repaint
+ */
+ void setUpdateStructures(boolean update);
/**
- * Initiates the information annotation for all uninitiated sequences.
+ *
+ * @return true if structure views will be updated on next refresh
*/
- void initInformation();
+ boolean isUpdateStructures();
/**
- * Updates all information annotations.
+ * check if structure views need to be updated, and clear the flag afterwards.
*
- * @param ap
+ * @return if an update is needed
*/
- void updateInformation(AlignmentViewPanel ap);
-
- boolean isInfoLetterHeight();
+ boolean needToUpdateStructureViews();
+ /**
+ * Adds sequencegroup to the alignment in the view. Also adds a group to the
+ * complement view if one is defined.
+ *
+ * @param sequenceGroup
+ * - a group defined on sequences in the alignment held by the view
+ */
+ void addSequenceGroup(SequenceGroup sequenceGroup);
}