e424a42e31c19d531d1daef1f95e5369fe4d54e5
[jalview.git] / src / jalview / appletgui / FontChooser.java
1 /*\r
2  * Jalview - A Sequence Alignment Editor and Viewer\r
3  * Copyright (C) 2005 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle\r
4  *\r
5  * This program is free software; you can redistribute it and/or\r
6  * modify it under the terms of the GNU General Public License\r
7  * as published by the Free Software Foundation; either version 2\r
8  * of the License, or (at your option) any later version.\r
9  *\r
10  * This program is distributed in the hope that it will be useful,\r
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
13  * GNU General Public License for more details.\r
14  *\r
15  * You should have received a copy of the GNU General Public License\r
16  * along with this program; if not, write to the Free Software\r
17  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA\r
18  */\r
19 \r
20 package jalview.appletgui;\r
21 \r
22 import java.awt.*;\r
23 \r
24 import jalview.jbappletgui.*;\r
25 \r
26 public class FontChooser\r
27     extends GFontChooser\r
28 {\r
29   AlignmentPanel ap;\r
30   TreePanel tp;\r
31   Font oldFont;\r
32   boolean init = true;\r
33   Frame frame;\r
34 \r
35   public FontChooser(TreePanel tp)\r
36   {\r
37     this.tp = tp;\r
38     oldFont = tp.getTreeFont();\r
39     init();\r
40   }\r
41 \r
42   public FontChooser(AlignmentPanel ap)\r
43   {\r
44     this.ap = ap;\r
45     oldFont = ap.av.getFont();\r
46     init();\r
47   }\r
48 \r
49   void init()\r
50     {\r
51     this.ap = ap;\r
52     String fonts[] = Toolkit.getDefaultToolkit().getFontList();\r
53     for (int i = 0; i < fonts.length; i++)\r
54     {\r
55       fontName.addItem(fonts[i]);\r
56     }\r
57 \r
58     for (int i = 1; i < 31; i++)\r
59     {\r
60       fontSize.addItem(i + "");\r
61     }\r
62 \r
63     fontStyle.addItem("plain");\r
64     fontStyle.addItem("bold");\r
65     fontStyle.addItem("italic");\r
66 \r
67     fontName.select(oldFont.getName());\r
68     fontSize.select(oldFont.getSize() + "");\r
69     fontStyle.select(oldFont.getStyle());\r
70 \r
71     Frame frame = new Frame();\r
72     this.frame = frame;\r
73     frame.add(this);\r
74     jalview.bin.JalviewLite.addFrame(frame, "Change Font", 440, 100);\r
75 \r
76     init = false;\r
77   }\r
78 \r
79   protected void ok_actionPerformed()\r
80   {\r
81     frame.setVisible(false);\r
82     if (ap != null)\r
83     {\r
84       if (ap.getOverviewPanel() != null)\r
85       {\r
86         ap.getOverviewPanel().updateOverviewImage();\r
87       }\r
88     }\r
89 \r
90   }\r
91 \r
92   protected void cancel_actionPerformed()\r
93   {\r
94     if(ap!=null)\r
95     {\r
96       ap.av.setFont(oldFont);\r
97       ap.repaint();\r
98     }\r
99     else if(tp!=null)\r
100     {\r
101       tp.setTreeFont(oldFont);\r
102       tp.treeCanvas.repaint();\r
103     }\r
104 \r
105     fontName.select(oldFont.getName());\r
106     fontSize.select(oldFont.getSize() + "");\r
107     fontStyle.select(oldFont.getStyle());\r
108 \r
109     frame.setVisible(false);\r
110   }\r
111 \r
112   void changeFont()\r
113   {\r
114     Font newFont = new Font(fontName.getSelectedItem().toString(),\r
115                             fontStyle.getSelectedIndex(),\r
116                             Integer.parseInt(fontSize.getSelectedItem().\r
117                                              toString())\r
118         );\r
119     if (ap != null)\r
120     {\r
121       ap.av.setFont(newFont);\r
122       ap.fontChanged();\r
123     }\r
124     else if(tp != null)\r
125     {\r
126       tp.setTreeFont(newFont);\r
127       }\r
128   }\r
129 \r
130   protected void fontName_actionPerformed()\r
131   {\r
132     if (init)\r
133     {\r
134       return;\r
135     }\r
136     changeFont();\r
137   }\r
138 \r
139   protected void fontSize_actionPerformed()\r
140   {\r
141     if (init)\r
142     {\r
143       return;\r
144     }\r
145     changeFont();\r
146   }\r
147 \r
148   protected void fontStyle_actionPerformed()\r
149   {\r
150     if (init)\r
151     {\r
152       return;\r
153     }\r
154     changeFont();\r
155   }\r
156 \r
157 }\r