JAL-845 applet colour by tree; translate as cDNA; pull up history list
[jalview.git] / src / jalview / appletgui / FontChooser.java
index d3351e7..b422cac 100644 (file)
@@ -1,27 +1,43 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.8.0b1)
+ * Jalview - A Sequence Alignment Editor and Viewer (Version 2.8.2)
  * Copyright (C) 2014 The Jalview Authors
  * 
  * This file is part of Jalview.
  * 
  * Jalview is free software: you can redistribute it and/or
  * modify it under the terms of the GNU General Public License 
- * as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
+ * as published by the Free Software Foundation, either version 3
+ * of the License, or (at your option) any later version.
  *  
  * Jalview is distributed in the hope that it will be useful, but 
  * WITHOUT ANY WARRANTY; without even the implied warranty 
  * of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
  * PURPOSE.  See the GNU General Public License for more details.
  * 
- * You should have received a copy of the GNU General Public License along with Jalview.  If not, see <http://www.gnu.org/licenses/>.
+ * You should have received a copy of the GNU General Public License
+ * along with Jalview.  If not, see <http://www.gnu.org/licenses/>.
  * The Jalview Authors are detailed in the 'AUTHORS' file.
  */
 package jalview.appletgui;
 
+import jalview.api.ViewStyleI;
 import jalview.util.MessageManager;
 
-import java.awt.*;
-import java.awt.event.*;
+import java.awt.BorderLayout;
+import java.awt.Button;
+import java.awt.Choice;
+import java.awt.Color;
+import java.awt.FlowLayout;
+import java.awt.Font;
+import java.awt.FontMetrics;
+import java.awt.Frame;
+import java.awt.Label;
+import java.awt.Panel;
+import java.awt.Toolkit;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.awt.event.ItemEvent;
+import java.awt.event.ItemListener;
 
 public class FontChooser extends Panel implements ActionListener,
         ItemListener
@@ -32,6 +48,8 @@ public class FontChooser extends Panel implements ActionListener,
 
   Font oldFont;
 
+  int oldCharWidth = 0;
+
   boolean init = true;
 
   Frame frame;
@@ -63,6 +81,7 @@ public class FontChooser extends Panel implements ActionListener,
 
     this.ap = ap;
     oldFont = ap.av.getFont();
+    oldCharWidth = ap.av.getViewStyle().getCharWidth();
     init();
   }
 
@@ -90,7 +109,8 @@ public class FontChooser extends Panel implements ActionListener,
     Frame frame = new Frame();
     this.frame = frame;
     frame.add(this);
-    jalview.bin.JalviewLite.addFrame(frame, MessageManager.getString("action.change_font"), 440, 115);
+    jalview.bin.JalviewLite.addFrame(frame,
+            MessageManager.getString("action.change_font"), 440, 115);
 
     init = false;
   }
@@ -141,6 +161,12 @@ public class FontChooser extends Panel implements ActionListener,
     if (ap != null)
     {
       ap.av.setFont(oldFont);
+      ViewStyleI style = ap.av.getViewStyle();
+      if (style.getCharWidth() != oldCharWidth)
+      {
+        style.setCharWidth(oldCharWidth);
+        ap.av.setViewStyle(style);
+      }
       ap.paintAlignment(true);
     }
     else if (tp != null)
@@ -187,7 +213,9 @@ public class FontChooser extends Panel implements ActionListener,
       fontName.select(lastSelected.getName());
       fontStyle.select(lastSelStyle);
       fontSize.select("" + lastSelSize);
-      JVDialog d = new JVDialog(this.frame, MessageManager.getString("label.invalid_font"), true, 350, 200);
+      JVDialog d = new JVDialog(this.frame,
+              MessageManager.getString("label.invalid_font"), true, 350,
+              200);
       Panel mp = new Panel();
       d.cancel.setVisible(false);
       mp.setLayout(new FlowLayout());