mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
SSR: generify to simplify code a little
GitOrigin-RevId: 4b3f2663afaf54ffed168086c737d2d633d85ec6
This commit is contained in:
committed by
intellij-monorepo-bot
parent
c6b5e0f468
commit
e5ca7439a6
+12
-24
@@ -7,7 +7,6 @@ import com.intellij.openapi.keymap.KeymapUtil;
|
||||
import com.intellij.openapi.util.text.StringUtil;
|
||||
import com.intellij.psi.PsiElement;
|
||||
import com.intellij.structuralsearch.MatchVariableConstraint;
|
||||
import com.intellij.structuralsearch.NamedScriptableDefinition;
|
||||
import com.intellij.structuralsearch.SSRBundle;
|
||||
import com.intellij.structuralsearch.plugin.ui.Configuration;
|
||||
import com.intellij.structuralsearch.plugin.ui.ConfigurationManager;
|
||||
@@ -28,29 +27,30 @@ class ContextFilter extends FilterAction {
|
||||
|
||||
@Override
|
||||
public boolean hasFilter() {
|
||||
return !StringUtil.isEmpty(getContextConstraint());
|
||||
final MatchVariableConstraint variable = myTable.getMatchVariableConstraint();
|
||||
return variable != null && !StringUtil.isEmpty(variable.getContextConstraint());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void clearFilter() {
|
||||
setContextConstraint("");
|
||||
myTable.getMatchVariableConstraint().setContextConstraint("");
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isApplicable(List<? extends PsiElement> nodes, boolean completePattern, boolean target) {
|
||||
return myTable.getVariable() instanceof MatchVariableConstraint &&
|
||||
completePattern &&
|
||||
myTable.getProfile().isApplicableConstraint(UIUtil.CONTEXT, nodes, completePattern, target);
|
||||
return myTable.getVariable() instanceof MatchVariableConstraint && completePattern &&
|
||||
myTable.getProfile().isApplicableConstraint(UIUtil.CONTEXT, nodes, true, target);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void setLabel(SimpleColoredComponent component) {
|
||||
component.append(SSRBundle.message("context.0.label", StringUtil.unquoteString(getContextConstraint())));
|
||||
final MatchVariableConstraint variable = myTable.getMatchVariableConstraint();
|
||||
component.append(SSRBundle.message("context.0.label", StringUtil.unquoteString(variable.getContextConstraint())));
|
||||
}
|
||||
|
||||
@Override
|
||||
public FilterEditor getEditor() {
|
||||
return new FilterEditor<MatchVariableConstraint>(myTable.getVariable(), myTable.getConstraintChangedCallback()) {
|
||||
public FilterEditor<MatchVariableConstraint> getEditor() {
|
||||
return new FilterEditor<MatchVariableConstraint>(myTable.getMatchVariableConstraint(), myTable.getConstraintChangedCallback()) {
|
||||
private final JLabel myLabel = new JLabel(SSRBundle.message("context.label"));
|
||||
private final TextFieldWithAutoCompletion<String> textField =
|
||||
TextFieldWithAutoCompletion.create(myTable.getProject(), Collections.emptyList(), false, "");
|
||||
@@ -60,11 +60,11 @@ class ContextFilter extends FilterAction {
|
||||
|
||||
@Override
|
||||
protected void layoutComponents() {
|
||||
ConfigurationManager configManager = ConfigurationManager.getInstance(myTable.getProject());
|
||||
List<String> configurationNames = JBIterable
|
||||
final ConfigurationManager configManager = ConfigurationManager.getInstance(myTable.getProject());
|
||||
final List<String> configurationNames = JBIterable
|
||||
.from(configManager.getAllConfigurationNames())
|
||||
.filter(name -> {
|
||||
Configuration config = configManager.findConfigurationByName(name);
|
||||
final Configuration config = configManager.findConfigurationByName(name);
|
||||
return config != null && myTable.getProfile().isApplicableContextConfiguration(config);
|
||||
})
|
||||
.toList();
|
||||
@@ -109,16 +109,4 @@ class ContextFilter extends FilterAction {
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
private String getContextConstraint() {
|
||||
NamedScriptableDefinition variable = myTable.getVariable();
|
||||
return variable instanceof MatchVariableConstraint ? ((MatchVariableConstraint)variable).getContextConstraint() : "";
|
||||
}
|
||||
|
||||
private void setContextConstraint(String value) {
|
||||
NamedScriptableDefinition variable = myTable.getVariable();
|
||||
if (variable instanceof MatchVariableConstraint) {
|
||||
((MatchVariableConstraint)variable).setContextConstraint(value);
|
||||
}
|
||||
}
|
||||
}
|
||||
+11
-14
@@ -3,7 +3,6 @@ package com.intellij.structuralsearch.plugin.ui.filters;
|
||||
|
||||
import com.intellij.psi.PsiElement;
|
||||
import com.intellij.structuralsearch.MatchVariableConstraint;
|
||||
import com.intellij.structuralsearch.NamedScriptableDefinition;
|
||||
import com.intellij.structuralsearch.SSRBundle;
|
||||
import com.intellij.structuralsearch.StructuralSearchProfile;
|
||||
import com.intellij.structuralsearch.plugin.ui.UIUtil;
|
||||
@@ -28,28 +27,26 @@ class CountFilter extends FilterAction {
|
||||
|
||||
@Override
|
||||
public boolean hasFilter() {
|
||||
final NamedScriptableDefinition variable = myTable.getVariable();
|
||||
if (!(variable instanceof MatchVariableConstraint)) {
|
||||
final MatchVariableConstraint variable = myTable.getMatchVariableConstraint();
|
||||
if (variable == null) {
|
||||
return false;
|
||||
}
|
||||
final MatchVariableConstraint matchVariableConstraint = (MatchVariableConstraint)variable;
|
||||
return matchVariableConstraint.getMinCount() != 1 || matchVariableConstraint.getMaxCount() != 1;
|
||||
return variable.getMinCount() != 1 || variable.getMaxCount() != 1;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void clearFilter() {
|
||||
final NamedScriptableDefinition variable = myTable.getVariable();
|
||||
if (!(variable instanceof MatchVariableConstraint)) {
|
||||
final MatchVariableConstraint variable = myTable.getMatchVariableConstraint();
|
||||
if (variable == null) {
|
||||
return;
|
||||
}
|
||||
final MatchVariableConstraint constraint = (MatchVariableConstraint)variable;
|
||||
constraint.setMinCount(1);
|
||||
constraint.setMaxCount(1);
|
||||
variable.setMinCount(1);
|
||||
variable.setMaxCount(1);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void initFilter() {
|
||||
final MatchVariableConstraint constraint = (MatchVariableConstraint)myTable.getVariable();
|
||||
final MatchVariableConstraint constraint = myTable.getMatchVariableConstraint();
|
||||
constraint.setMinCount(myMinZero ? 0 : 1);
|
||||
constraint.setMaxCount(myMaxUnlimited ? Integer.MAX_VALUE : 1);
|
||||
}
|
||||
@@ -67,7 +64,7 @@ class CountFilter extends FilterAction {
|
||||
|
||||
@Override
|
||||
protected void setLabel(SimpleColoredComponent component) {
|
||||
final MatchVariableConstraint constraint = (MatchVariableConstraint)myTable.getVariable();
|
||||
final MatchVariableConstraint constraint = myTable.getMatchVariableConstraint();
|
||||
final int min = constraint.getMinCount();
|
||||
final int max = constraint.getMaxCount();
|
||||
myLabel.append(SSRBundle.message("count.label", "[" + min + "," + (max == Integer.MAX_VALUE ? "∞" : max) + ']'));
|
||||
@@ -77,8 +74,8 @@ class CountFilter extends FilterAction {
|
||||
}
|
||||
|
||||
@Override
|
||||
public FilterEditor getEditor() {
|
||||
return new FilterEditor<MatchVariableConstraint>(myTable.getVariable(), myTable.getConstraintChangedCallback()) {
|
||||
public FilterEditor<MatchVariableConstraint> getEditor() {
|
||||
return new FilterEditor<MatchVariableConstraint>(myTable.getMatchVariableConstraint(), myTable.getConstraintChangedCallback()) {
|
||||
|
||||
private final IntegerField myMinField = new IntegerField();
|
||||
private final IntegerField myMaxField = new IntegerField();
|
||||
|
||||
+4
-2
@@ -1,6 +1,8 @@
|
||||
// Copyright 2000-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
|
||||
// Copyright 2000-2020 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
|
||||
package com.intellij.structuralsearch.plugin.ui.filters;
|
||||
|
||||
import com.intellij.structuralsearch.NamedScriptableDefinition;
|
||||
|
||||
import javax.swing.*;
|
||||
|
||||
/**
|
||||
@@ -12,7 +14,7 @@ public interface Filter {
|
||||
|
||||
JComponent getRenderer();
|
||||
|
||||
default FilterEditor getEditor() {
|
||||
default FilterEditor<? extends NamedScriptableDefinition> getEditor() {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
+3
-4
@@ -1,4 +1,4 @@
|
||||
// Copyright 2000-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
|
||||
// Copyright 2000-2020 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
|
||||
package com.intellij.structuralsearch.plugin.ui.filters;
|
||||
|
||||
import com.intellij.structuralsearch.NamedScriptableDefinition;
|
||||
@@ -15,9 +15,8 @@ public abstract class FilterEditor<T extends NamedScriptableDefinition> extends
|
||||
protected final T myConstraint;
|
||||
private final Runnable myConstraintChangedCallback;
|
||||
|
||||
public FilterEditor(NamedScriptableDefinition constraint, Runnable constraintChangedCallback) {
|
||||
//noinspection unchecked
|
||||
myConstraint = (T)constraint;
|
||||
public FilterEditor(T constraint, Runnable constraintChangedCallback) {
|
||||
myConstraint = constraint;
|
||||
myConstraintChangedCallback = constraintChangedCallback;
|
||||
}
|
||||
|
||||
|
||||
+7
-1
@@ -1,7 +1,8 @@
|
||||
// Copyright 2000-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
|
||||
// Copyright 2000-2020 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
|
||||
package com.intellij.structuralsearch.plugin.ui.filters;
|
||||
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.structuralsearch.MatchVariableConstraint;
|
||||
import com.intellij.structuralsearch.NamedScriptableDefinition;
|
||||
import com.intellij.structuralsearch.StructuralSearchProfile;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
@@ -17,6 +18,11 @@ public interface FilterTable {
|
||||
|
||||
NamedScriptableDefinition getVariable();
|
||||
|
||||
default MatchVariableConstraint getMatchVariableConstraint() {
|
||||
final NamedScriptableDefinition variable = getVariable();
|
||||
return variable instanceof MatchVariableConstraint ? (MatchVariableConstraint)variable : null;
|
||||
}
|
||||
|
||||
Runnable getConstraintChangedCallback();
|
||||
|
||||
@NotNull
|
||||
|
||||
+9
-15
@@ -7,7 +7,6 @@ import com.intellij.openapi.keymap.KeymapUtil;
|
||||
import com.intellij.openapi.util.text.StringUtil;
|
||||
import com.intellij.psi.PsiElement;
|
||||
import com.intellij.structuralsearch.MatchVariableConstraint;
|
||||
import com.intellij.structuralsearch.NamedScriptableDefinition;
|
||||
import com.intellij.structuralsearch.SSRBundle;
|
||||
import com.intellij.structuralsearch.plugin.ui.ConfigurationManager;
|
||||
import com.intellij.structuralsearch.plugin.ui.UIUtil;
|
||||
@@ -30,23 +29,18 @@ class ReferenceFilter extends FilterAction {
|
||||
|
||||
@Override
|
||||
public boolean hasFilter() {
|
||||
final NamedScriptableDefinition variable = myTable.getVariable();
|
||||
if (!(variable instanceof MatchVariableConstraint)) {
|
||||
return false;
|
||||
}
|
||||
final MatchVariableConstraint constraint = (MatchVariableConstraint)variable;
|
||||
return !StringUtil.isEmpty(constraint.getReferenceConstraint());
|
||||
final MatchVariableConstraint variable = myTable.getMatchVariableConstraint();
|
||||
return variable != null && !StringUtil.isEmpty(variable.getReferenceConstraint());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void clearFilter() {
|
||||
final NamedScriptableDefinition variable = myTable.getVariable();
|
||||
if (!(variable instanceof MatchVariableConstraint)) {
|
||||
final MatchVariableConstraint variable = myTable.getMatchVariableConstraint();
|
||||
if (variable == null) {
|
||||
return;
|
||||
}
|
||||
final MatchVariableConstraint constraint = (MatchVariableConstraint)variable;
|
||||
constraint.setReferenceConstraint("");
|
||||
constraint.setInvertReference(false);
|
||||
variable.setReferenceConstraint("");
|
||||
variable.setInvertReference(false);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -57,14 +51,14 @@ class ReferenceFilter extends FilterAction {
|
||||
|
||||
@Override
|
||||
protected void setLabel(SimpleColoredComponent component) {
|
||||
final MatchVariableConstraint constraint = (MatchVariableConstraint)myTable.getVariable();
|
||||
final MatchVariableConstraint constraint = myTable.getMatchVariableConstraint();
|
||||
final String value = constraint.isInvertReference() ? "!" + constraint.getReferenceConstraint() : constraint.getReferenceConstraint();
|
||||
component.append(SSRBundle.message("reference.0.label", value));
|
||||
}
|
||||
|
||||
@Override
|
||||
public FilterEditor getEditor() {
|
||||
return new FilterEditor<MatchVariableConstraint>(myTable.getVariable(), myTable.getConstraintChangedCallback()) {
|
||||
public FilterEditor<MatchVariableConstraint> getEditor() {
|
||||
return new FilterEditor<MatchVariableConstraint>(myTable.getMatchVariableConstraint(), myTable.getConstraintChangedCallback()) {
|
||||
|
||||
private final JLabel myLabel = new JLabel(SSRBundle.message("reference.label"));
|
||||
private final TextFieldWithAutoCompletion<String> textField =
|
||||
|
||||
+1
-1
@@ -51,7 +51,7 @@ class ScriptFilter extends FilterAction {
|
||||
}
|
||||
|
||||
@Override
|
||||
public FilterEditor getEditor() {
|
||||
public FilterEditor<NamedScriptableDefinition> getEditor() {
|
||||
return new FilterEditor<NamedScriptableDefinition>(myTable.getVariable(), myTable.getConstraintChangedCallback()) {
|
||||
|
||||
private final JLabel myLabel = new JLabel(SSRBundle.message("script.label"));
|
||||
|
||||
+11
-18
@@ -4,7 +4,6 @@ package com.intellij.structuralsearch.plugin.ui.filters;
|
||||
import com.intellij.openapi.util.text.StringUtil;
|
||||
import com.intellij.psi.PsiElement;
|
||||
import com.intellij.structuralsearch.MatchVariableConstraint;
|
||||
import com.intellij.structuralsearch.NamedScriptableDefinition;
|
||||
import com.intellij.structuralsearch.SSRBundle;
|
||||
import com.intellij.structuralsearch.StructuralSearchProfile;
|
||||
import com.intellij.structuralsearch.plugin.ui.UIUtil;
|
||||
@@ -29,24 +28,19 @@ class TextFilter extends FilterAction {
|
||||
|
||||
@Override
|
||||
public boolean hasFilter() {
|
||||
final NamedScriptableDefinition variable = myTable.getVariable();
|
||||
if (!(variable instanceof MatchVariableConstraint)) {
|
||||
return false;
|
||||
}
|
||||
final MatchVariableConstraint constraint = (MatchVariableConstraint)variable;
|
||||
return !StringUtil.isEmpty(constraint.getRegExp()) || constraint.isWithinHierarchy();
|
||||
final MatchVariableConstraint variable = myTable.getMatchVariableConstraint();
|
||||
return variable != null && (!StringUtil.isEmpty(variable.getRegExp()) || variable.isWithinHierarchy());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void clearFilter() {
|
||||
final NamedScriptableDefinition variable = myTable.getVariable();
|
||||
if (!(variable instanceof MatchVariableConstraint)) {
|
||||
final MatchVariableConstraint variable = myTable.getMatchVariableConstraint();
|
||||
if (variable == null) {
|
||||
return;
|
||||
}
|
||||
final MatchVariableConstraint constraint = (MatchVariableConstraint)variable;
|
||||
constraint.setRegExp("");
|
||||
constraint.setWholeWordsOnly(false);
|
||||
constraint.setWithinHierarchy(false);
|
||||
variable.setRegExp("");
|
||||
variable.setWholeWordsOnly(false);
|
||||
variable.setWithinHierarchy(false);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -61,7 +55,7 @@ class TextFilter extends FilterAction {
|
||||
|
||||
@Override
|
||||
protected void setLabel(SimpleColoredComponent component) {
|
||||
final MatchVariableConstraint constraint = (MatchVariableConstraint)myTable.getVariable();
|
||||
final MatchVariableConstraint constraint = myTable.getMatchVariableConstraint();
|
||||
String value = constraint.isInvertRegExp() ? "!" + constraint.getRegExp() : constraint.getRegExp();
|
||||
myLabel.append(SSRBundle.message("text.0.label", value));
|
||||
if (constraint.isWholeWordsOnly()) myLabel.append(SSRBundle.message("whole.words.label"), SimpleTextAttributes.GRAYED_ATTRIBUTES);
|
||||
@@ -69,15 +63,14 @@ class TextFilter extends FilterAction {
|
||||
}
|
||||
|
||||
@Override
|
||||
public FilterEditor getEditor() {
|
||||
return new FilterEditor<MatchVariableConstraint>(myTable.getVariable(), myTable.getConstraintChangedCallback()) {
|
||||
public FilterEditor<MatchVariableConstraint> getEditor() {
|
||||
return new FilterEditor<MatchVariableConstraint>(myTable.getMatchVariableConstraint(), myTable.getConstraintChangedCallback()) {
|
||||
|
||||
private final EditorTextField myTextField = UIUtil.createRegexComponent("", myTable.getProject());
|
||||
private final JCheckBox myWordsCheckBox = new JCheckBox(SSRBundle.message("whole.words.check.box"), false);
|
||||
private final JCheckBox myHierarchyCheckBox = new JCheckBox(SSRBundle.message("within.type.hierarchy.check.box"), false);
|
||||
private final JLabel myTextLabel = new JLabel(SSRBundle.message("text.label"));
|
||||
private final ContextHelpLabel myHelpLabel =
|
||||
ContextHelpLabel.create(SSRBundle.message("text.filter.help.text"));
|
||||
private final ContextHelpLabel myHelpLabel = ContextHelpLabel.create(SSRBundle.message("text.filter.help.text"));
|
||||
|
||||
@Override
|
||||
protected void layoutComponents() {
|
||||
|
||||
+10
-19
@@ -5,7 +5,6 @@ import com.intellij.openapi.fileTypes.PlainTextFileType;
|
||||
import com.intellij.openapi.util.text.StringUtil;
|
||||
import com.intellij.psi.PsiElement;
|
||||
import com.intellij.structuralsearch.MatchVariableConstraint;
|
||||
import com.intellij.structuralsearch.NamedScriptableDefinition;
|
||||
import com.intellij.structuralsearch.SSRBundle;
|
||||
import com.intellij.structuralsearch.StructuralSearchProfile;
|
||||
import com.intellij.structuralsearch.plugin.ui.UIUtil;
|
||||
@@ -31,29 +30,21 @@ class TypeFilter extends FilterAction {
|
||||
|
||||
@Override
|
||||
public boolean hasFilter() {
|
||||
final NamedScriptableDefinition variable = myTable.getVariable();
|
||||
if (!(variable instanceof MatchVariableConstraint)) {
|
||||
return false;
|
||||
}
|
||||
final MatchVariableConstraint constraint = (MatchVariableConstraint)variable;
|
||||
return !StringUtil.isEmpty(constraint.getNameOfExprType());
|
||||
final MatchVariableConstraint variable = myTable.getMatchVariableConstraint();
|
||||
return variable != null && !StringUtil.isEmpty(variable.getNameOfExprType());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void clearFilter() {
|
||||
final NamedScriptableDefinition variable = myTable.getVariable();
|
||||
if (!(variable instanceof MatchVariableConstraint)) {
|
||||
return;
|
||||
}
|
||||
final MatchVariableConstraint constraint = (MatchVariableConstraint)variable;
|
||||
constraint.setNameOfExprType("");
|
||||
constraint.setInvertExprType(false);
|
||||
constraint.setExprTypeWithinHierarchy(false);
|
||||
final MatchVariableConstraint variable = myTable.getMatchVariableConstraint();
|
||||
variable.setNameOfExprType("");
|
||||
variable.setInvertExprType(false);
|
||||
variable.setExprTypeWithinHierarchy(false);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isApplicable(List<? extends PsiElement> nodes, boolean completePattern, boolean target) {
|
||||
if (!(myTable.getVariable() instanceof MatchVariableConstraint)) {
|
||||
if (myTable.getVariable() == null) {
|
||||
return false;
|
||||
}
|
||||
final StructuralSearchProfile profile = myTable.getProfile();
|
||||
@@ -63,7 +54,7 @@ class TypeFilter extends FilterAction {
|
||||
|
||||
@Override
|
||||
protected void setLabel(SimpleColoredComponent component) {
|
||||
final MatchVariableConstraint constraint = (MatchVariableConstraint)myTable.getVariable();
|
||||
final MatchVariableConstraint constraint = myTable.getMatchVariableConstraint();
|
||||
final String s = constraint.isRegexExprType() ? constraint.getNameOfExprType() : constraint.getExpressionTypes();
|
||||
final String value = constraint.isInvertExprType() ? "!" + s : s;
|
||||
myLabel.append(SSRBundle.message("type.0.label", value));
|
||||
@@ -72,8 +63,8 @@ class TypeFilter extends FilterAction {
|
||||
}
|
||||
|
||||
@Override
|
||||
public FilterEditor getEditor() {
|
||||
return new FilterEditor<MatchVariableConstraint>(myTable.getVariable(), myTable.getConstraintChangedCallback()) {
|
||||
public FilterEditor<MatchVariableConstraint> getEditor() {
|
||||
return new FilterEditor<MatchVariableConstraint>(myTable.getMatchVariableConstraint(), myTable.getConstraintChangedCallback()) {
|
||||
|
||||
private final EditorTextField myTextField = UIUtil.createTextComponent("", myTable.getProject());
|
||||
private final JLabel myTypeLabel = new JLabel(SSRBundle.message("type.label"));
|
||||
|
||||
Reference in New Issue
Block a user