diff --git a/java/debugger/impl/src/com/intellij/debugger/ui/XBreakpointGroupingByClassRule.java b/java/debugger/impl/src/com/intellij/debugger/ui/XBreakpointGroupingByClassRule.java index fc3a179da2e8..f3bbf9e9ddff 100644 --- a/java/debugger/impl/src/com/intellij/debugger/ui/XBreakpointGroupingByClassRule.java +++ b/java/debugger/impl/src/com/intellij/debugger/ui/XBreakpointGroupingByClassRule.java @@ -15,6 +15,7 @@ */ package com.intellij.debugger.ui; +import com.intellij.debugger.DebuggerBundle; import com.intellij.debugger.ui.breakpoints.Breakpoint; import com.intellij.debugger.ui.breakpoints.BreakpointManager; import com.intellij.icons.AllIcons; @@ -29,7 +30,7 @@ import java.util.Collection; class XBreakpointGroupingByClassRule extends XBreakpointGroupingRule { XBreakpointGroupingByClassRule() { - super("XBreakpointGroupingByClassRule", "Group by Class"); + super("XBreakpointGroupingByClassRule", DebuggerBundle.message("rule.name.group.by.class")); } @Override diff --git a/java/debugger/impl/src/com/intellij/debugger/ui/XBreakpointGroupingByPackageRule.java b/java/debugger/impl/src/com/intellij/debugger/ui/XBreakpointGroupingByPackageRule.java index f0df3fec2471..7644b87d0d3e 100644 --- a/java/debugger/impl/src/com/intellij/debugger/ui/XBreakpointGroupingByPackageRule.java +++ b/java/debugger/impl/src/com/intellij/debugger/ui/XBreakpointGroupingByPackageRule.java @@ -15,6 +15,7 @@ */ package com.intellij.debugger.ui; +import com.intellij.debugger.DebuggerBundle; import com.intellij.debugger.ui.breakpoints.Breakpoint; import com.intellij.debugger.ui.breakpoints.BreakpointManager; import com.intellij.icons.AllIcons; @@ -31,7 +32,7 @@ import java.util.Collection; public class XBreakpointGroupingByPackageRule extends XBreakpointGroupingRule { protected XBreakpointGroupingByPackageRule() { - super("XBreakpointGroupingByPackageRule", "Group by package"); + super("XBreakpointGroupingByPackageRule", DebuggerBundle.message("rule.name.group.by.package")); } @Override diff --git a/platform/xdebugger-api/src/com/intellij/xdebugger/breakpoints/ui/XBreakpointGroupingRule.java b/platform/xdebugger-api/src/com/intellij/xdebugger/breakpoints/ui/XBreakpointGroupingRule.java index 1038747be2c0..5631b9c3fd8a 100644 --- a/platform/xdebugger-api/src/com/intellij/xdebugger/breakpoints/ui/XBreakpointGroupingRule.java +++ b/platform/xdebugger-api/src/com/intellij/xdebugger/breakpoints/ui/XBreakpointGroupingRule.java @@ -22,11 +22,20 @@ import org.jetbrains.annotations.Nullable; import javax.swing.*; import java.util.Collection; +import java.util.Comparator; /** * @author nik */ public abstract class XBreakpointGroupingRule { + public static final Comparator PRIORITY_COMPARATOR = new Comparator() { + @Override + public int compare(XBreakpointGroupingRule o1, XBreakpointGroupingRule o2) { + final int res = o2.getPriority() - o1.getPriority(); + return res != 0 ? res : (o1.getId().compareTo(o2.getId())); + } + }; + private final String myId; private final String myPresentableName; diff --git a/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/breakpoints/BreakpointsFavoriteListProvider.java b/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/breakpoints/BreakpointsFavoriteListProvider.java index a2a76c84bc18..71c8634abe41 100644 --- a/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/breakpoints/BreakpointsFavoriteListProvider.java +++ b/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/breakpoints/BreakpointsFavoriteListProvider.java @@ -53,13 +53,7 @@ public class BreakpointsFavoriteListProvider extends AbstractFavoritesListProvid private final BreakpointItemsTreeController myTreeController; private final List myRulesAvailable = new ArrayList(); - private Set myRulesEnabled = new TreeSet(new Comparator() { - @Override - public int compare(XBreakpointGroupingRule o1, XBreakpointGroupingRule o2) { - final int res = o2.getPriority() - o1.getPriority(); - return res != 0 ? res : (o1.getId().compareTo(o2.getId())); - } - }); + private Set myRulesEnabled = new TreeSet(XBreakpointGroupingRule.PRIORITY_COMPARATOR); public BreakpointsFavoriteListProvider(Project project) { super(project, "Breakpoints"); diff --git a/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/breakpoints/ui/BreakpointsDialog.java b/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/breakpoints/ui/BreakpointsDialog.java index 1f8430c66806..d507cc106461 100644 --- a/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/breakpoints/ui/BreakpointsDialog.java +++ b/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/breakpoints/ui/BreakpointsDialog.java @@ -75,19 +75,13 @@ public class BreakpointsDialog extends DialogWrapper { private final DetailController myDetailController = new DetailController(myMasterController); - private Collection myBreakpointItems = new ArrayList(); + private final Collection myBreakpointItems = new ArrayList(); private final List myRulesAvailable = new ArrayList(); - private Set myRulesEnabled = new TreeSet(new Comparator() { - @Override - public int compare(XBreakpointGroupingRule o1, XBreakpointGroupingRule o2) { - final int res = o2.getPriority() - o1.getPriority(); - return res != 0 ? res : (o1.getId().compareTo(o2.getId())); - } - }); - private Disposable myListenerDisposable = Disposer.newDisposable(); - private List myToggleRuleActions = new ArrayList(); + private final Set myRulesEnabled = new TreeSet(XBreakpointGroupingRule.PRIORITY_COMPARATOR); + private final Disposable myListenerDisposable = Disposer.newDisposable(); + private final List myToggleRuleActions = new ArrayList(); private XBreakpointManagerImpl getBreakpointManager() { return (XBreakpointManagerImpl)XDebuggerManager.getInstance(myProject).getBreakpointManager(); @@ -326,6 +320,7 @@ public class BreakpointsDialog extends DialogWrapper { for (BreakpointPanelProvider provider : myBreakpointsPanelProviders) { provider.createBreakpointsGroupingRules(myRulesAvailable); } + Collections.sort(myRulesAvailable, XBreakpointGroupingRule.PRIORITY_COMPARATOR); myRulesEnabled.clear(); XBreakpointsDialogState settings = (getBreakpointManager()).getBreakpointsDialogSettings(); diff --git a/resources-en/src/messages/DebuggerBundle.properties b/resources-en/src/messages/DebuggerBundle.properties index 1a08b7c57386..cb0c624b940b 100644 --- a/resources-en/src/messages/DebuggerBundle.properties +++ b/resources-en/src/messages/DebuggerBundle.properties @@ -446,3 +446,5 @@ error.corrupt.debug.info=Debug info might be corrupt: {0} action.kill.process.text=Kill Process action.kill.process.description=Forcibly terminate debugged application evaluation.error.unknown.method.return.type=Cannot resolve method return type: {0} +rule.name.group.by.class=Group by class +rule.name.group.by.package=Group by package