mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-18 09:34:34 +07:00
IDEA-100730 View breakpoints window: breakpoints grouped first by class then by package (should be other way around)
This commit is contained in:
@@ -21,6 +21,7 @@ import com.intellij.debugger.ui.breakpoints.BreakpointFactory;
|
||||
import com.intellij.debugger.ui.breakpoints.ExceptionBreakpoint;
|
||||
import com.intellij.openapi.util.Key;
|
||||
import com.intellij.xdebugger.breakpoints.ui.XBreakpointGroupingRule;
|
||||
import com.intellij.xdebugger.breakpoints.ui.XBreakpointsGroupingPriorities;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.util.Collection;
|
||||
@@ -35,6 +36,11 @@ class XBreakpointGroupingByCategoryRule<B> extends XBreakpointGroupingRule<B, XB
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getPriority() {
|
||||
return XBreakpointsGroupingPriorities.BY_TYPE;
|
||||
}
|
||||
|
||||
@Override
|
||||
public XBreakpointCategoryGroup getGroup(@NotNull B b, @NotNull Collection<XBreakpointCategoryGroup> groups) {
|
||||
if (b instanceof Breakpoint) {
|
||||
|
||||
@@ -16,8 +16,8 @@
|
||||
package com.intellij.debugger.ui;
|
||||
|
||||
import com.intellij.debugger.ui.breakpoints.Breakpoint;
|
||||
import com.intellij.debugger.ui.breakpoints.BreakpointFactory;
|
||||
import com.intellij.xdebugger.breakpoints.ui.XBreakpointGroupingRule;
|
||||
import com.intellij.xdebugger.breakpoints.ui.XBreakpointsGroupingPriorities;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.util.Collection;
|
||||
@@ -32,6 +32,11 @@ class XBreakpointGroupingByClassRule<B> extends XBreakpointGroupingRule<B, XBrea
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getPriority() {
|
||||
return XBreakpointsGroupingPriorities.BY_CLASS;
|
||||
}
|
||||
|
||||
@Override
|
||||
public XBreakpointClassGroup getGroup(@NotNull B b, @NotNull Collection<XBreakpointClassGroup> groups) {
|
||||
if (b instanceof Breakpoint) {
|
||||
|
||||
+6
-3
@@ -18,10 +18,8 @@ package com.intellij.debugger.ui;
|
||||
import com.intellij.debugger.ui.breakpoints.BreakpointWithHighlighter;
|
||||
import com.intellij.debugger.ui.breakpoints.ExceptionBreakpoint;
|
||||
import com.intellij.openapi.util.text.StringUtil;
|
||||
import com.intellij.xdebugger.breakpoints.ui.XBreakpointGroup;
|
||||
import com.intellij.xdebugger.breakpoints.ui.XBreakpointGroupingRule;
|
||||
import org.jetbrains.annotations.Nls;
|
||||
import org.jetbrains.annotations.NonNls;
|
||||
import com.intellij.xdebugger.breakpoints.ui.XBreakpointsGroupingPriorities;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.util.Collection;
|
||||
@@ -32,6 +30,11 @@ public class XBreakpointGroupingByPackageRule<B> extends XBreakpointGroupingRule
|
||||
super("XBreakpointGroupingByPackageRule", "Group by package");
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getPriority() {
|
||||
return XBreakpointsGroupingPriorities.BY_PACKAGE;
|
||||
}
|
||||
|
||||
@Override
|
||||
public XBreakpointPackageGroup getGroup(@NotNull B breakpoint, @NotNull Collection<XBreakpointPackageGroup> groups) {
|
||||
String packageName = null;
|
||||
|
||||
+4
@@ -48,6 +48,10 @@ public abstract class XBreakpointGroupingRule<B, G extends XBreakpointGroup> {
|
||||
return myId;
|
||||
}
|
||||
|
||||
public int getPriority() {
|
||||
return XBreakpointsGroupingPriorities.DEFAULT;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public abstract G getGroup(@NotNull B breakpoint, @NotNull Collection<G> groups);
|
||||
}
|
||||
|
||||
+24
@@ -0,0 +1,24 @@
|
||||
/*
|
||||
* Copyright 2000-2013 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.
|
||||
*/
|
||||
package com.intellij.xdebugger.breakpoints.ui;
|
||||
|
||||
public class XBreakpointsGroupingPriorities {
|
||||
public static final int DEFAULT = 100;
|
||||
public static final int BY_CLASS = 400;
|
||||
public static final int BY_FILE = 600;
|
||||
public static final int BY_PACKAGE = 800;
|
||||
public static final int BY_TYPE = 1000;
|
||||
}
|
||||
+6
@@ -20,6 +20,7 @@ import com.intellij.xdebugger.XDebuggerBundle;
|
||||
import com.intellij.xdebugger.XSourcePosition;
|
||||
import com.intellij.xdebugger.breakpoints.XLineBreakpoint;
|
||||
import com.intellij.xdebugger.breakpoints.ui.XBreakpointGroupingRule;
|
||||
import com.intellij.xdebugger.breakpoints.ui.XBreakpointsGroupingPriorities;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.util.Collection;
|
||||
@@ -32,6 +33,11 @@ public class XBreakpointFileGroupingRule<B> extends XBreakpointGroupingRule<B, X
|
||||
super("by-file", XDebuggerBundle.message("rule.name.group.by.file"));
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getPriority() {
|
||||
return XBreakpointsGroupingPriorities.BY_FILE;
|
||||
}
|
||||
|
||||
public XBreakpointFileGroup getGroup(@NotNull final B breakpoint, @NotNull final Collection<XBreakpointFileGroup> groups) {
|
||||
if (!(breakpoint instanceof XLineBreakpoint)) {
|
||||
return null;
|
||||
|
||||
+6
@@ -17,6 +17,7 @@ package com.intellij.xdebugger.impl.breakpoints.ui.grouping;
|
||||
|
||||
import com.intellij.xdebugger.breakpoints.XBreakpoint;
|
||||
import com.intellij.xdebugger.breakpoints.ui.XBreakpointGroupingRule;
|
||||
import com.intellij.xdebugger.breakpoints.ui.XBreakpointsGroupingPriorities;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.util.Collection;
|
||||
@@ -39,6 +40,11 @@ public class XBreakpointGroupingByTypeRule<B> extends XBreakpointGroupingRule<B,
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getPriority() {
|
||||
return XBreakpointsGroupingPriorities.BY_TYPE;
|
||||
}
|
||||
|
||||
@Override
|
||||
public XBreakpointTypeGroup getGroup(@NotNull B b, @NotNull Collection<XBreakpointTypeGroup> groups) {
|
||||
if (b instanceof XBreakpoint) {
|
||||
|
||||
+9
-5
@@ -57,7 +57,12 @@ public class BreakpointMasterDetailPopupBuilder {
|
||||
private BreakpointItemsTreeController myTreeController;
|
||||
private final List<XBreakpointGroupingRule> myRulesAvailable = new ArrayList<XBreakpointGroupingRule>();
|
||||
|
||||
private Set<XBreakpointGroupingRule> myRulesEnabled = new HashSet<XBreakpointGroupingRule>();
|
||||
private Set<XBreakpointGroupingRule> myRulesEnabled = new TreeSet<XBreakpointGroupingRule>(new Comparator<XBreakpointGroupingRule>() {
|
||||
@Override
|
||||
public int compare(XBreakpointGroupingRule o1, XBreakpointGroupingRule o2) {
|
||||
return o2.getPriority() - o1.getPriority();
|
||||
}
|
||||
});
|
||||
|
||||
@Nullable private Object myInitialBreakpoint;
|
||||
|
||||
@@ -143,7 +148,7 @@ public class BreakpointMasterDetailPopupBuilder {
|
||||
}
|
||||
|
||||
if (!myIsViewer) {
|
||||
myRulesEnabled = getInitialGroupingRules();
|
||||
getInitialGroupingRules(myRulesEnabled);
|
||||
}
|
||||
|
||||
DefaultActionGroup actions = createActions();
|
||||
@@ -283,8 +288,8 @@ public class BreakpointMasterDetailPopupBuilder {
|
||||
((XBreakpointManagerImpl)getBreakpointManager()).setBreakpointsDialogSettings(dialogState);
|
||||
}
|
||||
|
||||
private Set<XBreakpointGroupingRule> getInitialGroupingRules() {
|
||||
java.util.HashSet<XBreakpointGroupingRule> rules = new java.util.HashSet<XBreakpointGroupingRule>();
|
||||
private void getInitialGroupingRules(Collection<XBreakpointGroupingRule> rules) {
|
||||
rules.clear();
|
||||
XBreakpointsDialogState settings = ((XBreakpointManagerImpl)getBreakpointManager()).getBreakpointsDialogSettings();
|
||||
|
||||
for (XBreakpointGroupingRule rule : myRulesAvailable) {
|
||||
@@ -292,7 +297,6 @@ public class BreakpointMasterDetailPopupBuilder {
|
||||
rules.add(rule);
|
||||
}
|
||||
}
|
||||
return rules;
|
||||
}
|
||||
|
||||
private XBreakpointManager getBreakpointManager() {
|
||||
|
||||
Reference in New Issue
Block a user