2 * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
3 * Copyright (C) $$Year-Rel$$ The Jalview Authors
5 * This file is part of Jalview.
7 * Jalview is free software: you can redistribute it and/or
8 * modify it under the terms of the GNU General Public License
9 * as published by the Free Software Foundation, either version 3
10 * of the License, or (at your option) any later version.
12 * Jalview is distributed in the hope that it will be useful, but
13 * WITHOUT ANY WARRANTY; without even the implied warranty
14 * of MERCHANTABILITY or FITNESS FOR A PARTICULAR
15 * PURPOSE. See the GNU General Public License for more details.
17 * You should have received a copy of the GNU General Public License
18 * along with Jalview. If not, see <http://www.gnu.org/licenses/>.
19 * The Jalview Authors are detailed in the 'AUTHORS' file.
23 import jalview.datamodel.features.FeatureMatcherSetI;
25 import java.util.Comparator;
28 * An interface that describes the settings configurable in the Feature Settings
33 public interface FeatureSettingsModelI extends Comparator<String>
36 // note Java 8 will allow default implementations of these methods in the
37 // interface, simplifying instantiating classes
40 * Answers true if the specified feature type is displayed
45 boolean isFeatureDisplayed(String type);
48 * Answers true if the specified feature group is displayed
53 boolean isGroupDisplayed(String group);
56 * Returns the colour (or graduated colour) for the feature type, or null if
62 FeatureColourI getFeatureColour(String type);
65 * Returns any filters defined for the feature type, or null if not known
71 FeatureMatcherSetI getFeatureFilters(String type);
74 * Returns the transparency value, from 0 (fully transparent) to 1 (fully
79 float getTransparency();
82 * Returns -1 if feature1 is displayed before (below) feature 2, +1 if
83 * feature2 is displayed after (on top of) feature1, or 0 if we don't care.
86 * Note that this is the opposite ordering to how features are displayed in
87 * the feature settings dialogue. FeatureRendererModel.setFeaturePriority
88 * takes care of converting between the two.
95 int compare(String feature1, String feature2);
98 * Answers true if features should be initially sorted so that features with a
99 * shorter average length are displayed on top of those with a longer average
104 boolean optimiseOrder();