java move to xbreakpoints:

- fixed breakpoint groupping
This commit is contained in:
Egor.Ushakov
2014-02-27 20:54:46 +04:00
parent 525d80d70f
commit ca6bcc470e
3 changed files with 27 additions and 11 deletions
@@ -15,8 +15,11 @@
*/
package com.intellij.debugger.ui;
import com.intellij.debugger.DebuggerManagerEx;
import com.intellij.debugger.ui.breakpoints.Breakpoint;
import com.intellij.debugger.ui.breakpoints.BreakpointManager;
import com.intellij.icons.AllIcons;
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;
@@ -42,10 +45,14 @@ class XBreakpointGroupingByClassRule<B> extends XBreakpointGroupingRule<B, XBrea
@Override
public XBreakpointClassGroup getGroup(@NotNull B b, @NotNull Collection<XBreakpointClassGroup> groups) {
if (b instanceof Breakpoint) {
final Breakpoint breakpoint = (Breakpoint)b;
String className = breakpoint.getShortClassName();
String packageName = breakpoint.getPackageName();
if (b instanceof XBreakpoint) {
BreakpointManager breakpointManager = DebuggerManagerEx.getInstanceEx(JavaDebuggerSupport.getCurrentProject()).getBreakpointManager();
Breakpoint javaBreakpoint = breakpointManager.findBreakpoint((XBreakpoint)b);
if (javaBreakpoint == null) {
return null;
}
String className = javaBreakpoint.getShortClassName();
String packageName = javaBreakpoint.getPackageName();
if (className == null) {
return null;
}
@@ -15,10 +15,12 @@
*/
package com.intellij.debugger.ui;
import com.intellij.debugger.ui.breakpoints.BreakpointWithHighlighter;
import com.intellij.debugger.ui.breakpoints.ExceptionBreakpoint;
import com.intellij.debugger.DebuggerManagerEx;
import com.intellij.debugger.ui.breakpoints.Breakpoint;
import com.intellij.debugger.ui.breakpoints.BreakpointManager;
import com.intellij.icons.AllIcons;
import com.intellij.openapi.util.text.StringUtil;
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;
@@ -41,11 +43,12 @@ public class XBreakpointGroupingByPackageRule<B> extends XBreakpointGroupingRule
@Override
public XBreakpointPackageGroup getGroup(@NotNull B breakpoint, @NotNull Collection<XBreakpointPackageGroup> groups) {
String packageName = null;
if (breakpoint instanceof BreakpointWithHighlighter) {
packageName = ((BreakpointWithHighlighter)breakpoint).getPackageName();
}
else if (breakpoint instanceof ExceptionBreakpoint) {
packageName = ((ExceptionBreakpoint)breakpoint).getPackageName();
if (breakpoint instanceof XBreakpoint) {
BreakpointManager breakpointManager = DebuggerManagerEx.getInstanceEx(JavaDebuggerSupport.getCurrentProject()).getBreakpointManager();
Breakpoint javaBreakpoint = breakpointManager.findBreakpoint((XBreakpoint)breakpoint);
if (javaBreakpoint != null) {
packageName = javaBreakpoint.getPackageName();
}
}
if (packageName == null) {
return null;
@@ -389,6 +389,10 @@ public class BreakpointManager {
return null;
}
public Breakpoint findBreakpoint(XBreakpoint xBreakpoint) {
return myBreakpoints.get(xBreakpoint);
}
private List<Element> myOriginalBreakpointsNodes = new ArrayList<Element>();
public void readExternal(@NotNull final Element parentNode) {
@@ -584,6 +588,7 @@ public class BreakpointManager {
Breakpoint breakpoint = createJavaBreakpoint(xBreakpoint);
myBreakpoints.put(xBreakpoint, breakpoint);
myBreakpointsListForIteration = null;
breakpoint.updateUI();
RequestManagerImpl.createRequests(breakpoint);
myDispatcher.getMulticaster().breakpointsChanged();
}
@@ -621,6 +626,7 @@ public class BreakpointManager {
public void writeExternal(@NotNull final Element parentNode) {
// restore old breakpoints
for (Element group : myOriginalBreakpointsNodes) {
group.detach();
for (Element breakpoint : group.getChildren("breakpoint")) {
if (breakpoint.getAttribute(CONVERTED_PARAM) == null) {
breakpoint.setAttribute(CONVERTED_PARAM, "true");