Merge branch 'develop' of https://source.jalview.org/git/jalview.git into develop
[jalview.git] / src / jalview / gui / StructureChooser.java
index 5709ac9..d924e73 100644 (file)
@@ -26,16 +26,16 @@ 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.FTSRestRequest;
+import jalview.fts.core.FTSRestResponse;
+import jalview.fts.service.pdb.PDBFTSRestClient;
 import jalview.jbgui.GStructureChooser;
-import jalview.jbgui.PDBDocFieldPreferences;
 import jalview.structure.StructureSelectionManager;
 import jalview.util.MessageManager;
-import jalview.ws.dbsources.PDBRestClient;
-import jalview.ws.dbsources.PDBRestClient.PDBDocField;
 import jalview.ws.sifts.SiftsSettings;
-import jalview.ws.uimodel.PDBRestRequest;
-import jalview.ws.uimodel.PDBRestResponse;
-import jalview.ws.uimodel.PDBRestResponse.PDBResponseSummary;
 
 import java.awt.event.ItemEvent;
 import java.util.ArrayList;
@@ -70,11 +70,11 @@ public class StructureChooser extends GStructureChooser implements
 
   private IProgressIndicator progressIndicator;
 
-  private Collection<PDBResponseSummary> discoveredStructuresSet;
+  private Collection<FTSData> discoveredStructuresSet;
 
-  private PDBRestRequest lastPdbRequest;
+  private FTSRestRequest lastPdbRequest;
 
-  private PDBRestClient pdbRestCleint;
+  private FTSRestClientI pdbRestCleint;
 
   private String selectedPdbFileName;
 
