JAL-1499 patch from Mungo Carstairs
[jalview.git] / src / jalview / jbgui / GPreferences.java
old mode 100755 (executable)
new mode 100644 (file)
index a8626d8..932fb34
@@ -1,19 +1,21 @@
 /*
- * 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.jbgui;
@@ -21,13 +23,40 @@ package jalview.jbgui;
 import jalview.gui.JvSwingUtils;
 import jalview.util.MessageManager;
 
-import java.awt.*;
-import java.awt.event.*;
-
-import javax.swing.*;
-import javax.swing.border.*;
-import javax.swing.event.*;
+import java.awt.BorderLayout;
+import java.awt.Color;
+import java.awt.Dimension;
+import java.awt.FlowLayout;
+import java.awt.Font;
+import java.awt.GridBagConstraints;
+import java.awt.GridBagLayout;
+import java.awt.GridLayout;
+import java.awt.Insets;
 import java.awt.Rectangle;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.awt.event.KeyEvent;
+import java.awt.event.MouseAdapter;
+import java.awt.event.MouseEvent;
+
+import javax.swing.BorderFactory;
+import javax.swing.DefaultListCellRenderer;
+import javax.swing.JButton;
+import javax.swing.JCheckBox;
+import javax.swing.JComboBox;
+import javax.swing.JLabel;
+import javax.swing.JList;
+import javax.swing.JPanel;
+import javax.swing.JScrollPane;
+import javax.swing.JTabbedPane;
+import javax.swing.JTextField;
+import javax.swing.ListSelectionModel;
+import javax.swing.SwingConstants;
+import javax.swing.border.Border;
+import javax.swing.border.EmptyBorder;
+import javax.swing.border.TitledBorder;
+import javax.swing.event.ListSelectionEvent;
+import javax.swing.event.ListSelectionListener;
 
 /**
  * DOCUMENT ME!
@@ -131,9 +160,11 @@ public class GPreferences extends JPanel
 
   JPanel jPanel1 = new JPanel();
 
-  TitledBorder titledBorder1 = new TitledBorder(MessageManager.getString("label.proxy_server"));
+  TitledBorder titledBorder1 = new TitledBorder(
+          MessageManager.getString("label.proxy_server"));
 
-  TitledBorder titledBorder2 = new TitledBorder(MessageManager.getString("label.file_output"));
+  TitledBorder titledBorder2 = new TitledBorder(
+          MessageManager.getString("label.file_output"));
 
   GridBagLayout gridBagLayout2 = new GridBagLayout();
 
@@ -181,6 +212,8 @@ public class GPreferences extends JPanel
 
   protected JCheckBox clustaljv = new JCheckBox();
 
+  protected JCheckBox megajv = new JCheckBox();
+
   protected JCheckBox msfjv = new JCheckBox();
 
   protected JCheckBox fastajv = new JCheckBox();
@@ -281,6 +314,7 @@ public class GPreferences extends JPanel
     ok.setText(MessageManager.getString("action.ok"));
     ok.addActionListener(new ActionListener()
     {
+      @Override
       public void actionPerformed(ActionEvent e)
       {
         ok_actionPerformed(e);
@@ -289,6 +323,7 @@ public class GPreferences extends JPanel
     cancel.setText(MessageManager.getString("action.cancel"));
     cancel.addActionListener(new ActionListener()
     {
+      @Override
       public void actionPerformed(ActionEvent e)
       {
         cancel_actionPerformed(e);
@@ -300,9 +335,11 @@ public class GPreferences extends JPanel
     quality.setHorizontalTextPosition(SwingConstants.LEFT);
     quality.setSelected(true);
     quality.setText(MessageManager.getString("label.quality"));
-    visualTab.setBorder(new TitledBorder(MessageManager.getString("action.open_new_aligmnent")));
+    visualTab.setBorder(new TitledBorder(MessageManager
+            .getString("action.open_new_aligmnent")));
     visualTab.setLayout(null);
-    visual2Tab.setBorder(new TitledBorder(MessageManager.getString("action.open_new_aligmnent")));
+    visual2Tab.setBorder(new TitledBorder(MessageManager
+            .getString("action.open_new_aligmnent")));
     visual2Tab.setLayout(new FlowLayout());
     fullScreen.setFont(verdana11);
     fullScreen.setHorizontalAlignment(SwingConstants.RIGHT);
@@ -323,17 +360,20 @@ public class GPreferences extends JPanel
     showGroupbits.setFont(verdana11);
     showGroupbits.setHorizontalAlignment(SwingConstants.RIGHT);
     showGroupbits.setHorizontalTextPosition(SwingConstants.LEFT);
-    showGroupbits.setText(MessageManager.getString("action.show_group") + ":");
+    showGroupbits.setText(MessageManager.getString("action.show_group")
+            + ":");
     showConsensbits.setFont(verdana11);
     showConsensbits.setHorizontalAlignment(SwingConstants.RIGHT);
     showConsensbits.setHorizontalTextPosition(SwingConstants.LEFT);
-    showConsensbits.setText(MessageManager.getString("label.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(MessageManager.getString("label.histogram"));
+    showConsensHistogram.setText(MessageManager
+            .getString("label.histogram"));
     showConsensLogo.setEnabled(false);
     showConsensLogo.setFont(verdana11);
     showConsensLogo.setHorizontalAlignment(SwingConstants.RIGHT);
@@ -351,19 +391,22 @@ public class GPreferences extends JPanel
     showGroupConservation.setHorizontalAlignment(SwingConstants.RIGHT);
     showGroupConservation.setHorizontalTextPosition(SwingConstants.LEFT);
     showGroupConservation.setSelected(true);
-    showGroupConservation.setText(MessageManager.getString("label.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(MessageManager.getString("label.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(MessageManager.getString("label.database_references"));
+    showDbRefTooltip.setText(MessageManager
+            .getString("label.database_references"));
     annotations.setFont(verdana11);
     annotations.setHorizontalAlignment(SwingConstants.RIGHT);
     annotations.setHorizontalTextPosition(SwingConstants.LEADING);
@@ -372,6 +415,7 @@ public class GPreferences extends JPanel
     annotations.setBounds(new Rectangle(169, 12, 200, 23));
     annotations.addActionListener(new ActionListener()
     {
+      @Override
       public void actionPerformed(ActionEvent e)
       {
         annotations_actionPerformed(e);
@@ -379,6 +423,7 @@ public class GPreferences extends JPanel
     });
     identity.addActionListener(new ActionListener()
     {
+      @Override
       public void actionPerformed(ActionEvent e)
       {
         annotations_actionPerformed(e);
@@ -386,6 +431,7 @@ public class GPreferences extends JPanel
     });
     showGroupConsensus.addActionListener(new ActionListener()
     {
+      @Override
       public void actionPerformed(ActionEvent e)
       {
         annotations_actionPerformed(e);
@@ -395,9 +441,11 @@ public class GPreferences extends JPanel
     showUnconserved.setHorizontalAlignment(SwingConstants.RIGHT);
     showUnconserved.setHorizontalTextPosition(SwingConstants.LEFT);
     showUnconserved.setSelected(true);
-    showUnconserved.setText(MessageManager.getString("action.show_unconserved"));
+    showUnconserved.setText(MessageManager
+            .getString("action.show_unconserved"));
     showUnconserved.addActionListener(new ActionListener()
     {
+      @Override
       public void actionPerformed(ActionEvent e)
       {
         showunconserved_actionPerformed(e);
@@ -408,13 +456,15 @@ public class GPreferences extends JPanel
     shareSelections.setHorizontalAlignment(SwingConstants.RIGHT);
     shareSelections.setHorizontalTextPosition(SwingConstants.LEFT);
     shareSelections.setSelected(true);
-    shareSelections.setText(MessageManager.getString("label.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(MessageManager.getString("label.scroll_highlighted_regions"));
+    followHighlight.setText(MessageManager
+            .getString("label.scroll_highlighted_regions"));
 
     gapLabel.setFont(verdana11);
     gapLabel.setHorizontalAlignment(SwingConstants.RIGHT);
@@ -423,7 +473,8 @@ public class GPreferences extends JPanel
     colour.setBounds(new Rectangle(172, 225, 155, 21));
     colourLabel.setFont(verdana11);
     colourLabel.setHorizontalAlignment(SwingConstants.RIGHT);
-    colourLabel.setText(MessageManager.getString("label.alignment_colour") + " ");
+    colourLabel.setText(MessageManager.getString("label.alignment_colour")
+            + " ");
     fontLabel.setFont(verdana11);
     fontLabel.setHorizontalAlignment(SwingConstants.RIGHT);
     fontLabel.setText(MessageManager.getString("label.font"));
@@ -443,6 +494,7 @@ public class GPreferences extends JPanel
     minColour.setPreferredSize(new Dimension(40, 20));
     minColour.addMouseListener(new MouseAdapter()
     {
+      @Override
       public void mousePressed(MouseEvent e)
       {
         minColour_actionPerformed();
@@ -456,6 +508,7 @@ public class GPreferences extends JPanel
     maxColour.setPreferredSize(new Dimension(40, 20));
     maxColour.addMouseListener(new MouseAdapter()
     {
+      @Override
       public void mousePressed(MouseEvent e)
       {
         maxColour_actionPerformed();
@@ -471,6 +524,7 @@ public class GPreferences extends JPanel
     startupFileTextfield.setBounds(new Rectangle(172, 273, 270, 20));
     startupFileTextfield.addMouseListener(new MouseAdapter()
     {
+      @Override
       public void mouseClicked(MouseEvent e)
       {
         if (e.getClickCount() > 1)
@@ -491,24 +545,29 @@ public class GPreferences extends JPanel
     portLabel.setText(MessageManager.getString("label.port"));
     browserLabel.setFont(new java.awt.Font("SansSerif", 0, 11));
     browserLabel.setHorizontalAlignment(SwingConstants.TRAILING);
-    browserLabel.setText(MessageManager.getString("label.default_browser_unix"));
+    browserLabel.setText(MessageManager
+            .getString("label.default_browser_unix"));
     defaultBrowser.setFont(verdana11);
     defaultBrowser.setText("");
-    usagestats.setText(MessageManager.getString("label.send_usage_statistics"));
+    usagestats.setText(MessageManager
+            .getString("label.send_usage_statistics"));
     usagestats.setFont(verdana11);
     usagestats.setHorizontalAlignment(SwingConstants.RIGHT);
     usagestats.setHorizontalTextPosition(SwingConstants.LEADING);
-    questionnaire.setText(MessageManager.getString("label.check_for_questionnaires"));
+    questionnaire.setText(MessageManager
+            .getString("label.check_for_questionnaires"));
     questionnaire.setFont(verdana11);
     questionnaire.setHorizontalAlignment(SwingConstants.RIGHT);
     questionnaire.setHorizontalTextPosition(SwingConstants.LEADING);
-    versioncheck.setText(MessageManager.getString("label.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(MessageManager.getString("action.new"));
     newLink.addActionListener(new java.awt.event.ActionListener()
     {
+      @Override
       public void actionPerformed(ActionEvent e)
       {
         newLink_actionPerformed(e);
@@ -517,6 +576,7 @@ public class GPreferences extends JPanel
     editLink.setText(MessageManager.getString("action.edit"));
     editLink.addActionListener(new java.awt.event.ActionListener()
     {
+      @Override
       public void actionPerformed(ActionEvent e)
       {
         editLink_actionPerformed(e);
@@ -525,6 +585,7 @@ public class GPreferences extends JPanel
     deleteLink.setText(MessageManager.getString("action.delete"));
     deleteLink.addActionListener(new java.awt.event.ActionListener()
     {
+      @Override
       public void actionPerformed(ActionEvent e)
       {
         deleteLink_actionPerformed(e);
@@ -533,6 +594,7 @@ public class GPreferences extends JPanel
 
     linkURLList.addListSelectionListener(new ListSelectionListener()
     {
+      @Override
       public void valueChanged(ListSelectionEvent e)
       {
         int index = linkURLList.getSelectedIndex();
@@ -542,6 +604,7 @@ public class GPreferences extends JPanel
 
     linkNameList.addListSelectionListener(new ListSelectionListener()
     {
+      @Override
       public void valueChanged(ListSelectionEvent e)
       {
         int index = linkNameList.getSelectedIndex();
@@ -550,7 +613,8 @@ public class GPreferences extends JPanel
     });
 
     linkScrollPane.setBorder(null);
-    linkPanel.setBorder(new TitledBorder(MessageManager.getString("label.url_linkfrom_sequence_id")));
+    linkPanel.setBorder(new TitledBorder(MessageManager
+            .getString("label.url_linkfrom_sequence_id")));
     linkPanel.setLayout(borderLayout2);
     editLinkButtons.setLayout(gridLayout1);
     gridLayout1.setRows(3);
@@ -562,6 +626,7 @@ public class GPreferences extends JPanel
 
     defaultBrowser.addMouseListener(new MouseAdapter()
     {
+      @Override
       public void mouseClicked(MouseEvent e)
       {
         if (e.getClickCount() > 1)
@@ -576,6 +641,7 @@ public class GPreferences extends JPanel
     useProxy.setText(MessageManager.getString("label.use_proxy_server"));
     useProxy.addActionListener(new ActionListener()
     {
+      @Override
       public void actionPerformed(ActionEvent e)
       {
         useProxy_actionPerformed();
@@ -607,7 +673,7 @@ public class GPreferences extends JPanel
     clustaljv.setText(MessageManager.getString("label.clustal") + "     ");
     blcjv.setText(MessageManager.getString("label.blc") + "     ");
     fastajv.setText(MessageManager.getString("label.fasta") + "     ");
-    msfjv.setText(MessageManager.getString("label.msf")+ "     ");
+    msfjv.setText(MessageManager.getString("label.msf") + "     ");
     pfamjv.setText(MessageManager.getString("label.pfam") + "     ");
     pileupjv.setText(MessageManager.getString("label.pileup") + "     ");
     msfjv.setFont(verdana11);
@@ -638,19 +704,23 @@ public class GPreferences extends JPanel
     smoothFont.setText(MessageManager.getString("label.smooth_font"));
     calcTab.setLayout(null);
     autoCalculateConsCheck.setFont(JvSwingUtils.getLabelFont());
-    autoCalculateConsCheck.setText(MessageManager.getString("label.autocalculate_consensus"));
+    autoCalculateConsCheck.setText(MessageManager
+            .getString("label.autocalculate_consensus"));
     autoCalculateConsCheck.setBounds(new Rectangle(21, 52, 209, 23));
     padGaps.setFont(JvSwingUtils.getLabelFont());
     padGaps.setText(MessageManager.getString("label.pad_gaps_when_editing"));
     padGaps.setBounds(new Rectangle(22, 94, 168, 23));
     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"));
+            .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.setText(MessageManager
+            .getString("label.automatically_set_id_width"));
     autoIdWidth
             .setToolTipText("<html>"
                     + JvSwingUtils
@@ -667,7 +737,8 @@ public class GPreferences extends JPanel
       }
     });
     userIdWidthlabel.setFont(JvSwingUtils.getLabelFont());
-    userIdWidthlabel.setText(MessageManager.getString("label.figure_id_column_width"));
+    userIdWidthlabel.setText(MessageManager
+            .getString("label.figure_id_column_width"));
     userIdWidth
             .setToolTipText("<html>"
                     + JvSwingUtils
@@ -692,7 +763,8 @@ public class GPreferences extends JPanel
       }
     });
     modellerOutput.setFont(JvSwingUtils.getLabelFont());
-    modellerOutput.setText(MessageManager.getString("label.use_modeller_output"));
+    modellerOutput.setText(MessageManager
+            .getString("label.use_modeller_output"));
     modellerOutput.setBounds(new Rectangle(228, 226, 168, 23));
 
     dasPanel.setLayout(borderLayout4);
@@ -709,9 +781,11 @@ public class GPreferences extends JPanel
     idItalics.setFont(JvSwingUtils.getLabelFont());
     idItalics.setHorizontalAlignment(SwingConstants.RIGHT);
     idItalics.setHorizontalTextPosition(SwingConstants.LEADING);
-    idItalics.setText(MessageManager.getString("label.sequence_name_italics"));
+    idItalics.setText(MessageManager
+            .getString("label.sequence_name_italics"));
     openoverv.setFont(JvSwingUtils.getLabelFont());
-    openoverv.setActionCommand(MessageManager.getString("label.open_overview"));
+    openoverv.setActionCommand(MessageManager
+            .getString("label.open_overview"));
     openoverv.setHorizontalAlignment(SwingConstants.RIGHT);
     openoverv.setHorizontalTextPosition(SwingConstants.LEFT);
     openoverv.setText(MessageManager.getString(("label.open_overview")));
@@ -765,24 +839,26 @@ public class GPreferences extends JPanel
     autoAnnotSettings3.add(showConsensLogo);
 
     JPanel tooltipSettings = new JPanel();
-    tooltipSettings.setBorder(new TitledBorder(MessageManager.getString("label.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);
+    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.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"),
+    JvSwingUtils.addtoLayout(annotationShding, MessageManager
+            .getString("label.default_minimum_colour_annotation_shading"),
             mincolourLabel, minColour);
-    JvSwingUtils.addtoLayout(annotationShding,
-            MessageManager.getString("label.default_maximum_colour_annotation_shading"),
+    JvSwingUtils.addtoLayout(annotationShding, MessageManager
+            .getString("label.default_maximum_colour_annotation_shading"),
             maxcolourLabel, maxColour);
     visual2Tab.add(annotationShding); // , FlowLayout.LEFT);
 
@@ -846,7 +922,8 @@ public class GPreferences extends JPanel
 
     tabbedPane.add(visualTab, MessageManager.getString("label.visual"));
     tabbedPane.add(visual2Tab, MessageManager.getString("label.colours"));
-    tabbedPane.add(connectTab, MessageManager.getString("label.connections"));
+    tabbedPane.add(connectTab,
+            MessageManager.getString("label.connections"));
     tabbedPane.add(exportTab, MessageManager.getString("label.output"));
     jPanel11.add(jLabel1);
     jPanel11.add(blcjv);
@@ -865,7 +942,8 @@ public class GPreferences extends JPanel
     calcTab.add(padGaps);
     calcTab.add(sortByTree);
 
-    tabbedPane.add(dasPanel, MessageManager.getString("label.das_settings"));
+    tabbedPane
+            .add(dasPanel, MessageManager.getString("label.das_settings"));
     tabbedPane.add(wsPanel, MessageManager.getString("label.web_services"));
 
     exportTab.add(epsLabel);