JAL-2446 merged to spike branch
[jalview.git] / src / jalview / fts / service / uniprot / UniprotFTSPanel.java
index b1aa5f1..ace3600 100644 (file)
@@ -29,7 +29,9 @@ import jalview.fts.core.GFTSPanel;
 import jalview.gui.SequenceFetcher;
 import jalview.util.MessageManager;
 
+import java.util.HashMap;
 import java.util.HashSet;
+import java.util.Map;
 
 @SuppressWarnings("serial")
 public class UniprotFTSPanel extends GFTSPanel
@@ -38,45 +40,46 @@ public class UniprotFTSPanel extends GFTSPanel
   private static String defaultFTSFrameTitle = MessageManager
           .getString("label.uniprot_sequence_fetcher");
 
-  private String ftsFrameTitle = defaultFTSFrameTitle;
 
+  private static Map<String, Integer> tempUserPrefs = new HashMap<String, Integer>();
 
+  private static final String UNIPROT_FTS_CACHE_KEY = "CACHE.UNIPROT_FTS";
 
   public UniprotFTSPanel(SequenceFetcher seqFetcher)
   {
+    super();
     pageLimit = UniProtFTSRestClient.getInstance()
             .getDefaultResponsePageSize();
     this.seqFetcher = seqFetcher;
-    this.progressIdicator = (seqFetcher == null) ? null : seqFetcher
+    this.progressIndicator = (seqFetcher == null) ? null : seqFetcher
             .getProgressIndicator();
   }
 
   @Override
   public void searchAction(boolean isFreshSearch)
   {
+    mainFrame.requestFocusInWindow();
     if (isFreshSearch)
     {
       offSet = 0;
     }
     new Thread()
-  {
+    {
       @Override
       public void run()
       {
-        ftsFrameTitle = defaultFTSFrameTitle;
         reset();
-        if (getTypedText().length() > 0)
+        String searchInput = getTypedText();
+        if (searchInput.length() > 0)
         {
           setSearchInProgress(true);
           long startTime = System.currentTimeMillis();
-
+          searchInput = getTypedText();
           String searchTarget = ((FTSDataColumnI) cmb_searchTarget
                   .getSelectedItem()).getAltCode();
-
           wantedFields = UniProtFTSRestClient.getInstance()
                   .getAllDefaultDisplayedFTSDataColumns();
-          String searchTerm = decodeSearchTerm(txt_search.getText(),
-                  searchTarget);
+          String searchTerm = decodeSearchTerm(searchInput, searchTarget);
 
           FTSRestRequest request = new FTSRestRequest();
           request.setFieldToSearchBy(searchTarget);
@@ -104,7 +107,7 @@ public class UniprotFTSPanel extends GFTSPanel
                     FTSRestResponse.getTableModel(request,
                             resultList.getSearchSummary()));
             FTSRestResponse.configureTableColumn(getResultTable(),
-                    wantedFields);
+                    wantedFields, tempUserPrefs);
             getResultTable().setVisible(true);
           }
 
@@ -117,7 +120,9 @@ public class UniprotFTSPanel extends GFTSPanel
                   .getString("label.result");
           if (isPaginationEnabled() && resultSetCount > 0)
           {
-            updateSearchFrameTitle(defaultFTSFrameTitle + " - " + result
+            updateSearchFrameTitle(defaultFTSFrameTitle
+                    + " - "
+                    + result
                     + " "
                     + totalNumberformatter.format((Number) (offSet + 1))
                     + " to "
@@ -125,8 +130,8 @@ public class UniprotFTSPanel extends GFTSPanel
                             .format((Number) (offSet + resultSetCount))
                     + " of "
                     + totalNumberformatter
-                            .format((Number) totalResultSetCount)
-                    + " " + " (" + (endTime - startTime) + " milli secs)");
+                            .format((Number) totalResultSetCount) + " "
+                    + " (" + (endTime - startTime) + " milli secs)");
           }
           else
           {
@@ -138,6 +143,7 @@ public class UniprotFTSPanel extends GFTSPanel
           refreshPaginatorState();
           updateSummaryTableSelections();
         }
+        txt_search.updateCache();
       }
     }.start();
 
@@ -170,7 +176,6 @@ public class UniprotFTSPanel extends GFTSPanel
     return foundSearchTerms;
   }
 
-
   @Override
   public boolean isPaginationEnabled()
   {
@@ -222,7 +227,18 @@ public class UniprotFTSPanel extends GFTSPanel
   @Override
   public String getFTSFrameTitle()
   {
-    return ftsFrameTitle;
+    return defaultFTSFrameTitle;
+  }
+
+  @Override
+  public Map<String, Integer> getTempUserPrefs()
+  {
+    return tempUserPrefs;
   }
 
+  @Override
+  public String getCacheKey()
+  {
+    return UNIPROT_FTS_CACHE_KEY;
+  }
 }