@@ -146,22 +146,22 @@ public class StructureChooser extends GStructureChooser implements
   public void fetchStructuresMetaData()
   {
     long startTime = System.currentTimeMillis();
-    Collection<PDBDocField> wantedFields = PDBDocFieldPreferences
-            .getStructureSummaryFields();
+    pdbRestCleint = PDBFTSRestClient.getInstance();
+    Collection<FTSDataColumnI> wantedFields = pdbRestCleint
+            .getAllDefaulDisplayedDataColumns();
 
-    discoveredStructuresSet = new LinkedHashSet<PDBResponseSummary>();
+    discoveredStructuresSet = new LinkedHashSet<FTSData>();
     HashSet<String> errors = new HashSet<String>();
     for (SequenceI seq : selectedSequences)
     {
-      PDBRestRequest pdbRequest = new PDBRestRequest();
+      FTSRestRequest pdbRequest = new FTSRestRequest();
       pdbRequest.setAllowEmptySeq(false);
       pdbRequest.setResponseSize(500);
       pdbRequest.setFieldToSearchBy("(");
       pdbRequest.setWantedFields(wantedFields);
       pdbRequest.setSearchTerm(buildQuery(seq) + ")");
       pdbRequest.setAssociatedSequence(seq);
-      pdbRestCleint = new PDBRestClient();
-      PDBRestResponse resultList;
+      FTSRestResponse resultList;
       try
       {
         resultList = pdbRestCleint.executeRequest(pdbRequest);
@@ -185,7 +185,7 @@ public class StructureChooser extends GStructureChooser implements
     if (discoveredStructuresSet != null
             && !discoveredStructuresSet.isEmpty())
     {
-      tbl_summary.setModel(PDBRestResponse.getTableModel(lastPdbRequest,
+      tbl_summary.setModel(FTSRestResponse.getTableModel(lastPdbRequest,
               discoveredStructuresSet));
       structuresDiscovered = true;
       noOfStructuresFound = discoveredStructuresSet.size();
@@ -255,7 +255,7 @@ public class StructureChooser extends GStructureChooser implements
       {
         if (isValidSeqName(entry.getId()))
         {
-          queryBuilder.append(PDBRestClient.PDBDocField.PDB_ID.getCode())
+          queryBuilder.append("pdb_id")
                   .append(":")
 .append(entry.getId().toLowerCase())
                   .append(" OR ");
@@ -274,12 +274,11 @@ public class StructureChooser extends GStructureChooser implements
           if (dbRef.getSource().equalsIgnoreCase(DBRefSource.UNIPROT))
           {
             queryBuilder
-                    .append(PDBRestClient.PDBDocField.UNIPROT_ACCESSION
-                            .getCode()).append(":")
+.append("uniprot_accession").append(":")
                     .append(getDBRefId(dbRef))
                     .append(" OR ");
             queryBuilder
-                    .append(PDBRestClient.PDBDocField.UNIPROT_ID.getCode())
+.append("uniprot_id")
                     .append(":")
                     .append(getDBRefId(dbRef)).append(" OR ");
             isUniProtRefsFound = true;
@@ -287,7 +286,7 @@ public class StructureChooser extends GStructureChooser implements
           else if (dbRef.getSource().equalsIgnoreCase(DBRefSource.PDB))
           {
 
-            queryBuilder.append(PDBRestClient.PDBDocField.PDB_ID.getCode())
+            queryBuilder.append("pdb_id")
                     .append(":").append(getDBRefId(dbRef).toLowerCase())
                     .append(" OR ");
             isPDBRefsFound = true;
@@ -395,15 +394,16 @@ public class StructureChooser extends GStructureChooser implements
       public void run()
       {
         long startTime = System.currentTimeMillis();
+        pdbRestCleint = PDBFTSRestClient.getInstance();
         lbl_loading.setVisible(true);
-        Collection<PDBDocField> wantedFields = PDBDocFieldPreferences
-                .getStructureSummaryFields();
-        Collection<PDBResponseSummary> filteredResponse = new HashSet<PDBResponseSummary>();
+        Collection<FTSDataColumnI> wantedFields = pdbRestCleint
+                .getAllDefaulDisplayedDataColumns();
+        Collection<FTSData> filteredResponse = new HashSet<FTSData>();
         HashSet<String> errors = new HashSet<String>();
 
         for (SequenceI seq : selectedSequences)
         {
-          PDBRestRequest pdbRequest = new PDBRestRequest();
+          FTSRestRequest pdbRequest = new FTSRestRequest();
           if (fieldToFilterBy.equalsIgnoreCase("uniprot_coverage"))
           {
             System.out.println(">>>>>> Filtering with uniprot coverate");
@@ -428,8 +428,7 @@ public class StructureChooser extends GStructureChooser implements
             pdbRequest.setWantedFields(wantedFields);
             pdbRequest.setAssociatedSequence(seq);
           }
-          pdbRestCleint = new PDBRestClient();
-          PDBRestResponse resultList;
+          FTSRestResponse resultList;
           try
           {
             resultList = pdbRestCleint.executeRequest(pdbRequest);
@@ -452,13 +451,13 @@ public class StructureChooser extends GStructureChooser implements
         if (!filteredResponse.isEmpty())
         {
           final int filterResponseCount = filteredResponse.size();
-          Collection<PDBResponseSummary> reorderedStructuresSet = new LinkedHashSet<PDBResponseSummary>();
+          Collection<FTSData> reorderedStructuresSet = new LinkedHashSet<FTSData>();
           reorderedStructuresSet.addAll(filteredResponse);
           reorderedStructuresSet.addAll(discoveredStructuresSet);
-          tbl_summary.setModel(PDBRestResponse.getTableModel(
+          tbl_summary.setModel(FTSRestResponse.getTableModel(
                   lastPdbRequest, reorderedStructuresSet));
 
-          PDBRestResponse.configureTableColumn(tbl_summary, wantedFields);
+          FTSRestResponse.configureTableColumn(tbl_summary, wantedFields);
           tbl_summary.getColumn("Ref Sequence").setPreferredWidth(120);
           tbl_summary.getColumn("Ref Sequence").setMinWidth(100);
           tbl_summary.getColumn("Ref Sequence").setMaxWidth(200);
@@ -529,17 +528,17 @@ public class StructureChooser extends GStructureChooser implements
     if (isStructuresDiscovered())
     {
       cmb_filterOption.addItem(new FilterOption("Best Quality",
-              PDBDocField.OVERALL_QUALITY.getCode(), VIEWS_FILTER));
+              "overall_quality", VIEWS_FILTER));
       cmb_filterOption.addItem(new FilterOption("Most UniProt Coverage",
-              PDBDocField.UNIPROT_COVERAGE.getCode(), VIEWS_FILTER));
+              "uniprot_coverage", VIEWS_FILTER));
       cmb_filterOption.addItem(new FilterOption("Best Resolution",
-              PDBDocField.RESOLUTION.getCode(), VIEWS_FILTER));
+              "resolution", VIEWS_FILTER));
       cmb_filterOption.addItem(new FilterOption("Most Protein Chain",
-              PDBDocField.PROTEIN_CHAIN_COUNT.getCode(), VIEWS_FILTER));
+              "number_of_protein_chains", VIEWS_FILTER));
       cmb_filterOption.addItem(new FilterOption("Most Bound Molecules",
-              PDBDocField.BOUND_MOLECULE_COUNT.getCode(), VIEWS_FILTER));
+              "number_of_bound_molecules", VIEWS_FILTER));
       cmb_filterOption.addItem(new FilterOption("Most Polymer Residues",
-              PDBDocField.POLYMER_RESIDUE_COUNT.getCode(), VIEWS_FILTER));
+              "number_of_polymer_residues", VIEWS_FILTER));
     }
     cmb_filterOption.addItem(new FilterOption("Enter PDB Id", "-",
             VIEWS_ENTER_ID));
@@ -730,8 +729,8 @@ public class StructureChooser extends GStructureChooser implements
     String currentView = selectedFilterOpt.getView();
     if (currentView == VIEWS_FILTER)
     {
-      int pdbIdColIndex = tbl_summary.getColumn(
-              PDBRestClient.PDBDocField.PDB_ID.getName()).getModelIndex();
+          int pdbIdColIndex = tbl_summary.getColumn("PDB Id")
+                  .getModelIndex();
       int refSeqColIndex = tbl_summary.getColumn("Ref Sequence")
               .getModelIndex();
       int[] selectedRows = tbl_summary.getSelectedRows();
@@ -769,8 +768,8 @@ public class StructureChooser extends GStructureChooser implements
       int[] selectedRows = tbl_local_pdb.getSelectedRows();
       PDBEntry[] pdbEntriesToView = new PDBEntry[selectedRows.length];
       int count = 0;
-      int pdbIdColIndex = tbl_local_pdb.getColumn(
-              PDBRestClient.PDBDocField.PDB_ID.getName()).getModelIndex();
+          int pdbIdColIndex = tbl_local_pdb.getColumn("PDB Id")
+                  .getModelIndex();
       int refSeqColIndex = tbl_local_pdb.getColumn("Ref Sequence")
               .getModelIndex();
       ArrayList<SequenceI> selectedSeqsToView = new ArrayList<SequenceI>();
@@ -927,7 +926,7 @@ public class StructureChooser extends GStructureChooser implements
     this.structuresDiscovered = structuresDiscovered;
   }
 
-  public Collection<PDBResponseSummary> getDiscoveredStructuresSet()
+  public Collection<FTSData> getDiscoveredStructuresSet()
   {
     return discoveredStructuresSet;
   }
@@ -944,9 +943,8 @@ public class StructureChooser extends GStructureChooser implements
         isValidPBDEntry = false;
         if (txt_search.getText().length() > 0)
         {
-          List<PDBDocField> wantedFields = new ArrayList<PDBDocField>();
-          wantedFields.add(PDBDocField.PDB_ID);
-          PDBRestRequest pdbRequest = new PDBRestRequest();
+          List<FTSDataColumnI> wantedFields = new ArrayList<FTSDataColumnI>();
+          FTSRestRequest pdbRequest = new FTSRestRequest();
           pdbRequest.setAllowEmptySeq(false);
           pdbRequest.setResponseSize(1);
           pdbRequest.setFieldToSearchBy("(pdb_id:");
@@ -954,8 +952,9 @@ public class StructureChooser extends GStructureChooser implements
           pdbRequest
                   .setSearchTerm(txt_search.getText().toLowerCase() + ")");
           pdbRequest.setAssociatedSequence(selectedSequence);
-          pdbRestCleint = new PDBRestClient();
-          PDBRestResponse resultList;
+          pdbRestCleint = PDBFTSRestClient.getInstance();
+          wantedFields.add(pdbRestCleint.getPrimaryKeyColumn());
+          FTSRestResponse resultList;
           try
           {
             resultList = pdbRestCleint.executeRequest(pdbRequest);