JAL-2541 save/Undo only 'diffs' for features with Cut command
[jalview.git] / src / jalview / datamodel / features / SequenceFeatures.java
index f263938..d1bae50 100644 (file)
@@ -1,5 +1,6 @@
 package jalview.datamodel.features;
 
+import jalview.datamodel.ContiguousI;
 import jalview.datamodel.SequenceFeature;
 import jalview.io.gff.SequenceOntologyFactory;
 import jalview.io.gff.SequenceOntologyI;
@@ -62,7 +63,7 @@ public class SequenceFeatures implements SequenceFeaturesI
   {
     /*
      * use a TreeMap so that features are returned in alphabetical order of type
-     * wrap as a synchronized map for add and delete operations
+     * ? wrap as a synchronized map for add and delete operations
      */
     // featureStore = Collections
     // .synchronizedSortedMap(new TreeMap<String, FeatureStore>());
@@ -70,6 +71,21 @@ public class SequenceFeatures implements SequenceFeaturesI
   }
 
   /**
+   * Constructor given a list of features
+   */
+  public SequenceFeatures(List<SequenceFeature> features)
+  {
+    this();
+    if (features != null)
+    {
+      for (SequenceFeature feature : features)
+      {
+        add(feature);
+      }
+    }
+  }
+
+  /**
    * {@inheritDoc}
    */
   @Override
@@ -466,13 +482,22 @@ public class SequenceFeatures implements SequenceFeaturesI
    * {@inheritDoc}
    */
   @Override
-  public boolean shiftFeatures(int shift)
+  public boolean shiftFeatures(int fromPosition, int shiftBy)
   {
     boolean modified = false;
     for (FeatureStore fs : featureStore.values())
     {
-      modified |= fs.shiftFeatures(shift);
+      modified |= fs.shiftFeatures(fromPosition, shiftBy);
     }
     return modified;
   }
+
+  /**
+   * {@inheritDoc}
+   */
+  @Override
+  public void deleteAll()
+  {
+    featureStore.clear();
+  }
 }
\ No newline at end of file