Merge branch 'Release_2_8_1_Branch_i18n' into try_r20b1_merge
[jalview.git] / src / jalview / jbgui / GPreferences.java
index 7b2e5c4..a8626d8 100755 (executable)
@@ -1,23 +1,26 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer (Development Version 2.4.1)
- * Copyright (C) 2009 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle
+ * Jalview - A Sequence Alignment Editor and Viewer (Version 2.8.0b1)
+ * Copyright (C) 2014 The Jalview Authors
  * 
- * This program 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 2
- * of the License, or (at your option) any later version.
+ * This file is part of Jalview.
  * 
- * This program 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.
+ * 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.
+ *  
+ * 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 this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
+ * 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.jbgui;
 
+import jalview.gui.JvSwingUtils;
+import jalview.util.MessageManager;
+
 import java.awt.*;
 import java.awt.event.*;
 
@@ -48,6 +51,8 @@ public class GPreferences extends JPanel
 
   JPanel visualTab = new JPanel();
 
+  JPanel visual2Tab = new JPanel();
+
   protected JCheckBox fullScreen = new JCheckBox();
 
   protected JCheckBox conservation = new JCheckBox();
@@ -56,6 +61,14 @@ public class GPreferences extends JPanel
 
   protected JCheckBox annotations = new JCheckBox();
 
+  protected JPanel minColour = new JPanel();
+
+  JLabel mincolourLabel = new JLabel();
+
+  protected JPanel maxColour = new JPanel();
+
+  JLabel maxcolourLabel = new JLabel();
+
   JLabel gapLabel = new JLabel();
 
   protected JComboBox colour = new JComboBox();
@@ -118,9 +131,9 @@ public class GPreferences extends JPanel
 
   JPanel jPanel1 = new JPanel();
 
-  TitledBorder titledBorder1 = new TitledBorder("Proxy Server");
+  TitledBorder titledBorder1 = new TitledBorder(MessageManager.getString("label.proxy_server"));
 
-  TitledBorder titledBorder2 = new TitledBorder("File Output");
+  TitledBorder titledBorder2 = new TitledBorder(MessageManager.getString("label.file_output"));
 
   GridBagLayout gridBagLayout2 = new GridBagLayout();
 
@@ -134,9 +147,19 @@ public class GPreferences extends JPanel
 
   JPanel jPanel2 = new JPanel();
 
+  JPanel visual2panel = new JPanel();
+
   GridLayout gridLayout2 = new GridLayout();
 
-  JPanel jPanel3 = new JPanel();
+  GridLayout gridLayout4 = new GridLayout();
+
+  JPanel annsettingsPanel = new JPanel();
+
+  JPanel autoAnnotSettings1 = new JPanel();
+
+  JPanel autoAnnotSettings2 = new JPanel();
+
+  JPanel autoAnnotSettings3 = new JPanel();
 
   JPanel exportTab = new JPanel();
 
@@ -144,6 +167,12 @@ public class GPreferences extends JPanel
 
   protected JComboBox epsRendering = new JComboBox();
 
+  protected JLabel userIdWidthlabel = new JLabel();
+
+  protected JCheckBox autoIdWidth = new JCheckBox();
+
+  protected JTextField userIdWidth = new JTextField();
+
   JLabel jLabel1 = new JLabel();
 
   protected JCheckBox blcjv = new JCheckBox();
@@ -164,7 +193,7 @@ public class GPreferences extends JPanel
 
   JPanel jPanel11 = new JPanel();
 
-  Font verdana11 = new java.awt.Font("Verdana", Font.PLAIN, 11);
+  Font verdana11 = JvSwingUtils.getLabelFont();
 
   protected JCheckBox seqLimit = new JCheckBox();
 
@@ -184,19 +213,48 @@ public class GPreferences extends JPanel
 
   BorderLayout borderLayout4 = new BorderLayout();
 
+  protected JPanel wsPanel = new JPanel();
+
+  BorderLayout borderLayout5 = new BorderLayout();
+
   protected JCheckBox wrap = new JCheckBox();
 
   protected JCheckBox rightAlign = new JCheckBox();
 
   protected JCheckBox showUnconserved = new JCheckBox();
 
+  protected JCheckBox showDbRefTooltip = new JCheckBox();
+
+  protected JCheckBox showNpTooltip = new JCheckBox();
+
   protected JCheckBox idItalics = new JCheckBox();
 
   protected JCheckBox openoverv = new JCheckBox();
-  protected JCheckBox usagestats = new JCheckBox(); 
+
+  protected JCheckBox usagestats = new JCheckBox();
+
   protected JCheckBox questionnaire = new JCheckBox();
+
   protected JCheckBox versioncheck = new JCheckBox();
 
