diff --git a/java/debugger/impl/src/com/intellij/debugger/ui/InstanceFilterEditor.java b/java/debugger/impl/src/com/intellij/debugger/ui/InstanceFilterEditor.java
index e0e44b922606..51fb679a35c8 100644
--- a/java/debugger/impl/src/com/intellij/debugger/ui/InstanceFilterEditor.java
+++ b/java/debugger/impl/src/com/intellij/debugger/ui/InstanceFilterEditor.java
@@ -7,16 +7,11 @@ import com.intellij.openapi.ui.InputValidatorEx;
import com.intellij.openapi.ui.Messages;
import com.intellij.openapi.wm.IdeFocusManager;
import com.intellij.ui.classFilter.ClassFilter;
-import com.intellij.ui.classFilter.ClassFilterEditor;
-import com.intellij.util.IconUtil;
import org.jetbrains.annotations.Nullable;
-import javax.swing.*;
-
-public class InstanceFilterEditor extends ClassFilterEditor {
+public class InstanceFilterEditor extends PatternFilterEditor {
public InstanceFilterEditor(Project project) {
super(project);
- getEmptyText().setText(DebuggerBundle.message("add.instance.filter.dialog.empty.text"));
}
protected void addClassFilter() {
@@ -60,18 +55,4 @@ public class InstanceFilterEditor extends ClassFilterEditor {
});
}
}
-
- protected String getAddButtonText() {
- return DebuggerBundle.message("button.add");
- }
-
- @Override
- protected Icon getAddButtonIcon() {
- return IconUtil.getAddIcon();
- }
-
- @Override
- protected boolean addPatternButtonVisible() {
- return false;
- }
}
diff --git a/java/debugger/impl/src/com/intellij/debugger/ui/PatternFilterEditor.java b/java/debugger/impl/src/com/intellij/debugger/ui/PatternFilterEditor.java
new file mode 100644
index 000000000000..140a14b51b13
--- /dev/null
+++ b/java/debugger/impl/src/com/intellij/debugger/ui/PatternFilterEditor.java
@@ -0,0 +1,34 @@
+// 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.
+package com.intellij.debugger.ui;
+
+import com.intellij.debugger.DebuggerBundle;
+import com.intellij.openapi.project.Project;
+import com.intellij.ui.classFilter.ClassFilterEditor;
+import com.intellij.util.IconUtil;
+
+import javax.swing.*;
+
+public class PatternFilterEditor extends ClassFilterEditor {
+ public PatternFilterEditor(Project project) {
+ super(project);
+ getEmptyText().setText(DebuggerBundle.message("filters.not.configured"));
+ }
+
+ protected void addClassFilter() {
+ addPatternFilter();
+ }
+
+ protected String getAddButtonText() {
+ return DebuggerBundle.message("button.add");
+ }
+
+ @Override
+ protected Icon getAddButtonIcon() {
+ return IconUtil.getAddIcon();
+ }
+
+ @Override
+ protected boolean addPatternButtonVisible() {
+ return false;
+ }
+}
diff --git a/java/debugger/impl/src/com/intellij/debugger/ui/breakpoints/CallerFiltersField.java b/java/debugger/impl/src/com/intellij/debugger/ui/breakpoints/CallerFiltersField.java
new file mode 100644
index 000000000000..314abbbc18a4
--- /dev/null
+++ b/java/debugger/impl/src/com/intellij/debugger/ui/breakpoints/CallerFiltersField.java
@@ -0,0 +1,29 @@
+// 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.
+package com.intellij.debugger.ui.breakpoints;
+
+import com.intellij.debugger.DebuggerBundle;
+import com.intellij.debugger.ui.PatternFilterEditor;
+import com.intellij.openapi.Disposable;
+import com.intellij.openapi.project.Project;
+import com.intellij.ui.classFilter.ClassFilterEditor;
+
+/**
+ * @author egor
+ */
+public class CallerFiltersField extends ClassFiltersField {
+ public CallerFiltersField(Project project, Disposable parent) {
+ super(project, parent);
+ }
+
+ @Override
+ protected EditClassFiltersDialog createEditDialog(Project project) {
+ EditClassFiltersDialog dialog = new EditClassFiltersDialog(project) {
+ @Override
+ protected ClassFilterEditor createClassFilterEditor(Project project) {
+ return new PatternFilterEditor(project);
+ }
+ };
+ dialog.setTitle(DebuggerBundle.message("caller.filters.dialog.title"));
+ return dialog;
+ }
+}
diff --git a/java/debugger/impl/src/com/intellij/debugger/ui/breakpoints/ClassFiltersField.java b/java/debugger/impl/src/com/intellij/debugger/ui/breakpoints/ClassFiltersField.java
index 12880ea68643..13374ef93860 100644
--- a/java/debugger/impl/src/com/intellij/debugger/ui/breakpoints/ClassFiltersField.java
+++ b/java/debugger/impl/src/com/intellij/debugger/ui/breakpoints/ClassFiltersField.java
@@ -22,7 +22,7 @@ public class ClassFiltersField extends TextFieldWithBrowseButton {
super(null, parent);
addActionListener(e -> {
reloadFilters();
- EditClassFiltersDialog dialog = new EditClassFiltersDialog(project);
+ EditClassFiltersDialog dialog = createEditDialog(project);
dialog.setFilters(myClassFilters, myClassExclusionFilters);
dialog.show();
if (dialog.getExitCode() == DialogWrapper.OK_EXIT_CODE) {
@@ -34,6 +34,10 @@ public class ClassFiltersField extends TextFieldWithBrowseButton {
);
}
+ protected EditClassFiltersDialog createEditDialog(Project project) {
+ return new EditClassFiltersDialog(project);
+ }
+
public void setClassFilters(ClassFilter[] includeFilters, ClassFilter[] excludeFilters) {
myClassFilters = includeFilters;
myClassExclusionFilters = excludeFilters;
diff --git a/java/debugger/impl/src/com/intellij/debugger/ui/breakpoints/EditClassFiltersDialog.java b/java/debugger/impl/src/com/intellij/debugger/ui/breakpoints/EditClassFiltersDialog.java
index 5ce98b1f6433..93ee668a30b0 100644
--- a/java/debugger/impl/src/com/intellij/debugger/ui/breakpoints/EditClassFiltersDialog.java
+++ b/java/debugger/impl/src/com/intellij/debugger/ui/breakpoints/EditClassFiltersDialog.java
@@ -1,18 +1,4 @@
-/*
- * Copyright 2000-2015 JetBrains s.r.o.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
+// 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.
/*
* Class EditClassFiltersDialog
@@ -49,19 +35,22 @@ public class EditClassFiltersDialog extends DialogWrapper {
init();
}
+ protected ClassFilterEditor createClassFilterEditor(Project project) {
+ return new ClassFilterEditor(project, myChooserFilter, "reference.viewBreakpoints.classFilters.newPattern");
+ }
protected JComponent createCenterPanel() {
JPanel contentPanel = new JPanel(new BorderLayout());
Box mainPanel = Box.createHorizontalBox();
- myClassFilterEditor = new ClassFilterEditor(myProject, myChooserFilter, "reference.viewBreakpoints.classFilters.newPattern");
+ myClassFilterEditor = createClassFilterEditor(myProject);
myClassFilterEditor.setPreferredSize(JBUI.size(400, 200));
myClassFilterEditor.setBorder(IdeBorderFactory.createTitledBorder(
DebuggerBundle.message("class.filters.dialog.inclusion.filters.group"), false));
mainPanel.add(myClassFilterEditor);
- myClassExclusionFilterEditor = new ClassFilterEditor(myProject, myChooserFilter, "reference.viewBreakpoints.classFilters.newPattern");
+ myClassExclusionFilterEditor = createClassFilterEditor(myProject);
myClassExclusionFilterEditor.setPreferredSize(JBUI.size(400, 200));
myClassExclusionFilterEditor.setBorder(IdeBorderFactory.createTitledBorder(
DebuggerBundle.message("class.filters.dialog.exclusion.filters.group"), false));
@@ -74,6 +63,7 @@ public class EditClassFiltersDialog extends DialogWrapper {
public void dispose(){
myClassFilterEditor.stopEditing();
+ myClassExclusionFilterEditor.stopEditing();
super.dispose();
}
diff --git a/java/debugger/impl/src/org/jetbrains/java/debugger/breakpoints/JavaBreakpointFiltersPanel.form b/java/debugger/impl/src/org/jetbrains/java/debugger/breakpoints/JavaBreakpointFiltersPanel.form
index b7ea49812e16..b15a0a2f96ca 100644
--- a/java/debugger/impl/src/org/jetbrains/java/debugger/breakpoints/JavaBreakpointFiltersPanel.form
+++ b/java/debugger/impl/src/org/jetbrains/java/debugger/breakpoints/JavaBreakpointFiltersPanel.form
@@ -197,7 +197,7 @@
-
+
diff --git a/java/debugger/impl/src/org/jetbrains/java/debugger/breakpoints/JavaBreakpointFiltersPanel.java b/java/debugger/impl/src/org/jetbrains/java/debugger/breakpoints/JavaBreakpointFiltersPanel.java
index ba1a497ecc9f..66690e4dea20 100644
--- a/java/debugger/impl/src/org/jetbrains/java/debugger/breakpoints/JavaBreakpointFiltersPanel.java
+++ b/java/debugger/impl/src/org/jetbrains/java/debugger/breakpoints/JavaBreakpointFiltersPanel.java
@@ -2,6 +2,7 @@
package org.jetbrains.java.debugger.breakpoints;
import com.intellij.debugger.InstanceFilter;
+import com.intellij.debugger.ui.breakpoints.CallerFiltersField;
import com.intellij.debugger.ui.breakpoints.ClassFiltersField;
import com.intellij.debugger.ui.breakpoints.EditInstanceFiltersDialog;
import com.intellij.ide.util.ClassFilter;
@@ -48,7 +49,7 @@ public class JavaBreakpointFiltersPanel
class.filters.dialog.title=Class Filters
-class.filters.dialog.inclusion.filters.group=Class Filters
-class.filters.dialog.exclusion.filters.group=Class Exclusion Filters
+class.filters.dialog.inclusion.filters.group=Include
+class.filters.dialog.exclusion.filters.group=Exclude
instance.filters.dialog.title=Instance Filters
instance.filters.dialog.instance.filters.group=Instance Filters
breakpoint.exception.breakpoint.display.name=''{0}''
@@ -506,3 +506,4 @@ editor.notification.alternative.source=Alternative source available for the clas
label.threads.view.configurable.show.prams.types=Show method arguments types
breakpoint.properties.panel.option.catch.class.filters=Catc&h class filters:
breakpoint.properties.panel.option.caller.filter=Calle&r filters:
+caller.filters.dialog.title=Caller Filters