JAL-1648 made further abstraction and createda new interface CacheBox in order to...
[jalview.git] / src / jalview / fts / core / GFTSPanel.java
index a581717..5425f5d 100644 (file)
@@ -29,6 +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.util.MessageManager;
 
@@ -58,7 +59,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;
@@ -1005,11 +1005,6 @@ public abstract class GFTSPanel extends JPanel implements GFTSPanelI, Cacheable
     // reset();
   }
 
-  @Override
-  public JComponent getNextFocusableElement()
-  {
-    return mainFrame;
-  }
 
   @Override
   public String getCacheKey()
@@ -1018,10 +1013,56 @@ public abstract class GFTSPanel extends JPanel implements GFTSPanelI, Cacheable
   }
 
   @Override
-  public JComboBox<String> getCacheComboBox()
+  public CacheBoxI<String> getCacheComboBox()
   {
-    return txt_search;
+    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();
+      }
+    };
   }
 
 
+
 }