JAL-1517 source formatting
[jalview.git] / src / jalview / gui / Preferences.java
index 70f8f3e..4f52f52 100755 (executable)
@@ -1,19 +1,22 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.6)
- * 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.
- * 
+ * 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.gui;
 
@@ -28,7 +31,7 @@ import jalview.bin.*;
 import jalview.io.*;
 import jalview.jbgui.*;
 import jalview.schemes.*;
-import jalview.ws.EnfinEnvision2OneWay;
+import jalview.util.MessageManager;
 
 /**
  * DOCUMENT ME!
@@ -59,7 +62,7 @@ public class Preferences extends GPreferences
     String string = Cache
             .getDefault(
                     "SEQUENCE_LINKS",
-                    "SRS|http://srs.ebi.ac.uk/srsbin/cgi-bin/wgetz?-newId+(([uniprot-all:$SEQUENCE_ID$]))+-view+SwissEntry");
+                    "EMBL-EBI Search|http://www.ebi.ac.uk/ebisearch/search.ebi?db=allebi&query=$SEQUENCE_ID$");
     sequenceURLLinks = new Vector();
 
     try
@@ -81,15 +84,25 @@ public class Preferences extends GPreferences
     {
       System.out.println(ex + "\nError parsing sequence links");
     }
+    {
+      // upgrade old SRS link
+      int srsPos = sequenceURLLinks
+              .indexOf("SRS|http://srs.ebi.ac.uk/srsbin/cgi-bin/wgetz?-newId+(([uniprot-all:$SEQUENCE_ID$]))+-view+SwissEntry");
+      if (srsPos > -1)
+      {
+        sequenceURLLinks
+                .setElementAt(
+                        "EMBL-EBI Search|http://www.ebi.ac.uk/ebisearch/search.ebi?db=allebi&query=$SEQUENCE_ID$",
+                        srsPos);
+      }
+    }
+
     /**
      * TODO: reformulate groupURL encoding so two or more can be stored in the
      * .properties file as '|' separated strings
      */
 
     groupURLLinks = new Vector();
-    // groupURLLinks.addElement("UNIPROT|EnVision2|http://www.ebi.ac.uk/enfin-srv/envision2/pages/linkin.jsf?tool=Jalview&workflow=Default&datasetName=JalviewIDs$DATASETID$&input=$SEQUENCEIDS$&inputType=0|,");
-    // groupURLLinks.addElement("Seqs|EnVision2|http://www.ebi.ac.uk/enfin-srv/envision2/pages/linkin.jsf?tool=Jalview&workflow=Default&datasetName=JalviewSeqs$DATASETID$&input=$SEQUENCES=/([A-Za-z]+)+/=$&inputType=1|,");
-
   }
 
   Vector nameLinks, urlLinks;
@@ -119,7 +132,8 @@ public class Preferences extends GPreferences
       height = 460;
     }
 
-    Desktop.addInternalFrame(frame, "Preferences", width, height);
+    Desktop.addInternalFrame(frame,
+            MessageManager.getString("label.preferences"), width, height);
     frame.setMinimumSize(new Dimension(width, height));
 
     seqLimit.setSelected(Cache.getDefault("SHOW_JVSUFFIX", true));
@@ -137,7 +151,7 @@ public class Preferences extends GPreferences
             .getDefault("SHOW_NPFEATS_TOOLTIP", true));
     showDbRefTooltip.setSelected(Cache.getDefault("SHOW_DBREFS_TOOLTIP",
             true));
-
+    sortByTree.setSelected(Cache.getDefault("SORT_BY_TREE", false));
     for (int i = ColourSchemeProperty.FIRST_COLOUR; i <= ColourSchemeProperty.LAST_COLOUR; i++)
     {
       colour.addItem(ColourSchemeProperty.getColourName(i));
@@ -147,6 +161,14 @@ public class Preferences extends GPreferences
 
     colour.setSelectedItem(string);
 
+    /**
+     * default min-max colours for annotation shading
+     */
+    minColour.setBackground(Cache.getDefaultColour("ANNOTATIONCOLOUR_MIN",
+            Color.orange));
+    maxColour.setBackground(Cache.getDefaultColour("ANNOTATIONCOLOUR_MAX",
+            Color.red));
+
     String[] fonts = java.awt.GraphicsEnvironment
             .getLocalGraphicsEnvironment().getAvailableFontFamilyNames();
 
@@ -183,7 +205,8 @@ public class Preferences extends GPreferences
     startupCheckbox
             .setSelected(Cache.getDefault("SHOW_STARTUP_FILE", true));
     startupFileTextfield.setText(Cache.getDefault("STARTUP_FILE",
-            "http://www.jalview.org/examples/exampleFile_2_3.jar"));
+            Cache.getDefault("www.jalview.org", "http://www.jalview.org")
+                    + "/examples/exampleFile_2_3.jar"));
 
     sortby.addItem("No sort");
     sortby.addItem("Id");
@@ -195,7 +218,11 @@ public class Preferences extends GPreferences
     epsRendering.addItem("Text");
     epsRendering.setSelectedItem(Cache.getDefault("EPS_RENDERING",
             "Prompt each time"));
-
+    autoIdWidth.setSelected(Cache.getDefault("FIGURE_AUTOIDWIDTH", false));
+    userIdWidth.setEnabled(autoIdWidth.isSelected());
+    userIdWidthlabel.setEnabled(autoIdWidth.isSelected());
+    Integer wi = Cache.getIntegerProperty("FIGURE_USERIDWIDTH");
+    userIdWidth.setText(wi == null ? "" : wi.toString());
     blcjv.setSelected(Cache.getDefault("BLC_JVSUFFIX", true));
     clustaljv.setSelected(Cache.getDefault("CLUSTAL_JVSUFFIX", true));
     fastajv.setSelected(Cache.getDefault("FASTA_JVSUFFIX", true));