+  protected JLabel showGroupbits = new JLabel();
+
+  protected JLabel showConsensbits = new JLabel();
+
+  protected JCheckBox showConsensLogo = new JCheckBox();
+
+  protected JCheckBox showConsensHistogram = new JCheckBox();
+
+  protected JCheckBox showGroupConsensus = new JCheckBox();
+
+  protected JCheckBox showGroupConservation = new JCheckBox();
+
+  protected JCheckBox shareSelections = new JCheckBox();
+
+  protected JCheckBox followHighlight = new JCheckBox();
+
+  protected JCheckBox sortByTree = new JCheckBox();
+
   /**
    * Creates a new GPreferences object.
    */
@@ -215,12 +273,12 @@ public class GPreferences extends JPanel
    * DOCUMENT ME!
    * 
    * @throws Exception
-   *                 DOCUMENT ME!
+   *           DOCUMENT ME!
    */
   private void jbInit() throws Exception
   {
     this.setLayout(borderLayout1);
-    ok.setText("OK");
+    ok.setText(MessageManager.getString("action.ok"));
     ok.addActionListener(new ActionListener()
     {
       public void actionPerformed(ActionEvent e)
@@ -228,7 +286,7 @@ public class GPreferences extends JPanel
         ok_actionPerformed(e);
       }
     });
-    cancel.setText("Cancel");
+    cancel.setText(MessageManager.getString("action.cancel"));
     cancel.addActionListener(new ActionListener()
     {
       public void actionPerformed(ActionEvent e)
@@ -241,30 +299,77 @@ public class GPreferences extends JPanel
     quality.setHorizontalAlignment(SwingConstants.RIGHT);
     quality.setHorizontalTextPosition(SwingConstants.LEFT);
     quality.setSelected(true);
-    quality.setText("Quality");
-    visualTab.setBorder(new TitledBorder("Open new alignment"));
+    quality.setText(MessageManager.getString("label.quality"));
+    visualTab.setBorder(new TitledBorder(MessageManager.getString("action.open_new_aligmnent")));
     visualTab.setLayout(null);
+    visual2Tab.setBorder(new TitledBorder(MessageManager.getString("action.open_new_aligmnent")));
+    visual2Tab.setLayout(new FlowLayout());
     fullScreen.setFont(verdana11);
     fullScreen.setHorizontalAlignment(SwingConstants.RIGHT);
     fullScreen.setHorizontalTextPosition(SwingConstants.LEFT);
-    fullScreen.setText("Maximise Window");
+    fullScreen.setText(MessageManager.getString("label.maximize_window"));
     conservation.setEnabled(false);
     conservation.setFont(verdana11);
     conservation.setHorizontalAlignment(SwingConstants.RIGHT);
     conservation.setHorizontalTextPosition(SwingConstants.LEFT);
     conservation.setSelected(true);
-    conservation.setText("Conservation");
+    conservation.setText(MessageManager.getString("label.conservation"));
     identity.setEnabled(false);
     identity.setFont(verdana11);
     identity.setHorizontalAlignment(SwingConstants.RIGHT);
     identity.setHorizontalTextPosition(SwingConstants.LEFT);
     identity.setSelected(true);
-    identity.setText("Consensus");
+    identity.setText(MessageManager.getString("label.consensus"));
+    showGroupbits.setFont(verdana11);
+    showGroupbits.setHorizontalAlignment(SwingConstants.RIGHT);
+    showGroupbits.setHorizontalTextPosition(SwingConstants.LEFT);
+    showGroupbits.setText(MessageManager.getString("action.show_group") + ":");
+    showConsensbits.setFont(verdana11);
+    showConsensbits.setHorizontalAlignment(SwingConstants.RIGHT);
+    showConsensbits.setHorizontalTextPosition(SwingConstants.LEFT);
+    showConsensbits.setText(MessageManager.getString("label.consensus") + ":");
+    showConsensHistogram.setEnabled(false);
+    showConsensHistogram.setFont(verdana11);
+    showConsensHistogram.setHorizontalAlignment(SwingConstants.RIGHT);
+    showConsensHistogram.setHorizontalTextPosition(SwingConstants.LEFT);
+    showConsensHistogram.setSelected(true);
+    showConsensHistogram.setText(MessageManager.getString("label.histogram"));
+    showConsensLogo.setEnabled(false);
+    showConsensLogo.setFont(verdana11);
+    showConsensLogo.setHorizontalAlignment(SwingConstants.RIGHT);
+    showConsensLogo.setHorizontalTextPosition(SwingConstants.LEFT);
+    showConsensLogo.setSelected(true);
+    showConsensLogo.setText(MessageManager.getString("label.logo"));
+    showGroupConsensus.setEnabled(false);
+    showGroupConsensus.setFont(verdana11);
+    showGroupConsensus.setHorizontalAlignment(SwingConstants.RIGHT);
+    showGroupConsensus.setHorizontalTextPosition(SwingConstants.LEFT);
+    showGroupConsensus.setSelected(true);
+    showGroupConsensus.setText(MessageManager.getString("label.consensus"));
+    showGroupConservation.setEnabled(false);
+    showGroupConservation.setFont(verdana11);
+    showGroupConservation.setHorizontalAlignment(SwingConstants.RIGHT);
+    showGroupConservation.setHorizontalTextPosition(SwingConstants.LEFT);
+    showGroupConservation.setSelected(true);
+    showGroupConservation.setText(MessageManager.getString("label.conservation"));
+    showNpTooltip.setEnabled(true);
+    showNpTooltip.setFont(verdana11);
+    showNpTooltip.setHorizontalAlignment(SwingConstants.RIGHT);
+    showNpTooltip.setHorizontalTextPosition(SwingConstants.LEFT);
+    showNpTooltip.setSelected(true);
+    showNpTooltip.setText(MessageManager.getString("label.non_positional_features"));
+    showDbRefTooltip.setEnabled(true);
+    showDbRefTooltip.setFont(verdana11);
+    showDbRefTooltip.setHorizontalAlignment(SwingConstants.RIGHT);
+    showDbRefTooltip.setHorizontalTextPosition(SwingConstants.LEFT);
+    showDbRefTooltip.setSelected(true);
+    showDbRefTooltip.setText(MessageManager.getString("label.database_references"));
     annotations.setFont(verdana11);
     annotations.setHorizontalAlignment(SwingConstants.RIGHT);
-    annotations.setHorizontalTextPosition(SwingConstants.LEFT);
+    annotations.setHorizontalTextPosition(SwingConstants.LEADING);
     annotations.setSelected(true);
-    annotations.setText("Show Annotations");
+    annotations.setText(MessageManager.getString("label.show_annotations"));
+    annotations.setBounds(new Rectangle(169, 12, 200, 23));
     annotations.addActionListener(new ActionListener()
     {
       public void actionPerformed(ActionEvent e)
@@ -272,12 +377,25 @@ public class GPreferences extends JPanel
         annotations_actionPerformed(e);
       }
     });
+    identity.addActionListener(new ActionListener()
+    {
+      public void actionPerformed(ActionEvent e)
+      {
+        annotations_actionPerformed(e);
+      }
+    });
+    showGroupConsensus.addActionListener(new ActionListener()
+    {
+      public void actionPerformed(ActionEvent e)
+      {
+        annotations_actionPerformed(e);
+      }
+    });
     showUnconserved.setFont(verdana11);
     showUnconserved.setHorizontalAlignment(SwingConstants.RIGHT);
     showUnconserved.setHorizontalTextPosition(SwingConstants.LEFT);
-    //showUnconserved.setBounds(new Rectangle(169, 40, 200, 23));
     showUnconserved.setSelected(true);
-    showUnconserved.setText("Show Unconserved");
+    showUnconserved.setText(MessageManager.getString("action.show_unconserved"));
     showUnconserved.addActionListener(new ActionListener()
     {
       public void actionPerformed(ActionEvent e)
@@ -285,27 +403,66 @@ public class GPreferences extends JPanel
         showunconserved_actionPerformed(e);
       }
     });
