X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fappletgui%2FFontChooser.java;fp=src%2Fjalview%2Fappletgui%2FFontChooser.java;h=727aa885f69b93f0c0c7c87b359c03014062cf94;hb=4772c2b206c62f3e26e66cca8396ba031ff48b3e;hp=59f6957948d255635e61c1372c73b62c43c70192;hpb=29c183b0d0de9f6f9f94d2b528d10e20b1891684;p=jalview.git diff --git a/src/jalview/appletgui/FontChooser.java b/src/jalview/appletgui/FontChooser.java index 59f6957..727aa88 100644 --- a/src/jalview/appletgui/FontChooser.java +++ b/src/jalview/appletgui/FontChooser.java @@ -59,6 +59,8 @@ public class FontChooser extends Panel implements ItemListener private Checkbox scaleAsCdna = new Checkbox(); + private Checkbox fontAsCdna = new Checkbox(); + private Button ok = new Button(); private Button cancel = new Button(); @@ -83,6 +85,8 @@ public class FontChooser extends Panel implements ItemListener private Frame frame; + boolean inSplitFrame = false; + /** * Constructor for a TreePanel font chooser * @@ -152,7 +156,7 @@ public class FontChooser extends Panel implements ItemListener this.frame = new Frame(); frame.add(this); jalview.bin.JalviewLite.addFrame(frame, - MessageManager.getString("action.change_font"), 440, 115); + MessageManager.getString("action.change_font"), 440, 145); init = false; } @@ -160,6 +164,7 @@ public class FontChooser extends Panel implements ItemListener /** * Actions on change of font name, size or style. */ + @Override public void itemStateChanged(ItemEvent evt) { final Object source = evt.getSource(); @@ -208,10 +213,11 @@ public class FontChooser extends Panel implements ItemListener if (ap.av.getCodingComplement() != null) { ap.av.getCodingComplement().setScaleProteinAsCdna(oldScaleProtein); + ap.av.getCodingComplement().setFont(oldFont, true); ap.alignFrame.getSplitFrame().repaint(); } - ap.av.setFont(oldFont); + ap.av.setFont(oldFont, true); ViewStyleI style = ap.av.getViewStyle(); if (style.getCharWidth() != oldCharWidth) { @@ -276,8 +282,19 @@ public class FontChooser extends Panel implements ItemListener } else if (ap != null) { - ap.av.setFont(newFont); + ap.av.setFont(newFont, true); ap.fontChanged(); + + /* + * and change font in other half of split frame if any + */ + if (inSplitFrame && fontAsCdna.getState()) + { + ap.av.getCodingComplement().setFont(newFont, true); + SplitFrame splitFrame = ap.alignFrame.getSplitFrame(); + splitFrame.adjustLayout(); + splitFrame.repaint(); + } } // remember last selected lastSelected = newFont; @@ -344,6 +361,10 @@ public class FontChooser extends Panel implements ItemListener scaleAsCdna.addItemListener(this); scaleAsCdna.setState(ap.av.isScaleProteinAsCdna()); + fontAsCdna.setLabel(MessageManager.getString("label.font_as_cdna")); + fontAsCdna.setFont(VERDANA_11PT); + fontAsCdna.setState(true); + ok.setFont(VERDANA_11PT); ok.setLabel(MessageManager.getString("action.ok")); ok.addActionListener(new ActionListener() @@ -388,7 +409,8 @@ public class FontChooser extends Panel implements ItemListener stylePanel.add(fontStyle, BorderLayout.CENTER); sizePanel.add(sizeLabel, BorderLayout.WEST); sizePanel.add(fontSize, BorderLayout.CENTER); - scalePanel.add(scaleAsCdna, BorderLayout.CENTER); + scalePanel.add(scaleAsCdna, BorderLayout.NORTH); + scalePanel.add(fontAsCdna, BorderLayout.SOUTH); okCancelPanel.add(ok, null); okCancelPanel.add(cancel, null); @@ -402,6 +424,7 @@ public class FontChooser extends Panel implements ItemListener this.add(optionsPanel, BorderLayout.NORTH); if (ap.alignFrame.getSplitFrame() != null) { + inSplitFrame = true; this.add(scalePanel, BorderLayout.CENTER); } this.add(okCancelPanel, BorderLayout.SOUTH);