JAL-845 applet colour by tree; translate as cDNA; pull up history list
[jalview.git] / src / jalview / gui / SplitFrame.java
index 791e04f..c46bcd4 100644 (file)
@@ -1,8 +1,11 @@
 package jalview.gui;
 
+import jalview.api.ViewStyleI;
+import jalview.datamodel.AlignmentI;
 import jalview.jbgui.GAlignFrame;
 import jalview.jbgui.GSplitFrame;
 import jalview.structure.StructureSelectionManager;
+import jalview.viewmodel.AlignmentViewport;
 
 import java.awt.Component;
 import java.awt.Toolkit;
@@ -51,6 +54,8 @@ public class SplitFrame extends GSplitFrame
   {
     setSize(AlignFrame.DEFAULT_WIDTH, Desktop.instance.getHeight() - 20);
 
+    setCharacterWidth();
+
     addCloseFrameListener();
     
     addKeyListener();
@@ -59,6 +64,27 @@ public class SplitFrame extends GSplitFrame
   }
 
   /**
+   * Set the character width for protein to 3 times that for dna.
+   */
+  private void setCharacterWidth()
+  {
+    final AlignViewport topViewport = ((AlignFrame) getTopFrame()).viewport;
+    final AlignViewport bottomViewport = ((AlignFrame) getBottomFrame()).viewport;
+    final AlignmentI topAlignment = topViewport.getAlignment();
+    final AlignmentI bottomAlignment = bottomViewport.getAlignment();
+    AlignmentViewport cdna = topAlignment.isNucleotide() ? topViewport
+            : (bottomAlignment.isNucleotide() ? bottomViewport : null);
+    AlignmentViewport protein = !topAlignment.isNucleotide() ? topViewport
+            : (!bottomAlignment.isNucleotide() ? bottomViewport : null);
+    if (protein != null && cdna != null)
+    {
+      ViewStyleI vs = cdna.getViewStyle();
+      vs.setCharWidth(3 * vs.getCharWidth());
+      protein.setViewStyle(vs);
+    }
+  }
+
+  /**
    * Add a listener to tidy up when the frame is closed.
    */
   protected void addCloseFrameListener()