X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FFinder.java;h=e0ceeef67f4039a5644cf334096025ac37f00343;hb=6343ef96ba495c10379c367c9348c9b7d336b82c;hp=5f215edaf44a1e2342720fc6c43b1472491fe646;hpb=df1c58f9669c477db082016aa919d6c6cc9da071;p=jalview.git diff --git a/src/jalview/gui/Finder.java b/src/jalview/gui/Finder.java index 5f215ed..e0ceeef 100755 --- a/src/jalview/gui/Finder.java +++ b/src/jalview/gui/Finder.java @@ -42,7 +42,6 @@ public class Finder extends GFinder AlignViewport av; AlignmentPanel ap; JInternalFrame frame; - SuperGroup searchGroup; int seqIndex = 0; int resIndex = 0; @@ -109,34 +108,39 @@ public class Finder extends GFinder */ public void createNewGroup_actionPerformed(ActionEvent e) { - Color[] newColors = new Color[24]; + JLabel label = new JLabel("Enter name of new sequence feature"); + JTextField textinput = new JTextField(textfield.getText()); + JPanel panel = new JPanel(new BorderLayout()); + panel.add(label, BorderLayout.NORTH); + panel.add(textinput, BorderLayout.SOUTH); - for (int i = 0; i < 24; i++) - { - newColors[i] = new Color(60, 160, 115); - } - - jalview.schemes.UserColourScheme ucs = new jalview.schemes.UserColourScheme(newColors); - String searchString = textfield.getText(); + int reply = JOptionPane.showInternalConfirmDialog(Desktop.desktop, + panel, "New Sequence Feature Name", + JOptionPane.OK_CANCEL_OPTION ); - searchGroup = new SuperGroup(searchString, ucs, true, true, false); + if(reply != JOptionPane.OK_OPTION) + return; for (int i = 0; i < searchResults.getSize(); i ++ ) { - // its possible edits may have occurred since search was performed - // account for this here SequenceI seq = searchResults.getResultSequence(i); - int startRes = seq.findIndex(searchResults.getResultStart(i)) - 1; - int endRes = seq.findIndex(searchResults.getResultEnd(i)) - 1; - - SequenceGroup sg = new SequenceGroup(searchString, ucs, true, true, - false, startRes, endRes); - sg.addSequence(seq, false); - av.alignment.addGroup(sg); - searchGroup.addGroup(sg); + + SequenceFeature sf = new SequenceFeature(textinput.getText(), + "Search Results", null, + searchResults.getResultStart(i), + searchResults.getResultEnd(i), + "Search Results"); + + ap.seqPanel.seqCanvas.getFeatureRenderer().addNewFeature( + textinput.getText(), new Color(60,160,115), + "Search Results"); + + seq.getDatasetSequence().addSequenceFeature(sf); } - ap.av.alignment.addSuperGroup(searchGroup); + ap.seqPanel.seqCanvas.getFeatureRenderer().findAllFeatures(); + ap.alignFrame.showSeqFeatures.setSelected(true); + av.setShowSequenceFeatures(true); ap.highlightSearchResults(null); } @@ -149,7 +153,10 @@ public class Finder extends GFinder { createNewGroup.setEnabled(false); - String searchString = textfield.getText().toUpperCase().trim(); + String searchString = textfield.getText().trim(); + if(!caseSensitive.isSelected()) + searchString = searchString.toUpperCase(); + if(searchString.length()<1) return; @@ -166,7 +173,7 @@ public class Finder extends GFinder { int res = Integer.parseInt(searchString); found = true; - if (av.getSelectionGroup() == null || av.getSelectionGroup().getSize() < 1) + if (av.getSelectionGroup() == null || av.getSelectionGroup().getSize(false) < 1) { seq = (Sequence) av.getAlignment().getSequenceAt(0); } @@ -182,16 +189,6 @@ public class Finder extends GFinder } /////////////////////////////////////////////// - Color[] newColors = new Color[24]; - - for (int i = 0; i < 24; i++) - { - newColors[i] = new Color(60, 160, 115); - } - - jalview.schemes.UserColourScheme ucs = new jalview.schemes.UserColourScheme(newColors); - - searchGroup = new SuperGroup(searchString, ucs, true, true, false); int end = av.alignment.getHeight(); @@ -199,7 +196,7 @@ public class Finder extends GFinder if (selection != null) { - if ((selection.getSize() < 1) || + if ((selection.getSize(false) < 1) || ((selection.getEndRes() - selection.getStartRes()) < 2)) { selection = null; @@ -210,7 +207,7 @@ public class Finder extends GFinder { seq = (Sequence) av.alignment.getSequenceAt(seqIndex); - if ((selection != null) && !selection.sequences.contains(seq)) + if ((selection != null) && !selection.getSequences(false).contains(seq)) { seqIndex++; resIndex = 0; @@ -218,7 +215,9 @@ public class Finder extends GFinder continue; } - item = seq.getSequence().toUpperCase(); + item = seq.getSequence(); + if(!caseSensitive.isSelected()) + item = item.toUpperCase(); if ((selection != null) && (selection.getEndRes() < av.alignment.getWidth()-1))