JAL-1601 Create alignment copying method in AlignmentUtils
[jalview.git] / src / jalview / ws2 / gui / SearchServiceGuiHandler.java
index a57db1d..6c7ee13 100644 (file)
@@ -4,10 +4,12 @@ import java.util.List;
 
 import javax.swing.SwingUtilities;
 
+import jalview.analysis.AlignmentUtils;
 import jalview.bin.Console;
 import jalview.datamodel.Alignment;
 import jalview.datamodel.AlignmentAnnotation;
 import jalview.datamodel.AlignmentI;
+import jalview.datamodel.HiddenColumns;
 import jalview.gui.AlignFrame;
 import jalview.gui.Desktop;
 import jalview.gui.JvOptionPane;
@@ -137,17 +139,7 @@ class SearchServiceGuiHandler implements TaskEventListener<AlignmentI>
     }
     infoPanel.showResultsNewFrame.addActionListener(evt -> {
       // copy alignment for each frame to have its own instance
-      var alnCpy = new Alignment(result);
-      alnCpy.setGapCharacter(result.getGapCharacter());
-      alnCpy.setDataset(result.getDataset());
-      for (AlignmentAnnotation annotation : result.getAlignmentAnnotation())
-        alnCpy.addAnnotation(new AlignmentAnnotation(annotation));
-      if (result.hasSeqrep())
-      {
-        int idx = result.findIndex(result.getSeqrep());
-        if (idx >= 0)
-          alnCpy.setSeqrep(alnCpy.getSequenceAt(idx));
-      }
+      var alnCpy = AlignmentUtils.deepCopyAlignment(result);
       displayResultsNewFrame(alnCpy);
     });
     SwingUtilities.invokeLater(infoPanel::setResultsReady);