diff --git a/api.search/src/org/netbeans/modules/search/BasicSearchForm.java b/api.search/src/org/netbeans/modules/search/BasicSearchForm.java --- a/api.search/src/org/netbeans/modules/search/BasicSearchForm.java +++ b/api.search/src/org/netbeans/modules/search/BasicSearchForm.java @@ -46,6 +46,7 @@ import java.awt.Color; import java.awt.Component; +import java.awt.EventQueue; import java.awt.FlowLayout; import java.awt.ItemSelectable; import java.awt.event.ActionEvent; @@ -420,10 +421,7 @@ @Override public void stateChanged(ChangeEvent e) { - searchCriteria.setFileNamePattern( - cboxFileNamePattern.getFileNamePattern()); - searchCriteria.setFileNameRegexp( - cboxFileNamePattern.isRegularExpression()); + fileNamePatternChanged(); } }); @@ -451,6 +449,32 @@ }); } + private void fileNamePatternChanged() { + final String pattern = cboxFileNamePattern.getFileNamePattern(); + if (!fileNameWildcardsAdded && pattern.length() == 1 + && pattern.matches("\\w")) { //NOI18N + fileNameWildcardsAdded = true; + // TODO: Use document filter instead, update FileNameController API. + EventQueue.invokeLater(new Runnable() { + public void run() { + cboxFileNamePattern.setFileNamePattern( + "*" + pattern + "*"); //NOI18N + Component ec = cboxFileNamePattern.getComponent() + .getEditor().getEditorComponent(); + if (ec instanceof JTextComponent) { + JTextComponent tc = (JTextComponent) ec; + tc.setCaretPosition(2); + } + } + }); + } else { + searchCriteria.setFileNamePattern( + cboxFileNamePattern.getFileNamePattern()); + searchCriteria.setFileNameRegexp( + cboxFileNamePattern.isRegularExpression()); + } + } + private void openTextPatternSandbox() { SearchPattern sp = cboxTextToFind.getSearchPattern(); @@ -759,6 +783,7 @@ private boolean invalidTextPattern = false; private boolean invalidReplacePattern = false; private ScopeOptionsController scopeSettingsPanel; + private boolean fileNameWildcardsAdded = false; /** * Form panel to which rows can be added.