From fe17c9998066fe039ba952c266c2445db5adfe82 Mon Sep 17 00:00:00 2001 From: amwaterhouse Date: Mon, 20 Nov 2006 18:16:32 +0000 Subject: [PATCH] works on focused viewport --- src/jalview/gui/Finder.java | 27 +++++++++++++++++++++++---- 1 file changed, 23 insertions(+), 4 deletions(-) diff --git a/src/jalview/gui/Finder.java b/src/jalview/gui/Finder.java index 8697552..e1431a9 100755 --- a/src/jalview/gui/Finder.java +++ b/src/jalview/gui/Finder.java @@ -54,11 +54,13 @@ public class Finder extends GFinder * @param ap DOCUMENT ME! * @param f DOCUMENT ME! */ - public Finder(AlignViewport av, AlignmentPanel ap, JInternalFrame f) + public Finder() { - this.av = av; - this.ap = ap; - frame = f; + frame = new JInternalFrame(); + frame.setContentPane(this); + frame.setLayer(JLayeredPane.PALETTE_LAYER); + Desktop.addInternalFrame(frame, "Find", 340, 110); + // all a big pain, but we need to wait until the frame is visible before the textfield can // obtain the focus///////////////////////// @@ -85,6 +87,7 @@ public class Finder extends GFinder */ public void findNext_actionPerformed(ActionEvent e) { + if (getFocusedViewport()) doSearch(false); } @@ -95,9 +98,25 @@ public class Finder extends GFinder */ public void findAll_actionPerformed(ActionEvent e) { + if(getFocusedViewport()) + { resIndex = 0; seqIndex = 0; doSearch(true); + } + } + + boolean getFocusedViewport() + { + JInternalFrame frame = Desktop.desktop.getAllFrames()[1]; + + if(frame!=null && frame instanceof AlignFrame) + { + av = ((AlignFrame)frame).viewport; + ap = ((AlignFrame)frame).alignPanel; + return true; + } + return false; } -- 1.7.10.2