Merge branch 'develop' into bug/JAL-2399textColour
[jalview.git] / src / jalview / gui / AnnotationRowFilter.java
index 128b99c..c2bf41b 100644 (file)
@@ -88,20 +88,18 @@ public abstract class AnnotationRowFilter extends JPanel
    */
   private Map<AlignmentAnnotation, String> annotationLabels;
 
-  private boolean enableSeqAss = false;
-
   private AlignmentAnnotation currentAnnotation;
 
   /**
    * Constructor
    * 
-   * @param av
-   * @param ap
+   * @param viewport
+   * @param alignPanel
    */
-  public AnnotationRowFilter(AlignViewport av, final AlignmentPanel ap)
+  public AnnotationRowFilter(AlignViewport viewport, final AlignmentPanel alignPanel)
   {
-    this.av = av;
-    this.ap = ap;
+    this.av = viewport;
+    this.ap = alignPanel;
     thresholdValue.addFocusListener(new FocusAdapter()
     {
       @Override
@@ -161,14 +159,14 @@ public abstract class AnnotationRowFilter extends JPanel
     });
   }
 
-  /**
-   * Builds and returns a list of menu items (display text) for choice of
-   * annotation. Also builds maps between annotations, their positions in the
-   * list, and their display labels in the list.
-   * 
-   * @param isSeqAssociated
-   * @return
-   */
+/**
+ * Builds and returns a list of menu items (display text) for choice of
+ * annotation. Also builds maps between annotations, their positions in the
+ * list, and their display labels in the list.
+ * 
+ * @param isSeqAssociated
+ * @return
+ */
   public Vector<String> getAnnotationItems(boolean isSeqAssociated)
   {
     annotationLabels = new HashMap<AlignmentAnnotation, String>();
@@ -176,6 +174,7 @@ public abstract class AnnotationRowFilter extends JPanel
     Vector<String> list = new Vector<String>();
     int index = 1;
     int[] anmap = new int[av.getAlignment().getAlignmentAnnotation().length];
+    seqAssociated.setEnabled(false);
     for (int i = 0; i < av.getAlignment().getAlignmentAnnotation().length; i++)
     {
       AlignmentAnnotation annotation = av.getAlignment()
@@ -189,7 +188,7 @@ public abstract class AnnotationRowFilter extends JPanel
       }
       else
       {
-        enableSeqAss = true;
+        seqAssociated.setEnabled(true);
       }
       String label = annotation.label;
       // add associated sequence ID if available
@@ -234,11 +233,6 @@ public abstract class AnnotationRowFilter extends JPanel
     return selectedThresholdItem;
   }
 
-  public void modelChanged()
-  {
-    seqAssociated.setEnabled(enableSeqAss);
-  }
-
   public void ok_actionPerformed()
   {
     try
@@ -313,7 +307,8 @@ public abstract class AnnotationRowFilter extends JPanel
   {
     adjusting = true;
     String cursel = (String) anns.getSelectedItem();
-    boolean isvalid = false, isseqs = seqAssociated.isSelected();
+    boolean isvalid = false;
+    boolean isseqs = seqAssociated.isSelected();
     anns.removeAllItems();
     for (String anitem : getAnnotationItems(seqAssociated.isSelected()))
     {
@@ -324,7 +319,6 @@ public abstract class AnnotationRowFilter extends JPanel
       }
       anns.addItem(anitem);
     }
-    adjusting = false;
     if (isvalid)
     {
       anns.setSelectedItem(cursel);
@@ -336,6 +330,9 @@ public abstract class AnnotationRowFilter extends JPanel
         anns.setSelectedIndex(0);
       }
     }
+    adjusting = false;
+
+    updateView();
   }
 
   protected void propagateSeqAssociatedThreshold(boolean allAnnotation,
@@ -366,14 +363,14 @@ public abstract class AnnotationRowFilter extends JPanel
     }
   }
 
-  protected AlignmentAnnotation getCurrentAnnotation()
+  public AlignmentAnnotation getCurrentAnnotation()
   {
     return currentAnnotation;
   }
 
-  protected void setCurrentAnnotation(AlignmentAnnotation currentAnnotation)
+  protected void setCurrentAnnotation(AlignmentAnnotation annotation)
   {
-    this.currentAnnotation = currentAnnotation;
+    this.currentAnnotation = annotation;
   }
 
   protected abstract void valueChanged(boolean updateAllAnnotation);