Dont change ap font from treePanel
[jalview.git] / src / jalview / gui / FontChooser.java
index 527bf5d..9803822 100755 (executable)
@@ -1,6 +1,6 @@
 /*\r
  * Jalview - A Sequence Alignment Editor and Viewer\r
- * Copyright (C) 2005 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle\r
+ * Copyright (C) 2006 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
@@ -37,6 +37,7 @@ import javax.swing.*;
 public class FontChooser extends GFontChooser\r
 {\r
     AlignmentPanel ap;\r
+    TreePanel tp;\r
     Font oldFont;\r
     boolean init = true;\r
     JInternalFrame frame;\r
@@ -46,14 +47,40 @@ public class FontChooser extends GFontChooser
      *\r
      * @param ap DOCUMENT ME!\r
      */\r
+    public FontChooser(TreePanel tp)\r
+    {\r
+      this.tp = tp;\r
+      ap = tp.treeCanvas.ap;\r
+      oldFont = tp.getTreeFont();\r
+      defaultButton.setVisible(false);\r
+      smoothFont.setEnabled(false);\r
+      init();\r
+    }\r
+    /**\r
+     * Creates a new FontChooser object.\r
+     *\r
+     * @param ap DOCUMENT ME!\r
+     */\r
     public FontChooser(AlignmentPanel ap)\r
     {\r
+      oldFont = ap.av.getFont();\r
+      this.ap = ap;\r
+      init();\r
+    }\r
+\r
+    void init()\r
+    {\r
         frame = new JInternalFrame();\r
         frame.setContentPane(this);\r
-        Desktop.addInternalFrame(frame, "Change Font", 480, 100, false);\r
-        frame.setLayer(JLayeredPane.PALETTE_LAYER);\r
 \r
-        this.ap = ap;\r
+        smoothFont.setSelected(ap.av.antiAlias);\r
+\r
+        if(tp!=null)\r
+           Desktop.addInternalFrame(frame, "Change Font (Tree Panel)", 340, 170, false);\r
+        else\r
+           Desktop.addInternalFrame(frame, "Change Font", 340, 170, false);\r
+\r
+        frame.setLayer(JLayeredPane.PALETTE_LAYER);\r
 \r
         String[] fonts = java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment()\r
                                                      .getAvailableFontFamilyNames();\r
@@ -63,7 +90,7 @@ public class FontChooser extends GFontChooser
             fontName.addItem(fonts[i]);\r
         }\r
 \r
-        for (int i = 1; i < 31; i++)\r
+        for (int i = 1; i < 51; i++)\r
         {\r
             fontSize.addItem(i + "");\r
         }\r
@@ -72,14 +99,27 @@ public class FontChooser extends GFontChooser
         fontStyle.addItem("bold");\r
         fontStyle.addItem("italic");\r
 \r
-        oldFont = ap.av.getFont();\r
         fontName.setSelectedItem(oldFont.getName());\r
         fontSize.setSelectedItem(oldFont.getSize() + "");\r
         fontStyle.setSelectedIndex(oldFont.getStyle());\r
 \r
+        FontMetrics fm = getGraphics().getFontMetrics(oldFont);\r
+        monospaced.setSelected( fm.getStringBounds("M",getGraphics()).getWidth()\r
+                              ==fm.getStringBounds("|",getGraphics()).getWidth());\r
+\r
+\r
         init = false;\r
     }\r
 \r
+    public void smoothFont_actionPerformed(ActionEvent e)\r
+    {\r
+      ap.av.antiAlias = smoothFont.isSelected();\r
+      ap.annotationPanel.image = null;\r
+      ap.repaint();\r
+    }\r
+\r
+\r
+\r
     /**\r
      * DOCUMENT ME!\r
      *\r
@@ -95,9 +135,12 @@ public class FontChooser extends GFontChooser
         {\r
         }\r
 \r
-        if (ap.getOverviewPanel() != null)\r
+        if(ap!=null)\r
         {\r
+          if (ap.getOverviewPanel() != null)\r
+          {\r
             ap.getOverviewPanel().updateOverviewImage();\r
+          }\r
         }\r
     }\r
 \r
@@ -108,8 +151,15 @@ public class FontChooser extends GFontChooser
      */\r
     protected void cancel_actionPerformed(ActionEvent e)\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
+        }\r
         fontName.setSelectedItem(oldFont.getName());\r
         fontSize.setSelectedItem(oldFont.getSize() + "");\r
         fontStyle.setSelectedIndex(oldFont.getStyle());\r
@@ -128,11 +178,25 @@ public class FontChooser extends GFontChooser
      */\r
     void changeFont()\r
     {\r
-        Font newFont = new Font(fontName.getSelectedItem().toString(),\r
-                fontStyle.getSelectedIndex(),\r
-                Integer.parseInt(fontSize.getSelectedItem().toString()));\r
+      Font newFont = new Font(fontName.getSelectedItem().toString(),\r
+                              fontStyle.getSelectedIndex(),\r
+                              Integer.parseInt(fontSize.getSelectedItem().toString()));\r
+      if(tp != null)\r
+      {\r
+        tp.setTreeFont(newFont);\r
+      }\r
+      else if(ap != null)\r
+      {\r
         ap.av.setFont(newFont);\r
         ap.fontChanged();\r
+      }\r
+\r
+\r
+      FontMetrics fm = getGraphics().getFontMetrics(newFont);\r
+\r
+      monospaced.setSelected( fm.getStringBounds("M",getGraphics()).getWidth()\r
+                                ==fm.getStringBounds("|",getGraphics()).getWidth());\r
+\r
     }\r
 \r
     /**\r
@@ -190,5 +254,6 @@ public class FontChooser extends GFontChooser
         Cache.setProperty("FONT_NAME", fontName.getSelectedItem().toString());\r
         Cache.setProperty("FONT_STYLE", fontStyle.getSelectedIndex() + "");\r
         Cache.setProperty("FONT_SIZE", fontSize.getSelectedItem().toString());\r
+        Cache.setProperty("ANTI_ALIAS", Boolean.toString(smoothFont.isSelected()));\r
     }\r
 }\r