JAL-1648 Added improvement to persist cache items to properties file beyound a Jalvie...
[jalview.git] / src / jalview / gui / Finder.java
index 63278ac..8eabadb 100755 (executable)
@@ -24,6 +24,7 @@ import jalview.datamodel.SearchResultMatchI;
 import jalview.datamodel.SearchResultsI;
 import jalview.datamodel.SequenceFeature;
 import jalview.datamodel.SequenceI;
+import jalview.io.cache.AppCache;
 import jalview.jbgui.GFinder;
 import jalview.util.MessageManager;
 import jalview.viewmodel.AlignmentViewport;
@@ -39,6 +40,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
@@ -76,6 +78,7 @@ public class Finder extends GFinder
   {
     this(null, null);
     focusfixed = false;
+    initCache();
   }
 
   /**
@@ -93,6 +96,14 @@ 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"),
             WIDTH, HEIGHT);
@@ -321,7 +332,7 @@ public class Finder extends GFinder
         seqIndex = 0;
       }
     }
-
+    updateCache();
   }
 
   /**
@@ -373,4 +384,10 @@ public class Finder extends GFinder
     }
     return error;
   }
+
+  protected void closeAction()
+  {
+    frame.dispose();
+    AppCache.getInstance().persistCache(this);
+  }
 }