import java.beans.PropertyChangeSupport;
import java.util.ArrayList;
import java.util.Arrays;
-import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Hashtable;
* include features at the position provided their feature type is
* displayed, and feature group is null or marked for display
*/
- List<SequenceFeature> features = sequence.getFeatures().findFeatures(
- res, res, visibleTypes);
+ List<SequenceFeature> features = sequence.findFeatures(res, res,
+ visibleTypes);
for (SequenceFeature sf : features)
{
}
AlignmentI alignment = av.getAlignment();
- List<String> allfeatures = new ArrayList<String>(); // or HashSet?
+ List<String> allfeatures = new ArrayList<String>();
for (int i = 0; i < alignment.getHeight(); i++)
{
SequenceI asq = alignment.getSequenceAt(i);
for (String group : asq.getFeatures().getFeatureGroups(true))
{
- if (group == null)
+ boolean groupDisplayed = true;
+ if (group != null)
{
- continue;
- }
- Boolean groupDisplayed = featureGroups.get(group);
- if (groupDisplayed == null)
- {
- groupDisplayed = Boolean.valueOf(newMadeVisible);
- featureGroups.put(group, groupDisplayed);
+ if (featureGroups.containsKey(group))
+ {
+ groupDisplayed = featureGroups.get(group);
+ }
+ else
+ {
+ groupDisplayed = newMadeVisible;
+ featureGroups.put(group, groupDisplayed);
+ }
}
if (groupDisplayed)
{
}
}
- /*
- * mark any new feature types as visible
- */
- Collections.sort(allfeatures, String.CASE_INSENSITIVE_ORDER);
+ // uncomment to add new features in alphebetical order (but JAL-2575)
+ // Collections.sort(allfeatures, String.CASE_INSENSITIVE_ORDER);
if (newMadeVisible)
{
for (String type : allfeatures)
public List<String> getDisplayedFeatureGroups()
{
List<String> _gps = new ArrayList<String>();
- boolean valid = false;
for (String gp : getFeatureGroups())
{
if (checkGroupVisibility(gp, false))
{
- valid = true;
_gps.add(gp);
}
- if (!valid)
- {
- return null;
- }
- else
- {
- // gps = new String[_gps.size()];
- // _gps.toArray(gps);
- }
}
return _gps;
}