Merge branch 'releases/Release_2_11_3_Branch'
[jalview.git] / src / jalview / gui / AnnotationColumnChooser.java
index c0d4708..f1f78fa 100644 (file)
 
 package jalview.gui;
 
-import jalview.datamodel.AlignmentAnnotation;
-import jalview.datamodel.HiddenColumns;
-import jalview.io.cache.JvCacheableInputBox;
-import jalview.schemes.AnnotationColourGradient;
-import jalview.util.MessageManager;
-import jalview.util.Platform;
-import jalview.viewmodel.annotationfilter.AnnotationFilterParameter;
-
 import java.awt.BorderLayout;
 import java.awt.CardLayout;
 import java.awt.Color;
@@ -50,6 +42,14 @@ import javax.swing.JPanel;
 import javax.swing.JRadioButton;
 import javax.swing.border.TitledBorder;
 
+import jalview.bin.Console;
+import jalview.datamodel.AlignmentAnnotation;
+import jalview.datamodel.HiddenColumns;
+import jalview.io.cache.JvCacheableInputBox;
+import jalview.schemes.AnnotationColourGradient;
+import jalview.util.MessageManager;
+import jalview.util.Platform;
+import jalview.viewmodel.annotationfilter.AnnotationFilterParameter;
 import net.miginfocom.swing.MigLayout;
 
 @SuppressWarnings("serial")
@@ -96,8 +96,15 @@ public class AnnotationColumnChooser extends AnnotationRowFilter
 
   public AnnotationColumnChooser(AlignViewport av, final AlignmentPanel ap)
   {
+    this(av, ap, null);
+  }
+
+  public AnnotationColumnChooser(AlignViewport av, final AlignmentPanel ap,
+          AlignmentAnnotation selectedAnnotation)
+  {
     super(av, ap);
     frame = new JInternalFrame();
+    frame.setFrameIcon(null);
     frame.setContentPane(this);
     frame.setLayer(JLayeredPane.PALETTE_LAYER);
     Desktop.addInternalFrame(frame,
@@ -134,6 +141,18 @@ public class AnnotationColumnChooser extends AnnotationRowFilter
       percentThreshold
               .setSelected(lastChooser.percentThreshold.isSelected());
     }
+    if (selectedAnnotation != null)
+    {
+      try
+      {
+        setCurrentAnnotation(selectedAnnotation);
+        annotations.setSelectedItem(
+                getAnnotationMenuLabel(selectedAnnotation));
+      } catch (Exception x)
+      {
+        Console.error("Couldn't select annotation in column chooser", x);
+      }
+    }
 
     try
     {
@@ -376,7 +395,7 @@ public class AnnotationColumnChooser extends AnnotationRowFilter
     // filterAnnotations, because showing hidden columns has the side effect of
     // adding them to the selection
     av.showAllHiddenColumns();
-    av.getColumnSelection().filterAnnotations(currentAnnotation.annotations,
+    av.getColumnSelection().filterAnnotations(currentAnnotation,
             filterParams);
 
     boolean hideCols = getActionOption() == ACTION_OPTION_HIDE;
@@ -850,4 +869,11 @@ public class AnnotationColumnChooser extends AnnotationRowFilter
     gSearchPanel.searchBox.updateCache();
     ngSearchPanel.searchBox.updateCache();
   }
+
+  public static void displayFor(AlignViewport av, AlignmentPanel ap,
+          AlignmentAnnotation alignmentAnnotation)
+  {
+    AnnotationColumnChooser colchooser = new AnnotationColumnChooser(av, ap,
+            alignmentAnnotation);
+  }
 }