JAL-1517 update copyright to version 2.8.2
[jalview.git] / src / jalview / jbgui / GPreferences.java
index 8393b3a..3083d6e 100755 (executable)
@@ -1,22 +1,26 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.5)
- * Copyright (C) 2010 J Procter, AM Waterhouse, G Barton, M Clamp, S Searle
+ * 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.
- * 
+ *  
  * 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/>.
+ * 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.*;
 
@@ -47,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();
@@ -55,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();
@@ -117,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();
 
@@ -133,8 +147,12 @@ public class GPreferences extends JPanel
 
   JPanel jPanel2 = new JPanel();
 
+  JPanel visual2panel = new JPanel();
+
   GridLayout gridLayout2 = new GridLayout();
 
+  GridLayout gridLayout4 = new GridLayout();
+
   JPanel annsettingsPanel = new JPanel();
 
   JPanel autoAnnotSettings1 = new JPanel();
@@ -149,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();
@@ -169,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();
 
@@ -186,7 +210,7 @@ public class GPreferences extends JPanel
   protected JCheckBox modellerOutput = new JCheckBox();
 
   protected JPanel dasPanel = new JPanel();
-  
+
   BorderLayout borderLayout4 = new BorderLayout();
 
   protected JPanel wsPanel = new JPanel();
@@ -228,9 +252,8 @@ public class GPreferences extends JPanel
   protected JCheckBox shareSelections = new JCheckBox();
 
   protected JCheckBox followHighlight = new JCheckBox();
-  
-  
 
+  protected JCheckBox sortByTree = new JCheckBox();
 
   /**
    * Creates a new GPreferences object.
@@ -255,7 +278,7 @@ public class GPreferences extends JPanel
   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)
@@ -263,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)
@@ -276,74 +299,76 @@ 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("Show group:");
+    showGroupbits.setText(MessageManager.getString("action.show_group") + ":");
     showConsensbits.setFont(verdana11);
     showConsensbits.setHorizontalAlignment(SwingConstants.RIGHT);
     showConsensbits.setHorizontalTextPosition(SwingConstants.LEFT);
-    showConsensbits.setText("Consensus:");
+    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("Histogram");
+    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("Logo");
+    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("Consensus");
+    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("Conservation");
+    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("Non-positional Features");
+    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("Database References");
+    showDbRefTooltip.setText(MessageManager.getString("label.database_references"));
     annotations.setFont(verdana11);
     annotations.setHorizontalAlignment(SwingConstants.RIGHT);
     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()
     {
@@ -370,7 +395,7 @@ public class GPreferences extends JPanel
     showUnconserved.setHorizontalAlignment(SwingConstants.RIGHT);
     showUnconserved.setHorizontalTextPosition(SwingConstants.LEFT);
     showUnconserved.setSelected(true);
-    showUnconserved.setText("Show Unconserved");
+    showUnconserved.setText(MessageManager.getString("action.show_unconserved"));
     showUnconserved.addActionListener(new ActionListener()
     {
       public void actionPerformed(ActionEvent e)
@@ -383,25 +408,25 @@ public class GPreferences extends JPanel
     shareSelections.setHorizontalAlignment(SwingConstants.RIGHT);
     shareSelections.setHorizontalTextPosition(SwingConstants.LEFT);
     shareSelections.setSelected(true);
-    shareSelections.setText("Share selection across views");
+    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("Scroll to highlighted regions");
+    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, 104, 49, 23));
     fontStyleCB.setFont(verdana11);
@@ -410,7 +435,34 @@ public class GPreferences extends JPanel
     fontNameCB.setBounds(new Rectangle(172, 104, 147, 23));
     gapSymbolCB.setFont(verdana11);
     gapSymbolCB.setBounds(new Rectangle(172, 204, 69, 23));
-    startupCheckbox.setText("Open file");
+    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);
@@ -429,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)
@@ -462,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)
@@ -470,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)
@@ -498,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);
@@ -521,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)
@@ -535,32 +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);
+    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));
@@ -578,43 +630,91 @@ 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);
     wsPanel.setLayout(borderLayout5);
-    wrap.setFont(new java.awt.Font("Verdana", Font.PLAIN, 11));
+    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.LEFT);
-    openoverv.setText("Open Overview");
+    openoverv.setText(MessageManager.getString(("label.open_overview")));
     jPanel2.add(fullScreen);
     jPanel2.add(openoverv);
     jPanel2.add(seqLimit);
@@ -623,15 +723,13 @@ public class GPreferences extends JPanel
     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(annotations);
     visualTab.add(startupFileTextfield);
     visualTab.add(sortby);
-    visualTab.add(colour);
     visualTab.add(gapSymbolCB);
     visualTab.add(fontNameCB);
     visualTab.add(fontSizeCB);
@@ -667,13 +765,30 @@ public class GPreferences extends JPanel
     autoAnnotSettings3.add(showConsensLogo);
 
     JPanel tooltipSettings = new JPanel();
-    tooltipSettings.setBorder(new TitledBorder("Sequence ID Tooltip"));
+    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);
@@ -729,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);
@@ -740,18 +856,47 @@ 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");
-    tabbedPane.add(wsPanel, "Web Services");
+    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