JAL-1648 house-keeping
[jalview.git] / src / jalview / fts / core / GFTSPanel.java
index a581717..8b04959 100644 (file)
@@ -28,8 +28,7 @@ import jalview.gui.Desktop;
 import jalview.gui.IProgressIndicator;
 import jalview.gui.JvSwingUtils;
 import jalview.gui.SequenceFetcher;
-import jalview.io.cache.AppCache;
-import jalview.io.cache.Cacheable;
+import jalview.io.cache.JvCacheableInputBox;
 import jalview.util.MessageManager;
 
 import java.awt.BorderLayout;
@@ -58,7 +57,6 @@ import java.util.List;
 import javax.swing.ImageIcon;
 import javax.swing.JButton;
 import javax.swing.JComboBox;
-import javax.swing.JComponent;
 import javax.swing.JFrame;
 import javax.swing.JInternalFrame;
 import javax.swing.JLabel;
@@ -85,7 +83,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 +98,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 +261,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");
@@ -493,7 +488,6 @@ public abstract class GFTSPanel extends JPanel implements GFTSPanelI, Cacheable
     });
  
 
-
     txt_search.setFont(new java.awt.Font("Verdana", 0, 12));
 
     txt_search.getEditor().getEditorComponent()
@@ -518,18 +512,18 @@ public abstract class GFTSPanel extends JPanel implements GFTSPanelI, Cacheable
         }
       }
     });
-
     final DeferredTextInputListener listener = new DeferredTextInputListener(
             1500, new ActionListener()
             {
               @Override
               public void actionPerformed(ActionEvent e)
               {
-                if (!getTypedText().equalsIgnoreCase(lastSearchTerm))
+                String typed = getTypedText();
+                if (!typed.equalsIgnoreCase(lastSearchTerm))
                 {
                   searchAction(true);
                   paginatorCart.clear();
-                  lastSearchTerm = getTypedText();
+                  lastSearchTerm = typed;
                 }
               }
             }, false);
@@ -656,6 +650,7 @@ public abstract class GFTSPanel extends JPanel implements GFTSPanelI, Cacheable
     getTempUserPrefs().put("FTSPanel.x", mainFrame.getX());
     getTempUserPrefs().put("FTSPanel.y", mainFrame.getY());
     mainFrame.dispose();
+    txt_search.persistCache();
   }
 
   public class DeferredTextInputListener implements DocumentListener
@@ -834,8 +829,7 @@ public abstract class GFTSPanel extends JPanel implements GFTSPanelI, Cacheable
   @Override
   public String getTypedText()
   {
-    return txt_search.getEditor().getItem() == null ? "" : txt_search
-            .getEditor().getItem().toString().trim();
+    return txt_search.getUserInput();
   }
 
   @Override
@@ -886,6 +880,7 @@ public abstract class GFTSPanel extends JPanel implements GFTSPanelI, Cacheable
   {
     lbl_blank.setVisible(!isSearchInProgress);
     lbl_loading.setVisible(isSearchInProgress);
+    txt_search.setEditable(!isSearchInProgress);
   }
 
   @Override
@@ -994,34 +989,4 @@ public abstract class GFTSPanel extends JPanel implements GFTSPanelI, Cacheable
   }
 
 
-  protected void fireCache()
-  {
-    AppCache.getInstance().updateCache(this);
-  }
-
-  @Override
-  public void init()
-  {
-    // reset();
-  }
-
-  @Override
-  public JComponent getNextFocusableElement()
-  {
-    return mainFrame;
-  }
-
-  @Override
-  public String getCacheKey()
-  {
-    return getCacheKey();
-  }
-
-  @Override
-  public JComboBox<String> getCacheComboBox()
-  {
-    return txt_search;
-  }
-
-
 }