X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fjalview%2Fgui%2FFinder.java;h=ff4fe603a736233f03ed9eb2714879e56455f64c;hb=848bef9fdc243cfab564acb0b82fc7ee3bcffe9f;hp=5f683cb07bb4d82884537274c217ccea8934120f;hpb=f5c630601eccc201dd73f34227acf97f59a9168f;p=jalview.git diff --git a/src/jalview/gui/Finder.java b/src/jalview/gui/Finder.java index 5f683cb..ff4fe60 100755 --- a/src/jalview/gui/Finder.java +++ b/src/jalview/gui/Finder.java @@ -181,6 +181,8 @@ public class Finder extends GFinder createNewGroup.setEnabled(false); String searchString = textfield.getText().toUpperCase().trim(); + if(searchString.length()<1) + return; com.stevesoft.pat.Regex regex = new com.stevesoft.pat.Regex(searchString); @@ -197,19 +199,18 @@ public class Finder extends GFinder { int res = Integer.parseInt(searchString); found = true; - - if (av.getSelectionGroup().getSize() > 0) + if (av.getSelectionGroup() == null || av.getSelectionGroup().getSize() < 1) { - seq = (Sequence) (av.getSelectionGroup().getSequenceAt(0)); + seq = (Sequence) av.getAlignment().getSequenceAt(0); } else { - seq = (Sequence) av.getAlignment().getSequenceAt(0); + seq = (Sequence) (av.getSelectionGroup().getSequenceAt(0)); } searchResults.add(Integer.toString(av.getAlignment().findIndex(seq))); - searchResults.add(Integer.toString(seq.findIndex(res) - 1)); - searchResults.add(Integer.toString(seq.findIndex(res) - 1)); + searchResults.add(res+""); + searchResults.add(res+""); } catch (NumberFormatException ex) { @@ -261,7 +262,7 @@ public class Finder extends GFinder } ///Shall we ignore gaps???? - StringBuffer noGaps = new StringBuffer(); + StringBuffer noGapsSB = new StringBuffer(); int insertCount = 0; Vector spaces = new Vector(); @@ -269,7 +270,7 @@ public class Finder extends GFinder { if (!jalview.util.Comparison.isGap(item.charAt(j))) { - noGaps.append(item.charAt(j)); + noGapsSB.append(item.charAt(j)); spaces.add(new Integer(insertCount)); } else @@ -278,9 +279,12 @@ public class Finder extends GFinder } } + String noGaps = noGapsSB.toString(); + for (int r = resIndex; r < noGaps.length(); r++) { - if (regex.searchFrom(noGaps.toString(), r)) + + if (regex.searchFrom(noGaps, r)) { resIndex = regex.matchedFrom(); @@ -314,6 +318,10 @@ public class Finder extends GFinder r = resIndex; } + else + { + break; + } } if (!found)