From a10d0e1b873fd928e17da4cceaa80f8fbfd5d935 Mon Sep 17 00:00:00 2001 From: Egor Ushakov Date: Wed, 23 May 2018 17:46:15 +0300 Subject: [PATCH] IDEA-186951 Caller method filter - correct caller filters editor --- .../debugger/ui/InstanceFilterEditor.java | 21 +----------- .../debugger/ui/PatternFilterEditor.java | 34 +++++++++++++++++++ .../ui/breakpoints/CallerFiltersField.java | 29 ++++++++++++++++ .../ui/breakpoints/ClassFiltersField.java | 6 +++- .../breakpoints/EditClassFiltersDialog.java | 24 ++++--------- .../JavaBreakpointFiltersPanel.form | 2 +- .../JavaBreakpointFiltersPanel.java | 5 +-- .../src/messages/DebuggerBundle.properties | 7 ++-- 8 files changed, 84 insertions(+), 44 deletions(-) create mode 100644 java/debugger/impl/src/com/intellij/debugger/ui/PatternFilterEditor.java create mode 100644 java/debugger/impl/src/com/intellij/debugger/ui/breakpoints/CallerFiltersField.java 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