JAL-1432 updated copyright notices
[jalview.git] / src / jalview / jbgui / GPreferences.java
index ad9a308..1230373 100755 (executable)
@@ -1,22 +1,25 @@
 /*
- * 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.0b1)
+ * 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 java.awt.*;
 import java.awt.event.*;
 
@@ -47,6 +50,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 +60,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();
@@ -133,8 +146,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 +166,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 +192,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();
 
@@ -189,6 +212,10 @@ 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();
@@ -225,6 +252,8 @@ public class GPreferences extends JPanel
 
   protected JCheckBox followHighlight = new JCheckBox();
 
+  protected JCheckBox sortByTree = new JCheckBox();
+
   /**
    * Creates a new GPreferences object.
    */
@@ -272,6 +301,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);
@@ -391,7 +422,7 @@ 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 ");
@@ -403,6 +434,33 @@ public class GPreferences extends JPanel
     fontNameCB.setBounds(new Rectangle(172, 104, 147, 23));
     gapSymbolCB.setFont(verdana11);
     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);
@@ -531,7 +589,7 @@ public class GPreferences extends JPanel
     sortLabel.setText("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);
@@ -578,31 +636,80 @@ 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));
+
+    autoIdWidth.setFont(JvSwingUtils.getLabelFont());
+    autoIdWidth.setText("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("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("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.LEFT);
@@ -615,15 +722,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);
@@ -666,6 +771,23 @@ public class GPreferences extends JPanel
     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);
@@ -722,6 +844,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);
@@ -732,17 +855,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");
     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 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