From 2adcb5e0e4901454a89b1aa37354f15f01b01ca1 Mon Sep 17 00:00:00 2001 From: gmungoc Date: Tue, 31 Mar 2015 16:12:49 +0100 Subject: [PATCH] JAL-1681 ensure cDNA consensus computed on startup (project/applet) --- src/jalview/appletgui/SplitFrame.java | 25 +++++++++++++++++-------- src/jalview/gui/Jalview2XML.java | 7 +++++++ src/jalview/viewmodel/AlignmentViewport.java | 2 +- 3 files changed, 25 insertions(+), 9 deletions(-) diff --git a/src/jalview/appletgui/SplitFrame.java b/src/jalview/appletgui/SplitFrame.java index cdd1605..68da6cf 100644 --- a/src/jalview/appletgui/SplitFrame.java +++ b/src/jalview/appletgui/SplitFrame.java @@ -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); } diff --git a/src/jalview/gui/Jalview2XML.java b/src/jalview/gui/Jalview2XML.java index 8beb26f..5ed494e 100644 --- a/src/jalview/gui/Jalview2XML.java +++ b/src/jalview/gui/Jalview2XML.java @@ -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; } diff --git a/src/jalview/viewmodel/AlignmentViewport.java b/src/jalview/viewmodel/AlignmentViewport.java index 7054ed3..1270c15 100644 --- a/src/jalview/viewmodel/AlignmentViewport.java +++ b/src/jalview/viewmodel/AlignmentViewport.java @@ -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()) { -- 1.7.10.2