X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FFinder.java;h=ef28ebe745e471a6a5f29b8af2895f91d5ae32f5;hb=fe5db5e87fc726b1560d21f97f19b0e04963b72c;hp=2311a9f532f1a4220fec634e46fe41ae97973979;hpb=183b98840a8ee8d03a2c7f7f42044190d52f2595;p=jalview.git diff --git a/src/jalview/gui/Finder.java b/src/jalview/gui/Finder.java index 2311a9f..ef28ebe 100755 --- a/src/jalview/gui/Finder.java +++ b/src/jalview/gui/Finder.java @@ -13,8 +13,8 @@ public class Finder extends GFinder AlignViewport av; AlignmentPanel ap; JInternalFrame frame; - String searchString; SuperGroup searchGroup; + Vector searchResults; int seqIndex = 0; int resIndex = 0; @@ -67,6 +67,7 @@ public class Finder extends GFinder try{ // if allResults is null, this effectively switches displaySearch flag in seqCanvas ap.highlightSearchResults( null ); + ap.idPanel.highlightSearchResults( null ); // frame.setClosed(true); }catch(Exception ex){ } } @@ -74,8 +75,32 @@ public class Finder extends GFinder public void createNewGroup_actionPerformed(ActionEvent e) { - for(int i=0; i0) - seq = (Sequence)(av.getSelection().sequenceAt(0)); + if(av.getSelectionGroup().getSize()>0) + seq = (Sequence)(av.getSelectionGroup().getSequenceAt(0)); else seq = (Sequence)av.getAlignment().getSequenceAt(0); @@ -109,47 +137,46 @@ public class Finder extends GFinder searchResults.add( Integer.toString( seq.findIndex(res)-1 ) ); }catch(NumberFormatException ex){} + /////////////////////////////////////////////// + + - jalview.schemes.UserColourScheme ucs = new jalview.schemes.UserColourScheme(); Color [] newColors = new Color[24]; for(int i=0; i<24; i++) newColors[i] = new Color(60,160,115); - ucs.setColourScheme(newColors); + jalview.schemes.UserColourScheme ucs = new jalview.schemes.UserColourScheme(newColors); searchGroup = new SuperGroup(searchString, ucs , true, true, false); int end = av.alignment.getHeight(); - - SequenceGroup rubberband = av.getRubberbandGroup(); - if(rubberband!=null) - end = rubberband.getEndRes(); - - + SequenceGroup selection = av.getSelectionGroup(); + if(selection!=null) + if(selection.getSize()<1 || (selection.getEndRes()-selection.getStartRes()<2)) + selection = null; while( !found && seqIndex0 && !av.getSelection().contains(seq) - || (rubberband!=null && !rubberband.sequences.contains(seq)) ) + if(selection!=null && !selection.sequences.contains(seq)) { - // if a selection has been made, only search within that selection seqIndex++; resIndex=0; continue; } - item = seq.getSequence(); + item = seq.getSequence().toUpperCase(); - if(rubberband!=null) - item = item.substring(0, rubberband.getEndRes()+1); + if(selection!=null && selection.getEndRes()0) + ap.idPanel.highlightSearchResults( idMatch ); + + if(searchResults.size()>0) { allResults = new int[searchResults.size()];