JAL-3187 convenience method on SplitContainerI to retrieve a complement’s alignFrame
authorJim Procter <jprocter@issues.jalview.org>
Wed, 12 Feb 2020 17:09:12 +0000 (17:09 +0000)
committerJim Procter <jprocter@issues.jalview.org>
Wed, 12 Feb 2020 17:09:12 +0000 (17:09 +0000)
src/jalview/api/SplitContainerI.java
src/jalview/gui/SplitFrame.java

index 46f5f44..2a09475 100644 (file)
@@ -55,4 +55,14 @@ public interface SplitContainerI
    */
   String getComplementTitle(Object af);
 
+  /**
+   * get the 'other' alignFrame in the SplitFrame
+   * 
+   * @param alignFrame
+   * @return the complement alignFrame - or null if alignFrame wasn't held by this
+   *         frame
+   */
+  AlignViewControllerGuiI getComplementAlignFrame(
+          AlignViewControllerGuiI alignFrame);
+
 }
index 25dedc5..396e3b3 100644 (file)
@@ -20,6 +20,7 @@
  */
 package jalview.gui;
 
+import jalview.api.AlignViewControllerGuiI;
 import jalview.api.SplitContainerI;
 import jalview.datamodel.AlignmentI;
 import jalview.jbgui.GAlignFrame;
@@ -763,6 +764,22 @@ public class SplitFrame extends GSplitFrame implements SplitContainerI
             { (AlignFrame) getTopFrame(), (AlignFrame) getBottomFrame() });
   }
 
+  @Override
+  public AlignFrame getComplementAlignFrame(
+          AlignViewControllerGuiI alignFrame)
+  {
+    if (getTopFrame() == alignFrame)
+    {
+      return (AlignFrame) getBottomFrame();
+    }
+    if (getBottomFrame() == alignFrame)
+    {
+      return (AlignFrame) getTopFrame();
+    }
+    // we didn't know anything about this frame...
+    return null;
+  }
+
   /**
    * Replace Cmd-F Find action with our version. This is necessary because the
    * 'default' Finder searches in the first AlignFrame it finds. We need it to