import jalview.datamodel.SequenceFeature;
import jalview.io.gff.SequenceOntologyFactory;
import jalview.io.gff.SequenceOntologyI;
+import jalview.util.Platform;
import java.util.ArrayList;
import java.util.Arrays;
List<SequenceFeature> result = new ArrayList<>();
for (FeatureStore featureSet : varargToTypes(type))
{
- featureSet.findOverlappingFeatures(from, to, result);
+ featureSet.findFeatures(from, to, result);
}
return result;
}
public Set<String> getFeatureGroups(boolean positionalFeatures,
String... type)
{
- Set<String> groups = new HashSet<>();
+ // BH 2020.03.21 This is the set that orders the list of groups
+ // at the top of the FeatureSettings panel.
+ Set<String> groups = Platform.getJavaOrderedHashSet();
for (FeatureStore featureSet : varargToTypes(type))
{
public Set<String> getFeatureTypesForGroups(boolean positionalFeatures,
String... groups)
{
- Set<String> result = new HashSet<>();
+ // BH 2020.03.21 This set is the one that sets the initial ordering for
+ // feature rendering. We set it to new HashSet<>(16,0.75) to force it to
+ // be backed by a Java hash-ordered HashMap instead of a JavaScript Map.
+ Set<String> result = Platform.getJavaOrderedHashSet();
for (Entry<String, FeatureStore> featureType : featureStore.entrySet())
{
@Override
public Set<String> getFeatureTypes(String... soTerm)
{
- Set<String> types = new HashSet<>();
+ Set<String> types = new HashSet<>(15, 0.75f);
for (Entry<String, FeatureStore> entry : featureStore.entrySet())
{
String type = entry.getKey();
{
return list == null ? new ArrayList<>() : list;
}
- return fs.findOverlappingFeatures(pos, pos, list);
+ return fs.findFeatures(pos, pos, list);
}
@Override