-    
+    // / TODO: fit these in to preferences panel!!!!!
+    shareSelections.setFont(verdana11);
+    shareSelections.setHorizontalAlignment(SwingConstants.RIGHT);
+    shareSelections.setHorizontalTextPosition(SwingConstants.LEFT);
+    shareSelections.setSelected(true);
+    shareSelections.setText(MessageManager.getString("label.share_selection_across_views"));
+    followHighlight.setFont(verdana11);
+    followHighlight.setHorizontalAlignment(SwingConstants.RIGHT);
+    followHighlight.setHorizontalTextPosition(SwingConstants.LEFT);
+    // showUnconserved.setBounds(new Rectangle(169, 40, 200, 23));
+    followHighlight.setSelected(true);
+    followHighlight.setText(MessageManager.getString("label.scroll_highlighted_regions"));
+
     gapLabel.setFont(verdana11);
     gapLabel.setHorizontalAlignment(SwingConstants.RIGHT);
-    gapLabel.setText("Gap Symbol ");
+    gapLabel.setText(MessageManager.getString("label.gap_symbol") + " ");
     colour.setFont(verdana11);
     colour.setBounds(new Rectangle(172, 225, 155, 21));
     colourLabel.setFont(verdana11);
     colourLabel.setHorizontalAlignment(SwingConstants.RIGHT);
-    colourLabel.setText("Colour ");
+    colourLabel.setText(MessageManager.getString("label.alignment_colour") + " ");
     fontLabel.setFont(verdana11);
     fontLabel.setHorizontalAlignment(SwingConstants.RIGHT);
-    fontLabel.setText("Font ");
+    fontLabel.setText(MessageManager.getString("label.font"));
     fontSizeCB.setFont(verdana11);
-    fontSizeCB.setBounds(new Rectangle(319, 101, 49, 21));
+    fontSizeCB.setBounds(new Rectangle(319, 104, 49, 23));
     fontStyleCB.setFont(verdana11);
