JAL-1152 annotation sorting preferences and help documentation
[jalview.git] / src / jalview / gui / Preferences.java
index e44915d..dfb89b2 100755 (executable)
  */
 package jalview.gui;
 
-import java.util.*;
-
-import java.awt.*;
-import java.awt.event.*;
-
-import javax.swing.*;
-
-import jalview.bin.*;
-import jalview.io.*;
-import jalview.jbgui.*;
-import jalview.schemes.*;
+import jalview.analysis.AnnotationSorter.SequenceAnnotationOrder;
+import jalview.bin.Cache;
+import jalview.io.JalviewFileChooser;
+import jalview.io.JalviewFileView;
+import jalview.jbgui.GPreferences;
+import jalview.jbgui.GSequenceLink;
+import jalview.schemes.ColourSchemeProperty;
 import jalview.util.MessageManager;
 
+import java.awt.BorderLayout;
+import java.awt.Color;
+import java.awt.Dimension;
+import java.awt.Font;
+import java.awt.event.ActionEvent;
+import java.awt.event.MouseEvent;
+import java.util.Collection;
+import java.util.StringTokenizer;
+import java.util.Vector;
+
+import javax.swing.JColorChooser;
+import javax.swing.JFileChooser;
+import javax.swing.JInternalFrame;
+import javax.swing.JOptionPane;
+
 /**
  * DOCUMENT ME!
  * 
@@ -213,6 +224,24 @@ public class Preferences extends GPreferences
     sortby.addItem("Pairwise Identity");
     sortby.setSelectedItem(Cache.getDefault("SORT_ALIGNMENT", "No sort"));
 
+    sortAnnBy.addItem(SequenceAnnotationOrder.NONE.toString());
+    sortAnnBy
+            .addItem(SequenceAnnotationOrder.SEQUENCE_AND_LABEL.toString());
+    sortAnnBy
+            .addItem(SequenceAnnotationOrder.LABEL_AND_SEQUENCE.toString());
+    SequenceAnnotationOrder savedSort = SequenceAnnotationOrder
+            .valueOf(Cache.getDefault(Cache.SORT_ANNOTATIONS,
+                    SequenceAnnotationOrder.NONE.name()));
+    sortAnnBy.setSelectedItem(savedSort.toString());
+
+    sortAutocalc.addItem("Autocalculated first");
+    sortAutocalc.addItem("Autocalculated last");
+
+    final boolean showAbove = Cache.getDefault(Cache.SHOW_AUTOCALC_ABOVE,
+            true);
+    sortAutocalc.setSelectedItem(showAbove ? sortAutocalc.getItemAt(0)
+            : sortAutocalc.getItemAt(1));
+
     epsRendering.addItem(MessageManager.getString("label.prompt_each_time"));
     epsRendering.addItem(MessageManager.getString("label.lineart"));
     epsRendering.addItem(MessageManager.getString("action.text"));
@@ -355,6 +384,19 @@ public class Preferences extends GPreferences
     Cache.applicationProperties.setProperty("SORT_ALIGNMENT", sortby
             .getSelectedItem().toString());
 
+    // convert description of sort order to enum name for save
+    SequenceAnnotationOrder annSortOrder = SequenceAnnotationOrder
+            .forDescription(sortAnnBy.getSelectedItem().toString());
+    if (annSortOrder != null)
+    {
+      Cache.applicationProperties.setProperty(Cache.SORT_ANNOTATIONS,
+              annSortOrder.name());
+    }
+
+    final boolean showAutocalcFirst = sortAutocalc.getSelectedIndex() == 0;
+    Cache.applicationProperties.setProperty(Cache.SHOW_AUTOCALC_ABOVE,
+            Boolean.valueOf(showAutocalcFirst).toString());
+
     Cache.setColourProperty("ANNOTATIONCOLOUR_MIN",
             minColour.getBackground());
     Cache.setColourProperty("ANNOTATIONCOLOUR_MAX",