IDEA-152058 "Run inspection by name" doesn't remember "File name filter" settings

This commit is contained in:
Dmitry Avdeev
2016-03-16 15:12:52 +03:00
parent aa87f09246
commit 807d2d2c2c
3 changed files with 18 additions and 4 deletions
@@ -50,6 +50,7 @@ public class AnalysisUIOptions implements PersistentStateComponent<AnalysisUIOpt
private final AutoScrollToSourceHandler myAutoScrollToSourceHandler;
public boolean SHOW_ONLY_DIFF = false;
public boolean SHOW_STRUCTURE = false;
public String FILE_MASK;
public boolean ANALYSIS_IN_BACKGROUND = true;
@@ -15,16 +15,20 @@
*/
package com.intellij.codeInspection.actions;
import com.intellij.analysis.AnalysisUIOptions;
import com.intellij.find.impl.FindDialog;
import com.intellij.find.impl.FindInProjectUtil;
import com.intellij.openapi.module.Module;
import com.intellij.openapi.util.Condition;
import com.intellij.openapi.util.text.StringUtil;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.psi.search.GlobalSearchScope;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
/**
* @author Dmitry Avdeev
@@ -35,8 +39,16 @@ class FileFilterPanel {
private JComboBox myFileMask;
private JPanel myPanel;
void init() {
void init(AnalysisUIOptions options) {
FindDialog.initFileFilter(myFileMask, myUseFileMask);
myUseFileMask.setSelected(StringUtil.isNotEmpty(options.FILE_MASK));
myFileMask.setEnabled(StringUtil.isNotEmpty(options.FILE_MASK));
myUseFileMask.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
options.FILE_MASK = myUseFileMask.isSelected() ? (String)myFileMask.getSelectedItem() : null;
}
});
}
@Nullable
@@ -128,15 +128,16 @@ public class RunInspectionAction extends GotoActionBase {
}
}
final AnalysisUIOptions options = AnalysisUIOptions.getInstance(project);
final FileFilterPanel fileFilterPanel = new FileFilterPanel();
fileFilterPanel.init();
fileFilterPanel.init(options);
final AnalysisScope initialAnalysisScope = analysisScope;
final BaseAnalysisActionDialog dialog = new BaseAnalysisActionDialog(
"Run '" + toolWrapper.getDisplayName() + "'",
AnalysisScopeBundle.message("analysis.scope.title", InspectionsBundle.message("inspection.action.noun")),
project, analysisScope, module != null ? module.getName() : null,
true, AnalysisUIOptions.getInstance(project), psiElement) {
true, options, psiElement) {
@Override
protected JComponent getAdditionalActionSettings(Project project) {
@@ -159,7 +160,7 @@ public class RunInspectionAction extends GotoActionBase {
}
private AnalysisScope getScope() {
final AnalysisUIOptions uiOptions = AnalysisUIOptions.getInstance(project);
final AnalysisUIOptions uiOptions = options;
return getScope(uiOptions, initialAnalysisScope, project, module);
}