(JAL-985,JAL-986) documentation and tooltips
[jalview.git] / src / jalview / gui / Preferences.java
index 70f8f3e..789799e 100755 (executable)
@@ -1,6 +1,6 @@
 /*
- * 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.7)
+ * Copyright (C) 2011 J Procter, AM Waterhouse, G Barton, M Clamp, S Searle
  * 
  * This file is part of Jalview.
  * 
@@ -137,7 +137,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 +147,12 @@ 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 +189,7 @@ 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 +201,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 +339,9 @@ 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 +454,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 +515,7 @@ public class Preferences extends GPreferences
     try
     {
       wsPrefs.updateWsMenuConfig(true);
+      wsPrefs.refreshWs_actionPerformed(e);
       frame.setClosed(true);
     } catch (Exception ex)
     {
@@ -641,4 +663,60 @@ 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());
+  }
+
 }