Jbinit
[jalview.git] / src / jalview / appletgui / FontChooser.java
index db0c16f..5f44b39 100755 (executable)
+/*\r
+ * Jalview - A Sequence Alignment Editor and Viewer\r
+ * Copyright (C) 2005 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle\r
+ *\r
+ * This program is free software; you can redistribute it and/or\r
+ * modify it under the terms of the GNU General Public License\r
+ * as published by the Free Software Foundation; either version 2\r
+ * of the License, or (at your option) any later version.\r
+ *\r
+ * This program is distributed in the hope that it will be useful,\r
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
+ * GNU General Public License for more details.\r
+ *\r
+ * You should have received a copy of the GNU General Public License\r
+ * along with this program; if not, write to the Free Software\r
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA\r
+ */\r
+\r
 package jalview.appletgui;\r
 \r
-import jalview.jbappletgui.GFontChooser;\r
-import jalview.appletgui.*;\r
 import java.awt.*;\r
-import java.awt.event.*;\r
 \r
+import java.awt.event.ActionEvent;\r
+import java.awt.event.ItemEvent;\r
 \r
-public class FontChooser extends GFontChooser\r
+public class FontChooser\r
+    extends Panel\r
 {\r
   AlignmentPanel ap;\r
+  TreePanel tp;\r
   Font oldFont;\r
   boolean init = true;\r
   Frame frame;\r
 \r
-  public FontChooser(AlignmentPanel ap, Frame frame)\r
+  public FontChooser(TreePanel tp)\r
   {\r
-    super();\r
+    try\r
+    {\r
+      jbInit();\r
+    }\r
+    catch (Exception e)\r
+    {\r
+      e.printStackTrace();\r
+    }\r
 \r
-    this.frame = frame;\r
+    this.tp = tp;\r
+    oldFont = tp.getTreeFont();\r
+    init();\r
+  }\r
+\r
+  public FontChooser(AlignmentPanel ap)\r
+  {\r
+    try\r
+    {\r
+      jbInit();\r
+    }\r
+    catch (Exception e)\r
+    {\r
+      e.printStackTrace();\r
+    }\r
 \r
     this.ap = ap;\r
+    oldFont = ap.av.getFont();\r
+    init();\r
+  }\r
+\r
+  void init()\r
+  {\r
     String fonts[] = Toolkit.getDefaultToolkit().getFontList();\r
-    for(int i=0; i<fonts.length; i++)\r
+    for (int i = 0; i < fonts.length; i++)\r
+    {\r
       fontName.addItem(fonts[i]);\r
+    }\r
 \r
-    for(int i=1; i<31; i++)\r
-      fontSize.addItem(i+"");\r
+    for (int i = 1; i < 31; i++)\r
+    {\r
+      fontSize.addItem(i + "");\r
+    }\r
 \r
-   fontStyle.addItem("plain");\r
-   fontStyle.addItem("bold");\r
-   fontStyle.addItem("italic");\r
+    fontStyle.addItem("plain");\r
+    fontStyle.addItem("bold");\r
+    fontStyle.addItem("italic");\r
 \r
-   oldFont = ap.av.getFont();\r
-   fontName.select(oldFont.getName());\r
-   fontSize.select(oldFont.getSize()+"");\r
-   fontStyle.select(oldFont.getStyle());\r
+    fontName.select(oldFont.getName());\r
+    fontSize.select(oldFont.getSize() + "");\r
+    fontStyle.select(oldFont.getStyle());\r
 \r
-   init = false;\r
+    Frame frame = new Frame();\r
+    this.frame = frame;\r
+    frame.add(this);\r
+    jalview.bin.JalviewLite.addFrame(frame, "Change Font", 440, 100);\r
+\r
+    init = false;\r
   }\r
 \r
   protected void ok_actionPerformed()\r
   {\r
-      frame.setVisible(false);\r
-   if(ap.getOverviewPanel()!=null)\r
-     ap.getOverviewPanel().updateOverviewImage();\r
+    frame.setVisible(false);\r
+    if (ap != null)\r
+    {\r
+      if (ap.getOverviewPanel() != null)\r
+      {\r
+        ap.getOverviewPanel().updateOverviewImage();\r
+      }\r
+    }\r
+\r
   }\r
 \r
   protected void cancel_actionPerformed()\r
   {\r
-    ap.av.setFont(oldFont);\r
-    ap.repaint();\r
+    if(ap!=null)\r
+    {\r
+      ap.av.setFont(oldFont);\r
+      ap.repaint();\r
+    }\r
+    else if(tp!=null)\r
+    {\r
+      tp.setTreeFont(oldFont);\r
+      tp.treeCanvas.repaint();\r
+    }\r
+\r
     fontName.select(oldFont.getName());\r
-    fontSize.select(oldFont.getSize()+"");\r
+    fontSize.select(oldFont.getSize() + "");\r
     fontStyle.select(oldFont.getStyle());\r
 \r
     frame.setVisible(false);\r
@@ -61,29 +131,130 @@ public class FontChooser extends GFontChooser
   {\r
     Font newFont = new Font(fontName.getSelectedItem().toString(),\r
                             fontStyle.getSelectedIndex(),\r
-                            Integer.parseInt(fontSize.getSelectedItem().toString())\r
-                            );\r
-    ap.av.setFont(newFont);\r
-    ap.fontChanged();\r
+                            Integer.parseInt(fontSize.getSelectedItem().\r
+                                             toString())\r
+        );\r
+    if (ap != null)\r
+    {\r
+      ap.av.setFont(newFont);\r
+      ap.fontChanged();\r
+    }\r
+    else if(tp != null)\r
+    {\r
+      tp.setTreeFont(newFont);\r
+      }\r
   }\r
 \r
-\r
   protected void fontName_actionPerformed()\r
   {\r
-    if(init) return;\r
+    if (init)\r
+    {\r
+      return;\r
+    }\r
     changeFont();\r
   }\r
 \r
   protected void fontSize_actionPerformed()\r
   {\r
-    if(init) return;\r
+    if (init)\r
+    {\r
+      return;\r
+    }\r
     changeFont();\r
   }\r
 \r
   protected void fontStyle_actionPerformed()\r
   {\r
-    if(init) return;\r
+    if (init)\r
+    {\r
+      return;\r
+    }\r
     changeFont();\r
   }\r
+  Label label1 = new Label();\r
+  protected Choice fontSize = new Choice();\r
+  protected Choice fontStyle = new Choice();\r
+  Label label2 = new Label();\r
+  Label label3 = new Label();\r
+  protected Choice fontName = new Choice();\r
+  Button ok = new Button();\r
+  Button cancel = new Button();\r
+  Panel panel1 = new Panel();\r
+  Panel panel2 = new Panel();\r
+  Panel panel3 = new Panel();\r
+  BorderLayout borderLayout1 = new BorderLayout();\r
+  BorderLayout borderLayout2 = new BorderLayout();\r
+  BorderLayout borderLayout3 = new BorderLayout();\r
+  Panel panel4 = new Panel();\r
+  Panel panel5 = new Panel();\r
+  BorderLayout borderLayout4 = new BorderLayout();\r
+\r
+\r
+  private void jbInit() throws Exception {\r
+      label1.setFont(new java.awt.Font("Verdana", 0, 11));\r
+      label1.setAlignment(Label.RIGHT);\r
+      label1.setText("Font: ");\r
+      this.setLayout(borderLayout4);\r
+      fontSize.setFont(new java.awt.Font("Verdana", 0, 11));\r
+      fontSize.addItemListener(new java.awt.event.ItemListener() {\r
+              public void itemStateChanged(ItemEvent e) {\r
+                  fontSize_actionPerformed();\r
+              }\r
+          });\r
+      fontStyle.setFont(new java.awt.Font("Verdana", 0, 11));\r
+      fontStyle.addItemListener(new java.awt.event.ItemListener() {\r
+              public void itemStateChanged(ItemEvent e) {\r
+                  fontStyle_actionPerformed();\r
+              }\r
+          });\r
+      label2.setAlignment(Label.RIGHT);\r
+      label2.setFont(new java.awt.Font("Verdana", 0, 11));\r
+      label2.setText("Size: ");\r
+      label3.setAlignment(Label.RIGHT);\r
+      label3.setFont(new java.awt.Font("Verdana", 0, 11));\r
+      label3.setText("Style: ");\r
+      fontName.setFont(new java.awt.Font("Verdana", 0, 11));\r
+      fontName.addItemListener(new java.awt.event.ItemListener() {\r
+              public void itemStateChanged(ItemEvent e) {\r
+                  fontName_actionPerformed();\r
+              }\r
+          });\r
+      ok.setFont(new java.awt.Font("Verdana", 0, 11));\r
+      ok.setLabel("OK");\r
+      ok.addActionListener(new java.awt.event.ActionListener() {\r
+              public void actionPerformed(ActionEvent e) {\r
+                  ok_actionPerformed();\r
+              }\r
+          });\r
+      cancel.setFont(new java.awt.Font("Verdana", 0, 11));\r
+      cancel.setLabel("Cancel");\r
+      cancel.addActionListener(new java.awt.event.ActionListener() {\r
+              public void actionPerformed(ActionEvent e) {\r
+                  cancel_actionPerformed();\r
+              }\r
+          });\r
+      this.setBackground(Color.white);\r
+      panel1.setLayout(borderLayout1);\r
+      panel2.setLayout(borderLayout3);\r
+      panel3.setLayout(borderLayout2);\r
+      panel5.setBackground(Color.white);\r
+      panel4.setBackground(Color.white);\r
+      panel1.setBackground(Color.white);\r
+      panel2.setBackground(Color.white);\r
+      panel3.setBackground(Color.white);\r
+      panel1.add(label1, BorderLayout.WEST);\r
+      panel1.add(fontName, BorderLayout.CENTER);\r
+      panel5.add(panel1, null);\r
+      panel5.add(panel3, null);\r
+      panel5.add(panel2, null);\r
+      panel2.add(label3, BorderLayout.WEST);\r
+      panel2.add(fontStyle, BorderLayout.CENTER);\r
+      panel3.add(label2, BorderLayout.WEST);\r
+      panel3.add(fontSize, BorderLayout.CENTER);\r
+      this.add(panel4, BorderLayout.SOUTH);\r
+      panel4.add(ok, null);\r
+      panel4.add(cancel, null);\r
+      this.add(panel5, BorderLayout.CENTER);\r
+  }\r
 \r
 }\r