JAL-629 use JalviewStructureDisplayI in place of StructureViewerBase
[jalview.git] / src / jalview / gui / StructureViewerBase.java
index 6ebbf89..ff615c8 100644 (file)
@@ -47,6 +47,7 @@ import javax.swing.event.MenuEvent;
 import javax.swing.event.MenuListener;
 
 import jalview.api.AlignmentViewPanel;
+import jalview.api.structures.JalviewStructureDisplayI;
 import jalview.bin.Cache;
 import jalview.bin.Console;
 import jalview.datamodel.AlignmentI;
@@ -87,12 +88,20 @@ public abstract class StructureViewerBase extends GStructureViewer
     BySequence, ByChain, ChargeCysteine, ByViewer
   }
 
-  private static List<StructureViewerBase> svbs = new ArrayList<>();
+  /**
+   * Singleton list of all (open) instances of structureViewerBase
+   * TODO: JAL-3362 - review and adopt the swingJS-safe singleton pattern so each structure viewer base instance is kept to its own JalviewJS parent
+   */
+  private static List<JalviewStructureDisplayI> svbs = new ArrayList<>();
 
-  public static List<StructureViewerBase> getAllStructureViewerBases()
+  /**
+   * 
+   * @return list with all existing StructureViewers instance
+   */
+  public static List<JalviewStructureDisplayI> getAllStructureViewerBases()
   {
-    List<StructureViewerBase> goodSvbs = new ArrayList<>();
-    for (StructureViewerBase s : svbs)
+    List<JalviewStructureDisplayI> goodSvbs = new ArrayList<>();
+    for (JalviewStructureDisplayI s : svbs)
     {
       if (s != null && !goodSvbs.contains(s))
       {
@@ -196,6 +205,7 @@ public abstract class StructureViewerBase extends GStructureViewer
     return _aps.contains(ap2.av.getSequenceSetId());
   }
 
+  @Override
   public boolean isUsedforaligment(AlignmentViewPanel ap2)
   {