JAL-2944 open selected structures in existing or a new view, and by default offer...
[jalview.git] / src / jalview / gui / Desktop.java
index 128481c..4fd478b 100644 (file)
@@ -849,6 +849,7 @@ public class Desktop extends jalview.jbgui.GDesktop
     frame.setResizable(resizable);
     frame.setMaximizable(resizable);
     frame.setIconifiable(resizable);
+    frame.setOpaque(false);
 
     if (frame.getX() < 1 && frame.getY() < 1)
     {
@@ -3398,4 +3399,29 @@ public class Desktop extends jalview.jbgui.GDesktop
   {
     Cache.setProperty(EXPERIMENTAL_FEATURES, Boolean.toString(selected));
   }
+
+  public List<StructureViewerBase> getStructureViewers(
+          AlignmentPanel apanel,
+          Class<? extends StructureViewerBase> structureViewerClass)
+  {
+    List<StructureViewerBase> result = new ArrayList<>();
+    JInternalFrame[] frames = Desktop.instance.getAllFrames();
+
+    for (JInternalFrame frame : frames)
+    {
+      if (frame instanceof StructureViewerBase)
+      {
+        if (structureViewerClass == null
+                || structureViewerClass.isInstance(frame))
+        {
+        if (apanel == null
+                || ((StructureViewerBase) frame).isLinkedWith(apanel))
+        {
+          result.add((StructureViewerBase) frame);
+        }
+        }
+      }
+    }
+    return result;
+  }
 }