-    fontStyleCB.setBounds(new Rectangle(367, 101, 70, 21));
+    fontStyleCB.setBounds(new Rectangle(367, 104, 70, 23));
     fontNameCB.setFont(verdana11);
-    fontNameCB.setBounds(new Rectangle(172, 101, 147, 21));
+    fontNameCB.setBounds(new Rectangle(172, 104, 147, 23));
     gapSymbolCB.setFont(verdana11);
-    gapSymbolCB.setBounds(new Rectangle(172, 204, 69, 21));
-    startupCheckbox.setText("Open file");
+    gapSymbolCB.setBounds(new Rectangle(172, 204, 69, 23));
+    mincolourLabel.setFont(verdana11);
+    mincolourLabel.setHorizontalAlignment(SwingConstants.RIGHT);
+    mincolourLabel.setText(MessageManager.getString("label.min_colour"));
+    minColour.setFont(verdana11);
+    minColour.setBorder(BorderFactory.createEtchedBorder());
+    minColour.setPreferredSize(new Dimension(40, 20));
+    minColour.addMouseListener(new MouseAdapter()
+    {
+      public void mousePressed(MouseEvent e)
+      {
+        minColour_actionPerformed();
+      }
+    });
+    maxcolourLabel.setFont(verdana11);
+    maxcolourLabel.setHorizontalAlignment(SwingConstants.RIGHT);
+    maxcolourLabel.setText(MessageManager.getString("label.max_colour"));
+    maxColour.setFont(verdana11);
+    maxColour.setBorder(BorderFactory.createEtchedBorder());
+    maxColour.setPreferredSize(new Dimension(40, 20));
+    maxColour.addMouseListener(new MouseAdapter()
+    {
+      public void mousePressed(MouseEvent e)
+      {
+        maxColour_actionPerformed();
+      }
+    });
+
+    startupCheckbox.setText(MessageManager.getString("action.open_file"));
     startupCheckbox.setFont(verdana11);
     startupCheckbox.setHorizontalAlignment(SwingConstants.RIGHT);
     startupCheckbox.setHorizontalTextPosition(SwingConstants.LEFT);
@@ -324,32 +481,32 @@ public class GPreferences extends JPanel
     });
 
     connectTab.setLayout(gridBagLayout3);
-    serverLabel.setText("Address");
+    serverLabel.setText(MessageManager.getString("label.address"));
     serverLabel.setHorizontalAlignment(SwingConstants.RIGHT);
     serverLabel.setFont(verdana11);
     proxyServerTB.setFont(verdana11);
     proxyPortTB.setFont(verdana11);
     portLabel.setFont(verdana11);
     portLabel.setHorizontalAlignment(SwingConstants.RIGHT);
-    portLabel.setText("Port");
+    portLabel.setText(MessageManager.getString("label.port"));
     browserLabel.setFont(new java.awt.Font("SansSerif", 0, 11));
     browserLabel.setHorizontalAlignment(SwingConstants.TRAILING);
-    browserLabel.setText("Default Browser (Unix)");
+    browserLabel.setText(MessageManager.getString("label.default_browser_unix"));
     defaultBrowser.setFont(verdana11);
     defaultBrowser.setText("");
-    usagestats.setText("Send usage statistics");
+    usagestats.setText(MessageManager.getString("label.send_usage_statistics"));
     usagestats.setFont(verdana11);
     usagestats.setHorizontalAlignment(SwingConstants.RIGHT);
     usagestats.setHorizontalTextPosition(SwingConstants.LEADING);
-    questionnaire.setText("Check for questionnaires");
+    questionnaire.setText(MessageManager.getString("label.check_for_questionnaires"));
     questionnaire.setFont(verdana11);
     questionnaire.setHorizontalAlignment(SwingConstants.RIGHT);
     questionnaire.setHorizontalTextPosition(SwingConstants.LEADING);
-    versioncheck.setText("Check for latest version");
+    versioncheck.setText(MessageManager.getString("label.check_for_latest_version"));
     versioncheck.setFont(verdana11);
     versioncheck.setHorizontalAlignment(SwingConstants.RIGHT);
     versioncheck.setHorizontalTextPosition(SwingConstants.LEADING);
-    newLink.setText("New");
+    newLink.setText(MessageManager.getString("action.new"));
     newLink.addActionListener(new java.awt.event.ActionListener()
     {
       public void actionPerformed(ActionEvent e)
@@ -357,7 +514,7 @@ public class GPreferences extends JPanel
         newLink_actionPerformed(e);
       }
     });
-    editLink.setText("Edit");
+    editLink.setText(MessageManager.getString("action.edit"));
     editLink.addActionListener(new java.awt.event.ActionListener()
     {
       public void actionPerformed(ActionEvent e)
@@ -365,7 +522,7 @@ public class GPreferences extends JPanel
         editLink_actionPerformed(e);
       }
     });
