JAL-1648 Implemented in-memory caching for FTS (Uniprot & PDB) and Finder
[jalview.git] / src / jalview / fts / service / uniprot / UniprotFTSPanel.java
index f04e4fa..eba0f88 100644 (file)
@@ -40,10 +40,11 @@ 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 = "UNIPROT_FTS_CACHE_KEY";
+
   public UniprotFTSPanel(SequenceFetcher seqFetcher)
   {
     super();
@@ -52,6 +53,7 @@ public class UniprotFTSPanel extends GFTSPanel
     this.seqFetcher = seqFetcher;
     this.progressIndicator = (seqFetcher == null) ? null : seqFetcher
             .getProgressIndicator();
+    fireCache();
   }
 
   @Override
@@ -66,9 +68,9 @@ public class UniprotFTSPanel extends GFTSPanel
       @Override
       public void run()
       {
-        ftsFrameTitle = defaultFTSFrameTitle;
         reset();
-        if (getTypedText().length() > 0)
+        String searchInput = getTypedText();
+        if (searchInput.length() > 0)
         {
           setSearchInProgress(true);
           long startTime = System.currentTimeMillis();
@@ -78,7 +80,7 @@ public class UniprotFTSPanel extends GFTSPanel
 
           wantedFields = UniProtFTSRestClient.getInstance()
                   .getAllDefaultDisplayedFTSDataColumns();
-          String searchTerm = decodeSearchTerm(txt_search.getText(),
+          String searchTerm = decodeSearchTerm(getTypedText(),
                   searchTarget);
 
           FTSRestRequest request = new FTSRestRequest();
@@ -143,6 +145,7 @@ public class UniprotFTSPanel extends GFTSPanel
           refreshPaginatorState();
           updateSummaryTableSelections();
         }
+        fireCache();
       }
     }.start();
 
@@ -226,7 +229,7 @@ public class UniprotFTSPanel extends GFTSPanel
   @Override
   public String getFTSFrameTitle()
   {
-    return ftsFrameTitle;
+    return defaultFTSFrameTitle;
   }
 
   @Override
@@ -235,4 +238,9 @@ public class UniprotFTSPanel extends GFTSPanel
     return tempUserPrefs;
   }
 
+  @Override
+  public String getCacheKey()
+  {
+    return UNIPROT_FTS_CACHE_KEY;
+  }
 }