X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fapi%2FAlignViewportI.java;h=c49ee392d7c336add9e9c1d3be9dc3b473e44ffb;hb=165ed616ebe279381ba0fc6a01eee6a6a9892161;hp=6753a2957be8f544cae8d2b80bcb92931aebc494;hpb=95ceead3cb4ea5aa5260e1fd4ab53658b64866e1;p=jalview.git diff --git a/src/jalview/api/AlignViewportI.java b/src/jalview/api/AlignViewportI.java index 6753a29..c49ee39 100644 --- a/src/jalview/api/AlignViewportI.java +++ b/src/jalview/api/AlignViewportI.java @@ -1,6 +1,6 @@ /* - * Jalview - A Sequence Alignment Editor and Viewer (Version 2.8.2) - * Copyright (C) 2014 The Jalview Authors + * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$) + * Copyright (C) $$Year-Rel$$ The Jalview Authors * * This file is part of Jalview. * @@ -40,7 +40,7 @@ import java.util.Map; * @author jimp * */ -public interface AlignViewportI +public interface AlignViewportI extends ViewStyleI { int getCharWidth(); @@ -75,11 +75,16 @@ public interface AlignViewportI Hashtable[] getSequenceConsensusHash(); - Hashtable[] getRnaStructureConsensusHash(); + /** + * Get consensus data table for the cDNA complement of this alignment (if any) + * + * @return + */ + Hashtable[] getComplementConsensusHash(); - boolean getIgnoreGapsConsensus(); + Hashtable[] getRnaStructureConsensusHash(); - boolean getCentreColumnLabels(); + boolean isIgnoreGapsConsensus(); boolean isCalculationInProgress(AlignmentAnnotation alignmentAnnotation); @@ -95,6 +100,13 @@ public interface AlignViewportI AlignmentAnnotation getAlignmentConsensusAnnotation(); /** + * get the container for cDNA complement consensus annotation + * + * @return + */ + AlignmentAnnotation getComplementConsensusAnnotation(); + + /** * Test to see if viewport is still open and active * * @return true indicates that all references to viewport should be dropped @@ -122,6 +134,13 @@ public interface AlignViewportI void setSequenceConsensusHash(Hashtable[] hconsensus); /** + * Set the cDNA complement consensus for the viewport + * + * @param hconsensus + */ + void setComplementConsensusHash(Hashtable[] hconsensus); + + /** * * @return the alignment annotatino row for the structure consensus * calculation @@ -163,6 +182,29 @@ public interface AlignViewportI */ void updateGroupAnnotationSettings(boolean applyGlobalSettings, boolean preserveNewGroupSettings); + + /** + * @return true if a reference sequence is set and should be displayed + */ + public boolean isDisplayReferenceSeq(); + + /** + * @return set the flag for displaying reference sequences when they are + * available + */ + public void setDisplayReferenceSeq(boolean displayReferenceSeq); + + /** + * @return true if colourschemes should render according to reference sequence + * rather than consensus if available + */ + public boolean isColourByReferenceSeq(); + + /** + * @return true set flag for deciding if colourschemes should render according + * to reference sequence rather than consensus if available + */ + public void setColourByReferenceSeq(boolean colourByReferenceSeq); void setSequenceColour(SequenceI seq, Color col); @@ -172,16 +214,58 @@ public interface AlignViewportI SequenceGroup getSelectionGroup(); + /** + * get the currently selected sequence objects or all the sequences in the + * alignment. TODO: change to List<> + * + * @return array of references to sequence objects + */ SequenceI[] getSequenceSelection(); 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 + * + * @param selectedOnly + * boolean true to just return the selected view + * @return AlignmentView + */ AlignmentView getAlignmentView(boolean selectedOnly); + /** + * return a compact representation of the current alignment selection to pass + * to an analysis function + * + * @param selectedOnly + * boolean true to just return the selected view + * @param markGroups + * boolean true to annotate the alignment view with groups on the + * alignment (and intersecting with selected region if selectedOnly + * is true) + * @return AlignmentView + */ AlignmentView getAlignmentView(boolean selectedOnly, boolean markGroups); + /** + * 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[] + */ String[] getViewAsString(boolean selectedRegionOnly); void setSelectionGroup(SequenceGroup sg); @@ -200,13 +284,133 @@ public interface AlignViewportI List getVisibleAlignmentAnnotation( boolean selectedOnly); + FeaturesDisplayedI getFeaturesDisplayed(); + + String getSequenceSetId(); + + boolean isShowSequenceFeatures(); + + void setShowSequenceFeatures(boolean b); + /** - * Returns a viewport which is a 'slave of' this one i.e. updated in - * tandem in some sense, or null if none is set. + * + * @param flag + * indicating if annotation panel shown below alignment + * + */ + void setShowAnnotation(boolean b); + + /** + * flag indicating if annotation panel shown below alignment * * @return */ - AlignViewportI getSlave(); - - void setSlave(AlignViewportI sl); + boolean isShowAnnotation(); + + boolean isRightAlignIds(); + + void setRightAlignIds(boolean rightAlignIds); + + boolean areFeaturesDisplayed(); + + void setShowSequenceFeaturesHeight(boolean selected); + + boolean isShowSequenceFeaturesHeight(); + + void setFeaturesDisplayed(FeaturesDisplayedI featuresDisplayedI); + + void alignmentChanged(AlignmentViewPanel ap); + + /** + * @return the padGaps + */ + boolean isPadGaps(); + + /** + * @param padGaps + * the padGaps to set + */ + void setPadGaps(boolean padGaps); + + /** + * return visible region boundaries within given column range + * + * @param min + * first column (inclusive, from 0) + * @param max + * last column (exclusive) + * @return int[][] range of {start,end} visible positions + */ + List getVisibleRegionBoundaries(int min, int max); + + /** + * This method returns an array of new SequenceI objects derived from the + * whole alignment or just the current selection with start and end points + * adjusted + * + * @note if you need references to the actual SequenceI objects in the + * alignment or currently selected then use getSequenceSelection() + * @return selection as new sequenceI objects + */ + SequenceI[] getSelectionAsNewSequence(); + + void invertColumnSelection(); + + /** + * broadcast selection to any interested parties + */ + void sendSelection(); + + /** + * calculate the row position for alignmentIndex if all hidden sequences were + * shown + * + * @param alignmentIndex + * @return adjusted row position + */ + int adjustForHiddenSeqs(int alignmentIndex); + + boolean hasHiddenRows(); + + /** + * + * @return a copy of this view's current display settings + */ + public ViewStyleI getViewStyle(); + + /** + * update the view's display settings with the given style set + * + * @param settingsForView + */ + public void setViewStyle(ViewStyleI settingsForView); + + /** + * Returns a viewport which holds the cDna for this (protein), or vice versa, + * or null if none is set. + * + * @return + */ + AlignViewportI getCodingComplement(); + + /** + * Sets the viewport which holds the cDna for this (protein), or vice versa. + * Implementation should guarantee that the reciprocal relationship is always + * set, i.e. each viewport is the complement of the other. + */ + void setCodingComplement(AlignViewportI sl); + + /** + * Answers true if viewport hosts DNA/RNA, else false. + * + * @return + */ + boolean isNucleotide(); + + /** + * Returns an id guaranteed to be unique for this viewport. + * + * @return + */ + String getViewId(); }