JAL-2446 merged to spike branch
[jalview.git] / src / jalview / viewmodel / seqfeatures / FeaturesDisplayed.java
index fccdee3..f44a2d1 100644 (file)
@@ -1,27 +1,43 @@
+/*
+ * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
+ * Copyright (C) $$Year-Rel$$ The Jalview Authors
+ * 
+ * This file is part of Jalview.
+ * 
+ * Jalview is free software: you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License 
+ * as published by the Free Software Foundation, either version 3
+ * of the License, or (at your option) any later version.
+ *  
+ * Jalview is distributed in the hope that it will be useful, but 
+ * WITHOUT ANY WARRANTY; without even the implied warranty 
+ * of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
+ * PURPOSE.  See the GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with Jalview.  If not, see <http://www.gnu.org/licenses/>.
+ * The Jalview Authors are detailed in the 'AUTHORS' file.
+ */
 package jalview.viewmodel.seqfeatures;
 
 import jalview.api.FeaturesDisplayedI;
 
 import java.util.Collection;
+import java.util.Collections;
 import java.util.HashSet;
-import java.util.Hashtable;
-import java.util.Iterator;
-import java.util.List;
 import java.util.Set;
 
 public class FeaturesDisplayed implements FeaturesDisplayedI
 {
-  private HashSet<String> featuresDisplayed = new HashSet<String>();
+  private Set<String> featuresDisplayed = new HashSet<String>();
 
-  private HashSet<String> featuresRegistered = new HashSet<String>();
+  private Set<String> featuresRegistered = new HashSet<String>();
 
   public FeaturesDisplayed(FeaturesDisplayedI featuresDisplayed2)
   {
-    Iterator<String> fdisp = featuresDisplayed2.getVisibleFeatures();
-    String ftype;
-    while (fdisp.hasNext())
+    Set<String> fdisp = featuresDisplayed2.getVisibleFeatures();
+    for (String ftype : fdisp)
     {
-      ftype = fdisp.next();
       featuresDisplayed.add(ftype);
       featuresRegistered.add(ftype);
     }
@@ -29,13 +45,12 @@ public class FeaturesDisplayed implements FeaturesDisplayedI
 
   public FeaturesDisplayed()
   {
-    // TODO Auto-generated constructor stub
   }
 
   @Override
-  public Iterator<String> getVisibleFeatures()
+  public Set<String> getVisibleFeatures()
   {
-    return featuresDisplayed.iterator();
+    return Collections.unmodifiableSet(featuresDisplayed);
   }
 
   @Override
@@ -45,7 +60,7 @@ public class FeaturesDisplayed implements FeaturesDisplayedI
   }
 
   @Override
-  public boolean areVisible(Collection featureTypes)
+  public boolean areVisible(Collection<String> featureTypes)
   {
     return featuresDisplayed.containsAll(featureTypes);
   }
@@ -58,9 +73,10 @@ public class FeaturesDisplayed implements FeaturesDisplayedI
   }
 
   @Override
-  public void setAllVisible(Collection makeVisible)
+  public void setAllVisible(Collection<String> makeVisible)
   {
     featuresDisplayed.addAll(makeVisible);
+    featuresRegistered.addAll(makeVisible);
   }
 
   @Override
@@ -73,6 +89,7 @@ public class FeaturesDisplayed implements FeaturesDisplayedI
   public void setVisible(String featureType)
   {
     featuresDisplayed.add(featureType);
+    featuresRegistered.add(featureType);
   }
 
   @Override
@@ -88,7 +105,7 @@ public class FeaturesDisplayed implements FeaturesDisplayedI
   }
 
   @Override
-  public int getRegisterdFeaturesCount()
+  public int getRegisteredFeaturesCount()
   {
     return featuresRegistered.size();
   }