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
*/
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());
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;
}
return pdbRequest;
}
-
+@Override
+ public List<FilterOption> getAvailableFilterOptions(String VIEWS_FILTER)
+ {
+ List<FilterOption> filters = new ArrayList<FilterOption>();
+ 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
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;
}
}
return pdbEntriesToView;
}
+
+
+ @Override
+ protected FTSRestRequest getLastFTSRequest()
+ {
+ return lastTdbRequest;
+ }
}
\ No newline at end of file