Merge branch 'develop' into features/JAL-1648_cache_user_inputs
[jalview.git] / src / jalview / gui / Finder.java
index 625fc27..be7f9e5 100755 (executable)
@@ -42,6 +42,7 @@ import javax.swing.JComponent;
 import javax.swing.JInternalFrame;
 import javax.swing.JLayeredPane;
 import javax.swing.KeyStroke;
+import javax.swing.event.InternalFrameEvent;
 
 /**
  * Performs the menu option for searching the alignment, for the next or all
@@ -100,11 +101,19 @@ public class Finder extends GFinder
     frame = new JInternalFrame();
     frame.setContentPane(this);
     frame.setLayer(JLayeredPane.PALETTE_LAYER);
+    frame.addInternalFrameListener(new javax.swing.event.InternalFrameAdapter()
+    {
+      @Override
+      public void internalFrameClosing(InternalFrameEvent e)
+      {
+        closeAction();
+      }
+    });
     addEscapeHandler();
     Desktop.addInternalFrame(frame, MessageManager.getString("label.find"),
             MY_WIDTH, MY_HEIGHT);
     frame.setMinimumSize(new Dimension(MIN_WIDTH, MIN_HEIGHT));
-    textfield.requestFocus();
+    searchBox.requestFocus();
   }
 
   /**
@@ -212,7 +221,7 @@ public class Finder extends GFinder
     List<SequenceI> seqs = new ArrayList<SequenceI>();
     List<SequenceFeature> features = new ArrayList<SequenceFeature>();
 
-    String searchString = textfield.getText().trim();
+    String searchString = searchBox.getEditor().getItem().toString().trim();
     String desc = "Search Results";
 
     /*
@@ -249,7 +258,7 @@ public class Finder extends GFinder
   {
     createFeatures.setEnabled(false);
 
-    String searchString = textfield.getText().trim();
+    String searchString = searchBox.getUserInput().trim();
 
     if (isInvalidSearchString(searchString))
     {
@@ -331,7 +340,7 @@ public class Finder extends GFinder
         seqIndex = 0;
       }
     }
-
+    searchBox.updateCache();
   }
 
   /**
@@ -383,4 +392,10 @@ public class Finder extends GFinder
     }
     return error;
   }
+
+  protected void closeAction()
+  {
+    frame.dispose();
+    searchBox.persistCache();
+  }
 }