update author list in license for (JAL-826)
[jalview.git] / src / jalview / jbgui / GPreferences.java
index 6b2c0f4..c37d230 100755 (executable)
@@ -1,23 +1,24 @@
 /*
- * 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.7)
+ * Copyright (C) 2011 J Procter, AM Waterhouse, J Engelhardt, LM Lui, G Barton, M Clamp, S Searle
  * 
- * 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.
  * 
- * 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
+ * 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/>.
  */
 package jalview.jbgui;
 
+import jalview.gui.JvSwingUtils;
+
 import java.awt.*;
 import java.awt.event.*;
 
@@ -47,6 +48,7 @@ public class GPreferences extends JPanel
   protected JCheckBox quality = new JCheckBox();
 
   JPanel visualTab = new JPanel();
+  JPanel visual2Tab = new JPanel();
 
   protected JCheckBox fullScreen = new JCheckBox();
 
@@ -56,6 +58,12 @@ 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();
@@ -133,15 +141,20 @@ public class GPreferences extends JPanel
   JLabel sortLabel = new JLabel();
 
   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();
 
   JLabel epsLabel = new JLabel();
@@ -168,7 +181,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();
 
@@ -188,25 +201,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 showConsensProfile = new JCheckBox();
+
+  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.
    */
@@ -225,7 +261,7 @@ public class GPreferences extends JPanel
    * DOCUMENT ME!
    * 
    * @throws Exception
