X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fapi%2FAlignViewportI.java;h=6b3cbe812bebd57bc5052a8527f68fd6ba229531;hb=f37c3fd4fe12799de498de5f397252e9f457fee9;hp=b4d2592da131bfa3d544699b9898509a1304902e;hpb=e2d6753e8cf3c5eaf8bccf34f4f5e9d651e9cb8e;p=jalview.git diff --git a/src/jalview/api/AlignViewportI.java b/src/jalview/api/AlignViewportI.java index b4d2592..6b3cbe8 100644 --- a/src/jalview/api/AlignViewportI.java +++ b/src/jalview/api/AlignViewportI.java @@ -21,17 +21,22 @@ 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; import jalview.datamodel.SequenceCollectionI; import jalview.datamodel.SequenceGroup; import jalview.datamodel.SequenceI; +import jalview.renderer.ResidueShaderI; import jalview.schemes.ColourSchemeI; +import jalview.viewmodel.ViewportRanges; import java.awt.Color; +import java.awt.Font; import java.util.Hashtable; import java.util.List; import java.util.Map; @@ -43,7 +48,13 @@ import java.util.Map; public interface AlignViewportI extends ViewStyleI { - int getEndRes(); + /** + * Get the ranges object containing details of the start and end sequences and + * residues + * + * @return + */ + ViewportRanges getRanges(); /** * calculate the height for visible annotation, revalidating bounds where @@ -51,8 +62,20 @@ public interface AlignViewportI extends ViewStyleI * * @return total height of annotation */ - public int calcPanelHeight(); + int calcPanelHeight(); + + /** + * Answers true if the viewport has at least one column selected + * + * @return + */ + boolean hasSelectedColumns(); + /** + * Answers true if the viewport has at least one hidden column + * + * @return + */ boolean hasHiddenColumns(); boolean isValidCharWidth(); @@ -63,13 +86,27 @@ public interface AlignViewportI extends ViewStyleI boolean isNormaliseSequenceLogo(); + boolean isShowInformationHistogram(); + + boolean isShowHMMSequenceLogo(); + + boolean isNormaliseHMMSequenceLogo(); + ColourSchemeI getGlobalColourScheme(); + /** + * Returns an object that describes colouring (including any thresholding or + * fading) of the alignment + * + * @return + */ + ResidueShaderI getResidueShading(); + AlignmentI getAlignment(); ColumnSelection getColumnSelection(); - Hashtable[] getSequenceConsensusHash(); + ProfilesI getConsensusProfiles(); /** * Get consensus data table for the cDNA complement of this alignment (if any) @@ -82,6 +119,8 @@ public interface AlignViewportI extends ViewStyleI boolean isIgnoreGapsConsensus(); + boolean isIgnoreBelowBackground(); + boolean isCalculationInProgress(AlignmentAnnotation alignmentAnnotation); AlignmentAnnotation getAlignmentQualityAnnot(); @@ -96,6 +135,13 @@ public interface AlignViewportI extends ViewStyleI AlignmentAnnotation getAlignmentConsensusAnnotation(); /** + * get the container for alignment gap annotation + * + * @return + */ + AlignmentAnnotation getOccupancyAnnotation(); + + /** * get the container for cDNA complement consensus annotation * * @return @@ -110,6 +156,11 @@ public interface AlignViewportI extends ViewStyleI boolean isClosed(); /** + * Dispose of all references or resources held by the viewport + */ + void dispose(); + + /** * get the associated calculation thread manager for the view * * @return @@ -127,7 +178,7 @@ public interface AlignViewportI extends ViewStyleI * * @param hconsensus */ - void setSequenceConsensusHash(Hashtable[] hconsensus); + void setConsensusProfiles(ProfilesI hconsensus); /** * Set the cDNA complement consensus for the viewport @@ -138,7 +189,7 @@ public interface AlignViewportI extends ViewStyleI /** * - * @return the alignment annotatino row for the structure consensus + * @return the alignment annotation row for the structure consensus * calculation */ AlignmentAnnotation getAlignmentStrucConsensusAnnotation(); @@ -151,11 +202,13 @@ public interface AlignViewportI extends ViewStyleI void setRnaStructureConsensusHash(Hashtable[] hStrucConsensus); /** - * set global colourscheme + * Sets the colour scheme for the background alignment (as distinct from + * sub-groups, which may have their own colour schemes). A null value is used + * for no residue colour (white). * - * @param rhc + * @param cs */ - void setGlobalColourScheme(ColourSchemeI rhc); + void setGlobalColourScheme(ColourSchemeI cs); Map getHiddenRepSequences(); @@ -178,7 +231,7 @@ public interface AlignViewportI extends ViewStyleI */ void updateGroupAnnotationSettings(boolean applyGlobalSettings, boolean preserveNewGroupSettings); - + void setSequenceColour(SequenceI seq, Color col); Color getSequenceColour(SequenceI seq); @@ -198,16 +251,6 @@ public interface AlignViewportI extends ViewStyleI 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 * @@ -235,11 +278,31 @@ public interface AlignViewportI extends ViewStyleI * 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. This method doesn't exclude hidden sequences from the output. + * + * @param selectedRegionOnly + * - determines if only the selected region or entire alignment is + * exported + * @return String[] + */ + String[] getViewAsString(boolean selectedRegionOnly); + + /** + * 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. * + * @param selectedRegionOnly + * - determines if only the selected region or entire alignment is + * exported + * @param isExportHiddenSeqs + * - determines if hidden sequences would be exported or not. + * * @return String[] */ - String[] getViewAsString(boolean selectedRegionOnly); + String[] getViewAsString(boolean selectedRegionOnly, + boolean isExportHiddenSeqs); void setSelectionGroup(SequenceGroup sg); @@ -251,8 +314,11 @@ public interface AlignViewportI extends ViewStyleI /** * get a copy of the currently visible alignment annotation - * @param selectedOnly if true - trim to selected regions on the alignment - * @return an empty list or new alignment annotation objects shown only visible columns trimmed to selected region only + * + * @param selectedOnly + * if true - trim to selected regions on the alignment + * @return an empty list or new alignment annotation objects shown only + * visible columns trimmed to selected region only */ List getVisibleAlignmentAnnotation( boolean selectedOnly); @@ -322,14 +388,14 @@ public interface AlignViewportI extends ViewStyleI * * @return a copy of this view's current display settings */ - public ViewStyleI getViewStyle(); + ViewStyleI getViewStyle(); /** * update the view's display settings with the given style set * * @param settingsForView */ - public void setViewStyle(ViewStyleI settingsForView); + void setViewStyle(ViewStyleI settingsForView); /** * Returns a viewport which holds the cDna for this (protein), or vice versa, @@ -373,8 +439,77 @@ public interface AlignViewportI extends ViewStyleI */ void setFollowHighlight(boolean b); - public FeatureRenderer getFeatureRenderer(); + void applyFeaturesStyle(FeatureSettingsModelI featureSettings); + + /** + * check if current selection group is defined on the view, or is simply a + * temporary group. + * + * @return true if group is defined on the alignment + */ + boolean isSelectionDefinedGroup(); + + /** + * + * @return true if there are search results on the view + */ + boolean hasSearchResults(); + + /** + * set the search results for the view + * + * @param results + * - or null to clear current results + */ + void setSearchResults(SearchResultsI results); + + /** + * get search results for this view (if any) + * + * @return search results or null + */ + SearchResultsI getSearchResults(); + + /** + * Updates view settings with the given font. You may need to call + * AlignmentPanel.fontChanged to update the layout geometry. + * + * @param setGrid + * when true, charWidth/height is set according to font metrics + */ + void setFont(Font newFont, boolean b); + + /** + * Answers true if split screen protein and cDNA use the same font + * + * @return + */ + @Override + boolean isProteinFontAsCdna(); + + /** + * Set the flag for whether split screen protein and cDNA use the same font + * + * @return + */ + @Override + void setProteinFontAsCdna(boolean b); + + void setHmmProfiles(ProfilesI info); + + 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); + + boolean isInfoLetterHeight(); - public void setFeatureRenderer(FeatureRenderer featureRenderer); + abstract TreeModel getCurrentTree(); + abstract void setCurrentTree(TreeModel tree); }