-    deleteLink.setText("Delete");
+    deleteLink.setText(MessageManager.getString("action.delete"));
     deleteLink.addActionListener(new java.awt.event.ActionListener()
     {
       public void actionPerformed(ActionEvent e)
@@ -393,7 +550,7 @@ public class GPreferences extends JPanel
     });
 
     linkScrollPane.setBorder(null);
-    linkPanel.setBorder(new TitledBorder("URL link from Sequence ID"));
+    linkPanel.setBorder(new TitledBorder(MessageManager.getString("label.url_linkfrom_sequence_id")));
     linkPanel.setLayout(borderLayout2);
     editLinkButtons.setLayout(gridLayout1);
     gridLayout1.setRows(3);
@@ -416,7 +573,7 @@ public class GPreferences extends JPanel
     useProxy.setFont(verdana11);
     useProxy.setHorizontalAlignment(SwingConstants.RIGHT);
     useProxy.setHorizontalTextPosition(SwingConstants.LEADING);
-    useProxy.setText("Use a proxy server");
+    useProxy.setText(MessageManager.getString("label.use_proxy_server"));
     useProxy.addActionListener(new ActionListener()
     {
       public void actionPerformed(ActionEvent e)
@@ -430,33 +587,32 @@ public class GPreferences extends JPanel
     sortby.setBounds(new Rectangle(172, 249, 155, 21));
     sortLabel.setFont(verdana11);
     sortLabel.setHorizontalAlignment(SwingConstants.RIGHT);
-    sortLabel.setText("Sort by ");
+    sortLabel.setText(MessageManager.getString("label.sort_by"));
     jPanel2.setBounds(new Rectangle(7, 17, 158, 278));
     jPanel2.setLayout(gridLayout2);
-    gridLayout2.setRows(13);
-    jPanel3.setBounds(new Rectangle(173, 35, 274, 26));
+    gridLayout2.setRows(12);
     exportTab.setLayout(null);
     epsLabel.setFont(verdana11);
     epsLabel.setHorizontalAlignment(SwingConstants.RIGHT);
-    epsLabel.setText("EPS Rendering Style");
+    epsLabel.setText(MessageManager.getString("label.eps_rendering_style"));
     epsLabel.setBounds(new Rectangle(9, 31, 140, 24));
     epsRendering.setFont(verdana11);
     epsRendering.setBounds(new Rectangle(154, 34, 187, 21));
     jLabel1.setFont(verdana11);
     jLabel1.setHorizontalAlignment(SwingConstants.CENTER);
-    jLabel1.setText("Append /start-end (/15-380)");
+    jLabel1.setText(MessageManager.getString("label.append_start_end"));
     jLabel1.setFont(verdana11);
     fastajv.setFont(verdana11);
     fastajv.setHorizontalAlignment(SwingConstants.LEFT);
-    clustaljv.setText("Clustal     ");
-    blcjv.setText("BLC     ");
-    fastajv.setText("Fasta     ");
-    msfjv.setText("MSF     ");
-    pfamjv.setText("PFAM     ");
-    pileupjv.setText("Pileup     ");
+    clustaljv.setText(MessageManager.getString("label.clustal") + "     ");
+    blcjv.setText(MessageManager.getString("label.blc") + "     ");
+    fastajv.setText(MessageManager.getString("label.fasta") + "     ");
+    msfjv.setText(MessageManager.getString("label.msf")+ "     ");
+    pfamjv.setText(MessageManager.getString("label.pfam") + "     ");
+    pileupjv.setText(MessageManager.getString("label.pileup") + "     ");
     msfjv.setFont(verdana11);
     msfjv.setHorizontalAlignment(SwingConstants.LEFT);
-    pirjv.setText("PIR     ");
+    pirjv.setText(MessageManager.getString("label.pir") + "     ");
     jPanel11.setFont(verdana11);
     jPanel11.setBorder(titledBorder2);
     jPanel11.setBounds(new Rectangle(30, 72, 196, 182));
@@ -474,69 +630,165 @@ public class GPreferences extends JPanel
     seqLimit.setFont(verdana11);
     seqLimit.setHorizontalAlignment(SwingConstants.RIGHT);
     seqLimit.setHorizontalTextPosition(SwingConstants.LEFT);
-    seqLimit.setText("Full Sequence Id");
+    seqLimit.setText(MessageManager.getString("label.full_sequence_id"));
     gridLayout3.setRows(8);
     smoothFont.setFont(verdana11);
     smoothFont.setHorizontalAlignment(SwingConstants.RIGHT);
     smoothFont.setHorizontalTextPosition(SwingConstants.LEADING);
-    smoothFont.setText("Smooth Font");
+    smoothFont.setText(MessageManager.getString("label.smooth_font"));
     calcTab.setLayout(null);
-    autoCalculateConsCheck.setFont(new java.awt.Font("Verdana", Font.PLAIN,
-            11));
-    autoCalculateConsCheck.setText("AutoCalculate Consensus");
+    autoCalculateConsCheck.setFont(JvSwingUtils.getLabelFont());
+    autoCalculateConsCheck.setText(MessageManager.getString("label.autocalculate_consensus"));
     autoCalculateConsCheck.setBounds(new Rectangle(21, 52, 209, 23));
-    padGaps.setFont(new java.awt.Font("Verdana", Font.PLAIN, 11));
-    padGaps.setText("Pad gaps when editing");
+    padGaps.setFont(JvSwingUtils.getLabelFont());
+    padGaps.setText(MessageManager.getString("label.pad_gaps_when_editing"));
     padGaps.setBounds(new Rectangle(22, 94, 168, 23));
-    modellerOutput.setFont(new java.awt.Font("Verdana", Font.PLAIN, 11));
-    modellerOutput.setText("Use Modeller Output");
+    sortByTree.setFont(JvSwingUtils.getLabelFont());
+    sortByTree.setText(MessageManager.getString("label.sort_with_new_tree"));
+    sortByTree
+            .setToolTipText(MessageManager.getString("label.any_trees_calculated_or_loaded_alignment_automatically_sort"));
+    sortByTree.setBounds(new Rectangle(22, 136, 168, 23));
+
+    autoIdWidth.setFont(JvSwingUtils.getLabelFont());
+    autoIdWidth.setText(MessageManager.getString("label.automatically_set_id_width"));
+    autoIdWidth
+            .setToolTipText("<html>"
+                    + JvSwingUtils
+                            .wrapTooltip("Adjusts the width of the generated EPS or PNG file to ensure even the longest sequence ID or annotation label is displayed")
+                    + "</html>");
+    autoIdWidth.setBounds(new Rectangle(228, 96, 188, 23));
+    autoIdWidth.addActionListener(new ActionListener()
+    {
+
+      @Override
+      public void actionPerformed(ActionEvent e)
+      {
+        autoIdWidth_actionPerformed();
+      }
+    });
+    userIdWidthlabel.setFont(JvSwingUtils.getLabelFont());
+    userIdWidthlabel.setText(MessageManager.getString("label.figure_id_column_width"));
+    userIdWidth
+            .setToolTipText("<html>"
+                    + JvSwingUtils
+                            .wrapTooltip("Manually specify the width of the left hand column where sequence IDs and annotation labels will be rendered in exported alignment figures. This setting will be ignored if 'Automatically set ID width' is set")
+                    + "</html>");
+    userIdWidthlabel
+            .setToolTipText("<html>"
+                    + JvSwingUtils
+                            .wrapTooltip("Manually specify the width of the left hand column where sequence IDs and annotation labels will be rendered in exported alignment figures. This setting will be ignored if 'Automatically set ID width' is set")
+                    + "</html>");
+    userIdWidthlabel.setBounds(new Rectangle(236, 120, 168, 23));
+    userIdWidth.setFont(JvSwingUtils.getTextAreaFont());
+    userIdWidth.setText("");
+    userIdWidth.setBounds(new Rectangle(232, 144, 84, 23));
+    userIdWidth.addActionListener(new ActionListener()
+    {
+
+      @Override
+      public void actionPerformed(ActionEvent e)
+      {
+        userIdWidth_actionPerformed();
+      }
+    });
+    modellerOutput.setFont(JvSwingUtils.getLabelFont());
+    modellerOutput.setText(MessageManager.getString("label.use_modeller_output"));
     modellerOutput.setBounds(new Rectangle(228, 226, 168, 23));
+
     dasPanel.setLayout(borderLayout4);
-    wrap.setFont(new java.awt.Font("Verdana", Font.PLAIN, 11));
+    wsPanel.setLayout(borderLayout5);
+    wrap.setFont(JvSwingUtils.getLabelFont());
     wrap.setHorizontalAlignment(SwingConstants.TRAILING);
     wrap.setHorizontalTextPosition(SwingConstants.LEADING);
-    wrap.setText("Wrap Alignment");
-    rightAlign.setFont(new java.awt.Font("Verdana", Font.PLAIN, 11));
+    wrap.setText(MessageManager.getString("label.wrap_alignment"));
+    rightAlign.setFont(JvSwingUtils.getLabelFont());
     rightAlign.setForeground(Color.black);
     rightAlign.setHorizontalAlignment(SwingConstants.RIGHT);
     rightAlign.setHorizontalTextPosition(SwingConstants.LEFT);
-    rightAlign.setText("Right Align Ids");
-    idItalics.setFont(new java.awt.Font("Verdana", Font.PLAIN, 11));
+    rightAlign.setText(MessageManager.getString("label.right_align_ids"));
+    idItalics.setFont(JvSwingUtils.getLabelFont());
     idItalics.setHorizontalAlignment(SwingConstants.RIGHT);
     idItalics.setHorizontalTextPosition(SwingConstants.LEADING);
-    idItalics.setText("Sequence Name Italics");
-    openoverv.setFont(new java.awt.Font("Verdana", Font.PLAIN, 11));
-    openoverv.setActionCommand("Open Overview");
+    idItalics.setText(MessageManager.getString("label.sequence_name_italics"));
+    openoverv.setFont(JvSwingUtils.getLabelFont());
+    openoverv.setActionCommand(MessageManager.getString("label.open_overview"));
     openoverv.setHorizontalAlignment(SwingConstants.RIGHT);
-    openoverv.setHorizontalTextPosition(SwingConstants.LEADING);
-    openoverv.setText("Open Overview Window");
-    openoverv.setBounds(new Rectangle(169, 17, 200, 23));
+    openoverv.setHorizontalTextPosition(SwingConstants.LEFT);
+    openoverv.setText(MessageManager.getString(("label.open_overview")));
     jPanel2.add(fullScreen);
-    jPanel2.add(annotations);
+    jPanel2.add(openoverv);
     jPanel2.add(seqLimit);
     jPanel2.add(rightAlign);
     jPanel2.add(fontLabel);
     jPanel2.add(showUnconserved);
     jPanel2.add(idItalics);
     jPanel2.add(smoothFont);
-    jPanel2.add(wrap);
     jPanel2.add(gapLabel);
-    jPanel2.add(colourLabel);
+    jPanel2.add(wrap);
     jPanel2.add(sortLabel);
     jPanel2.add(startupCheckbox);
-    visualTab.add(openoverv);
+    visualTab.add(annotations);
     visualTab.add(startupFileTextfield);
     visualTab.add(sortby);
-    visualTab.add(colour);
     visualTab.add(gapSymbolCB);
-    visualTab.add(jPanel3);
     visualTab.add(fontNameCB);
     visualTab.add(fontSizeCB);
     visualTab.add(fontStyleCB);
-    jPanel3.add(conservation);
-    jPanel3.add(identity);
-    jPanel3.add(quality);
+    annsettingsPanel.setBounds(new Rectangle(173, 34, 300, 61));
+    annsettingsPanel.setLayout(new FlowLayout(FlowLayout.LEFT, 0, 0));
+    annsettingsPanel.add(autoAnnotSettings1);
+    annsettingsPanel.add(autoAnnotSettings2);
+    annsettingsPanel.add(autoAnnotSettings3);
+    autoAnnotSettings1.setLayout(new GridLayout(3, 1, 0, 0));
+    autoAnnotSettings2.setLayout(new GridLayout(3, 1, 0, 0));
+    autoAnnotSettings3.setLayout(new GridLayout(3, 1, 0, 0));
+    visualTab.add(annsettingsPanel);
+    Border jb = new EmptyBorder(1, 1, 4, 5);
+    quality.setBorder(jb);
+    conservation.setBorder(jb);
+    identity.setBorder(jb);
+    showConsensbits.setBorder(jb);
+    showGroupbits.setBorder(jb);
+    showGroupConsensus.setBorder(jb);
+    showGroupConservation.setBorder(jb);
+    showConsensHistogram.setBorder(jb);
+    showConsensLogo.setBorder(jb);
+
+    autoAnnotSettings2.add(conservation);
+    autoAnnotSettings1.add(quality);
+    autoAnnotSettings3.add(identity);
+    autoAnnotSettings1.add(showGroupbits);
+    autoAnnotSettings3.add(showGroupConsensus);
+    autoAnnotSettings2.add(showGroupConservation);
+    autoAnnotSettings1.add(showConsensbits);
+    autoAnnotSettings2.add(showConsensHistogram);
+    autoAnnotSettings3.add(showConsensLogo);
+
+    JPanel tooltipSettings = new JPanel();
+    tooltipSettings.setBorder(new TitledBorder(MessageManager.getString("label.sequence_id_tooltip")));
+    tooltipSettings.setBounds(173, 130, 200, 62);
+    tooltipSettings.setLayout(new GridLayout(2, 1));
+    tooltipSettings.add(showDbRefTooltip);
+    tooltipSettings.add(showNpTooltip);
+    visualTab.add(tooltipSettings);
     visualTab.add(jPanel2);
+    JvSwingUtils.addtoLayout(visual2Tab,
+           MessageManager.getString("label.default_colour_scheme_for_alignment"), colourLabel, colour);
+    JPanel annotationShding = new JPanel();
+    annotationShding.setBorder(new TitledBorder(
+            MessageManager.getString("label.annotation_shading_default")));
+    annotationShding.setLayout(new GridLayout(1, 2));
+    JvSwingUtils.addtoLayout(annotationShding,
+            MessageManager.getString("label.default_minimum_colour_annotation_shading"),
+            mincolourLabel, minColour);
+    JvSwingUtils.addtoLayout(annotationShding,
+            MessageManager.getString("label.default_maximum_colour_annotation_shading"),
+            maxcolourLabel, maxColour);
+    visual2Tab.add(annotationShding); // , FlowLayout.LEFT);
+
+    // visual2panel.add(minColour);
+    // visual2panel.add(maxColour);
+    // visual2Tab.add(visual2panel);
 
     linkPanel.add(editLinkButtons, BorderLayout.EAST);
     editLinkButtons.add(newLink, null);
@@ -575,16 +827,16 @@ public class GPreferences extends JPanel
     connectTab.add(defaultBrowser, new GridBagConstraints(1, 1, 1, 1, 1.0,
             0.0, GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL,
             new Insets(15, 0, 0, 15), 307, 1));
-    connectTab.add(usagestats, new GridBagConstraints(0, 4, 1, 1, 1.0,
-            0.0, GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL,
-            new Insets(0, 2, 4,2), 70, 1));
+    connectTab.add(usagestats, new GridBagConstraints(0, 4, 1, 1, 1.0, 0.0,
+            GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL,
+            new Insets(0, 2, 4, 2), 70, 1));
     connectTab.add(questionnaire, new GridBagConstraints(1, 4, 1, 1, 1.0,
             0.0, GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL,
-            new Insets(0, 2, 4,2), 70, 1));
+            new Insets(0, 2, 4, 2), 70, 1));
     connectTab.add(versioncheck, new GridBagConstraints(0, 5, 1, 1, 1.0,
             0.0, GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL,
-            new Insets(0, 2, 4,2), 70, 1));
-    
+            new Insets(0, 2, 4, 2), 70, 1));
+
     jPanel1.add(useProxy, new GridBagConstraints(0, 0, 2, 1, 0.0, 0.0,
             GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(0,
                     2, 5, 185), 2, -4));
