JAL-1483 model and api for feature display list on alignment view (refactor)
[jalview.git] / src / jalview / viewmodel / seqfeatures / FeaturesDisplayed.java
1 package jalview.viewmodel.seqfeatures;
2
3 import jalview.api.FeaturesDisplayedI;
4
5 import java.util.Collection;
6 import java.util.HashSet;
7 import java.util.Hashtable;
8 import java.util.Iterator;
9 import java.util.List;
10 import java.util.Set;
11
12 public class FeaturesDisplayed implements FeaturesDisplayedI
13 {
14   private HashSet<String> featuresDisplayed = new HashSet<String>();
15
16   private HashSet<String> featuresRegistered = new HashSet<String>();
17
18   public FeaturesDisplayed(FeaturesDisplayedI featuresDisplayed2)
19   {
20     Iterator<String> fdisp = featuresDisplayed2.getVisibleFeatures();
21     String ftype;
22     while (fdisp.hasNext())
23     {
24       ftype = fdisp.next();
25       featuresDisplayed.add(ftype);
26       featuresRegistered.add(ftype);
27     }
28   }
29
30   public FeaturesDisplayed()
31   {
32     // TODO Auto-generated constructor stub
33   }
34
35   @Override
36   public Iterator<String> getVisibleFeatures()
37   {
38     return featuresDisplayed.iterator();
39   }
40
41   @Override
42   public boolean isVisible(String featureType)
43   {
44     return featuresDisplayed.contains(featureType);
45   }
46
47   @Override
48   public boolean areVisible(Collection featureTypes)
49   {
50     return featuresDisplayed.containsAll(featureTypes);
51   }
52
53   @Override
54   public void clear()
55   {
56     featuresDisplayed.clear();
57     featuresRegistered.clear();
58   }
59
60   @Override
61   public void setAllVisible(Collection makeVisible)
62   {
63     featuresDisplayed.addAll(makeVisible);
64   }
65
66   @Override
67   public void setAllRegisteredVisible()
68   {
69     featuresDisplayed.addAll(featuresRegistered);
70   }
71
72   @Override
73   public void setVisible(String featureType)
74   {
75     featuresDisplayed.add(featureType);
76   }
77
78   @Override
79   public boolean isRegistered(String type)
80   {
81     return featuresRegistered.contains(type);
82   }
83
84   @Override
85   public int getVisibleFeatureCount()
86   {
87     return featuresDisplayed.size();
88   }
89
90   @Override
91   public int getRegisterdFeaturesCount()
92   {
93     return featuresRegistered.size();
94   }
95 }