X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2Fstructurechooser%2FThreeDBStructureChooserQuerySource.java;h=0bf9fdb484d6861143b4da43574dcb33cfa70582;hb=bed0c230be450b16213e30ee1dcaf3e76ddfc669;hp=6c2123bf7cac4f354c08845f66942586d975f77a;hpb=3471202f54daaef6d58a7d204fff9ef3a8857040;p=jalview.git diff --git a/src/jalview/gui/structurechooser/ThreeDBStructureChooserQuerySource.java b/src/jalview/gui/structurechooser/ThreeDBStructureChooserQuerySource.java index 6c2123b..0bf9fdb 100644 --- a/src/jalview/gui/structurechooser/ThreeDBStructureChooserQuerySource.java +++ b/src/jalview/gui/structurechooser/ThreeDBStructureChooserQuerySource.java @@ -1,32 +1,30 @@ package jalview.gui.structurechooser; +import java.util.ArrayList; import java.util.Collection; import java.util.HashSet; import java.util.LinkedHashSet; import java.util.List; -import java.util.Objects; import java.util.Set; import javax.swing.JTable; -import javax.swing.table.TableModel; import jalview.datamodel.DBRefEntry; import jalview.datamodel.DBRefSource; import jalview.datamodel.PDBEntry; import jalview.datamodel.SequenceI; -import jalview.fts.api.FTSData; import jalview.fts.api.FTSDataColumnI; import jalview.fts.api.FTSRestClientI; import jalview.fts.core.FTSDataColumnPreferences; import jalview.fts.core.FTSDataColumnPreferences.PreferenceSource; import jalview.fts.core.FTSRestRequest; import jalview.fts.core.FTSRestResponse; -import jalview.fts.service.pdb.PDBFTSRestClient; import jalview.fts.service.threedbeacons.TDBeaconsFTSRestClient; -import jalview.jbgui.GStructureChooser.FilterOption; +import jalview.jbgui.FilterOption; +import jalview.util.MessageManager; /** - * logic for querying the PDBe API for structures of sequences + * logic for querying the 3DBeacons API for structures of sequences * * @author jprocter */ @@ -36,9 +34,13 @@ public class ThreeDBStructureChooserQuerySource private static int MAX_QLENGTH = 7820; + protected FTSRestRequest lastTdbRequest; + + protected FTSRestClientI tdbRestClient; + public ThreeDBStructureChooserQuerySource() { - pdbRestClient = TDBeaconsFTSRestClient.getInstance(); + tdbRestClient = TDBeaconsFTSRestClient.getInstance(); docFieldPrefs = new FTSDataColumnPreferences( PreferenceSource.STRUCTURE_CHOOSER, TDBeaconsFTSRestClient.getInstance()); @@ -146,10 +148,10 @@ public class ThreeDBStructureChooserQuerySource FilterOption selectedFilterOpt, boolean b) throws Exception { FTSRestResponse resultList; - FTSRestRequest pdbRequest = getTDBeaconsRequest(seq, wantedFields); - resultList = pdbRestClient.executeRequest(pdbRequest); + FTSRestRequest tdbRequest = getTDBeaconsRequest(seq, wantedFields); + resultList = tdbRestClient.executeRequest(tdbRequest); - lastPdbRequest = pdbRequest; + lastTdbRequest = tdbRequest; return resultList; } @@ -169,7 +171,28 @@ public class ThreeDBStructureChooserQuerySource return pdbRequest; } - +@Override + public List getAvailableFilterOptions(String VIEWS_FILTER) + { + List filters = new ArrayList(); + filters.add(new FilterOption( + MessageManager.getString("label.best_quality"), + "overall_quality", VIEWS_FILTER, false)); + filters.add(new FilterOption( + MessageManager.getString("label.best_resolution"), + "resolution", VIEWS_FILTER, false)); + filters.add(new FilterOption( + MessageManager.getString("label.most_protein_chain"), + "number_of_protein_chains", VIEWS_FILTER, false)); + filters.add(new FilterOption( + MessageManager.getString("label.most_bound_molecules"), + "number_of_bound_molecules", VIEWS_FILTER, false)); + filters.add(new FilterOption( + MessageManager.getString("label.most_polymer_residues"), + "number_of_polymer_residues", VIEWS_FILTER, true)); + + return filters; + } /** * FTSRestClient specific query builder to pick top ranked entry from a * fetchStructuresMetaData query @@ -196,11 +219,11 @@ public class ThreeDBStructureChooserQuerySource return null; } pdbRequest.setResponseSize(1); - resultList = pdbRestClient.executeRequest(pdbRequest); + resultList = tdbRestClient.executeRequest(pdbRequest); // TODO: client side filtering - sort results and pick top one (or N) - lastPdbRequest = pdbRequest; + lastTdbRequest = pdbRequest; return resultList; } @@ -253,4 +276,11 @@ public class ThreeDBStructureChooserQuerySource } return pdbEntriesToView; } + + + @Override + protected FTSRestRequest getLastFTSRequest() + { + return lastTdbRequest; + } } \ No newline at end of file