git://source.jalview.org
/
jalview.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'develop' into features/JAL-2446NCList
[jalview.git]
/
src
/
jalview
/
gui
/
Finder.java
diff --git
a/src/jalview/gui/Finder.java
b/src/jalview/gui/Finder.java
index
5ca62b3
..
5c917ae
100755
(executable)
--- a/
src/jalview/gui/Finder.java
+++ b/
src/jalview/gui/Finder.java
@@
-24,13
+24,15
@@
import jalview.datamodel.SearchResultMatchI;
import jalview.datamodel.SearchResultsI;
import jalview.datamodel.SequenceFeature;
import jalview.datamodel.SequenceI;
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;
import jalview.jbgui.GFinder;
import jalview.util.MessageManager;
import jalview.viewmodel.AlignmentViewport;
+import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.KeyEvent;
import java.awt.event.ActionEvent;
import java.awt.event.KeyEvent;
+import java.util.ArrayList;
+import java.util.List;
import java.util.Vector;
import java.util.regex.Pattern;
import java.util.regex.PatternSyntaxException;
import java.util.Vector;
import java.util.regex.Pattern;
import java.util.regex.PatternSyntaxException;
@@
-55,14
+57,18
@@
import javax.swing.event.InternalFrameEvent;
*/
public class Finder extends GFinder
{
*/
public class Finder extends GFinder
{
- private static final int HEIGHT = 110;
+ private static final int MY_HEIGHT = 120;
- private static final int WIDTH = 340;
+ private static final int MY_WIDTH = 400;
AlignmentViewport av;
AlignmentPanel ap;
AlignmentViewport av;
AlignmentPanel ap;
+ private static final int MIN_WIDTH = 350;
+
+ private static final int MIN_HEIGHT = 120;
+
JInternalFrame frame;
int seqIndex = 0;
JInternalFrame frame;
int seqIndex = 0;
@@
-105,8
+111,8
@@
public class Finder extends GFinder
});
addEscapeHandler();
Desktop.addInternalFrame(frame, MessageManager.getString("label.find"),
});
addEscapeHandler();
Desktop.addInternalFrame(frame, MessageManager.getString("label.find"),
- WIDTH, HEIGHT);
-
+ MY_WIDTH, MY_HEIGHT);
+ frame.setMinimumSize(new Dimension(MIN_WIDTH, MIN_HEIGHT));
searchBox.requestFocus();
}
searchBox.requestFocus();
}
@@
-122,19
+128,11
@@
public class Finder extends GFinder
@Override
public void actionPerformed(ActionEvent e)
{
@Override
public void actionPerformed(ActionEvent e)
{
- escapeActionPerformed();
+ closeAction();
}
});
}
}
});
}
- /**
- * Close the panel on Escape key press
- */
- protected void escapeActionPerformed()
- {
- setVisible(false);
- frame.dispose();
- }
/**
* Performs the 'Find Next' action.
/**
* Performs the 'Find Next' action.
@@
-194,11
+192,11
@@
public class Finder extends GFinder
JInternalFrame[] frames = Desktop.desktop.getAllFrames();
for (int f = 0; f < frames.length; f++)
{
JInternalFrame[] frames = Desktop.desktop.getAllFrames();
for (int f = 0; f < frames.length; f++)
{
- JInternalFrame frame = frames[f];
- if (frame != null && frame instanceof AlignFrame)
+ JInternalFrame alignFrame = frames[f];
+ if (alignFrame != null && alignFrame instanceof AlignFrame)
{
{
- av = ((AlignFrame) frame).viewport;
- ap = ((AlignFrame) frame).alignPanel;
+ av = ((AlignFrame) alignFrame).viewport;
+ ap = ((AlignFrame) alignFrame).alignPanel;
return true;
}
}
return true;
}
}
@@
-206,33
+204,37
@@
public class Finder extends GFinder
}
/**
}
/**
- * DOCUMENT ME!
- *
- * @param e
- * DOCUMENT ME!
+ * Opens a dialog that allows the user to create sequence features for the
+ * find match results.
*/
@Override
*/
@Override
- public void createNewGroup_actionPerformed(ActionEvent e)
+ public void createFeatures_actionPerformed()
{
{
- SequenceI[] seqs = new SequenceI[searchResults.getSize()];
- SequenceFeature[] features = new SequenceFeature[searchResults
- .getSize()];
+ List<SequenceI> seqs = new ArrayList<SequenceI>();
+ List<SequenceFeature> features = new ArrayList<SequenceFeature>();
- int i = 0;
+ String searchString = searchBox.getEditor().getItem().toString().trim();
+ String desc = "Search Results";
+
+ /*
+ * assemble dataset sequences, and template new sequence features,
+ * for the amend features dialog
+ */
for (SearchResultMatchI match : searchResults.getResults())
{
for (SearchResultMatchI match : searchResults.getResults())
{
- seqs[i] = match.getSequence().getDatasetSequence();
-
- features[i] = new SequenceFeature(searchBox.getEditor().getItem()
- .toString().trim(),
- "Search Results", null, match.getStart(), match.getEnd(),
- "Search Results");
- i++;
+ seqs.add(match.getSequence().getDatasetSequence());
+ features.add(new SequenceFeature(searchString, desc,
+ match
+ .getStart(), match.getEnd(), desc));
}
if (ap.getSeqPanel().seqCanvas.getFeatureRenderer().amendFeatures(seqs,
features, true, ap))
{
}
if (ap.getSeqPanel().seqCanvas.getFeatureRenderer().amendFeatures(seqs,
features, true, ap))
{
+ /*
+ * ensure feature display is turned on to show the new features,
+ * and remove them as highlighted regions
+ */
ap.alignFrame.showSeqFeatures.setSelected(true);
av.setShowSequenceFeatures(true);
ap.highlightSearchResults(null);
ap.alignFrame.showSeqFeatures.setSelected(true);
av.setShowSequenceFeatures(true);
ap.highlightSearchResults(null);
@@
-243,13
+245,13
@@
public class Finder extends GFinder
* Search the alignment for the next or all matches. If 'all matches', a
* dialog is shown with the number of sequence ids and subsequences matched.
*
* Search the alignment for the next or all matches. If 'all matches', a
* dialog is shown with the number of sequence ids and subsequences matched.
*
- * @param findAll
+ * @param doFindAll
*/
*/
- void doSearch(boolean findAll)
+ void doSearch(boolean doFindAll)
{
{
- createNewGroup.setEnabled(false);
+ createFeatures.setEnabled(false);
- String searchString = searchBox.getEditor().getItem().toString().trim();
+ String searchString = searchBox.getUserInput().trim();
if (isInvalidSearchString(searchString))
{
if (isInvalidSearchString(searchString))
{
@@
-264,7
+266,7
@@
public class Finder extends GFinder
finder.setCaseSensitive(caseSensitive.isSelected());
finder.setIncludeDescription(searchDescription.isSelected());
finder.setCaseSensitive(caseSensitive.isSelected());
finder.setIncludeDescription(searchDescription.isSelected());
- finder.setFindAll(findAll);
+ finder.setFindAll(doFindAll);
finder.find(searchString); // returns true if anything was actually found
finder.find(searchString); // returns true if anything was actually found
@@
-289,7
+291,7
@@
public class Finder extends GFinder
if (searchResults.getSize() > 0)
{
haveResults = true;
if (searchResults.getSize() > 0)
{
haveResults = true;
- createNewGroup.setEnabled(true);
+ createFeatures.setEnabled(true);
}
else
{
}
else
{
@@
-311,7
+313,7
@@
public class Finder extends GFinder
}
else
{
}
else
{
- if (findAll)
+ if (doFindAll)
{
// then we report the matches that were found
String message = (idMatch.size() > 0) ? "" + idMatch.size()
{
// then we report the matches that were found
String message = (idMatch.size() > 0) ? "" + idMatch.size()
@@
-386,7
+388,12
@@
public class Finder extends GFinder
protected void closeAction()
{
protected void closeAction()
{
+ frame.setVisible(false);
frame.dispose();
frame.dispose();
- AppCache.getInstance().persistCache(getCacheKey());
+ searchBox.persistCache();
+ if (getFocusedViewport())
+ {
+ ap.alignFrame.requestFocus();
+ }
}
}
}
}