X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fviewmodel%2Fseqfeatures%2FFeatureRendererModel.java;h=f6addb877dfb8aa59c72745f410b5bef7b17db0a;hb=19e044a2ce25aa395f9cf22f15c7378221636d21;hp=84c947710949b8fba80ac52da6f9ce76f98933e1;hpb=762dd65b19b26b7f6fb4583a476abfe173f37e49;p=jalview.git diff --git a/src/jalview/viewmodel/seqfeatures/FeatureRendererModel.java b/src/jalview/viewmodel/seqfeatures/FeatureRendererModel.java index 84c9477..f6addb8 100644 --- a/src/jalview/viewmodel/seqfeatures/FeatureRendererModel.java +++ b/src/jalview/viewmodel/seqfeatures/FeatureRendererModel.java @@ -36,6 +36,7 @@ import java.beans.PropertyChangeSupport; import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; +import java.util.HashSet; import java.util.Hashtable; import java.util.Iterator; import java.util.List; @@ -344,6 +345,8 @@ public abstract class FeatureRendererModel implements { minmax = new Hashtable(); } + + Set oldGroups = new HashSet(featureGroups.keySet()); AlignmentI alignment = av.getAlignment(); for (int i = 0; i < alignment.getHeight(); i++) { @@ -358,9 +361,10 @@ public abstract class FeatureRendererModel implements int index = 0; while (index < features.length) { + String fgrp = features[index].getFeatureGroup(); + oldGroups.remove(fgrp); if (!featuresDisplayed.isRegistered(features[index].getType())) { - String fgrp = features[index].getFeatureGroup(); if (fgrp != null) { Boolean groupDisplayed = featureGroups.get(fgrp); @@ -424,6 +428,16 @@ public abstract class FeatureRendererModel implements index++; } } + + /* + * oldGroups now consists of groups that no longer + * have any feature in them - remove these + */ + for (String grp : oldGroups) + { + featureGroups.remove(grp); + } + updateRenderOrder(allfeatures); findingFeatures = false; }