JAL-3829 provide both PDBe queries and 3D-Beacons queries in the filter combo box
[jalview.git] / src / jalview / gui / StructureChooser.java
index 55d0ba1..864f1d0 100644 (file)
@@ -466,16 +466,16 @@ public class StructureChooser extends GStructureChooser
     }
     cmb_filterOption.addItem(
             new FilterOption(MessageManager.getString("label.enter_pdb_id"),
-                    "-", VIEWS_ENTER_ID, false));
+                    "-", VIEWS_ENTER_ID, false,null));
     cmb_filterOption.addItem(
             new FilterOption(MessageManager.getString("label.from_file"),
-                    "-", VIEWS_FROM_FILE, false));
+                    "-", VIEWS_FROM_FILE, false,null));
 
     if (cachedPDBExist)
     {
       FilterOption cachedOption = new FilterOption(
               MessageManager.getString("label.cached_structures"), "-",
-              VIEWS_LOCAL_PDB, false);
+              VIEWS_LOCAL_PDB, false,null);
       cmb_filterOption.addItem(cachedOption);
       cmb_filterOption.setSelectedItem(cachedOption);
     }
@@ -499,7 +499,16 @@ public class StructureChooser extends GStructureChooser
     {
       mainFrame.setTitle(filterTitle);
       chk_invertFilter.setVisible(true);
-      filterResultSet(selectedFilterOpt.getValue());
+      
+      if (data!=selectedFilterOpt.getQuerySource() || data.needsRefetch(selectedFilterOpt)) 
+      {
+        data = selectedFilterOpt.getQuerySource();
+        // rebuild the views completely, since prefs will also change
+        tabRefresh();
+        return;
+      } else {
+        filterResultSet(selectedFilterOpt.getValue());
+      }
     }
     else if (selectedFilterOpt.getView() == VIEWS_ENTER_ID
             || selectedFilterOpt.getView() == VIEWS_FROM_FILE)