@@ -592,9 +844,10 @@ public class GPreferences extends JPanel
     dlcr.setHorizontalAlignment(DefaultListCellRenderer.CENTER);
     gapSymbolCB.setRenderer(dlcr);
 
-    tabbedPane.add(visualTab, "Visual");
-    tabbedPane.add(connectTab, "Connections");
-    tabbedPane.add(exportTab, "Output");
+    tabbedPane.add(visualTab, MessageManager.getString("label.visual"));
+    tabbedPane.add(visual2Tab, MessageManager.getString("label.colours"));
+    tabbedPane.add(connectTab, MessageManager.getString("label.connections"));
+    tabbedPane.add(exportTab, MessageManager.getString("label.output"));
     jPanel11.add(jLabel1);
     jPanel11.add(blcjv);
     jPanel11.add(clustaljv);
@@ -603,28 +856,58 @@ public class GPreferences extends JPanel
     jPanel11.add(pfamjv);
     jPanel11.add(pileupjv);
     jPanel11.add(pirjv);
+    exportTab.add(autoIdWidth);
+    exportTab.add(userIdWidth);
+    exportTab.add(userIdWidthlabel);
     exportTab.add(modellerOutput);
-    tabbedPane.add(calcTab, "Editing");
+    tabbedPane.add(calcTab, MessageManager.getString("label.editing"));
     calcTab.add(autoCalculateConsCheck);
     calcTab.add(padGaps);
