2 * Jalview - A Sequence Alignment Editor and Viewer
3 * Copyright (C) 2006 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle
5 * This program is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU General Public License
7 * as published by the Free Software Foundation; either version 2
8 * of the License, or (at your option) any later version.
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
15 * You should have received a copy of the GNU General Public License
16 * along with this program; if not, write to the Free Software
17 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
20 package jalview.appletgui;
24 import java.awt.event.*;
26 public class FontChooser
27 extends Panel implements ActionListener, ItemListener
35 public FontChooser(TreePanel tp)
47 oldFont = tp.getTreeFont();
51 public FontChooser(AlignmentPanel ap)
63 oldFont = ap.av.getFont();
69 String fonts[] = Toolkit.getDefaultToolkit().getFontList();
70 for (int i = 0; i < fonts.length; i++)
72 fontName.addItem(fonts[i]);
75 for (int i = 1; i < 31; i++)
77 fontSize.addItem(i + "");
80 fontStyle.addItem("plain");
81 fontStyle.addItem("bold");
82 fontStyle.addItem("italic");
84 fontName.select(oldFont.getName());
85 fontSize.select(oldFont.getSize() + "");
86 fontStyle.select(oldFont.getStyle());
88 Frame frame = new Frame();
91 jalview.bin.JalviewLite.addFrame(frame, "Change Font", 440, 115);
96 public void actionPerformed(ActionEvent evt)
98 if(evt.getSource()==ok)
100 else if(evt.getSource()==cancel)
101 cancel_actionPerformed();
104 public void itemStateChanged(ItemEvent evt)
106 if(evt.getSource()==fontName)
107 fontName_actionPerformed();
108 else if(evt.getSource()==fontSize)
109 fontSize_actionPerformed();
110 else if(evt.getSource()==fontStyle)
111 fontStyle_actionPerformed();
115 protected void ok_actionPerformed()
117 frame.setVisible(false);
120 if (ap.getOverviewPanel() != null)
122 ap.getOverviewPanel().updateOverviewImage();
128 protected void cancel_actionPerformed()
132 ap.av.setFont(oldFont);
137 tp.setTreeFont(oldFont);
138 tp.treeCanvas.repaint();
141 fontName.select(oldFont.getName());
142 fontSize.select(oldFont.getSize() + "");
143 fontStyle.select(oldFont.getStyle());
145 frame.setVisible(false);
150 Font newFont = new Font(fontName.getSelectedItem().toString(),
151 fontStyle.getSelectedIndex(),
152 Integer.parseInt(fontSize.getSelectedItem().
157 ap.av.setFont(newFont);
162 tp.setTreeFont(newFont);
166 protected void fontName_actionPerformed()
175 protected void fontSize_actionPerformed()
184 protected void fontStyle_actionPerformed()
192 Label label1 = new Label();
193 protected Choice fontSize = new Choice();
194 protected Choice fontStyle = new Choice();
195 Label label2 = new Label();
196 Label label3 = new Label();
197 protected Choice fontName = new Choice();
198 Button ok = new Button();
199 Button cancel = new Button();
200 Panel panel1 = new Panel();
201 Panel panel2 = new Panel();
202 Panel panel3 = new Panel();
203 BorderLayout borderLayout1 = new BorderLayout();
204 BorderLayout borderLayout2 = new BorderLayout();
205 BorderLayout borderLayout3 = new BorderLayout();
206 Panel panel4 = new Panel();
207 Panel panel5 = new Panel();
208 BorderLayout borderLayout4 = new BorderLayout();
211 private void jbInit() throws Exception {
212 label1.setFont(new java.awt.Font("Verdana", 0, 11));
213 label1.setAlignment(Label.RIGHT);
214 label1.setText("Font: ");
215 this.setLayout(borderLayout4);
216 fontSize.setFont(new java.awt.Font("Verdana", 0, 11));
217 fontSize.addItemListener(this);
218 fontStyle.setFont(new java.awt.Font("Verdana", 0, 11));
219 fontStyle.addItemListener(this);
220 label2.setAlignment(Label.RIGHT);
221 label2.setFont(new java.awt.Font("Verdana", 0, 11));
222 label2.setText("Size: ");
223 label3.setAlignment(Label.RIGHT);
224 label3.setFont(new java.awt.Font("Verdana", 0, 11));
225 label3.setText("Style: ");
226 fontName.setFont(new java.awt.Font("Verdana", 0, 11));
227 fontName.addItemListener(this);
228 ok.setFont(new java.awt.Font("Verdana", 0, 11));
230 ok.addActionListener(this);
231 cancel.setFont(new java.awt.Font("Verdana", 0, 11));
232 cancel.setLabel("Cancel");
233 cancel.addActionListener(this);
234 this.setBackground(Color.white);
235 panel1.setLayout(borderLayout1);
236 panel2.setLayout(borderLayout3);
237 panel3.setLayout(borderLayout2);
238 panel5.setBackground(Color.white);
239 panel4.setBackground(Color.white);
240 panel1.setBackground(Color.white);
241 panel2.setBackground(Color.white);
242 panel3.setBackground(Color.white);
243 panel1.add(label1, BorderLayout.WEST);
244 panel1.add(fontName, BorderLayout.CENTER);
245 panel5.add(panel1, null);
246 panel5.add(panel3, null);
247 panel5.add(panel2, null);
248 panel2.add(label3, BorderLayout.WEST);
249 panel2.add(fontStyle, BorderLayout.CENTER);
250 panel3.add(label2, BorderLayout.WEST);
251 panel3.add(fontSize, BorderLayout.CENTER);
252 this.add(panel4, BorderLayout.SOUTH);
253 panel4.add(ok, null);
254 panel4.add(cancel, null);
255 this.add(panel5, BorderLayout.CENTER);