JAL-1648 refactored and improved caching architecture implementation. The improved...
[jalview.git] / src / jalview / fts / core / GFTSPanel.java
index a338400..99192a6 100644 (file)
@@ -29,8 +29,7 @@ import jalview.gui.IProgressIndicator;
 import jalview.gui.JvSwingUtils;
 import jalview.gui.SequenceFetcher;
 import jalview.io.cache.AppCache;
-import jalview.io.cache.CacheBoxI;
-import jalview.io.cache.Cacheable;
+import jalview.io.cache.JvCacheableInputBox;
 import jalview.util.MessageManager;
 
 import java.awt.BorderLayout;
@@ -85,7 +84,7 @@ import javax.swing.text.JTextComponent;
  */
 
 @SuppressWarnings("serial")
-public abstract class GFTSPanel extends JPanel implements GFTSPanelI, Cacheable
+public abstract class GFTSPanel extends JPanel implements GFTSPanelI
 {
   protected JInternalFrame mainFrame = new JInternalFrame(
           getFTSFrameTitle());
@@ -100,7 +99,7 @@ public abstract class GFTSPanel extends JPanel implements GFTSPanelI, Cacheable
 
   protected JButton btn_cancel = new JButton();
 
-  protected JComboBox<String> txt_search;
+  protected JvCacheableInputBox<String> txt_search;
 
   protected SequenceFetcher seqFetcher;
 
@@ -263,10 +262,7 @@ public abstract class GFTSPanel extends JPanel implements GFTSPanelI, Cacheable
   private void jbInit() throws Exception
   {
 
-    txt_search = new JComboBox<String>();
-    txt_search.setEditable(true);
-    txt_search
-            .setPrototypeDisplayValue("XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX");
+    txt_search = new JvCacheableInputBox<String>(getCacheKey());
     populateCmbSearchTargetOptions();
     Integer width = getTempUserPrefs().get("FTSPanel.width") == null ? 800
             : getTempUserPrefs().get("FTSPanel.width");
@@ -517,7 +513,6 @@ public abstract class GFTSPanel extends JPanel implements GFTSPanelI, Cacheable
         }
       }
     });
-
     final DeferredTextInputListener listener = new DeferredTextInputListener(
             1500, new ActionListener()
             {
@@ -656,7 +651,7 @@ public abstract class GFTSPanel extends JPanel implements GFTSPanelI, Cacheable
     getTempUserPrefs().put("FTSPanel.x", mainFrame.getX());
     getTempUserPrefs().put("FTSPanel.y", mainFrame.getY());
     mainFrame.dispose();
-    AppCache.getInstance().persistCache(this);
+    AppCache.getInstance().persistCache(getCacheKey());
   }
 
   public class DeferredTextInputListener implements DocumentListener
@@ -835,10 +830,7 @@ public abstract class GFTSPanel extends JPanel implements GFTSPanelI, Cacheable
   @Override
   public String getTypedText()
   {
-    String typed = txt_search.getEditor().getItem() == null ? ""
-            : txt_search
-            .getEditor().getItem().toString().trim();
-    return typed;
+    return txt_search.getUserInput();
   }
 
   @Override
@@ -997,77 +989,5 @@ public abstract class GFTSPanel extends JPanel implements GFTSPanelI, Cacheable
     mainFrame.setTitle(getFTSFrameTitle());
   }
 
-  @Override
-  public void initCache()
-  {
-    AppCache.getInstance().initCache(this);
-  }
-
-  @Override
-  public void updateCache()
-  {
-    AppCache.getInstance().updateCache(this);
-  }
-
-
-
-  @Override
-  public String getCacheKey()
-  {
-    return getCacheKey();
-  }
-
-  @Override
-  public CacheBoxI<String> getCacheComboBox()
-  {
-    return new CacheBoxI<String>()
-    {
-
-      @Override
-      public void setSelectedItem(Object anObject)
-      {
-        txt_search.setSelectedItem(anObject);
-      }
-
-      @Override
-      public void requestFocus()
-      {
-        txt_search.requestFocusInWindow();
-      }
-
-      @Override
-      public void looseFocus()
-      {
-        mainFrame.requestFocusInWindow();
-      }
-
-      @Override
-      public void addItem(String item)
-      {
-        txt_search.addItem(item);
-      }
-
-      @Override
-      public void removeAllItems()
-      {
-        txt_search.removeAllItems();
-      }
-
-      @Override
-      public int getItemCount()
-      {
-        return txt_search.getItemCount();
-      }
-
-      @Override
-      public String getUserInput()
-      {
-        return txt_search.getEditor().getItem() == null ? "" : txt_search
-                .getEditor().getItem().toString().trim();
-      }
-    };
-  }
-
-
 
 }