X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fapi%2FAlignViewControllerI.java;h=58a58e9552ca3286f885bc686539a4b3a24a8f88;hb=2cbf9d005db462396fa1dc0750aa63a2e6cd0735;hp=fc63fd64968ce5fb9d1c197eeaafdcd597f52750;hpb=670c6ccb4d070850b8ba3af2a99f600459a61bbe;p=jalview.git diff --git a/src/jalview/api/AlignViewControllerI.java b/src/jalview/api/AlignViewControllerI.java index fc63fd6..58a58e9 100644 --- a/src/jalview/api/AlignViewControllerI.java +++ b/src/jalview/api/AlignViewControllerI.java @@ -1,14 +1,43 @@ +/* + * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$) + * Copyright (C) $$Year-Rel$$ The Jalview Authors + * + * This file is part of Jalview. + * + * Jalview is free software: you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation, either version 3 + * of the License, or (at your option) any later version. + * + * Jalview is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR + * PURPOSE. See the GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Jalview. If not, see . + * The Jalview Authors are detailed in the 'AUTHORS' file. + */ package jalview.api; +import jalview.io.DataSourceType; + +import java.util.List; + /** * prototype abstract controller for a Jalview alignment view + * * @author jimp * - * All operations should return true if the view has changed as a result of the operation - * @param - * + * All operations should return true if the view has changed as a result + * of the operation + * + * The controller holds methods that operate on an alignment view, + * modifying its state in some way that may result in side effects + * reflected in an associated GUI + * */ -public interface AlignViewControllerI +public interface AlignViewControllerI { public boolean makeGroupsFromSelection(); @@ -19,6 +48,67 @@ public interface AlignViewControllerI public boolean deleteGroups(); - public void setViewportAndAlignmentPanel(AlignViewportI viewport, AlignmentViewPanel alignPanel); + public void setViewportAndAlignmentPanel(AlignViewportI viewport, + AlignmentViewPanel alignPanel); + + /** + * Mark columns in the current column selection according to positions of + * sequence features + * + * @param invert + * - when set, mark all but columns containing given type + * @param extendCurrent + * - when set, do not clear existing column selection + * @param toggle + * - rather than explicitly set, toggle selection state + * @param featureType + * - feature type string + * @return true if operation affected state + */ + boolean markColumnsContainingFeatures(boolean invert, + boolean extendCurrent, boolean toggle, String featureType); + + /** + * sort the alignment or current selection by average score over the given set + * of features + * + * @param typ + * list of feature names or null to use currently displayed features + */ + void sortAlignmentByFeatureScore(List typ); + + /** + * sort the alignment or current selection by distribution of the given set of + * features + * + * @param typ + * list of feature names or null to use currently displayed features + */ + void sortAlignmentByFeatureDensity(List typ); + + /** + * add a features file of some kind to the current view + * + * @param file + * @param sourceType + * @param relaxedIdMatching + * if true, try harder to match up IDs with local sequence data + * @return true if parsing resulted in something being imported to the view or + * dataset + */ + public boolean parseFeaturesFile(Object file, DataSourceType sourceType, + boolean relaxedIdMatching); + + /** + * mark columns containing highlighted regions (e.g. from search, structure + * highlight, or a mouse over event in another viewer) + * + * @param invert + * @param extendCurrent + * @param toggle + * @return + */ + boolean markHighlightedColumns(boolean invert, boolean extendCurrent, + boolean toggle); }