X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fjalview%2Fgui%2FFontChooser.java;h=72b7bd6854f1f3182005a6b9f78347aefd57836a;hb=9612728299dc4c2242a6a968875a194624983920;hp=f01078c90185211d18470f5f814d1205a4c3c515;hpb=ab43013b7e357b84b4abade0dba949668dfb2a0e;p=jalview.git diff --git a/src/jalview/gui/FontChooser.java b/src/jalview/gui/FontChooser.java index f01078c..72b7bd6 100755 --- a/src/jalview/gui/FontChooser.java +++ b/src/jalview/gui/FontChooser.java @@ -1,6 +1,6 @@ /* - * Jalview - A Sequence Alignment Editor and Viewer (Version 2.8.2b1) - * Copyright (C) 2014 The Jalview Authors + * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$) + * Copyright (C) $$Year-Rel$$ The Jalview Authors * * This file is part of Jalview. * @@ -20,12 +20,16 @@ */ package jalview.gui; -import java.awt.*; -import java.awt.event.*; -import javax.swing.*; +import java.awt.Font; +import java.awt.FontMetrics; +import java.awt.event.ActionEvent; -import jalview.bin.*; -import jalview.jbgui.*; +import javax.swing.JInternalFrame; +import javax.swing.JLayeredPane; +import javax.swing.JOptionPane; + +import jalview.bin.Cache; +import jalview.jbgui.GFontChooser; import jalview.util.MessageManager; /** @@ -42,6 +46,8 @@ public class FontChooser extends GFontChooser Font oldFont; + boolean oldProteinScale; + boolean init = true; JInternalFrame frame; @@ -71,6 +77,8 @@ public class FontChooser extends GFontChooser public FontChooser(AlignmentPanel ap) { oldFont = ap.av.getFont(); + oldProteinScale = ap.av.isScaleProteinAsCdna(); + this.ap = ap; init(); } @@ -82,16 +90,27 @@ public class FontChooser extends GFontChooser smoothFont.setSelected(ap.av.antiAlias); + /* + * Enable 'scale protein as cDNA' in protein half of a SplitFrame view. The + * selection is stored in the ViewStyle of the Viewport + */ + if (ap.av.getCodingComplement() != null + && !ap.av.getAlignment().isNucleotide()) + { + scaleAsCdna.setVisible(true); + scaleAsCdna.setSelected(ap.av.isScaleProteinAsCdna()); + } + if (tp != null) { Desktop.addInternalFrame(frame, MessageManager.getString("action.change_font_tree_panel"), - 340, 170, false); + 400, 200, false); } else { Desktop.addInternalFrame(frame, - MessageManager.getString("action.change_font"), 340, 170, + MessageManager.getString("action.change_font"), 380, 200, false); } @@ -107,7 +126,7 @@ public class FontChooser extends GFontChooser for (int i = 1; i < 51; i++) { - fontSize.addItem(i + ""); + fontSize.addItem(i); } fontStyle.addItem("plain"); @@ -115,7 +134,7 @@ public class FontChooser extends GFontChooser fontStyle.addItem("italic"); fontName.setSelectedItem(oldFont.getName()); - fontSize.setSelectedItem(oldFont.getSize() + ""); + fontSize.setSelectedItem(oldFont.getSize()); fontStyle.setSelectedIndex(oldFont.getStyle()); FontMetrics fm = getGraphics().getFontMetrics(oldFont); @@ -129,7 +148,7 @@ public class FontChooser extends GFontChooser public void smoothFont_actionPerformed(ActionEvent e) { ap.av.antiAlias = smoothFont.isSelected(); - ap.annotationPanel.image = null; + ap.getAnnotationPanel().image = null; ap.paintAlignment(true); } @@ -167,7 +186,8 @@ public class FontChooser extends GFontChooser { if (ap != null) { - ap.av.setFont(oldFont); + ap.av.setFont(oldFont, true); + ap.av.setScaleProteinAsCdna(oldProteinScale); ap.paintAlignment(true); } else if (tp != null) @@ -175,7 +195,7 @@ public class FontChooser extends GFontChooser tp.setTreeFont(oldFont); } fontName.setSelectedItem(oldFont.getName()); - fontSize.setSelectedItem(oldFont.getSize() + ""); + fontSize.setSelectedItem(oldFont.getSize()); fontStyle.setSelectedIndex(oldFont.getStyle()); try @@ -212,8 +232,8 @@ public class FontChooser extends GFontChooser } Font newFont = new Font(fontName.getSelectedItem().toString(), - fontStyle.getSelectedIndex(), Integer.parseInt(fontSize - .getSelectedItem().toString())); + fontStyle.getSelectedIndex(), + (Integer) fontSize.getSelectedItem()); FontMetrics fm = getGraphics().getFontMetrics(newFont); double mw = fm.getStringBounds("M", getGraphics()).getWidth(), iw = fm .getStringBounds("I", getGraphics()).getWidth(); @@ -221,7 +241,7 @@ public class FontChooser extends GFontChooser { fontName.setSelectedItem(lastSelected.getName()); fontStyle.setSelectedIndex(lastSelStyle); - fontSize.setSelectedItem("" + lastSelSize); + fontSize.setSelectedItem(lastSelSize); monospaced.setSelected(lastSelMono); JOptionPane .showInternalMessageDialog( @@ -236,7 +256,7 @@ public class FontChooser extends GFontChooser } else if (ap != null) { - ap.av.setFont(newFont); + ap.av.setFont(newFont, true); ap.fontChanged(); } @@ -307,4 +327,16 @@ public class FontChooser extends GFontChooser Cache.setProperty("ANTI_ALIAS", Boolean.toString(smoothFont.isSelected())); } + + /** + * Turn on/off scaling of protein characters to 3 times the width of cDNA + * characters + */ + @Override + protected void scaleAsCdna_actionPerformed(ActionEvent e) + { + ap.av.setScaleProteinAsCdna(scaleAsCdna.isSelected()); + ((SplitFrame) ap.alignFrame.getSplitViewContainer()).adjustLayout(); + ap.paintAlignment(true); + } }