Merge branch 'feature/JAL-2664' into feature/JAL-2527
[jalview.git] / src / jalview / analysis / scoremodels / FeatureDistanceModel.java
index 5bf4b11..c20d4f1 100644 (file)
@@ -22,9 +22,8 @@ package jalview.analysis.scoremodels;
 
 import jalview.api.AlignmentViewPanel;
 import jalview.api.FeatureRenderer;
-import jalview.api.analysis.DistanceScoreModelI;
+import jalview.api.analysis.ScoreModelI;
 import jalview.api.analysis.SimilarityParamsI;
-import jalview.api.analysis.ViewBasedAnalysisI;
 import jalview.datamodel.AlignmentView;
 import jalview.datamodel.SeqCigar;
 import jalview.datamodel.SequenceFeature;
@@ -38,8 +37,7 @@ import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
-public class FeatureDistanceModel implements DistanceScoreModelI,
-        ViewBasedAnalysisI
+public class FeatureDistanceModel extends DistanceScoreModel
 {
   private static final String NAME = "Sequence Feature Similarity";
 
@@ -55,7 +53,23 @@ public class FeatureDistanceModel implements DistanceScoreModelI,
   }
 
   @Override
-  public boolean configureFromAlignmentView(AlignmentViewPanel view)
+  public ScoreModelI getInstance(AlignmentViewPanel view)
+  {
+    FeatureDistanceModel instance;
+    try
+    {
+      instance = this.getClass().newInstance();
+      instance.configureFromAlignmentView(view);
+      return instance;
+    } catch (InstantiationException | IllegalAccessException e)
+    {
+      System.err.println("Error in " + getClass().getName()
+              + ".getInstance(): " + e.getMessage());
+      return null;
+    }
+  }
+
+  boolean configureFromAlignmentView(AlignmentViewPanel view)
 
   {
     fr = view.cloneFeatureRenderer();
@@ -110,8 +124,8 @@ public class FeatureDistanceModel implements DistanceScoreModelI,
         /*
          * first record feature types in this column for each sequence
          */
-        Map<SeqCigar, Set<String>> sfap = findFeatureTypesAtColumn(
-                seqs, cpos);
+        Map<SeqCigar, Set<String>> sfap = findFeatureTypesAtColumn(seqs,
+                cpos);
 
         /*
          * count feature types on either i'th or j'th sequence but not both