JAL-4262 Allow HTML in the dialog box for link to CLI documentation
[jalview.git] / src / jalview / gui / AnnotationColumnChooser.java
index 401df42..0483aa6 100644 (file)
@@ -42,6 +42,7 @@ 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;
@@ -95,9 +96,13 @@ 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(WindowIcons.annotationIcon);
+    frame.setFrameIcon(null);
     frame.setContentPane(this);
     frame.setLayer(JLayeredPane.PALETTE_LAYER);
     Desktop.addInternalFrame(frame,
@@ -115,7 +120,7 @@ public class AnnotationColumnChooser extends AnnotationRowFilter
     }
     setOldHiddenColumns(av.getAlignment().getHiddenColumns());
     adjusting = true;
-
+    
     setAnnotations(new JComboBox<>(getAnnotationItems(false)));
     populateThresholdComboBox(threshold);
     AnnotationColumnChooser lastChooser = av
@@ -134,6 +139,16 @@ 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 +391,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 +865,10 @@ 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);    
+  }
 }