mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
IDEA-186951 Caller method filter - correct caller filters editor
This commit is contained in:
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
|
||||
+7
-17
@@ -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();
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -197,7 +197,7 @@
|
||||
<properties/>
|
||||
<border type="none"/>
|
||||
<children>
|
||||
<component id="18657" class="com.intellij.debugger.ui.breakpoints.ClassFiltersField" binding="myCallerFilters" custom-create="true">
|
||||
<component id="e6e72" class="com.intellij.debugger.ui.breakpoints.CallerFiltersField" binding="myCallerFilters" custom-create="true">
|
||||
<constraints>
|
||||
<grid row="0" column="0" row-span="1" col-span="1" vsize-policy="3" hsize-policy="3" anchor="0" fill="1" indent="0" use-parent-layout="false"/>
|
||||
</constraints>
|
||||
|
||||
+3
-2
@@ -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<T extends JavaBreakpointProperties, B ex
|
||||
private JPanel myCatchFiltersPanel;
|
||||
private JPanel myPassCountFieldPanel;
|
||||
private JCheckBox myCallerFiltersCheckBox;
|
||||
private ClassFiltersField myCallerFilters;
|
||||
private CallerFiltersField myCallerFilters;
|
||||
private JPanel myCallerFiltersPanel;
|
||||
|
||||
private final FieldPanel myInstanceFiltersField;
|
||||
@@ -233,7 +234,7 @@ public class JavaBreakpointFiltersPanel<T extends JavaBreakpointProperties, B ex
|
||||
private void createUIComponents() {
|
||||
myClassFiltersField = new ClassFiltersField(myProject, this);
|
||||
myCatchClassFilters = new ClassFiltersField(myProject, this);
|
||||
myCallerFilters = new ClassFiltersField(myProject, this);
|
||||
myCallerFilters = new CallerFiltersField(myProject, this);
|
||||
}
|
||||
|
||||
private class MyTextField extends JTextField {
|
||||
|
||||
@@ -319,7 +319,7 @@ status.hotswap.uptodate=Loaded classes are up to date. Nothing to reload.
|
||||
add.instance.filter.dialog.title=Add Instance Filter
|
||||
add.instance.filter.dialog.prompt=Enter instance ID:
|
||||
add.instance.filter.dialog.error.numeric.value.expected=Instance ID should be a numeric value of type 'long'
|
||||
add.instance.filter.dialog.empty.text=No instance filters configured
|
||||
filters.not.configured=No filters configured
|
||||
position.highlighter.stripe.tooltip=Execution line
|
||||
hotswap.dialog.title.with.session=Reload Changed Classes for {0}
|
||||
hotswap.dialog.title=Reload Changed Classes
|
||||
@@ -345,8 +345,8 @@ breakpoint.table.header.column.enabled=Enabled
|
||||
breakpoint.table.header.column.name=Name
|
||||
default.package.name=<Default>
|
||||
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
|
||||
|
||||
Reference in New Issue
Block a user