JAL-1691 linked scrollling in split frame (Desktop)
[jalview.git] / src / jalview / appletgui / SplitFrame.java
index cdd1605..4fbf65a 100644 (file)
@@ -1,16 +1,17 @@
 package jalview.appletgui;
 
+import java.awt.BorderLayout;
+import java.awt.Dimension;
+import java.awt.GridLayout;
+import java.awt.Panel;
+
 import jalview.analysis.AlignmentUtils;
+import jalview.api.AlignmentViewPanel;
 import jalview.api.ViewStyleI;
 import jalview.bin.JalviewLite;
 import jalview.datamodel.AlignmentI;
 import jalview.structure.StructureSelectionManager;
 
-import java.awt.BorderLayout;
-import java.awt.Dimension;
-import java.awt.GridLayout;
-import java.awt.Panel;
-
 public class SplitFrame extends EmbmenuFrame
 {
   private static final long serialVersionUID = 1L;
@@ -65,6 +66,14 @@ public class SplitFrame extends EmbmenuFrame
       ssm.addCommandListener(protein);
     }
 
+    /*
+     * Now mappings exist, can compute cDNA consensus on protein alignment
+     */
+    protein.initComplementConsensus();
+    AlignmentViewPanel ap = topAlignment.isNucleotide() ? bottomFrame.alignPanel
+            : topFrame.alignPanel;
+    protein.updateConsensus(ap);
+
     adjustLayout();
   }
 
@@ -117,12 +126,13 @@ public class SplitFrame extends EmbmenuFrame
     }
 
     /*
-     * Expand protein to 3 times character width of dna
+     * Scale protein to either 1 or 3 times character width of dna
      */
     if (protein != null && cdna != null)
     {
       ViewStyleI vs = protein.getViewStyle();
-      vs.setCharWidth(3 * vs.getCharWidth());
+      int scale = vs.isScaleProteinAsCdna() ? 3 : 1;
+      vs.setCharWidth(scale * cdna.getViewStyle().getCharWidth());
       protein.setViewStyle(vs);
     }
   }
@@ -143,6 +153,8 @@ public class SplitFrame extends EmbmenuFrame
     panel.add(menuPanel, BorderLayout.NORTH);
     panel.add(af.statusBar, BorderLayout.SOUTH);
     panel.add(af.alignPanel, BorderLayout.CENTER);
+
+    af.setSplitFrame(this);
   }
 
   /**
@@ -178,9 +190,9 @@ public class SplitFrame extends EmbmenuFrame
     else
     {
       this.add(outermost);
-      int width = Math.max(topFrame.DEFAULT_WIDTH,
-              bottomFrame.DEFAULT_WIDTH);
-      int height = topFrame.DEFAULT_HEIGHT + bottomFrame.DEFAULT_HEIGHT;
+      int width = Math.max(topFrame.frameWidth,
+              bottomFrame.frameWidth);
+      int height = topFrame.frameHeight + bottomFrame.frameHeight;
       jalview.bin.JalviewLite
               .addFrame(this, this.getTitle(), width, height);
     }