JAL-1681 ensure cDNA consensus computed on startup (project/applet)
authorgmungoc <g.m.carstairs@dundee.ac.uk>
Tue, 31 Mar 2015 15:12:49 +0000 (16:12 +0100)
committergmungoc <g.m.carstairs@dundee.ac.uk>
Tue, 31 Mar 2015 15:12:49 +0000 (16:12 +0100)
src/jalview/appletgui/SplitFrame.java
src/jalview/gui/Jalview2XML.java
src/jalview/viewmodel/AlignmentViewport.java

index cdd1605..68da6cf 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;
@@ -63,6 +64,14 @@ public class SplitFrame extends EmbmenuFrame
       topViewport.setCodingComplement(bottomViewport);
       ssm.addCommandListener(cdna);
       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();
@@ -178,9 +187,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);
     }
index 8beb26f..5ed494e 100644 (file)
@@ -2263,6 +2263,13 @@ public class Jalview2XML
     int height = (int) (dnaFrame.getBounds().getHeight()
             + proteinFrame.getBounds().getHeight() + 50);
     Desktop.addInternalFrame(splitFrame, title, width, height);
+
+    /*
+     * And compute cDNA consensus (couldn't do earlier with consensus as
+     * mappings were not yet present)
+     */
+    proteinFrame.viewport.alignmentChanged(proteinFrame.alignPanel);
+
     return splitFrame;
   }
 
index 7054ed3..1270c15 100644 (file)
@@ -1731,7 +1731,7 @@ public abstract class AlignmentViewport implements AlignViewportI,
    * If this is a protein alignment and there are mappings to cDNA, add the cDNA
    * consensus annotation.
    */
-  protected void initComplementConsensus()
+  public void initComplementConsensus()
   {
     if (!alignment.isNucleotide())
     {