-   *                 DOCUMENT ME!
+   *           DOCUMENT ME!
    */
   private void jbInit() throws Exception
   {
@@ -254,6 +290,8 @@ public class GPreferences extends JPanel
     quality.setText("Quality");
     visualTab.setBorder(new TitledBorder("Open new alignment"));
     visualTab.setLayout(null);
+    visual2Tab.setBorder(new TitledBorder("Open new alignment"));
+    visual2Tab.setLayout(new FlowLayout());
     fullScreen.setFont(verdana11);
     fullScreen.setHorizontalAlignment(SwingConstants.RIGHT);
     fullScreen.setHorizontalTextPosition(SwingConstants.LEFT);
@@ -273,7 +311,7 @@ public class GPreferences extends JPanel
     showGroupbits.setFont(verdana11);
     showGroupbits.setHorizontalAlignment(SwingConstants.RIGHT);
     showGroupbits.setHorizontalTextPosition(SwingConstants.LEFT);
-    showGroupbits.setText("Group:");
+    showGroupbits.setText("Show group:");
     showConsensbits.setFont(verdana11);
     showConsensbits.setHorizontalAlignment(SwingConstants.RIGHT);
     showConsensbits.setHorizontalTextPosition(SwingConstants.LEFT);
@@ -284,12 +322,12 @@ public class GPreferences extends JPanel
     showConsensHistogram.setHorizontalTextPosition(SwingConstants.LEFT);
     showConsensHistogram.setSelected(true);
     showConsensHistogram.setText("Histogram");
-    showConsensProfile.setEnabled(false);
-    showConsensProfile.setFont(verdana11);
-    showConsensProfile.setHorizontalAlignment(SwingConstants.RIGHT);
-    showConsensProfile.setHorizontalTextPosition(SwingConstants.LEFT);
-    showConsensProfile.setSelected(true);
-    showConsensProfile.setText("Profile");
+    showConsensLogo.setEnabled(false);
+    showConsensLogo.setFont(verdana11);
+    showConsensLogo.setHorizontalAlignment(SwingConstants.RIGHT);
+    showConsensLogo.setHorizontalTextPosition(SwingConstants.LEFT);
+    showConsensLogo.setSelected(true);
+    showConsensLogo.setText("Logo");
     showGroupConsensus.setEnabled(false);
     showGroupConsensus.setFont(verdana11);
     showGroupConsensus.setHorizontalAlignment(SwingConstants.RIGHT);
@@ -302,11 +340,24 @@ public class GPreferences extends JPanel
     showGroupConservation.setHorizontalTextPosition(SwingConstants.LEFT);
     showGroupConservation.setSelected(true);
     showGroupConservation.setText("Conservation");
+    showNpTooltip.setEnabled(true);
+    showNpTooltip.setFont(verdana11);
+    showNpTooltip.setHorizontalAlignment(SwingConstants.RIGHT);
+    showNpTooltip.setHorizontalTextPosition(SwingConstants.LEFT);
+    showNpTooltip.setSelected(true);
+    showNpTooltip.setText("Non-positional Features");
+    showDbRefTooltip.setEnabled(true);
+    showDbRefTooltip.setFont(verdana11);
+    showDbRefTooltip.setHorizontalAlignment(SwingConstants.RIGHT);
+    showDbRefTooltip.setHorizontalTextPosition(SwingConstants.LEFT);
+    showDbRefTooltip.setSelected(true);
+    showDbRefTooltip.setText("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.setBounds(new Rectangle(169, 12, 200, 23));
     annotations.addActionListener(new ActionListener()
     {
       public void actionPerformed(ActionEvent e)
@@ -314,10 +365,23 @@ 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.addActionListener(new ActionListener()
@@ -327,7 +391,19 @@ 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("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");
+
     gapLabel.setFont(verdana11);
     gapLabel.setHorizontalAlignment(SwingConstants.RIGHT);
     gapLabel.setText("Gap Symbol ");
@@ -335,18 +411,45 @@ public class GPreferences extends JPanel
     colour.setBounds(new Rectangle(172, 225, 155, 21));
     colourLabel.setFont(verdana11);
     colourLabel.setHorizontalAlignment(SwingConstants.RIGHT);
-    colourLabel.setText("Colour ");
+    colourLabel.setText("Alignment Colour ");
     fontLabel.setFont(verdana11);
     fontLabel.setHorizontalAlignment(SwingConstants.RIGHT);
     fontLabel.setText("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));
+    gapSymbolCB.setBounds(new Rectangle(172, 204, 69, 23));
+    mincolourLabel.setFont(verdana11);
+    mincolourLabel.setHorizontalAlignment(SwingConstants.RIGHT);
+    mincolourLabel.setText("Minimum 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("Maximum 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("Open file");
     startupCheckbox.setFont(verdana11);
     startupCheckbox.setHorizontalAlignment(SwingConstants.RIGHT);
@@ -475,10 +578,7 @@ public class GPreferences extends JPanel
     sortLabel.setText("Sort by ");
     jPanel2.setBounds(new Rectangle(7, 17, 158, 278));
     jPanel2.setLayout(gridLayout2);
-    gridLayout2.setRows(13);
-    jPanel3.setBounds(new Rectangle(173, 35, 274, 26));
-    autoAnnotSettings1.setBounds(new Rectangle(173,53,274,26));// new Rectangle(173, 116, 274, 78));
-    autoAnnotSettings2.setBounds(new Rectangle(173,72,274,26));
+    gridLayout2.setRows(12);
     exportTab.setLayout(null);
     epsLabel.setFont(verdana11);
     epsLabel.setHorizontalAlignment(SwingConstants.RIGHT);
@@ -525,72 +625,107 @@ public class GPreferences extends JPanel
     smoothFont.setHorizontalTextPosition(SwingConstants.LEADING);
     smoothFont.setText("Smooth Font");
     calcTab.setLayout(null);
-    autoCalculateConsCheck.setFont(new java.awt.Font("Verdana", Font.PLAIN,
-            11));
+    autoCalculateConsCheck.setFont(JvSwingUtils.getLabelFont());
     autoCalculateConsCheck.setText("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("Pad Gaps When Editing");
     padGaps.setBounds(new Rectangle(22, 94, 168, 23));
-    modellerOutput.setFont(new java.awt.Font("Verdana", Font.PLAIN, 11));
+    sortByTree.setFont(JvSwingUtils.getLabelFont());
+    sortByTree.setText("Sort With New Tree");
+    sortByTree.setToolTipText("When selected, any trees calculated or loaded onto the alignment will automatically sort the alignment.");
+    sortByTree.setBounds(new Rectangle(22, 136, 168, 23));
+    modellerOutput.setFont(JvSwingUtils.getLabelFont());
     modellerOutput.setText("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));
+    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));
+    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.setFont(JvSwingUtils.getLabelFont());
     openoverv.setActionCommand("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("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);
-    visualTab.add(autoAnnotSettings1);
-    visualTab.add(autoAnnotSettings2);
-    jPanel3.add(conservation);
-    jPanel3.add(identity);
-    jPanel3.add(quality);
-    autoAnnotSettings1.setLayout(new FlowLayout());
-    autoAnnotSettings2.setLayout(new FlowLayout());
-    autoAnnotSettings1.add(showConsensbits);
-    autoAnnotSettings1.add(showConsensHistogram);
-    autoAnnotSettings1.add(showConsensProfile);
-    autoAnnotSettings2.add(showGroupbits);
-    autoAnnotSettings2.add(showGroupConsensus);
+    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("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, "Default Colourscheme for alignment", colourLabel, colour);
+    JPanel annotationShding=new JPanel();
+    annotationShding.setBorder(new TitledBorder("Annotation Shading Default"));
+    annotationShding.setLayout(new GridLayout(1,2));
+    JvSwingUtils.addtoLayout(annotationShding, "Default Minimum Colour for annotation shading", mincolourLabel,minColour);
+    JvSwingUtils.addtoLayout(annotationShding,"Default Maximum Colour for 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);
@@ -629,16 +764,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));
@@ -647,6 +782,7 @@ public class GPreferences extends JPanel
     gapSymbolCB.setRenderer(dlcr);
 
     tabbedPane.add(visualTab, "Visual");
+    tabbedPane.add(visual2Tab,"Colours");
     tabbedPane.add(connectTab, "Connections");
     tabbedPane.add(exportTab, "Output");
     jPanel11.add(jLabel1);
@@ -661,24 +797,39 @@ public class GPreferences extends JPanel
     tabbedPane.add(calcTab, "Editing");
     calcTab.add(autoCalculateConsCheck);
     calcTab.add(padGaps);
+    calcTab.add(sortByTree);
+    
     tabbedPane.add(dasPanel, "DAS Settings");
+    tabbedPane.add(wsPanel, "Web Services");
 
     exportTab.add(epsLabel);
     exportTab.add(epsRendering);
     exportTab.add(jPanel11);
   }
 
-  protected void showunconserved_actionPerformed(ActionEvent e)
+  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)
   {
@@ -688,7 +839,7 @@ public class GPreferences extends JPanel
    * DOCUMENT ME!
    * 
    * @param e
-   *                DOCUMENT ME!
+   *          DOCUMENT ME!
    */
   public void cancel_actionPerformed(ActionEvent e)
   {
@@ -698,7 +849,7 @@ public class GPreferences extends JPanel
    * DOCUMENT ME!
    * 
    * @param e
-   *                DOCUMENT ME!
+   *          DOCUMENT ME!
    */
   public void annotations_actionPerformed(ActionEvent e)
   {