X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fapi%2FFeatureRenderer.java;h=d9795a64a2d6ad771d00f1618ff6f586ae8a88a8;hb=479c44e27a46c7cbee33e293dbc38cbca4fd2e0b;hp=5e237ffdc2ed6d02c77a2b5fce92c1bda3f76d6b;hpb=797df64fa2a0a30773d0f48f5494d4155e5a8be3;p=jalview.git diff --git a/src/jalview/api/FeatureRenderer.java b/src/jalview/api/FeatureRenderer.java index 5e237ff..d9795a6 100644 --- a/src/jalview/api/FeatureRenderer.java +++ b/src/jalview/api/FeatureRenderer.java @@ -1,25 +1,31 @@ /* - * Jalview - A Sequence Alignment Editor and Viewer (Version 2.7) - * Copyright (C) 2011 J Procter, AM Waterhouse, J Engelhardt, LM Lui, G Barton, M Clamp, S Searle + * 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. - * + * 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 . + * 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.datamodel.SequenceFeature; import jalview.datamodel.SequenceI; import java.awt.Color; +import java.util.List; +import java.util.Map; /** * Abstract feature renderer interface @@ -30,8 +36,139 @@ import java.awt.Color; public interface FeatureRenderer { + /** + * compute the perceived colour for a given column position in sequenceI, + * taking transparency and feature visibility into account. + * + * @param col + * - background colour (due to alignment/group shading schemes, etc). + * @param sequenceI + * - sequence providing features + * @param r + * - column position + * @return + */ Color findFeatureColour(Color col, SequenceI sequenceI, int r); + /** + * trigger the feature discovery process for a newly created feature renderer. + */ void featuresAdded(); + /** + * + * @param ft + * @return display style for a feature + */ + Object getFeatureStyle(String ft); + + /** + * update the feature style for a particular feature + * + * @param ft + * @param ggc + * - currently allows java.awt.Color and + * jalview.schemes.GraduatedColor + */ + void setColour(String ft, Object ggc); + + AlignViewportI getViewport(); + + /** + * + * @return container managing list of feature types and their visibility + */ + FeaturesDisplayedI getFeaturesDisplayed(); + + /** + * get display style for all features types - visible or invisible + * + * @return + */ + Map getFeatureColours(); + + /** + * query the alignment view to find all features + * + * @param newMadeVisible + * - when true, automatically make newly discovered types visible + */ + void findAllFeatures(boolean newMadeVisible); + + /** + * get display style for all features types currently visible + * + * @return + */ + Map getDisplayedFeatureCols(); + + /** + * get all registered groups + * + * @return + */ + List getFeatureGroups(); + + /** + * get groups that are visible/invisible + * + * @param visible + * @return + */ + List getGroups(boolean visible); + + /** + * change visibility for a range of groups + * + * @param toset + * @param visible + */ + void setGroupVisibility(List toset, boolean visible); + + /** + * change visibiilty of given group + * + * @param group + * @param visible + */ + void setGroupVisibility(String group, boolean visible); + + /** + * locate features at a particular position on the given sequence + * + * @param sequence + * @param res + * @return + */ + List findFeaturesAtRes(SequenceI sequence, int res); + + /** + * get current displayed types, in ordering of rendering (on top last) + * + * @return a (possibly empty) list of feature types + */ + + List getDisplayedFeatureTypes(); + + /** + * get current displayed groups + * + * @return a (possibly empty) list of feature groups + */ + List getDisplayedFeatureGroups(); + + /** + * display all features of these types + * + * @param featureTypes + */ + void setAllVisible(List featureTypes); + + /** + * display featureType + * + * @param featureType + */ + void setVisible(String featureType); + }