JAL-1152 with sticky annotation sort order that updates as sequences are
[jalview.git] / src / jalview / jbgui / GAlignFrame.java
index 5e60a85..3591056 100755 (executable)
@@ -20,6 +20,7 @@
  */
 package jalview.jbgui;
 
+import jalview.analysis.AnnotationSorter.SortOrder;
 import jalview.bin.Cache;
 import jalview.gui.JvSwingUtils;
 import jalview.schemes.ColourSchemeProperty;
@@ -310,9 +311,9 @@ public class GAlignFrame extends JInternalFrame
 
   protected JMenuItem hideAllAnnotations = new JMenuItem();
 
-  protected JMenuItem sortAnnBySequence = new JMenuItem();
+  protected JCheckBoxMenuItem sortAnnBySequence = new JCheckBoxMenuItem();
 
-  protected JMenuItem sortAnnByType = new JMenuItem();
+  protected JCheckBoxMenuItem sortAnnByType = new JCheckBoxMenuItem();
 
   protected JCheckBoxMenuItem hiddenMarkers = new JCheckBoxMenuItem();
 
@@ -1112,7 +1113,11 @@ public class GAlignFrame extends JInternalFrame
       @Override
       public void actionPerformed(ActionEvent e)
       {
-        sortAnnotationsBySequence_actionPerformed();
+        sortAnnBySequence.setEnabled(false);
+        sortAnnBySequence.setState(true);
+        sortAnnByType.setEnabled(true);
+        sortAnnByType.setState(false);
+        sortAnnotations_actionPerformed(SortOrder.SEQUENCE_AND_TYPE);
       }
     });
     sortAnnByType.setText(MessageManager
@@ -1122,7 +1127,11 @@ public class GAlignFrame extends JInternalFrame
       @Override
       public void actionPerformed(ActionEvent e)
       {
-        sortAnnotationsByType_actionPerformed();
+        sortAnnByType.setEnabled(false);
+        sortAnnByType.setState(true);
+        sortAnnBySequence.setEnabled(true);
+        sortAnnBySequence.setState(false);
+        sortAnnotations_actionPerformed(SortOrder.TYPE_AND_SEQUENCE);
       }
     });
     colourTextMenuItem.setText(MessageManager
@@ -2303,15 +2312,10 @@ public class GAlignFrame extends JInternalFrame
 
   /**
    * Action on clicking sort annotations by type.
+   * 
+   * @param sortOrder
    */
-  protected void sortAnnotationsByType_actionPerformed()
-  {
-  }
-
-  /**
-   * Action on clicking sort annotations by sequence
-   */
-  protected void sortAnnotationsBySequence_actionPerformed()
+  protected void sortAnnotations_actionPerformed(SortOrder sortOrder)
   {
   }