diff --git a/java/debugger/impl/src/com/intellij/debugger/engine/DebugProcessEvents.java b/java/debugger/impl/src/com/intellij/debugger/engine/DebugProcessEvents.java index 205672917fef..b0334effa0ce 100644 --- a/java/debugger/impl/src/com/intellij/debugger/engine/DebugProcessEvents.java +++ b/java/debugger/impl/src/com/intellij/debugger/engine/DebugProcessEvents.java @@ -27,6 +27,7 @@ import com.intellij.debugger.jdi.VirtualMachineProxyImpl; import com.intellij.debugger.requests.Requestor; import com.intellij.debugger.settings.DebuggerSettings; import com.intellij.debugger.ui.breakpoints.Breakpoint; +import com.intellij.debugger.ui.breakpoints.RunToCursorBreakpoint; import com.intellij.debugger.ui.breakpoints.StackCapturingLineBreakpoint; import com.intellij.debugger.ui.overhead.OverheadProducer; import com.intellij.debugger.ui.overhead.OverheadTimings; @@ -499,8 +500,10 @@ public class DebugProcessEvents extends DebugProcessImpl { resumePreferred = !requestHit; } finally { - if (requestor instanceof OverheadProducer) { - OverheadTimings.add(DebugProcessEvents.this, (OverheadProducer)requestor, requestHit ? 1 : 0, System.currentTimeMillis() - start); + if (requestor instanceof OverheadProducer && !(requestor instanceof RunToCursorBreakpoint)) { + OverheadTimings.add(DebugProcessEvents.this, (OverheadProducer)requestor, + requestHit || requestor instanceof StackCapturingLineBreakpoint ? 1 : 0, + System.currentTimeMillis() - start); } } diff --git a/java/debugger/impl/src/com/intellij/debugger/engine/requests/MethodReturnValueWatcher.java b/java/debugger/impl/src/com/intellij/debugger/engine/requests/MethodReturnValueWatcher.java index 55809801435d..3c9137f8c0de 100644 --- a/java/debugger/impl/src/com/intellij/debugger/engine/requests/MethodReturnValueWatcher.java +++ b/java/debugger/impl/src/com/intellij/debugger/engine/requests/MethodReturnValueWatcher.java @@ -21,9 +21,11 @@ import com.intellij.debugger.engine.DebuggerManagerThreadImpl; import com.intellij.debugger.settings.DebuggerSettings; import com.intellij.debugger.ui.overhead.OverheadProducer; import com.intellij.debugger.ui.overhead.OverheadTimings; +import com.intellij.icons.AllIcons; import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.util.Comparing; import com.intellij.openapi.util.registry.Registry; +import com.intellij.ui.ColoredTableCellRenderer; import com.intellij.util.ArrayUtil; import com.sun.jdi.*; import com.sun.jdi.event.Event; @@ -244,7 +246,8 @@ public class MethodReturnValueWatcher implements OverheadProducer { } @Override - public String getDisplayName() { - return DebuggerBundle.message("action.watches.method.return.value.enable"); + public void customizeRenderer(ColoredTableCellRenderer renderer) { + renderer.setIcon(AllIcons.Debugger.WatchLastReturnValue); + renderer.append(DebuggerBundle.message("action.watches.method.return.value.enable")); } } diff --git a/java/debugger/impl/src/com/intellij/debugger/ui/breakpoints/Breakpoint.java b/java/debugger/impl/src/com/intellij/debugger/ui/breakpoints/Breakpoint.java index 423a8f537672..3b30dd629bc7 100644 --- a/java/debugger/impl/src/com/intellij/debugger/ui/breakpoints/Breakpoint.java +++ b/java/debugger/impl/src/com/intellij/debugger/ui/breakpoints/Breakpoint.java @@ -35,6 +35,7 @@ import com.intellij.debugger.requests.Requestor; import com.intellij.debugger.settings.DebuggerSettings; import com.intellij.debugger.ui.impl.watch.CompilingEvaluatorImpl; import com.intellij.debugger.ui.overhead.OverheadProducer; +import com.intellij.icons.AllIcons; import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.application.ReadAction; import com.intellij.openapi.project.Project; @@ -45,6 +46,7 @@ import com.intellij.psi.PsiClass; import com.intellij.psi.PsiCodeFragment; import com.intellij.psi.PsiElement; import com.intellij.ui.AppUIUtil; +import com.intellij.ui.ColoredTableCellRenderer; import com.intellij.ui.classFilter.ClassFilter; import com.intellij.util.ObjectUtils; import com.intellij.util.StringBuilderSpinAllocator; @@ -135,6 +137,17 @@ public abstract class Breakpoint
implements
@Override
public abstract void processClassPrepare(DebugProcess debuggerProcess, final ReferenceType referenceType);
+ @Override
+ public void customizeRenderer(ColoredTableCellRenderer renderer) {
+ if (myXBreakpoint != null) {
+ renderer.setIcon(myXBreakpoint.getType().getEnabledIcon());
+ }
+ else {
+ renderer.setIcon(AllIcons.Debugger.Db_set_breakpoint);
+ }
+ renderer.append(getDisplayName());
+ }
+
public abstract String getDisplayName ();
public String getShortName() {
diff --git a/java/debugger/impl/src/com/intellij/debugger/ui/breakpoints/StackCapturingLineBreakpoint.java b/java/debugger/impl/src/com/intellij/debugger/ui/breakpoints/StackCapturingLineBreakpoint.java
index a23a7ac6fbe9..f8263b7322b1 100644
--- a/java/debugger/impl/src/com/intellij/debugger/ui/breakpoints/StackCapturingLineBreakpoint.java
+++ b/java/debugger/impl/src/com/intellij/debugger/ui/breakpoints/StackCapturingLineBreakpoint.java
@@ -39,6 +39,7 @@ import com.intellij.openapi.util.ThrowableComputable;
import com.intellij.openapi.util.registry.Registry;
import com.intellij.openapi.util.text.StringUtil;
import com.intellij.psi.PsiElement;
+import com.intellij.ui.ColoredTableCellRenderer;
import com.intellij.util.containers.ContainerUtil;
import com.sun.jdi.*;
import com.sun.jdi.event.LocatableEvent;
@@ -181,8 +182,8 @@ public class StackCapturingLineBreakpoint extends WildcardMethodBreakpoint {
}
@Override
- public String getDisplayName() {
- return "Capture point at " + myCapturePoint.myClassName + "." + myCapturePoint.myMethodName;
+ public void customizeRenderer(ColoredTableCellRenderer renderer) {
+ renderer.append("Capture point at " + myCapturePoint.myClassName + "." + myCapturePoint.myMethodName);
}
@Override
diff --git a/java/debugger/impl/src/com/intellij/debugger/ui/overhead/OverheadProducer.java b/java/debugger/impl/src/com/intellij/debugger/ui/overhead/OverheadProducer.java
index a79ad0f31475..31aa01892591 100644
--- a/java/debugger/impl/src/com/intellij/debugger/ui/overhead/OverheadProducer.java
+++ b/java/debugger/impl/src/com/intellij/debugger/ui/overhead/OverheadProducer.java
@@ -15,11 +15,13 @@
*/
package com.intellij.debugger.ui.overhead;
+import com.intellij.ui.ColoredTableCellRenderer;
+
/**
* @author egor
*/
public interface OverheadProducer {
boolean isEnabled();
void setEnabled(boolean enabled);
- String getDisplayName();
+ void customizeRenderer(ColoredTableCellRenderer renderer);
}
diff --git a/java/debugger/impl/src/com/intellij/debugger/ui/overhead/OverheadView.java b/java/debugger/impl/src/com/intellij/debugger/ui/overhead/OverheadView.java
index 40171f2e86c2..ba18be8da122 100644
--- a/java/debugger/impl/src/com/intellij/debugger/ui/overhead/OverheadView.java
+++ b/java/debugger/impl/src/com/intellij/debugger/ui/overhead/OverheadView.java
@@ -19,19 +19,19 @@ import com.intellij.debugger.engine.DebugProcessImpl;
import com.intellij.openapi.actionSystem.AnActionEvent;
import com.intellij.openapi.actionSystem.CustomShortcutSet;
import com.intellij.openapi.project.DumbAwareAction;
+import com.intellij.ui.ColoredTableCellRenderer;
import com.intellij.ui.ScrollPaneFactory;
import com.intellij.ui.TableUtil;
-import com.intellij.ui.table.JBTable;
+import com.intellij.ui.table.TableView;
import com.intellij.util.ui.ColumnInfo;
import com.intellij.util.ui.ListTableModel;
import com.intellij.util.ui.components.BorderLayoutPanel;
import com.intellij.xdebugger.impl.ui.DebuggerUIUtil;
-import one.util.streamex.IntStreamEx;
-import one.util.streamex.StreamEx;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import javax.swing.*;
+import javax.swing.table.TableCellRenderer;
import java.awt.event.KeyEvent;
import java.util.ArrayList;
import java.util.Comparator;
@@ -46,7 +46,7 @@ public class OverheadView extends BorderLayoutPanel {
static final EnabledColumnInfo ENABLED_COLUMN = new EnabledColumnInfo();
static final NameColumnInfo NAME_COLUMN = new NameColumnInfo();
- final JBTable myTable;
+ final TableView