@@ -329,6 +356,11 @@ public class Preferences extends GPreferences
     Cache.applicationProperties.setProperty("SORT_ALIGNMENT", sortby
             .getSelectedItem().toString());
 
+    Cache.setColourProperty("ANNOTATIONCOLOUR_MIN",
+            minColour.getBackground());
+    Cache.setColourProperty("ANNOTATIONCOLOUR_MAX",
+            maxColour.getBackground());
+
     if (epsRendering.getSelectedItem().equals("Prompt each time"))
     {
       Cache.applicationProperties.remove("EPS_RENDERING");
@@ -441,8 +473,16 @@ public class Preferences extends GPreferences
             Boolean.toString(modellerOutput.isSelected()));
     jalview.io.PIRFile.useModellerOutput = modellerOutput.isSelected();
 
+    Cache.applicationProperties.setProperty("FIGURE_AUTOIDWIDTH",
+            Boolean.toString(autoIdWidth.isSelected()));
+    userIdWidth_actionPerformed();
+    Cache.applicationProperties.setProperty("FIGURE_USERIDWIDTH",
+            userIdWidth.getText());
+
     Cache.applicationProperties.setProperty("AUTO_CALC_CONSENSUS",
             Boolean.toString(autoCalculateConsCheck.isSelected()));
+    Cache.applicationProperties.setProperty("SORT_BY_TREE",
+            Boolean.toString(sortByTree.isSelected()));
     Cache.applicationProperties.setProperty("PAD_GAPS",
             Boolean.toString(padGaps.isSelected()));
 
@@ -494,6 +534,7 @@ public class Preferences extends GPreferences
     try
     {
       wsPrefs.updateWsMenuConfig(true);
+      wsPrefs.refreshWs_actionPerformed(e);
       frame.setClosed(true);
     } catch (Exception ex)
     {
@@ -527,8 +568,8 @@ public class Preferences extends GPreferences
     while (!valid)
     {
       if (JOptionPane.showInternalConfirmDialog(Desktop.desktop, link,
-              "New sequence URL link", JOptionPane.OK_CANCEL_OPTION, -1,
-              null) == JOptionPane.OK_OPTION)
+              MessageManager.getString("label.new_sequence_url_link"),
+              JOptionPane.OK_CANCEL_OPTION, -1, null) == JOptionPane.OK_OPTION)
       {
         if (link.checkValid())
         {
@@ -553,7 +594,8 @@ public class Preferences extends GPreferences
     if (index == -1)
     {
       JOptionPane.showInternalMessageDialog(Desktop.desktop,
-              "No link selected!", "No link selected",
+              MessageManager.getString("label.no_link_selected"),
+              MessageManager.getString("label.no_link_selected"),
               JOptionPane.WARNING_MESSAGE);
       return;
     }
@@ -566,8 +608,8 @@ public class Preferences extends GPreferences
     {
 
       if (JOptionPane.showInternalConfirmDialog(Desktop.desktop, link,
-              "New sequence URL link", JOptionPane.OK_CANCEL_OPTION, -1,
-              null) == JOptionPane.OK_OPTION)
+              MessageManager.getString("label.new_sequence_url_link"),
+              JOptionPane.OK_CANCEL_OPTION, -1, null) == JOptionPane.OK_OPTION)
       {
         if (link.checkValid())
         {
@@ -591,7 +633,8 @@ public class Preferences extends GPreferences
     if (index == -1)
     {
       JOptionPane.showInternalMessageDialog(Desktop.desktop,
-              "No link selected!", "No link selected",
+              MessageManager.getString("label.no_link_selected"),
+              MessageManager.getString("label.no_link_selected"),
               JOptionPane.WARNING_MESSAGE);
       return;
     }
@@ -641,4 +684,61 @@ public class Preferences extends GPreferences
   {
     return groupURLLinks;
   }
+
+  public void minColour_actionPerformed()
+  {
+    Color col = JColorChooser.showDialog(this,
+            "Select Colour for Minimum Value", minColour.getBackground());
+    if (col != null)
+    {
+      minColour.setBackground(col);
+    }
+    minColour.repaint();
+  }
+
+  public void maxColour_actionPerformed()
+  {
+    Color col = JColorChooser.showDialog(this,
+            "Select Colour for Maximum Value", maxColour.getBackground());
+    if (col != null)
+    {
+      maxColour.setBackground(col);
+    }
+    maxColour.repaint();
+  }
+
+  @Override
+  protected void userIdWidth_actionPerformed()
+  {
+    try
+    {
+      String val = userIdWidth.getText().trim();
+      if (val.length() > 0)
+      {
+        Integer iw = Integer.parseInt(val);
+        if (iw.intValue() < 12)
+        {
+          throw new NumberFormatException();
+        }
+        userIdWidth.setText(iw.toString());
+      }
+    } catch (NumberFormatException x)
+    {
+      JOptionPane
+              .showInternalMessageDialog(
+                      Desktop.desktop,
+                      "The user defined width for the\nannotation and sequence ID columns\nin exported figures must be\nat least 12 pixels wide.",
+                      "Invalid ID Column width",
+                      JOptionPane.WARNING_MESSAGE);
+      userIdWidth.setText("");
+    }
+  }
+
+  @Override
+  protected void autoIdWidth_actionPerformed()
+  {
+    userIdWidth.setEnabled(!autoIdWidth.isSelected());
+    userIdWidthlabel.setEnabled(!autoIdWidth.isSelected());
+  }
+
 }