JAL-1648 made further abstraction and createda new interface CacheBox in order to...
[jalview.git] / src / jalview / jbgui / GFinder.java
index 76f75e1..e5d760c 100755 (executable)
@@ -25,6 +25,7 @@ import jalview.io.DataSourceType;
 import jalview.io.FileFormat;
 import jalview.io.FormatAdapter;
 import jalview.io.cache.AppCache;
+import jalview.io.cache.CacheBoxI;
 import jalview.io.cache.Cacheable;
 import jalview.util.MessageManager;
 
@@ -39,7 +40,6 @@ import java.awt.event.KeyEvent;
 import javax.swing.JButton;
 import javax.swing.JCheckBox;
 import javax.swing.JComboBox;
-import javax.swing.JComponent;
 import javax.swing.JLabel;
 import javax.swing.JPanel;
 import javax.swing.SwingConstants;
@@ -62,7 +62,6 @@ public class GFinder extends JPanel implements Cacheable
 
   protected JButton createNewGroup = new JButton();
 
-
   protected JComboBox<String> searchBox = new JComboBox<String>();
 
   BorderLayout mainBorderLayout = new BorderLayout();
@@ -260,9 +259,54 @@ public class GFinder extends JPanel implements Cacheable
   }
 
   @Override
-  public JComboBox<String> getCacheComboBox()
+  public CacheBoxI<String> getCacheComboBox()
   {
-    return searchBox;
+    return new CacheBoxI<String>()
+    {
+
+      @Override
+      public void setSelectedItem(Object anObject)
+      {
+        searchBox.setSelectedItem(anObject);
+      }
+
+      @Override
+      public void requestFocus()
+      {
+        searchBox.requestFocusInWindow();
+      }
+
+      @Override
+      public void looseFocus()
+      {
+        jPanel6.requestFocusInWindow();
+      }
+
+      @Override
+      public void addItem(String item)
+      {
+        searchBox.addItem(item);
+      }
+
+      @Override
+      public void removeAllItems()
+      {
+        searchBox.removeAllItems();
+      }
+
+      @Override
+      public int getItemCount()
+      {
+        return searchBox.getItemCount();
+      }
+
+      @Override
+      public String getUserInput()
+      {
+        return searchBox.getEditor().getItem() == null ? "" : searchBox
+                .getEditor().getItem().toString().trim();
+      }
+    };
   }
 
   @Override
@@ -271,9 +315,4 @@ public class GFinder extends JPanel implements Cacheable
     return FINDER_CACHE_KEY;
   }
 
-  @Override
-  public JComponent getNextFocusableElement()
-  {
-    return this;
-  }
 }