IDEA-144857 Find in Path layout

Layout improvements; filemask checkbox trigger focus movement to filemask field or back to search field
This commit is contained in:
Vassiliy.Kudryashov
2017-02-22 22:21:30 +03:00
parent 574a7ce032
commit 7c6e355589
@@ -54,6 +54,7 @@ import com.intellij.openapi.util.text.StringUtil;
import com.intellij.openapi.vfs.LocalFileSystem;
import com.intellij.openapi.vfs.VfsUtilCore;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.openapi.wm.IdeFocusManager;
import com.intellij.openapi.wm.WindowManager;
import com.intellij.openapi.wm.impl.IdeFrameImpl;
import com.intellij.psi.PsiBundle;
@@ -267,6 +268,24 @@ public class FindPopupPanel extends JBPanel implements FindUI {
myCbFileFilter.setToolTipText("<html>Use file m<u>a</u>sk(s)");
myCbFileFilter.setMargin(JBUI.emptyInsets());
myCbFileFilter.setBorder(null);
myCbFileFilter.addItemListener(new ItemListener() {
@Override
public void itemStateChanged(ItemEvent e) {
if (myCbFileFilter.isSelected()) {
myFileMaskField.setEnabled(true);
if (myCbFileFilter.getClientProperty("dontRequestFocus") == null) {
myFileMaskField.selectAll();
IdeFocusManager.getInstance(myProject).requestFocus(myFileMaskField, true);
}
}
else {
myFileMaskField.setEnabled(false);
if (myCbFileFilter.getClientProperty("dontRequestFocus") == null) {
IdeFocusManager.getInstance(myProject).requestFocus(mySearchComponent, true);
}
}
}
});
myCbFileFilter.addItemListener(liveResultsPreviewUpdateListener);
myFileMaskField =
new TextFieldWithAutoCompletion<String>(myProject, new TextFieldWithAutoCompletion.StringsCompletionProvider(myFileMasks, null),
@@ -284,12 +303,6 @@ public class FindPopupPanel extends JBPanel implements FindUI {
scheduleResultsUpdate();
}
});
myCbFileFilter.addItemListener(new ItemListener() {
@Override
public void itemStateChanged(ItemEvent e) {
myFileMaskField.setEnabled(myCbFileFilter.isSelected());
}
});
DefaultActionGroup switchContextGroup = new DefaultActionGroup();
switchContextGroup.add(new MySwitchContextToggleAction(FindModel.SearchContext.ANY));
switchContextGroup.add(new MySwitchContextToggleAction(FindModel.SearchContext.IN_COMMENTS));
@@ -587,21 +600,23 @@ public class FindPopupPanel extends JBPanel implements FindUI {
myCodePreviewComponent = myUsagePreviewPanel.createComponent();
splitter.setSecondComponent(myCodePreviewComponent);
JPanel scopesPanel = new JPanel(new MigLayout("flowx, gap 26, ins 0"));
scopesPanel.add(myScopeSelectionToolbar.getComponent());
scopesPanel.add(myScopeDetailsPanel);
setLayout(new MigLayout("flowx, ins 4, fillx, hidemode 2, gap 0"));
add(myTitleLabel, "gapleft 4, sx 2, growx, pushx, growy");
add(myCbCaseSensitive);
add(myCbPreserveCase);
add(myCbWholeWordsOnly);
add(myCbCaseSensitive, "gapright 8");
add(myCbPreserveCase, "gapright 8");
add(myCbWholeWordsOnly, "gapright 8");
add(myCbRegularExpressions);
add(RegExHelpPopup.createRegExLink("<html><body><b>?</b></body></html>", myCbRegularExpressions, LOG), "gapright 8");
add(myCbFileFilter);
add(myFileMaskField);
add(myFileMaskField, "gapright 8");
add(myFilterContextButton, "wrap");
add(mySearchTextArea, "pushx, growx, sx 10, gaptop 4, wrap");
add(myReplaceTextArea, "pushx, growx, sx 10, wrap");
add(myScopeSelectionToolbar.getComponent(), "gaptop 4");
add(myScopeDetailsPanel, "sx 9, pushx, growx, wrap");
add(scopesPanel, "sx 10, pushx, growx, ax left, wrap, gaptop 4, gapbottom 4");
add(splitter, "pushx, growx, growy, pushy, sx 10, wrap, pad 0 -4 0 4");
add(bottomPanel, "pushx, growx, dock south, sx 10, pad 0 -4 0 4");
@@ -665,7 +680,12 @@ public class FindPopupPanel extends JBPanel implements FindUI {
myModuleComboBox.setSelectedItem(myModel.getModuleName());
}
boolean isThereFileFilter = myModel.getFileFilter() != null && !myModel.getFileFilter().isEmpty();
myCbFileFilter.setSelected(isThereFileFilter);
try {
myCbFileFilter.putClientProperty("dontRequestFocus", Boolean.TRUE);
myCbFileFilter.setSelected(isThereFileFilter);
} finally {
myCbFileFilter.putClientProperty("dontRequestFocus", null);
}
List<String> variants = Arrays.asList(ArrayUtil.reverseArray(FindSettings.getInstance().getRecentFileMasks()));
myFileMaskField.setVariants(variants);
if (!variants.isEmpty()) {