JAL-1563 Further increased swing timer for search textfield to 2500ms, removed 1200ms...
[jalview.git] / src / jalview / fts / service / uniprot / UniProtFTSRestClient.java
index 310b1c6..57689f9 100644 (file)
@@ -58,8 +58,15 @@ public class UniProtFTSRestClient extends FTSRestClient
     int responseSize = (uniportRestRequest.getResponseSize() == 0) ? getDefaultResponsePageSize()
             : uniportRestRequest.getResponseSize();
 
-    String query = uniportRestRequest.getFieldToSearchBy() + ":"
-            + uniportRestRequest.getSearchTerm();
+    int offSet = (uniportRestRequest.getOffSet() == 0) ? getDefaultResponsePageSize()
+            : uniportRestRequest.getOffSet();
+
+    String query = uniportRestRequest.getFieldToSearchBy()
+            .equalsIgnoreCase("Search All") ? uniportRestRequest
+            .getSearchTerm()
+            : uniportRestRequest.getFieldToSearchBy() + ":"
+                    + uniportRestRequest.getSearchTerm();
+
     // + (uniportRestRequest.isAllowUnpublishedEntries() ? ""
     // : " AND status:REL");
     // System.out.println(">>>>> Query : " + query);
@@ -69,6 +76,8 @@ public class UniProtFTSRestClient extends FTSRestClient
             .queryParam("format", "tab")
             .queryParam("columns", wantedFields)
             .queryParam("limit", String.valueOf(responseSize))
+            .queryParam("offset", String.valueOf(offSet))
+            .queryParam("sort", "score")
             .queryParam("query", query);
     // Execute the REST request
     ClientResponse clientResponse = webResource
@@ -115,6 +124,38 @@ public class UniProtFTSRestClient extends FTSRestClient
     return searchResult;
   }
 
+  /**
+   * Takes a collection of FTSDataColumnI and converts its 'code' values into a
+   * tab delimited string.
+   * 
+   * @param dataColumnFields
+   *          the collection of FTSDataColumnI to process
+   * @return the generated comma delimited string from the supplied
+   *         FTSDataColumnI collection
+   */
+  private String getDataColumnsFieldsAsTabDelimitedString(
+          Collection<FTSDataColumnI> dataColumnFields)
+  {
+    String result = "";
+    if (dataColumnFields != null && !dataColumnFields.isEmpty())
+    {
+      StringBuilder returnedFields = new StringBuilder();
+      for (FTSDataColumnI field : dataColumnFields)
+      {
+        if (field.getName().equalsIgnoreCase("Uniprot Id"))
+        {
+          returnedFields.append("\t").append("Entry");
+        }
+        else
+        {
+          returnedFields.append("\t").append(field.getName());
+        }
+      }
+      returnedFields.deleteCharAt(0);
+      result = returnedFields.toString();
+    }
+    return result;
+  }
   public static FTSData getFTSData(String tabDelimittedDataStr,
           FTSRestRequest request)
   {
@@ -217,7 +258,7 @@ public class UniProtFTSRestClient extends FTSRestClient
   @Override
   public String getColumnDataConfigFileName()
   {
-    return getResourceFile("fts/uniprot_data_columns.conf");
+    return "/fts/uniprot_data_columns.txt";
   }
 
 }