-    tabbedPane.add(dasPanel, "DAS Settings");
+    calcTab.add(sortByTree);
+
+    tabbedPane.add(dasPanel, MessageManager.getString("label.das_settings"));
+    tabbedPane.add(wsPanel, MessageManager.getString("label.web_services"));
 
     exportTab.add(epsLabel);
     exportTab.add(epsRendering);
     exportTab.add(jPanel11);
   }
 
+  protected void autoIdWidth_actionPerformed()
+  {
+    // TODO Auto-generated method stub
+
+  }
+
+  protected void userIdWidth_actionPerformed()
+  {
+    // TODO Auto-generated method stub
+
+  }
+
+  protected void maxColour_actionPerformed()
+  {
+    // TODO Auto-generated method stub
+
+  }
+
+  protected void minColour_actionPerformed()
+  {
+    // TODO Auto-generated method stub
+
+  }
+
   protected void showunconserved_actionPerformed(ActionEvent e)
   {
     // TODO Auto-generated method stub
-    
+
   }
 
   /**
    * DOCUMENT ME!
    * 
    * @param e
-   *                DOCUMENT ME!
+   *          DOCUMENT ME!
    */
   public void ok_actionPerformed(ActionEvent e)
   {
@@ -634,7 +917,7 @@ public class GPreferences extends JPanel
    * DOCUMENT ME!
    * 
    * @param e
-   *                DOCUMENT ME!
+   *          DOCUMENT ME!
    */
   public void cancel_actionPerformed(ActionEvent e)
   {
@@ -644,7 +927,7 @@ public class GPreferences extends JPanel
    * DOCUMENT ME!
    * 
    * @param e
-   *                DOCUMENT ME!
+   *          DOCUMENT ME!
    */
   public void annotations_actionPerformed(ActionEvent e)
   {