public void adjustLayout()
{
/*
- * Ensure sequence ids are the same width for good alignment.
+ * Ensure sequence ids are the same width so sequences line up
*/
int w1 = ((AlignFrame) getTopFrame()).getViewport().getIdWidth();
int w2 = ((AlignFrame) getBottomFrame()).getViewport().getIdWidth();
}
/*
- * Set the character width for protein to 3 times that for dna.
+ * Scale protein to either 1 or 3 times character width of dna
*/
- boolean scaleThreeToOne = true; // TODO a new Preference option?
- if (scaleThreeToOne)
+ 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)
{
- 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();
- ViewStyleI vs2 = protein.getViewStyle();
- vs2.setCharWidth(3 * vs.getCharWidth());
- protein.setViewStyle(vs2);
- }
+ ViewStyleI vs = protein.getViewStyle();
+ int scale = vs.isScaleProteinAsCdna() ? 3 : 1;
+ vs.setCharWidth(scale * cdna.getViewStyle().getCharWidth());
+ protein.setViewStyle(vs);
}
}