+ /**
+ * 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
+ */
+ List<AlignmentAnnotation> getVisibleAlignmentAnnotation(
+ boolean selectedOnly);
+
+ FeaturesDisplayedI getFeaturesDisplayed();
+
+ String getSequenceSetId();
+
+ boolean areFeaturesDisplayed();
+
+ 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<int[]> 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();
+
+ /**
+ * Return true if view should scroll to show the highlighted region of a
+ * sequence
+ *
+ * @return
+ */
+ boolean isFollowHighlight();
+
+ /**
+ * Set whether view should scroll to show the highlighted region of a sequence
+ */
+ void setFollowHighlight(boolean b);
+
+ /**
+ * configure the feature renderer with predefined feature settings
+ *
+ * @param featureSettings
+ */
+ public void applyFeaturesStyle(FeatureSettingsModelI featureSettings);
+
+ /**
+ * Apply the given feature settings on top of existing feature settings.
+ */
+ public void mergeFeaturesStyle(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();
+
+ /**
+ * Retrieve a ContactListI corresponding to column in an annotation row in an
+ * alignment.
+ *
+ * @param _aa
+ * - annotation with associated matrix data
+ * @param column
+ * - column in alignment where _aa is associated
+ */
+ ContactListI getContactList(AlignmentAnnotation _aa, int column);
+
+ /**
+ * 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);
+
+ TreeModel getCurrentTree();
+
+ void setCurrentTree(TreeModel tree);
+
+ /**
+ * Answers a data bean containing data for export as configured by the
+ * supplied options
+ *
+ * @param options
+ * @return
+ */
+ AlignmentExportData getAlignExportData(AlignExportSettingsI options);
+
+ /**
+ * @param update
+ * - set the flag for updating structures on next repaint
+ */
+ void setUpdateStructures(boolean update);
+
+ /**
+ *
+ * @return true if structure views will be updated on next refresh
+ */
+ boolean isUpdateStructures();
+
+ /**
+ * check if structure views need to be updated, and clear the flag afterwards.
+ *
+ * @return if an update is needed
+ */
+ 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);
+
+ /**
+ * Returns an interator over the [start, end] column positions of the visible
+ * regions of the alignment
+ *
+ * @param selectedRegionOnly
+ * if true, and the view has a selection region, then only the
+ * intersection of visible columns with the selection region is
+ * returned
+ * @return
+ */
+ Iterator<int[]> getViewAsVisibleContigs(boolean selectedRegionOnly);